About Aiignitenote
Aiignitenote is an MCP server published by aiignite in the Developer Tools category: mCP server: Aiignitenote.
The repository has 2 stars and 0 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/aiignite/AIIgniteNoteThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Aiignitenote
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
AI Ignite Note
智能 AI 笔记应用 - 多类型笔记 + AI 助手集成 + 实时协作
功能特性 • 技术栈 • 快速开始 • Docker 部署 • API 文档
📝 项目简介
AI Ignite Note 是一款功能强大的智能笔记应用,集成了多种 AI 助手,支持 Markdown、富文本(BlockNote)、思维导图和流程图等多种笔记类型。采用前后端分离架构,支持离线同步、实时聊天,并可通过 MCP 协议与外部 AI 客户端(Claude Desktop、Cursor 等)集成。
核心亮点
- 🎨 多类型编辑器:Markdown、BlockNote 富文本、思维导图、Drawio 流程图
- 🤖 多 AI 提供商:支持 Gemini、Claude、OpenAI、Ollama、LM Studio
- 💬 实时聊天:基于 Socket.IO 的 AI 对话,支持流式响应
- 🔄 离线同步:IndexedDB 本地缓存 + 自动同步
- 🌐 MCP 集成:通过 Model Context Protocol 对接外部 AI 客户端
- 📁 文件管理:上传、下载、预览多种文件格式
- 🎨 主题定制:支持浅色/深色主题切换
✨ 功能特性
📋 笔记管理
支持的笔记类型
| 类型 | 编辑器 | 特性 |
|---|---|---|
| Markdown | MD Editor | GFM、数学公式、代码高亮、TOC |
| 富文本 | BlockNote | 现代化 UI、斜杠命令、协作编辑 |
| 思维导图 | Simple Mind Map | 拖拽布局、多主题、导出 SVG |
| 流程图 | Drawio | Visio 兼容、丰富图库、导入导出 |
笔记操作
- ✅ 创建、编辑、删除笔记
- 💾 实时自动保存
- 🏷️ 标签分类管理
- ⭐ 收藏功能
- 🗑️ 回收站(软删除/恢复)
- 🔍 全文搜索
- 📤 导出(Markdown、PDF、图片)
🤖 AI 助手集成
支持的 AI 提供商
| 提供商 | 模型示例 | 特点 |
|---|---|---|
| Google Gemini | gemini-2.0-flash, gemini-1.5-pro | 最新模型,免费额度 |
| Anthropic Claude | claude-sonnet-4, claude-3-5-sonnet | 高质量输出 |
| OpenAI GPT | gpt-4o, gpt-4o-mini | 功能全面 |
| Ollama | 本地模型 | 完全离线,隐私保护 |
| LM Studio | 本地模型 | 可自定义模型 |
AI 功能
- 💬 实时聊天对话(流式响应)
- 📜 对话历史持久化
- 👤 自定义 AI 助手角色
- ⚡ 快速操作指令
- 🎯 模板驱动生成
- 🔗 文件附件支持
- 🔒 对话加密存储
💬 实时聊天系统
- 基于 Socket.IO 的 WebSocket 通信
- 聊天室创建与管理
- 消息持久化到数据库
- 输入状态实时同步
- 消息已读/未读状态
📄 模板系统
- 预置模板库(规划、头脑风暴、写作、商业等)
- 自定义模板创建
- 模板应用生成笔记
- 公共/私有模板分类
📁 文件管理
- 文件上传(图片、文档等)
- 文件预览(PDF、图片)
- 下载管理
- AI 对话附件关联
🌐 MCP 集成
- 支持 Claude Desktop 集成
- 支持 Cursor 集成
- 支持 VS Code GitHub Copilot 集成
- 通过 HTTP API + JWT 认证
- 10+ MCP 工具(笔记 CRUD、搜索、文件夹管理等)
🔐 认证与权限
- JWT 认证机制
- Token 自动刷新
- 用户注册/登录
- 个人资料管理
- 工作空间成员权限
🔄 离线同步
- IndexedDB 本地存储
- 自动后台同步
- 网络状态检测
- 冲突解决机制
🛠 技术栈
前端
| 技术 | 版本 | 说明 |
|---|---|---|
| React | 18.2 | UI 框架 |
| TypeScript | 5.8 | 类型安全 |
| Vite | 6.2 | 构建工具 |
| Zustand | 4.5 | 状态管理 |
| Tailwind CSS | 4.1 | CSS 框架 |
| Material Symbols | 0.40 | 图标库 |
前端编辑器
| 库 | 版本 | 用途 |
|---|---|---|
| BlockNote | 0.46 | 富文本编辑器 |
| @uiw/react-md-editor | 3.6 | Markdown 编辑器 |
| simple-mind-map | 0.11 | 思维导图 |
| Drawio | - | 流程图编辑器 |
| React Quill | 2.0 | 备用富文本编辑器 |
前端其他库
| 库 | 用途 |
|---|---|
| socket.io-client | WebSocket 客户端 |
| react-markdown | Markdown 渲染 |
| highlight.js | 代码高亮 |
| kaTeX | 数学公式 |
| mermaid | 图表渲染 |
| echarts | 数据可视化 |
| html2canvas | 截图导出 |
| jspdf | PDF 导出 |
后端
| 技术 | 版本 | 说明 |
|---|---|---|
| Node.js | 18+ | 运行时 |
| Express | 4.21 | Web 框架 |
| TypeScript | 5.8 | 类型安全 |
| Prisma | 5.22 | ORM |
| PostgreSQL | 15+ | 数据库 |
| Socket.IO | 4.8 | 实时通信 |
| Winston | 3.17 | 日志管理 |
后端 AI SDK
| 提供商 | SDK | 版本 |
|---|---|---|
| Google Gemini | @google/genai | 1.37.0 |
| Anthropic Claude | @anthropic-ai/sdk | 0.32.1 |
| OpenAI GPT | openai | 4.73.1 |
| Ollama | HTTP API | - |
| LM Studio | HTTP API | - |
后端其他库
| 库 | 用途 |
|---|---|
| jsonwebtoken | JWT 认证 |
| bcryptjs | 密码加密 |
| multer | 文件上传 |
| zod | 数据验证 |
| helmet | 安全头 |
| express-rate-limit | 速率限制 |
MCP Server
| 技术 | 版本 | 说明 |
|---|---|---|
| @modelcontextprotocol/sdk | 1.12 | MCP SDK |
| Node.js | 18+ | 运行时 |
| TypeScript | 5.8 | 类型安全 |
🚀 快速开始
环境要求
- Node.js 18+
- PostgreSQL 15+
- npm 或 yarn
方法一:推荐 - 使用启动脚本(本地开发)
# 克隆项目
git clone https://github.com/aiignite/AIIgniteNote.git
cd AIIgniteNote
# 使用启动脚本一键启动(自动安装依赖、初始化数据库、启动前后端)
bash start.sh
start.sh 脚本会自动完成以下操作:
- 检查 Node.js 和依赖
- 安装前端和后端依赖
- 初始化数据库(Prisma 迁移)
- 启动后端服务(端口 3215)
- 启动前端服务(端口 3210)
访问 http://localhost:3210 开始使用。
方法二:手动安装(适合本地开发)
1. 安装 PostgreSQL
# macOS
brew install postgresql@15
brew services start postgresql@15
# Linux
sudo apt-get install postgresql postgresql-contrib
sudo systemctl start postgresql
# Windows
# 下载并安装: https://www.postgresql.org/download/windows/
2. 初始化数据库
# 复制环境变量模板
cp backend/.env.example backend/.env
# 编辑 .env 文件,配置数据库连接
# DATABASE_URL="postgresql://postgres:postgres@localhost:5432/ai_ignite_note"
# 运行数据库初始化脚本
bash setup-local-db.sh
# 或者手动执行
cd backend
npm run prisma:generate
npm run prisma:migrate
3. 安装依赖
# 安装前端依赖
npm install
# 安装后端依赖
cd backend
npm install
cd ..
4. 配置 AI 提供商(可选)
在 backend/.env 中配置至少一个 AI 提供商:
# Google Gemini(推荐,有免费额度)
GOOGLE_AI_API_KEY=your_gemini_api_key
# Anthropic Claude
ANTHROPIC_API_KEY=your_anthropic_api_key
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Ollama(本地)
OLLAMA_API_URL=http://localhost:11434
# LM Studio(本地)
LM_STUDIO_API_URL=http://localhost:1234
5. 启动服务
# 终端1:启动后端(端口 3215)
cd backend
npm run dev
# 终端2:启动前端(端口 3210)
npm run dev
6. 访问应用
- 前端地址: http://localhost:3210
- 后端地址: http://localhost:3215
- API 文档: http://localhost:3215/api
首次访问需要注册新用户账户。
获取 API Key
Google Gemini(推荐)
- 访问 Google AI Studio
- 创建 API 密钥
- 在
.env中设置:GOOGLE_AI_API_KEY=your_api_key
可用模型:
gemini-2.0-flash-exp(最新,推荐)gemini-1.5-progemini-1.5-flash
Anthropic Claude
- 访问 Anthropic Console
- 创建 API 密钥
- 在
.env中设置:ANTHROPIC_API_KEY=your_api_key
可用模型:
claude-sonnet-4-20250514claude-3-5-sonnet-20241022
OpenAI GPT
- 访问 OpenAI Platform
- 创建 API 密钥
- 在
.env中设置:OPENAI_API_KEY=your_api_key
可用模型:
gpt-4ogpt-4o-minigpt-3.5-turbo
🐳 Docker 部署
项目支持 Docker Compose 一键部署,详见 docker-compose.yml。
快速启动
# 复制环境变量模板
cp .env.docker.example .env
# 编辑 .env 文件,添加 AI 提供商 API 密钥
nano .env
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 初始化数据库
docker-compose exec backend npx prisma migrate deploy
服务访问
- 前端: http://localhost:3210
- 后端 API: http://localhost:3215
- 健康检查: http://localhost:3215/health
- 数据库: localhost:5434
常用命令
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 停止并删除所有数据(包括数据库)
docker-compose down -v
# 重新构建并启动
docker-compose up -d --build
🔌 MCP 集成
MCP Server 允许外部 AI 客户端(如 Claude Desktop、Cursor)直接操作笔记系统。
MCP 功能
| 工具 | 说明 | 操作类型 |
|---|---|---|
note_create |
创建笔记 | 写入 |
note_read |
读取笔记 | 只读 |
note_update |
更新笔记 | 写入 |
note_delete |
删除笔记 | 破坏性 |
note_search |
搜索笔记 | 只读 |
note_toggle_favorite |
切换收藏 | 写入 |
folder_list |
列出文件夹 | 只读 |
folder_create |
创建文件夹 | 写入 |
folder_delete |
删除文件夹 | 破坏性 |
构建 MCP Server
cd backend/src/mcp
npm install
npm run build
Claude Desktop 配置
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"aiignitenote": {
"command": "node",
"args": ["/path/to/AIIgniteNote/backend/src/mcp/dist/index.js"],
"env": {
"MCP_USER_EMAIL": "your-email@example.com",
"MCP_USER_PASSWORD": "your-password",
"MCP_API_URL": "http://localhost:3215/api"
}
}
}
}
📦 项目结构
AIIgniteNote/
├── backend/ # 后端服务
│ ├── src/
│ │ ├── app.ts # 应用入口
│ │ ├── config/ # 配置文件
│ │ ├── controllers/ # 控制器
│ │ ├── middleware/ # 中间件
│ │ ├── routes/ # 路由
│ │ ├── services/ # 业务逻辑
│ │ │ ├── ai/ # AI 服务
│ │ │ │ └── providers/ # AI 提供商
│ │ │ ├── ai-assistants.service.ts
│ │ │ ├── ai.service.ts
│ │ │ ├── auth.service.ts
│ │ │ ├── chat.service.ts
│ │ │ └── notes.service.ts
│ │ ├── socket/ # Socket.IO
│ │ ├── types/ # 类型定义
│ │ └── utils/ # 工具函数
│ ├── src/mcp/ # MCP Server
│ │ ├── index.ts
│ │ ├── tools/ # MCP 工具
│ │ └── services/ # API 客户端
│ ├── prisma/ # 数据库 schema
│ ├── logs/ # 日志文件
│ ├── uploads/ # 上传文件
│ ├── .env # 环境变量
│ ├── package.json
│ └── tsconfig.json
│
├── components/ # React 组件
│ ├── AIPanel.tsx # AI 助手面板
│ ├── AIDashboard.tsx # AI 仪表板
│ ├── Editor.tsx # 笔记编辑器
│ ├── NoteList.tsx # 笔记列表
│ ├── Sidebar.tsx # 侧边栏
│ ├── Settings.tsx # 设置页面
│ ├── FileManager.tsx # 文件管理
│ ├── TemplateGallery.tsx # 模板库
│ ├── LoginPage.tsx # 登录页
│ └── editors/ # 编辑器组件
│ ├── MarkdownEditor.tsx
│ ├── RichTextEditor.tsx (BlockNote)
│ ├── MindMapEditor.tsx
│ └── DrawioEditor.tsx
│
├── services/ # 前端服务
│ ├── api.ts # API 客户端
│ ├── indexedDB.ts # 本地存储
│ ├── offlineSync.ts # 离线同步
│ └── socket.ts # Socket 客户端
│
├── store/ # Zustand 状态管理
│ ├── languageStore.ts # 语言设置
│ └── themeStore.ts # 主题设置
│
├── App.tsx # 应用入口
├── types.ts # 类型定义
├── vite.config.ts # Vite 配置
├── package.json
├── docker-compose.yml # Docker 配置
├── start.sh # 启动脚本
└── README.md
📚 API 文档
认证
注册
POST /api/auth/register
Content-Type: application/json
{
"email": "user@example.com",
"password": "Password123",
"name": "用户名"
}
登录
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "Password123"
}
笔记
获取笔记列表
GET /api/notes
Authorization: Bearer {token}
创建笔记
POST /api/notes
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "笔记标题",
"content": "笔记内容",
"noteType": "MARKDOWN",
"folderId": "folder-id",
"tags": ["标签1", "标签2"]
}
更新笔记
PUT /api/notes/{id}
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "新标题",
"content": "新内容"
}
删除笔记
DELETE /api/notes/{id}
Authorization: Bearer {token}
AI 助手
获取提供商列表
GET /api/ai/providers
Authorization: Bearer {token}
发送聊天消息(流式)
POST /api/ai/chat/stream
Authorization: Bearer {token}
Content-Type: text/event-stream
{
"provider": "GOOGLE",
"model": "gemini-2.0-flash-exp",
"messages": [
{"role": "user", "content": "你好"}
]
}
获取对话历史
GET /api/ai/conversations
Authorization: Bearer {token}
模板
获取模板列表
GET /api/templates?search=关键词&category=Planning
Authorization: Bearer {token}
创建模板
POST /api/templates
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "模板名称",
"description": "模板描述",
"prompt": "AI 提示词",
"category": "Planning",
"noteType": "MARKDOWN",
"isPublic": true
}
文件管理
上传文件
POST /api/files/upload
Authorization: Bearer {token}
Content-Type: multipart/form-data
file: [文件]
获取文件列表
GET /api/files
Authorization: Bearer {token}
🎯 使用示例
创建 Markdown 笔记
请帮我创建一篇关于 "React Hooks 最佳实践" 的 Markdown 笔记
创建思维导图
帮我创建一个关于 "项目管理" 的思维导图笔记
AI 对话
在 AI 面板中直接与助手对话,支持:
- 流式响应
- 历史记录
- 文件附件
- 多轮对话
使用模板
- 打开模板库
- 选择预置模板
- 点击"应用模板"
- AI 自动生成笔记内容
🔧 开发指南
添加新的 AI 提供商
- 在
backend/src/services/ai/providers/创建新的 Provider 类 - 继承
BaseAIProvider并实现chat()和chatStream()方法 - 在
factory.ts中注册新 provider - 更新
AIProvider枚举类型
添加新的笔记类型
- 在
components/editors/创建新的编辑器组件 - 在
backend/prisma/schema.prisma中更新NoteType枚举 - 在
Editor.tsx中添加类型支持 - 运行数据库迁移:
npm run prisma:migrate
运行测试
# 后端测试
cd backend
npm test
# 前端测试(如果配置了)
npm test
代码规范
- 使用 TypeScript 类型注解
- 遵循 ESLint 和 Prettier 配置
- 组件使用函数式组件 + Hooks
- 使用 async/await 处理异步
🐛 故障排除
问题:数据库连接失败
解决方案:
- 检查 PostgreSQL 服务是否运行
- 验证
DATABASE_URL配置 - 确保数据库用户权限正确
# 检查 PostgreSQL 状态
brew services list # macOS
systemctl status postgresql # Linux
# 测试连接
psql postgresql://postgres:postgres@localhost:5432/ai_ignite_note
问题:AI 提供商不可用
解决方案:
- 检查 API 密钥是否配置
- 对于本地提供商,确保服务正在运行
- 检查网络连接
- 查看后端日志:
tail -f backend.log
问题:前端无法连接后端
解决方案:
- 确保后端运行在
http://localhost:3215 - 检查 CORS 配置
- 查看浏览器控制台错误
问题:离线同步不工作
解决方案:
- 检查浏览器是否支持 IndexedDB
- 清除浏览器缓存
- 检查网络连接状态
问题:Socket.IO 连接失败
解决方案:
- 确保 Socket.IO 服务已启动
- 检查防火墙设置
- 验证 Socket URL 配置
📖 详细文档
🤝 贡献指南
欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
开发规范
- 遵循现有代码风格
- 添加必要的类型注解
- 编写清晰的提交信息
- 确保所有测试通过
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
📞 联系方式
- GitHub Issues: https://github.com/aiignite/AIIgniteNote/issues
- 文档: https://github.com/aiignite/AIIgniteNote/wiki
Made with ❤️ by AI Ignite Team
⭐ 如果这个项目对你有帮助,请给我们一个 Star!
目录
项目简介
AI Ignite Note 是一款功能强大的智能笔记应用,集成了多种 AI 助手,支持 Markdown、富文本、思维导图和流程图等多种笔记类型。应用采用前后端分离架构,支持离线同步、国际化主题定制,并可通过 Docker 一键部署。
功能特性
核心功能
笔记管理
-
多种笔记类型
- Markdown 笔记 - 支持 MD 编辑器
- 富文本笔记 - 基于 React Quill
- 思维导图 - 使用 simple-mind-map
- 流程图 - SVG.js 绘图
-
笔记操作
- 创建、编辑、删除笔记
- 实时保存
- 标签分类
- 收藏功能
- 回收站
AI助手集成
-
多AI提供商支持
- Google Gemini
- Anthropic Claude
- OpenAI GPT
- Ollama (本地)
- LM Studio (本地)
-
AI功能
- 实时聊天对话
- 对话历史持久化
- 预定义助手角色
- 快速操作指令
- 流式消息显示
模板系统
-
模板分类
- 规划 (Planning)
- 头脑风暴 (Brainstorm)
- 写作 (Writing)
- 商业 (Business)
- 开发 (Development)
- 个人 (Personal)
- 通用 (General)
-
模板管理
- 创建自定义模板
- 模板搜索过滤
- 应用模板生成笔记
- 公共/私有模板
文件夹管理
- 树形结构组织
- 多层嵌套支持
- 拖拽排序
- 快速创建文件夹
用户认证
- JWT 认证机制
- Token 刷新
- 用户注册/登录
- 个人资料管理
离线同步
- IndexedDB 本地存储
- 自动后台同步
- 网络状态检测
- 冲突解决机制
其他特性
- 国际化支持 (i18n)
- 主题定制
- 响应式设计
- 可拖拽面板
- 搜索功能
技术栈
前端
| 技术 | 版本 | 说明 |
|---|---|---|
| React | 18.2 | UI 框架 |
| TypeScript | 5.8 | 类型安全 |
| Vite | 6.2 | 构建工具 |
| Zustand | 4.5 | 状态管理 |
| React Quill | 2.0 | 富文本编辑器 |
| MD Editor | 3.6 | Markdown 编辑器 |
| simple-mind-map | 0.11 | 思维导图 |
| @svgdotjs/svg.js | 3.2 | SVG 图形 |
后端
| 技术 | 版本 | 说明 |
|---|---|---|
| Node.js | 18+ | 运行时 |
| Express | 4.21 | Web 框架 |
| TypeScript | 5.8 | 类型安全 |
| Prisma | 5.22 | ORM |
| PostgreSQL | 15+ | 数据库 |
| JWT | 9.0 | 认证 |
| Socket.IO | 4.8 | 实时通信 |
| Winston | 3.17 | 日志管理 |
AI SDK
| 提供商 | SDK | 说明 |
|---|---|---|
| Google Gemini | @google/genai | 1.37.0 |
| Anthropic Claude | @anthropic-ai/sdk | 0.32.1 |
| OpenAI GPT | openai | 4.73.1 |
| Ollama | HTTP API | 本地模型 |
| LM Studio | HTTP API | 本地模型 |
快速开始
环境要求
- Node.js 18+
- PostgreSQL 15+
- npm 或 yarn
安装步骤
1. 克隆项目
git clone https://github.com/aiignite/AIIgniteNoteFrontend.git
cd AIIgniteNote
2. 安装依赖
# 安装前端依赖
npm install
# 安装后端依赖
cd backend
npm install
cd ..
3. 配置数据库
# 在 backend 目录下
cd backend
# 复制环境变量文件
cp .env.example .env
# 编辑 .env 文件,配置数据库连接
# DATABASE_URL="postgresql://user:password@localhost:5432/ai_ignite_note"
# 运行数据库迁移
npm run prisma:migrate
# 生成 Prisma Client
npm run prisma:generate
# 可选:运行种子数据
npm run prisma:seed
4. 配置 AI 提供商(可选)
在 backend/.env 中配置至少一个 AI 提供商:
# Google Gemini(推荐,有免费额度)
GOOGLE_AI_API_KEY=your_gemini_api_key
# Anthropic Claude
ANTHROPIC_API_KEY=your_anthropic_api_key
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Ollama(本地)
OLLAMA_API_URL=http://localhost:11434
# LM Studio(本地)
LM_STUDIO_API_URL=http://localhost:1234
5. 启动服务
# 启动后端(终端1)
cd backend
npm run dev
# 启动前端(终端2)
npm run dev
6. 访问应用
- 前端地址: http://localhost:3200
- 后端地址: http://localhost:4000
- API 文档: http://localhost:4000/api
首次访问需要注册新用户账户。
项目结构
AIIgniteNote/
├── backend/ # 后端服务
│ ├── src/
│ │ ├── app.ts # 应用入口
│ │ ├── config/ # 配置文件
│ │ ├── controllers/ # 控制器
│ │ ├── middleware/ # 中间件
│ │ ├── routes/ # 路由
│ │ ├── services/ # 业务逻辑
│ │ │ └── ai/ # AI 服务
│ │ │ └── providers/ # AI 提供商
│ │ ├── types/ # 类型定义
│ │ └── utils/ # 工具函数
│ ├── prisma/ # 数据库 schema
│ ├── logs/ # 日志文件
│ ├── uploads/ # 上传文件
│ ├── .env # 环境变量
│ ├── package.json
│ └── tsconfig.json
│
├── components/ # React 组件
│ ├── AIPanel.tsx # AI 助手面板
│ ├── AIDashboard.tsx # AI 仪表板
│ ├── Editor.tsx # 笔记编辑器
│ ├── NoteList.tsx # 笔记列表
│ ├── Sidebar.tsx # 侧边栏
│ ├── Settings.tsx # 设置页面
│ ├── TemplateGallery.tsx # 模板库
│ └── editors/ # 编辑器组件
│
├── services/ # 前端服务
│ ├── api.ts # API 客户端
│ ├── indexedDB.ts # 本地存储
│ └── offlineSync.ts # 离线同步
│
├── store/ # 状态管理
│ ├── languageStore.ts # 语言设置
│ └── themeStore.ts # 主题设置
│
├── App.tsx # 应用入口
├── types.ts # 类型定义
├── vite.config.ts # Vite 配置
├── package.json
└── README.md
配置指南
AI 提供商配置
Google Gemini(推荐)
- 访问 Google AI Studio
- 创建 API 密钥
- 在
.env中设置:GOOGLE_AI_API_KEY=your_api_key
可用模型:
gemini-2.0-flash-exp(最新,推荐)gemini-1.5-progemini-1.5-flash
Anthropic Claude
- 访问 Anthropic Console
- 创建 API 密钥
- 在
.env中设置:ANTHROPIC_API_KEY=your_api_key
可用模型:
claude-sonnet-4-20250514claude-3-5-sonnet-20241022
OpenAI GPT
- 访问 OpenAI Platform
- 创建 API 密钥
- 在
.env中设置:OPENAI_API_KEY=your_api_key
可用模型:
gpt-4ogpt-4o-minigpt-3.5-turbo
Ollama(本地)
- 安装 Ollama: https://ollama.ai/
- 启动服务:
ollama serve - 在
.env中设置:OLLAMA_API_URL=http://localhost:11434
LM Studio(本地)
- 安装 LM Studio: https://lmstudio.ai/
- 启动应用并启用 API 服务器
- 在
.env中设置:LM_STUDIO_API_URL=http://localhost:1234
API 文档
认证
注册
POST /api/auth/register
Content-Type: application/json
{
"email": "user@example.com",
"password": "Password123",
"username": "username"
}
登录
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "Password123"
}
笔记
获取笔记列表
GET /api/notes
Authorization: Bearer {token}
创建笔记
POST /api/notes
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "笔记标题",
"content": "笔记内容",
"noteType": "MARKDOWN",
"folderId": "folder-id"
}
更新笔记
PUT /api/notes/{id}
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "新标题",
"content": "新内容"
}
删除笔记
DELETE /api/notes/{id}
Authorization: Bearer {token}
AI 助手
获取提供商列表
GET /api/ai/providers
Authorization: Bearer {token}
发送聊天消息
POST /api/ai/chat
Authorization: Bearer {token}
Content-Type: application/json
{
"provider": "GOOGLE",
"model": "gemini-2.0-flash-exp",
"messages": [
{"role": "user", "content": "你好"}
]
}
获取对话历史
GET /api/ai/conversations
Authorization: Bearer {token}
模板
获取模板列表
GET /api/templates?search=关键词&category=Planning
Authorization: Bearer {token}
创建模板
POST /api/templates
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "模板名称",
"description": "模板描述",
"prompt": "AI 提示词",
"category": "Planning",
"noteType": "MARKDOWN",
"isPublic": true
}
应用模板
POST /api/templates/{id}/apply
Authorization: Bearer {token}
Content-Type: application/json
{
"workspaceId": "workspace-id",
"folderId": "folder-id"
}
Docker 部署
项目支持 Docker Compose 一键部署,详见 DOCKER_DEPLOYMENT.md
快速启动
# 复制环境变量模板
cp .env.docker.example .env
# 编辑 .env 文件,添加 AI 提供商 API 密钥
nano .env
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 初始化数据库
docker-compose exec backend npx prisma migrate deploy
服务访问
- 前端: http://localhost:3200
- 后端 API: http://localhost:4000
- 健康检查: http://localhost:4000/health
- 数据库: localhost:5434
常用命令
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 停止并删除所有数据(包括数据库)
docker-compose down -v
# 重新构建并启动
docker-compose up -d --build
贡献指南
欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
开发规范
- 遵循现有代码风格
- 添加必要的类型注解
- 编写清晰的提交信息
- 确保所有测试通过
故障排除
问题:数据库连接失败
解决方案:
- 检查 PostgreSQL 服务是否运行
- 验证
DATABASE_URL配置 - 确保数据库用户权限正确
问题:AI 提供商不可用
解决方案:
- 检查 API 密钥是否配置
- 对于本地提供商,确保服务正在运行
- 重启后端服务
问题:前端无法连接后端
解决方案:
- 确保后端运行在
http://localhost:4000 - 检查 CORS 配置
- 查看浏览器控制台错误
问题:离线同步不工作
解决方案:
- 检查 IndexedDB 是否启用
- 清除浏览器缓存
- 查看网络连接状态
详细文档
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
联系方式
- GitHub Issues: https://github.com/aiignite/AIIgniteNoteFrontend/issues
- 文档: https://github.com/aiignite/AIIgniteNoteFrontend/wiki
Made with ❤️ by AI Ignite Team
README fetched from the repository 7 days ago. The original is authoritative.