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:
Claude Code
2026-02-03 19:20:02 +08:00
commit edbddf855d
76 changed files with 14681 additions and 0 deletions

207
README.md Normal file
View 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
- 后端APIhttp://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