# 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!