SeAgent是一个基于Python和Vue.js开发的智能对话系统,支持知识库增强的AI对话,采用大语言模型提供问答服务。系统支持用户管理、多轮对话、知识库管理等功能。
- 智能对话: 基于大语言模型的自然对话能力
- 知识库增强: 支持上传文档创建知识库,使AI回答基于特定领域知识
- 多轮对话: 支持上下文关联的多轮对话
- 用户系统: 完整的用户注册、登录和认证功能
- 对话管理: 创建、查看、删除对话历史
- 主题切换: 支持亮色/暗色主题切换
- MCP工具管理: 支持上传和管理MCP工具,扩展AI助手能力
- 前后端分离: FastAPI后端 + Vue.js前端
- 向量存储: 使用Chroma向量数据库进行语义检索
- 模型适配: 支持多种大型语言模型接口
- 工具代理: 基于LangChain实现的智能代理功能
- FastAPI: Web框架
- SQLite: 数据库
- LangChain: 大语言模型工具链
- Chroma: 向量数据库
- JWT: 身份认证
- Vue 3: 前端框架
- Element Plus: UI组件库
- Vue Router: 路由管理
- Axios: HTTP客户端
- Python 3.9+
- Node.js 14+
- npm/yarn
-
克隆仓库
git clone https://github.com/yourusername/SeAgent.git cd SeAgent -
创建并激活虚拟环境
python -m venv venv source venv/bin/activate # Linux/Mac # 或 .\venv\Scripts\activate # Windows
-
安装依赖
pip install -r requirements.txt
-
配置环境变量
创建
.env文件,配置以下环境变量:OPENAI_API_KEY=your_api_key OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_MODEL_NAME=gpt-4 # 或其他模型 OPENAI_EMBEDDING_MODEL=text-embedding-3-small # 或其他嵌入模型 -
运行后端服务
uvicorn fast_app:app --host 0.0.0.0 --port 8000 --reload
-
进入前端目录
cd SeAgent_vue -
安装依赖
npm install # 或 yarn install -
开发模式运行
npm run dev # 或 yarn dev -
构建生产版
npm run build # 或 yarn build
-
构建Docker镜像
docker build -t seagent:latest . -
运行Docker容器
docker run -d -p 8000:8000 --name seagent --env-file .env seagent:latest
- 访问首页,点击"登录系统"
- 首次使用请点击"没有账号?去注册"
- 填写用户名、密码和电子邮箱完成注册
- 使用注册的账号登录系统
- 登录后自动进入主界面
- 点击左侧"新对话"按钮创建聊天
- 在底部输入框中输入问题并发送
- 系统会显示AI助手的回复
- 点击顶部导航栏的"知识库管理"
- 在上传区域填写知识库名称
- 上传TXT、PDF或CSV格式文件
- 点击"上传到知识库"按钮
- 上传成功后在知识库列表中可以看到已创建的知识库
- 在聊天界面,使用顶部的知识库选择器选择一个知识库
- 发送的问题将基于选中的知识库进行回答
- 系统会在回答中引用相关知识
- 点击顶部导航栏的"MCP工具"
- 在MCP工具管理页面,您可以:
- 添加新工具: 填写工具名称,在文本框中粘贴MCP JSON配置
- 查看已保存工具: 在表格中查看所有已保存的MCP工具
- 删除工具: 点击删除按钮移除不需要的MCP工具
- 提交成功后,MCP工具会自动在对话中生效,增强AI助手能力
{
"calculator": {
"transport": "stdio",
"command": "python",
"args": ["-c", "import sys; print('Calculator MCP server started'); sys.stdout.flush()"]
},
"web_search": {
"transport": "streamable_http",
"url": "http://localhost:8080/mcp"
}
}SeAgent/
├── adapter/ # 模型适配器
├── database/ # 数据库模型和操作
│ ├── models/ # 数据模型定义
│ └── ...
├── routes/ # API路由
├── utils/ # 工具函数
│ ├── tools/ # 代理工具
│ └── ...
├── SeAgent_vue/ # 前端Vue项目
│ ├── src/ # 源代码
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ ├── services/ # API服务
│ │ └── ...
│ └── ...
├── vector_db/ # 向量数据库存储
├── fast_app.py # 主应用入口
└── requirements.txt # 依赖列表
欢迎为SeAgent项目做出贡献!以下是参与开发的基本步骤:
- Fork项目仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启Pull Request
该项目采用MIT许可证 - 详细信息请参见 LICENSE 文件
GET /api/mcp/tools?user_id={user_id}
Authorization: Bearer {token}POST /api/mcp/tools
Authorization: Bearer {token}
Content-Type: application/json
{
"user_id": 1,
"name": "calculator",
"config": "{\n \"calculator\": {\n \"transport\": \"stdio\",\n \"command\": \"python\",\n \"args\": [\"-c\", \"import sys; print('Calculator MCP server started'); sys.stdout.flush()\"]\n }\n}"
}DELETE /api/mcp/tools/{tool_id}
Authorization: Bearer {token}