feat: AI聊天室多Agent协作讨论平台
- 实现Agent管理,支持AI辅助生成系统提示词 - 支持多个AI提供商(OpenRouter、智谱、MiniMax等) - 实现聊天室和讨论引擎 - WebSocket实时消息推送 - 前端使用React + Ant Design - 后端使用FastAPI + MongoDB Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
207
README.md
Normal file
207
README.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# AI聊天室 - 多Agent协作讨论平台
|
||||
|
||||
一个基于多AI Agent协作的聊天室系统,支持配置多种AI接口,创建具有不同角色的Agent,并让它们在聊天室中针对特定目标进行自由讨论,最终达成共识。
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. AI接口管理
|
||||
- 支持多种AI提供商:MiniMax、智谱、OpenRouter、Kimi、DeepSeek、Gemini
|
||||
- 支持本地模型:Ollama、LLM Studio
|
||||
- 可配置代理(支持海外API访问)
|
||||
- API密钥加密存储
|
||||
- 速率限制和连接测试
|
||||
|
||||
### 2. Agent管理
|
||||
- 创建自定义Agent角色
|
||||
- 配置系统提示词和行为参数
|
||||
- 支持记忆功能、MCP工具、多模态输入
|
||||
- 预设模板快速创建(产品经理、开发工程师、设计师等)
|
||||
- Agent测试对话功能
|
||||
|
||||
### 3. 聊天室
|
||||
- 创建讨论聊天室,添加多个Agent参与
|
||||
- 设置讨论目标,启动自由讨论
|
||||
- Agent根据角色自主判断是否发言
|
||||
- 实时WebSocket消息推送
|
||||
- 支持暂停、恢复、停止讨论
|
||||
|
||||
### 4. 共识判断
|
||||
- 主持人Agent判断讨论是否达成共识
|
||||
- 自动生成讨论摘要和行动项
|
||||
- 记录未解决的问题
|
||||
- 讨论历史回放
|
||||
|
||||
## 技术架构
|
||||
|
||||
```
|
||||
├── backend/ # FastAPI后端
|
||||
│ ├── adapters/ # AI接口适配器
|
||||
│ ├── models/ # 数据模型
|
||||
│ ├── services/ # 业务逻辑
|
||||
│ ├── routers/ # API路由
|
||||
│ └── utils/ # 工具函数
|
||||
├── frontend/ # React前端
|
||||
│ ├── src/
|
||||
│ │ ├── components/ # UI组件
|
||||
│ │ ├── pages/ # 页面
|
||||
│ │ ├── stores/ # 状态管理
|
||||
│ │ └── services/ # API服务
|
||||
└── docker-compose.yml # Docker编排
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 使用Docker(推荐)
|
||||
|
||||
1. 克隆项目并进入目录:
|
||||
```bash
|
||||
cd AIChatRoom
|
||||
```
|
||||
|
||||
2. 复制环境变量配置:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# 编辑 .env 文件,修改密钥等配置
|
||||
```
|
||||
|
||||
3. 启动服务:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
4. 访问应用:
|
||||
- 前端:http://localhost:3000
|
||||
- 后端API:http://localhost:8000
|
||||
- API文档:http://localhost:8000/docs
|
||||
|
||||
### 本地开发
|
||||
|
||||
#### 后端
|
||||
|
||||
1. 创建Python虚拟环境:
|
||||
```bash
|
||||
cd backend
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Windows: venv\Scripts\activate
|
||||
```
|
||||
|
||||
2. 安装依赖:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. 配置环境变量:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# 编辑 .env 文件
|
||||
```
|
||||
|
||||
4. 启动MongoDB:
|
||||
```bash
|
||||
# 确保MongoDB已安装并运行
|
||||
mongod
|
||||
```
|
||||
|
||||
5. 启动后端:
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
#### 前端
|
||||
|
||||
1. 安装依赖:
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
2. 启动开发服务器:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 使用指南
|
||||
|
||||
### 1. 配置AI接口
|
||||
|
||||
1. 进入"AI接口配置"页面
|
||||
2. 点击"添加接口"
|
||||
3. 选择提供商类型,填写API密钥和模型名称
|
||||
4. 如需代理,开启"使用代理"并填写代理地址
|
||||
5. 点击测试验证连接
|
||||
|
||||
### 2. 创建Agent
|
||||
|
||||
1. 进入"Agent管理"页面
|
||||
2. 使用预设模板或点击"创建Agent"
|
||||
3. 填写名称、角色、系统提示词
|
||||
4. 选择关联的AI接口
|
||||
5. 配置行为参数(温度、发言倾向等)
|
||||
|
||||
### 3. 开始讨论
|
||||
|
||||
1. 进入"聊天室"页面
|
||||
2. 创建新聊天室,选择参与的Agent
|
||||
3. 可指定主持人Agent用于共识判断
|
||||
4. 点击"开始讨论",输入讨论目标
|
||||
5. 观察Agent自由讨论,等待达成共识
|
||||
|
||||
## API文档
|
||||
|
||||
启动后端后访问 http://localhost:8000/docs 查看完整的Swagger API文档。
|
||||
|
||||
### 主要端点
|
||||
|
||||
- `POST /api/providers` - 创建AI接口配置
|
||||
- `POST /api/agents` - 创建Agent
|
||||
- `POST /api/chatrooms` - 创建聊天室
|
||||
- `POST /api/chatrooms/{id}/start` - 启动讨论
|
||||
- `WS /api/chatrooms/ws/{id}` - 聊天室WebSocket
|
||||
|
||||
## 配置说明
|
||||
|
||||
### 环境变量
|
||||
|
||||
| 变量 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| MONGODB_URL | MongoDB连接地址 | mongodb://localhost:27017 |
|
||||
| MONGODB_DB | 数据库名称 | ai_chatroom |
|
||||
| SECRET_KEY | 应用密钥 | - |
|
||||
| ENCRYPTION_KEY | 加密密钥(32字节) | - |
|
||||
| DEFAULT_HTTP_PROXY | 默认HTTP代理 | - |
|
||||
| DEFAULT_HTTPS_PROXY | 默认HTTPS代理 | - |
|
||||
|
||||
### 代理配置
|
||||
|
||||
对于需要代理访问的AI接口(如Gemini、OpenRouter),在接口配置中开启代理:
|
||||
|
||||
```json
|
||||
{
|
||||
"use_proxy": true,
|
||||
"proxy_config": {
|
||||
"http_proxy": "http://127.0.0.1:7890",
|
||||
"https_proxy": "http://127.0.0.1:7890"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 扩展开发
|
||||
|
||||
### 添加新的AI提供商
|
||||
|
||||
1. 在 `backend/adapters/` 创建新的适配器文件
|
||||
2. 继承 `BaseAdapter` 类
|
||||
3. 实现 `chat`、`chat_stream`、`test_connection` 方法
|
||||
4. 在 `adapters/__init__.py` 注册新适配器
|
||||
|
||||
### 自定义共识判断逻辑
|
||||
|
||||
修改 `backend/services/consensus_manager.py` 中的 `CONSENSUS_PROMPT` 模板,调整共识判断的标准。
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License
|
||||
|
||||
## 贡献
|
||||
|
||||
欢迎提交Issue和Pull Request!
|
||||
Reference in New Issue
Block a user