- 实现Agent管理,支持AI辅助生成系统提示词 - 支持多个AI提供商(OpenRouter、智谱、MiniMax等) - 实现聊天室和讨论引擎 - WebSocket实时消息推送 - 前端使用React + Ant Design - 后端使用FastAPI + MongoDB Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
208 lines
4.7 KiB
Markdown
208 lines
4.7 KiB
Markdown
# 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!
|