# model_chat_framework **Repository Path**: zqystudy/model_chat_framework ## Basic Information - **Project Name**: model_chat_framework - **Description**: 这是一个基于Flask的Web应用,提供了与多种大语言模型进行多轮对话的统一界面。系统支持实时流式响应,并能展示模型的思考过程和最终答案。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-11 - **Last Updated**: 2025-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ModelChatFramework - 多模型对话系统 这是一个基于Flask的Web应用,提供了与多种大语言模型进行多轮对话的统一界面。系统支持实时流式响应,并能展示模型的思考过程和最终答案。 ## 功能特点 - 支持多种大语言模型(蓝源、百炼、豆包、Kimi等) - 实时流式对话响应 - 展示模型思考过程(支持选择性开启) - Markdown格式的回答展示 - 代码高亮支持 - 多轮对话历史记录 - 响应式设计,支持移动端 ## 安装步骤 1. 确保已安装Python 3.7+ 2. 克隆项目并进入项目目录: ```bash git clone [项目地址] cd modelChatFramework ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 配置环境变量: ```bash # Windows set DASHSCOPE_API_KEY=your_api_key set BAILIAN_API_KEY=your_api_key set DOUBO_API_KEY=your_api_key set KIMI_API_KEY=your_api_key # Linux/Mac export DASHSCOPE_API_KEY=your_api_key export BAILIAN_API_KEY=your_api_key export DOUBO_API_KEY=your_api_key export KIMI_API_KEY=your_api_key ``` ## 运行应用 1. 在项目根目录下运行: ```bash python app.py ``` 2. 打开浏览器访问: ``` http://localhost:5000 ``` ## 使用说明 1. 在下拉菜单中选择要使用的模型(蓝源、百炼、豆包或Kimi) 2. 在输入框中输入您的问题 3. 点击发送按钮或按Enter键发送消息 4. 系统会实时显示模型的思考过程(如果该模型支持) 5. 最终答案会以格式化的方式展示 6. 支持多轮对话,历史记录会保持在当前会话中 ## 项目结构 ``` modelChatFramework/ ├── app.py # Flask应用主文件 ├── static/ │ ├── styles.css # 样式文件 ├── templates/ │ └── index.html # 主页面模板 ├── logs/ # 日志文件夹 ├── requirements.txt # 项目依赖 └── README.md # 项目说明文档 ``` ## 集成新模型 本框架设计为可扩展的,支持集成新的大语言模型。要添加一个新模型,请按照以下步骤操作: 1. **在环境变量中添加新模型的API密钥** ```bash # Windows set NEW_MODEL_API_KEY=your_api_key # Linux/Mac export NEW_MODEL_API_KEY=your_api_key ``` 2. **在app.py的初始化部分添加新模型** 找到以下代码段: ```python # 初始化模型 - 尝试添加预设的几种模型 if os.environ.get("DASHSCOPE_API_KEY"): logging.info("找到蓝源模型API密钥,尝试添加蓝源模型") # 添加蓝源模型... ``` 添加您的模型: ```python # 添加新模型 if os.environ.get("NEW_MODEL_API_KEY"): logging.info("找到新模型API密钥,尝试添加新模型") success = chat_manager.add_model( "新模型名称", "https://api.example.com/v1", # API基础URL os.environ.get("NEW_MODEL_API_KEY"), "model-id-or-name" # 模型ID或名称 ) if success: logging.info("新模型添加成功") ``` 3. **处理模型特定的请求格式** 如果新模型需要特殊的消息格式处理,在`/chat`路由中添加相应的处理逻辑: ```python # 根据不同模型处理消息格式 if chat_manager.current_model == "新模型名称": # 新模型需要特殊的消息格式 formatted_messages = [] for msg in messages: # 按照新模型的要求转换消息格式 formatted_messages.append({ "role": msg["role"], "content": msg["content"] # 其他需要的字段... }) # 使用转换后的消息 messages = formatted_messages ``` 4. **可选:处理模型特定的功能** 例如,如果新模型不支持深度思考功能,可以更新前端代码相应地禁用该选项: ```javascript // 在index.html的switchModel函数中 const modelName = data.current_model.name.toLowerCase(); if (modelName.includes('新模型名称')) { deepThinkingContainer.style.display = 'none'; } else if (modelName.includes('百炼') || modelName.includes('蓝源')) { deepThinkingContainer.style.display = 'inline-flex'; } else { deepThinkingContainer.style.display = 'none'; } ``` ## 技术栈 - 后端:Flask + OpenAI兼容API - 前端:HTML5 + CSS3 + JavaScript - 依赖库: - Flask - OpenAI - python-dotenv(可选,用于环境变量管理) ## 注意事项 1. 确保有稳定的网络连接 2. API密钥请妥善保管,不要提交到代码仓库 3. 如果遇到连接问题,请检查网络代理设置 4. 建议使用现代浏览器访问(Chrome、Firefox、Edge等) 5. 不同模型有不同的功能支持和限制 ## 常见问题 1. **Q: API密钥未配置错误** A: 检查环境变量是否正确设置,重启应用以加载新的环境变量 2. **Q: 模型切换后没有响应** A: 检查网络连接和模型API是否可访问 3. **Q: 思考过程不显示** A: 部分模型(如Kimi、豆包)不支持显示思考过程,这是正常现象 4. **Q: 如何调整流式响应速度** A: 目前系统使用模型默认的流式速度,可以通过修改app.py中的相关代码调整 ## 贡献指南 欢迎提交Issue和Pull Request来帮助改进项目。在提交PR之前,请确保: 1. 代码符合项目的编码规范 2. 添加了必要的测试 3. 更新了相关文档 ## 许可证 [MIT许可证] - 请查看LICENSE文件了解详情