完全指南:多 LLM 统一 Web 界面、Agent 助理、文件知识库与本地模型部署实战)
人工智能大模型AI 应用AI AgentRAG本地部署微调后端【免费下载链接】ChuanhuChatGPTGUI for ChatGPT API and many LLMs. Supports agents, file-based QA, GPT finetuning and query with web search. All with a neat UI.项目地址https://gitcode.com/gh_mirrors/ch/ChuanhuChatGPT点击查看免费下载本文以开源仓库 ChuanhuChatGPT 的俄语版 README 为核心系统梳理 Chuanhu Chat 这一基于 Gradio 的多 LLM Web 图形界面的核心能力从支持的 API 模型与本地模型全家桶、Agent 助理与联网搜索、基于文件的问答知识库到 GPT-3.5 微调、自定义模型、config.json 配置与服务器部署排障。读完本文你将掌握从零克隆启动到多用户部署、再到深度配置与问题排查的完整实战方案。项目概览一个界面接入全部主流 LLMChuanhu Chat川虎 Chat是一个基于 Gradio它通过gr.Blocks(themesmall_and_beautiful_theme)装配整个界面并借助 modules/overwrites.py 中的patch_gradio()对 Gradio 底层行为进行扩展如毛玻璃效果、消息按钮等自定义 UI 组件。5.0 版核心更新亮点根据文档5.0 版本带来了一次界面与能力的全面升级全新 UI彻底重构的图形界面“精致得不像 Gradio”包含非线性动画与毛玻璃frosted glass效果移动端适配支持全面屏手机的挖孔/刘海层级结构更清晰历史记录重构对话历史移至左侧面板支持正则搜索、删除与重命名LLM 自动命名可让大模型理解对话内容并自动为历史记录命名需在设置或配置文件中开启PWA 支持可将 Chuanhu Chat 作为 PWA 应用安装获得接近原生的体验支持 Chrome / Edge / Safari 等浏览器多平台图标图标适配 Windows / macOS / Linux / iOS / AndroidGPT-3.5 微调内置微调Fine-tune流程。此外文档还提到新版本已支持 GPT-5 系列GPT-5、GPT-5-mini、GPT-5-nano具备 400k 上下文与最多 128k 输出 token 的能力。支持的模型矩阵API 调用模型模型备注ChatGPTGPT-5、GPT-4、GPT-4o、o1支持微调 gpt-3.5Azure OpenAI—Google Gemini Pro—讯飞星火认知大模型—Inspur Yuan 1.0—MiniMax—XMChat不支持流式传输Midjourney不支持流式传输Claude—DeepSeek通过deepseek_api_key接入本地部署模型模型备注ChatGLM含 ChatGLM2 / ChatGLM3—LLaMA支持 LoRA 模型StableLM—MOSS—通义千问Qwen—这些模型在仓库中均有对应的客户端实现例如 modules/models/ChatGLM.py、modules/models/LLaMA.py、modules/models/StableLM.py、modules/models/MOSS.py、modules/models/Qwen.py。模型的统一装配入口位于 modules/models/models.py 的get_model()函数它根据ModelType.get_type(model_name)判断模型类型再分别实例化对应的客户端类例如 OpenAI 系列含 Vision对应OpenAIVisionClientDeepSeek 同样复用OpenAIVisionClientLLaMA 则支持在启动时选择 LoRA 路径。从源码结构看这种“按类型分发”的架构让新增模型接入的成本保持在较低水平。核心功能详解 川虎助理Chuanhu Agent类 AutoGPT 全自动解题川虎助理类似 AutoGPT能够把一个大问题拆解为一系列步骤并自动调用工具完成。仓库中对应实现为 modules/models/ChuanhuAgent.py从源码可以看出其内置了google_search_simple谷歌搜索、fetch_url_content抓取网页内容、summary_url总结网页、ask_url针对网页提问、query_index查询知识库索引等工具get_model()在加载该模型时会把启用的工具列表输出到日志。在 config_example.json 中川虎助理 Pro 模式还依赖以下密钥GOOGLE_CSE_ID谷歌自定义搜索引擎 IDGOOGLE_API_KEY谷歌 API KeyWOLFRAM_ALPHA_APPIDWolfram Alpha 计算引擎 API KeySERPAPI_API_KEYSerpAPI 搜索 API Key。 在线搜索给 LLM 接上网络ChatGPT 等模型的训练数据存在时效限制Chuanhu Chat 的“在线搜索”功能让模型在回答时实时检索互联网。从 modules/base_model.py 的predict()与prepare_inputs()签名use_websearch参数可以确认联网检索是作为模型预测流程的一个输入开关实现的界面中对应的开关为“在线搜索”。 知识库基于文件的问答“知识库”功能允许上传文件如 PDF、Excel 等让 LLM 根据文件内容回答问题实现“量子速读”。其底层索引构建逻辑位于 modules/index_func.py 的construct_index()参数包括max_input_size、num_outputs、max_chunk_overlap、chunk_size_limit、embedding_limit等默认可从缓存加载索引load_from_cache_if_possibleTrue。PDF 的预处理双栏识别、公式 OCR则在 modules/pdf_func.py 的parse_pdf()中实现并由 modules/config.py 的advance_docs配置控制详见下文配置章节。上传文件、总结索引的入口对应 modules/utils.py 中的handle_file_upload()与handle_summarize_index()。️ 本地部署 LLM一键拥有自己的大模型Chuanhu Chat 支持一键部署本地大语言模型ChatGLM、LLaMA、StableLM、MOSS、Qwen 等从 modules/models/models.py 的get_model()可以看到当选择非 OpenAI 类型模型时代码会强制将config.local_embedding置为True即本地模型场景下索引构建也走本地 embedding。LLaMA 场景还支持加载 LoRA 微调权重界面会弹出 LoRA 选择器。 GPT-3.5 微调Fine-tune文档明确支持对 gpt-3.5 进行微调对应实现位于 modules/train_func.pyexcel_to_jsonl()将 Excel 数据工作表包含“提问 / 答案”可选“系统”列转换为 OpenAI 微调所需的 JSONL 格式jsonl_save_to_disk()将 JSONL 保存到本地files/目录estimate_cost()按 token 数估算每轮epoch的微调费用当前实现按每 1000 token 约 0.008 美元估算upload_to_openai()把数据集上传到 OpenAIstart_training()以指定的后缀与轮数启动微调任务get_training_status()/cancel_all_jobs()查询训练状态与取消任务。微调完成后模型会自动被加入可用模型列表add_to_models()从而直接在对话界面中使用。 自定义模型文档提供了“自定义模型”能力允许用户灵活对接自定义模型例如本地推理服务。其配置在 config_example.json 中通过extra_model_metadata实现可以为一个新模型名指定model_name、description、model_type、multimodal、api_host、token_limit、max_generation等元数据同时可以用available_models覆盖默认模型列表、用extra_models追加模型名称。这些元数据在 modules/config.py 启动时会被合并进presets.MODEL_METADATA。实用使用技巧 System Prompt 角色扮演通过 System Prompt系统提示设定前提条件可高效进行角色扮演Chuanhu Chat 预置了 Prompt 模板集合点击“加载 Prompt 模板”后先选择模板集合再在下拉列表中选择所需模板。模板加载实现在 modules/utils.py 的load_template()/get_template_names()/get_template_content()中支持 CSV 与 JSON 两种格式。 日常对话回答不满意时可使用“重新生成”按钮重试或直接“删除这一轮对话”输入框支持换行按ShiftEnter在输入框按↑/↓方向键可在发送历史中快速切换每次新建对话太麻烦可使用“单轮对话”功能回答气泡旁的按钮不仅支持“一键复制”还能“查看 Markdown 原文”可指定回答语言让模型固定以某种语言作答。 对话历史管理对话历史自动保存无需担心丢失多用户历史记录隔离除本人外不可见对应 modules/config.py 中的users用户列表与hide_history_when_not_logged_in配置支持重命名历史记录支持 LLM 自动为历史记录命名配置项chat_name_method_index2表示使用模型自动总结支持正则搜索历史记录实现位于 modules/utils.py 的filter_history()内部使用re.search(keyword, name, timeout0.01)进行匹配非正则语法时会回退为普通匹配。️ 小而美的界面体验自研 Small-and-Beautiful 主题自动亮/暗色切换完美渲染 LaTeX / 表格 / 代码块支持语法高亮非线性动画与毛玻璃效果多平台Windows / macOS / Linux / iOS / Android适配支持安装为 PWA 应用。 极客级技术能力支持 GPT-3.5 微调大量 LLM 生成参数可调temperature、top_p、max_tokens、presence_penalty、frequency_penalty 等对应 modules/base_model.py 中一系列set_*方法支持更换 API-Hostchange_api_host()见 modules/utils.py支持自定义代理change_proxy()与 modules/config.py 的retrieve_proxy()上下文管理器会在请求期间临时设置HTTP_PROXY/HTTPS_PROXY环境变量并在结束后恢复支持多 API-Key 负载均衡multi_api_key配置配合api_key_list在 modules/config.py 中启动时载入队列由 modules/shared.py 的set_api_key_queue()与switching_api_key()实现轮换。快速上手从克隆到第一次对话在终端执行以下命令完成安装git clone https://github.com/GaiZhenbiao/ChuanhuChatGPT.git cd ChuanhuChatGPT pip install -r requirements.txt说明仓库内的 run_Linux.sh、run_Windows.bat、run_macOS.command 分别提供了三个平台的一键启动脚本也可直接参考。若需安装更完整的高级依赖可查看 requirements_advanced.txt。然后复制一份 config_example.json 并重命名为config.json在文件中填入你的 API-Key 及其他设置python ChuanhuChatbot.py启动后浏览器窗口会自动打开也可通过配置控制此时即可与 ChatGPT 或其他模型开始对话。图形界面兜底填 Key文档与配置均提示即使config.json中未填写openai_api_key也可以在图形界面中直接填入 API Key配置项hide_my_key设为true可隐藏界面中的 Key 输入框。modules/config.py 中也会将config.json的 Key 写入OPENAI_API_KEY环境变量供各客户端统一读取。config.json 配置详解config_example.json 是唯一需要关注的配置文件支持注释使用 commentjson 解析。以下是按类别整理的核心参数API 密钥类配置项说明openai_api_keyOpenAI API Key一般必填空缺时需在图形界面中填入deepseek_api_keyDeepSeek API Key用于 DeepSeek Chat / Reasoner(R1)google_genai_api_key/google_genai_api_hostGoogle Gemini API Key 与 Host默认generativelanguage.googleapis.comxmchat_api_keyXMChat API Keyminimax_api_key/minimax_group_idMiniMax API Key 与 Group IDmidjourney_proxy_api_base/midjourney_proxy_api_secret/midjourney_discord_proxy_url/midjourney_temp_folderMidjourney 代理相关配置midjourney_temp_folder为空则关闭自动下载切图直接显示四宫格spark_appid/spark_api_key/spark_api_secret讯飞星火大模型三要素claude_api_secretClaude API Secreternie_api_key/ernie_secret_key文心一言 API Key 与 Secret Keyollama_hostOllama Hosthuggingface_auth_tokenHugging Face API Token访问受限模型groq_api_keyGroq API KeyAzure OpenAI配置项说明openai_api_typeazure或openai默认openaiazure_openai_api_key/azure_openai_api_base_url/azure_openai_api_versionAzure 密钥、Base URL 与 API 版本默认2023-05-15azure_deployment_name/azure_embedding_deployment_nameChat 模型与 Embedding 模型的 Deployment 名称azure_embedding_model_name默认text-embedding-ada-002基础配置配置项说明language界面语言auto、zh_CN、en_US、ja_JP、ko_KR、sv_SE、ru_RU、vi_VNusers用户列表如[[用户名1,密码1],...]启用后开启登录认证admin_list管理员列表仅管理员可重启服务local_embedding是否在本地构建索引false时使用在线 embeddinghide_history_when_not_logged_in未登录时是否不展示对话历史check_update是否启用更新检查default_model默认模型默认GPT3.5 Turbo源码中默认回退为GPT-4o-minichat_name_method_index对话命名方式0日期时间、1第一条提问、2模型自动总结bot_avatar/user_avatar机器人/用户头像可为本地或网络图片链接或none不显示API 用量查询配置项说明show_api_billing是否显示 OpenAI API 用量需填写sensitive_idsensitive_idOpenAI 账户的 Sensitive IDusage_limit当月限额美元默认120用于计算百分比legacy_api_usage是否使用旧版用量查询接口OpenAI 已关闭但第三方 API 可能仍支持文档处理与显示配置项说明latex_optionLaTeX 渲染策略default/strict/all/disabledadvance_docs.pdf.two_column是否按双栏 PDF 解析advance_docs.pdf.formula_ocr是否用 OCR 识别 PDF 中的公式注意当前仓库的 modules/config.py 末尾有一段注释说明因 Gradio 4.26 兼容问题LaTeX 渲染被临时禁用user_latex_option disabled、latex_delimiters_set []该配置在后续版本中可能会恢复。高级配置multi_api_key: false, // 多 API Key 轮换使用 hide_my_key: false, // 隐藏界面中的 API Key 输入框 available_models: [...], // 覆盖默认可用模型列表 extra_models: [...], // 追加模型名称 extra_model_metadata: {...}, // 自定义模型元数据model_name/description/model_type/api_host/token_limit 等 api_key_list: [...], // 多 Key 负载均衡的 Key 列表 rename_model: GPT-4o-mini, // 指定默认自动命名模型 openai_api_base: https://api.openai.com, // 自定义 OpenAI API Base https_proxy: http://127.0.0.1:1079, // 自定义 HTTPS 代理 http_proxy: http://127.0.0.1:1079, // 自定义 HTTP 代理 server_name: 0.0.0.0, // 绑定地址 server_port: 7860, // 服务端口 share: false, // 是否生成 Gradio 公共链接 autobrowser: false // 是否自动打开浏览器环境变量与旧文件迁移从 modules/config.py 的源码可以看出以下细节大部分密钥同时支持环境变量覆盖如OPENAI_API_KEY、SENSITIVE_ID、GOOGLE_GENAI_API_KEY等环境变量优先于配置文件若目录中存在旧的api_key.txt启动时会自动迁移其中的 Key 到config.json并将原文件重命名为api_key(deprecated).txt若存在旧的auth.json会自动迁移用户认证信息到config.json的users字段server_name与server_port在 Docker 模式下默认分别为0.0.0.0与7860且源码断言server_port必须是int类型。服务器部署与公共访问部署到服务器在config.json中设置server_name: 0.0.0.0与server_port: 你的端口号即可通过局域网/公网 IP 访问获取公共链接在config.json中设置share: true程序运行期间会生成一个临时公共链接注意程序必须保持运行才能通过公共链接访问Hugging Face 部署文档建议在 Space 页面右上角“复制 SpaceDuplicate”后使用响应速度会更好Docker 部署仓库提供了 Dockerfile容器内运行时会自动采用0.0.0.0:7860的监听方式。疑难杂症排查指南遇到问题时应先尝试以下两步“常规操作”手动拉取本项目的最新更改——点击网页上的Download ZIP下载最新代码并解压覆盖或执行git pull https://github.com/GaiZhenbiao/ChuanhuChatGPT.git main -f重新安装依赖项目可能引入了新的依赖pip install -r requirements.txt文档指出多数问题通过上述两步即可解决。若问题依旧建议仔细查阅项目 wiki 中的常见问题FAQ页面其中列出了几乎所有可能的问题与解决措施包括代理配置方法。进一步了解与参与本地化仓库的 locale 目录存放了zh_CN、en_US、ja_JP、ko_KR、ru_RU、sv_SE、vi_VN等多语言翻译文件界面语言切换由 modules/webui_locale.py 实现贡献翻译可参考其中的 extract_locale.py界面自定义前端资源集中在 web_assets 目录包括 ChuanhuChat.css、ChuanhuChat.js 及各 HTML 组件模板modules/webui.py 负责将这些静态资源注入 Gradio 页面版本更新信息可查看 readme/README_en.md、README.md 及仓库 wiki 的更新日志许可证与引用方式项目采用开源许可证见 LICENSE引用规范可参考 CITATION.cff。结语从多模型统一接入、川虎助理与联网搜索到文件知识库、本地 LLM 一键部署和 GPT-3.5 微调Chuanhu Chat 将 ChatGPT 生态与开源大模型生态整合在一个精致的 Web 界面中。本文所涉及的功能点均可在仓库源码modules 目录下的各模型客户端、modules/utils.py、modules/index_func.py、modules/train_func.py与配置文件 config_example.json 中找到对应实现读者可结合源码进一步深入定制属于自己的多模型对话工作台。赞分享人工智能大模型AI 应用AI AgentRAG本地部署微调后端【免费下载链接】ChuanhuChatGPTGUI for ChatGPT API and many LLMs. Supports agents, file-based QA, GPT finetuning and query with web search. All with a neat UI.项目地址https://gitcode.com/gh_mirrors/ch/ChuanhuChatGPT点击查看免费下载相关推荐川虎Chat为多种LLM提供轻快好用的Web图形界面川虎Chat为多种LLM提供轻快好用的Web图形界面 项目介绍 川虎ChatChuanhu Chat 是一个开源项目旨在为ChatGPT等多种大型语言模人工智能大模型AI 应用AI AgentRAG本地部署微调后端使用 Streamlit 部署 BlueLM-7B-Chat WebDemoself-llm 中文大模型对话界面的完整实战指南使用 Streamlit 部署 BlueLM 7B Chat WebDemoself llm 中文大模型对话界面的完整实战指南 本篇指南以 models/Bl教程大模型本地部署微调DeepSeek-7B-chat 接入 LangChain基于本地大模型自定义 LLM 类与 RAG 知识库实战DeepSeek 7B chat 接入 LangChain基于本地大模型自定义 LLM 类与 RAG 知识库实战 导读 本文基于《开源大模型食用指南》sel教程大模型本地部署微调上一篇Renovate 的 kubernetes-api 数据源基于静态数据驱动 Kubernetes 与 GitOps 资源版本升级下一篇Renovate 配置总览从 Default 到 Repository 的完整配置层级、加载顺序与合并机制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考