基于多个大型语言模型平台的对话系统,让不同AI模型就同一话题进行讨论,通过多方对话探索深入理解话题的效果。
- 🔄 多平台集成: 支持阿里云百炼、火山豆包、月之暗面、DeepSeek、Ollama五大主流LLM平台
- 🚀 异步并发: 高效的异步处理,支持多模型同时对话
- 🎨 可视化界面: 基于Gradio的Web界面,实时显示对话进度
- 📊 进度监控: 实时显示对话状态和各模型响应情况
- 💾 对话存储: 完整的对话历史记录和导出功能
- 🔧 灵活配置: 支持环境变量配置,易于部署和管理
- 🛡️ 错误处理: 完善的错误处理和重试机制
- 🌐 统一接口: 使用OpenAI SDK统一各平台调用接口
- 📎 文件上传: 支持PDF、图片等文件上传,智能提取内容作为对话上下文
- 🤖 智能模型更新: 联网自动获取各平台最新模型配置
- 📝 对话总结: AI生成高质量深度研究文章,支持多种风格和格式
- 🎯 自由选择: 用户可选择任意模型进行对话总结
- 阿里云百炼: qwen-max-2024-09-19, qwen-plus-2024-09-19, qwen-turbo-2024-11-01
- 火山豆包: doubao-pro-128k-v1.5, doubao-pro-32k-v1.5, doubao-pro-4k-v1.5
- 月之暗面: moonshot-v1-128k, moonshot-v1-32k, moonshot-v1-8k
- DeepSeek: deepseek-reasoner (R1推理模型), deepseek-chat, deepseek-coder
- Ollama: deepseek-r1:8b, llama3.2:latest, qwen2.5:latest (本地模型)
- 🤖 智能模型更新: 一键联网获取各平台最新模型配置,自动更新 .env.example
- 📝 AI深度总结: 对话结束后生成高质量深度研究文章,支持学术、博客、报告三种风格
- 🎯 灵活模型选择: 用户可自由选择任意模型进行对话总结,满足不同需求
- 📄 多格式导出: 支持 Markdown、HTML、JSON 三种格式导出总结
- 📊 智能统计: 自动生成对话统计信息,包含参与度分析和时间分布
- 控制台: https://bailian.console.aliyun.com/
- 推荐模型: qwen-max-2024-09-19 (旗舰模型,32K上下文)
- 其他选项: qwen-plus-2024-09-19 (均衡性价比), qwen-turbo-2024-11-01 (快速响应,128K上下文)
- 特色: 中文优化,适合复杂推理任务
- 控制台: https://console.volcengine.com/ark
- 推荐模型: doubao-pro-128k-v1.5 (超长上下文,128K)
- 其他选项: doubao-pro-32k-v1.5 (标准版), doubao-pro-4k-v1.5 (对话专用)
- 特色: 128K上下文,支持文档分析
- 控制台: https://platform.moonshot.cn/
- 推荐模型: moonshot-v1-128k (超长上下文,128K)
- 其他选项: moonshot-v1-32k (标准版), moonshot-v1-8k (基础版)
- 特色: 支持2M字符输入,文档分析专长
- 控制台: https://platform.deepseek.com/
- 推荐模型: deepseek-reasoner (R1推理模型,强逻辑推理)
- 其他选项: deepseek-chat (对话模型), deepseek-coder (编程专用)
- 特色: 强逻辑推理能力,峰谷定价优惠
- 官网: https://ollama.com/
- 推荐模型: deepseek-r1:8b (本地推理模型,强逻辑推理)
- 其他选项: llama3.2:latest (通用对话), qwen2.5:latest (中文支持)
- 特色: 本地部署,数据隐私保护,无需网络
# 安装UV包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh
# 克隆项目
git clone https://github.com/your-username/llm-chats.git
cd llm-chats
# 安装依赖 (包括新增的文件处理依赖)
uv sync
# 安装额外的系统依赖 (用于OCR功能)
# Ubuntu/Debian:
sudo apt-get install tesseract-ocr tesseract-ocr-chi-sim libmagic1
# macOS:
brew install tesseract tesseract-lang libmagic
# Windows: 请参考 https://github.com/UB-Mannheim/tesseract/wiki# 复制环境变量模板
cp env.example .env
# 编辑.env文件,填入您的API密钥环境变量配置示例:
# 至少配置一个平台的API密钥
ALIBABA_API_KEY=your_alibaba_api_key_here
DOUBAO_API_KEY=your_doubao_api_key_here
MOONSHOT_API_KEY=your_moonshot_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
# 模型选择 (可选,系统会自动使用最新推荐模型)
ALIBABA_MODEL=qwen-max-2024-09-19
DOUBAO_MODEL=ep-pro-128k-v1-5 # 使用endpoint ID格式
MOONSHOT_MODEL=moonshot-v1-128k
DEEPSEEK_MODEL=deepseek-reasoner
# Ollama本地模型 (可选)
OLLAMA_ENABLED=true
OLLAMA_MODEL=deepseek-r1:8b
OLLAMA_BASE_URL=http://localhost:11434/# 方式1: 智能启动 (推荐)
python run.py
# 方式2: UV包管理器启动
uv run llm-chats
# 方式3: 简单启动
python main.py# 验证配置是否正确
python -c "from llm_chats.config import get_config; config = get_config(); enabled = config.get_enabled_platforms(); print('已配置平台:', list(enabled.keys()))"- 启动应用后,在Web界面左侧配置讨论话题
- 选择参与平台:可选择多个AI模型参与对话
- 设置参数:配置最大轮次和超时时间
- 开始讨论:点击"开始讨论"按钮启动多方对话
- 完成对话后,在界面右侧找到"对话总结"区域
- 选择总结模型:从下拉框中选择用于生成总结的AI模型
- 配置总结参数:
- 文章风格:学术研究、博客文章、研究报告
- 输出格式:Markdown、HTML、JSON
- 最大字数:1000-10000字可调
- 包含统计:是否包含对话统计信息
- 生成总结:点击"生成总结"按钮,AI将自动生成深度研究文章
- 导出总结:生成完成后点击"导出总结"保存为文件
- 点击"更新模型"按钮:系统会联网获取各平台最新模型信息
- 自动更新配置:系统会自动更新 .env.example 文件中的模型配置
- 查看更新报告:系统会生成详细的模型对比报告
- 上传文件:支持PDF、图片等格式
- 自动处理:系统会智能提取文件内容
- 作为上下文:文件内容会自动加入对话上下文
复杂推理和数学问题:
- deepseek-reasoner (R1推理模型,首选)
- deepseek-r1:8b (本地推理,隐私保护)
- qwen-max-2024-09-19 (旗舰模型)
对话总结和文章生成:
- qwen-max-2024-09-19 (综合能力强)
- deepseek-reasoner (逻辑清晰)
- moonshot-v1-128k (长文本理解)
长文档分析:
- moonshot-v1-128k (128K上下文,首选)
- doubao-pro-128k-v1.5 (128K上下文)
- qwen-turbo-2024-11-01 (128K上下文,快速)
日常对话和创作:
- qwen-plus-2024-09-19 (均衡性价比)
- deepseek-chat (对话专用)
- moonshot-v1-32k (标准版)
快速响应场景:
- qwen-turbo-2024-11-01 (快速响应)
- doubao-pro-4k-v1.5 (对话专用)
- moonshot-v1-8k (基础版)
成本敏感场景:
- deepseek-r1:8b (本地免费)
- llama3.2:latest (本地免费)
- deepseek-chat (非高峰期75折)
编程和代码分析:
- deepseek-coder (编程专用)
- qwen-max-2024-09-19 (全能)
- deepseek-r1:8b (本地编程)
- 配置管理 (
config.py): 统一环境变量和模型配置 - 客户端层 (
client.py): 各平台统一OpenAI SDK接口 - 对话管理 (
conversation.py): 多方对话协调和状态管理 - 用户界面 (
app.py): Gradio Web界面和交互逻辑
- Python 3.12+: 核心开发语言
- UV: 现代Python包管理器
- OpenAI SDK: 统一的API调用接口
- Gradio: Web界面框架
- Asyncio: 异步并发处理
- Pydantic: 数据验证和类型安全
llm-chats/
├── src/llm_chats/ # 核心代码模块
│ ├── __init__.py
│ ├── config.py # 配置管理
│ ├── client.py # LLM客户端实现
│ ├── conversation.py # 对话管理
│ └── app.py # Gradio应用
├── docs/ # 文档目录
│ └── 2025.06.29.md # 设计文档
├── conversations/ # 对话历史 (自动创建)
├── run.py # 智能启动脚本
├── main.py # 简单启动
├── env.example # 环境变量模板
├── pyproject.toml # UV项目配置
├── README.md # 项目说明
└── LICENSE # Apache 2.0许可证
# 对话轮数限制
MAX_CONVERSATION_ROUNDS=5
# 单次响应超时时间 (秒)
RESPONSE_TIMEOUT=30
# 温度参数 (0.0-2.0)
DEFAULT_TEMPERATURE=0.7
# 最大输出tokens
DEFAULT_MAX_TOKENS=1000# 界面端口
GRADIO_PORT=7860
# 外部访问
GRADIO_SHARE=false
# 界面标题
GRADIO_TITLE=多LLM对话系统- API密钥错误: 检查
.env文件中的API密钥是否正确 - 模型不存在: 使用本文档推荐的最新模型名称
- 火山豆包404错误: 确保使用endpoint ID而非模型名称
- 网络连接问题: 检查网络和防火墙设置
- 配额不足: 检查各平台账户余额
# 启用调试日志
LOG_LEVEL=DEBUG
# 检查环境变量
python -c "from llm_chats.config import get_config; print(get_config())"本项目采用 Apache License 2.0 许可证。