一个支持多种大模型 API 的智能讨论平台,可以让多个 AI 模型在同一对话中扮演不同角色,进行深度讨论和思辨。
- 多模型 API 支持:集成 OpenAI GPT、Claude、Gemini、Grok 等主流 AI 模型
- 角色化讨论:预设 6 种讨论角色(批判者、支持者、综合者、创新者、专家、魔鬼代言人)
- 实时讨论:WebSocket 支持实时消息推送和讨论状态更新
- 智能压缩:自动压缩长对话上下文,保持讨论效率
- 知识库管理:自动提取和汇总讨论中的知识点
- Web 界面:直观易用的网页界面
bun install复制环境变量模板:
cp .env.example .env编辑 .env 文件,添加你的 API 密钥。系统支持以下配置方式:
每个 AI 提供商都可以自定义:
API_KEY: API 密钥BASE_URL: 接口地址MODEL: 使用的模型名称FORMAT: 接口格式(openai/claude/gemini)
# OpenAI 配置
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-5
# Claude 配置
CLAUDE_API_KEY=your_claude_api_key_here
CLAUDE_BASE_URL=https://api.anthropic.com/v1
CLAUDE_MODEL=claude-4-sonnet
# Gemini 配置
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta
GEMINI_MODEL=gemini-2.5-pro
# Grok 配置 (使用OpenAI兼容格式)
GROK_API_KEY=your_grok_api_key_here
GROK_BASE_URL=https://api.x.ai/v1
GROK_MODEL=grok-beta
GROK_FORMAT=openai支持添加无限数量的自定义 AI 提供商:
# 格式: CUSTOM_PROVIDER_<NAME>_<FIELD>
CUSTOM_PROVIDER_AZURE_API_KEY=your_azure_key
CUSTOM_PROVIDER_AZURE_BASE_URL=https://your-resource.openai.azure.com/openai/deployments/gpt-4/
CUSTOM_PROVIDER_AZURE_MODEL=gpt-4
CUSTOM_PROVIDER_AZURE_FORMAT=openai
# 本地大模型 (如Ollama)
CUSTOM_PROVIDER_OLLAMA_API_KEY=dummy_key
CUSTOM_PROVIDER_OLLAMA_BASE_URL=http://localhost:11434/v1
CUSTOM_PROVIDER_OLLAMA_MODEL=llama2
CUSTOM_PROVIDER_OLLAMA_FORMAT=openai
# 其他兼容服务
CUSTOM_PROVIDER_DEEPSEEK_API_KEY=your_deepseek_key
CUSTOM_PROVIDER_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
CUSTOM_PROVIDER_DEEPSEEK_MODEL=deepseek-chat
CUSTOM_PROVIDER_DEEPSEEK_FORMAT=openai- openai: 兼容 OpenAI ChatGPT API 格式的服务
- claude: Anthropic Claude API 格式
- gemini: Google Gemini API 格式
开发模式:
bun dev生产模式:
bun start打开浏览器访问:http://localhost:3000
- 输入讨论话题:在主页面输入你想讨论的问题
- 选择参与角色:从 6 种预设角色中选择至少 2 个参与讨论
- 开始讨论:点击开始按钮,AI 们将开始多轮讨论
- 查看结果:讨论结束后自动提取知识点到知识库
- 批判性思考者:找出观点中的漏洞,提出质疑
- 支持者:寻找观点亮点,提供支持和扩展
- 综合者:整合不同观点,寻找平衡方案
- 创新者:提出新颖观点和创意解决方案
- 领域专家:基于专业知识提供权威观点
- 魔鬼代言人:故意提出反对意见,激发深入思考
POST /api/discussions- 创建新讨论GET /api/discussions/:id- 获取讨论详情GET /api/discussions- 获取所有讨论POST /api/discussions/:id/messages- 添加消息
GET /api/knowledge/search?q=查询词- 搜索知识库GET /api/knowledge/topics- 获取所有话题GET /api/knowledge/topics/:topic/summary- 获取话题摘要GET /api/knowledge/stats- 获取知识库统计GET /api/knowledge/export- 导出知识库
GET /api/providers- 获取所有提供商配置GET /api/providers/:name- 获取特定提供商配置GET /api/health- 系统健康检查(含提供商状态)
src/
├── config/ # 配置文件
├── models/ # AI模型适配器
├── services/ # 业务逻辑服务
├── types/ # TypeScript类型定义
├── utils/ # 工具函数
├── server.ts # Express服务器
└── index.ts # 入口文件
public/
└── index.html # Web界面
data/
└── knowledge.json # 知识库数据
在创建 DiscussionManager 时可以自定义:
const discussionManager = new DiscussionManager({
maxRounds: 5, // 最大讨论轮数
responseTimeout: 45000, // 响应超时时间(ms)
enableRealTimeUpdates: true, // 是否启用实时更新
});const customRole = RoleManager.addCustomRole({
name: "自定义角色",
description: "角色描述",
systemPrompt: "系统提示词",
tags: ["标签1", "标签2"],
});系统会自动:
- 从讨论中提取有价值的知识点
- 按话题分类整理
- 去重和相似性检测
- 生成话题摘要
- 提供搜索功能
客户端可以监听以下 WebSocket 事件:
discussion_started- 讨论开始message_received- 收到新消息round_started- 新一轮讨论开始discussion_completed- 讨论完成discussion_error- 讨论错误
- 设置环境变量
- 使用 PM2 或类似工具管理进程
- 配置反向代理(Nginx)
- 启用 HTTPS
- 设置日志轮转
- 使用 TypeScript 开发
- 支持 Bun 运行时
- 遵循模块化设计
- 包含完整的类型定义
- 支持热重载开发
- 需要有效的 AI 服务 API 密钥
- 不同 API 有不同的调用限制和计费方式
- 长时间讨论可能产生较多 token 消耗
- 建议在生产环境中设置适当的速率限制
欢迎提交 Issue 和 Pull Request!
MIT License