如何构建大模型聊天服务:深度剖析aliendao的aiitchat.py源码(ChatGLM-6b+Qwen-7b双模型路由)

发布时间:2026/10/23 11:22:19

如何构建大模型聊天服务:深度剖析aliendao的aiitchat.py源码(ChatGLM-6b+Qwen-7b双模型路由) 如何构建大模型聊天服务深度剖析aliendao的aiitchat.py源码ChatGLM-6bQwen-7b双模型路由【免费下载链接】aliendaohuggingface mirror download项目地址: https://gitcode.com/gh_mirrors/al/aliendaoaliendao 是一个开源的大模型聊天服务与 Hugging Face 模型镜像下载工具。本文带你从零理解如何用 Python 搭建自己的大模型聊天服务并深度剖析 aiitchat.py 中ChatGLM-6b 与 Qwen-7b 双模型路由的核心实现新手也能看懂。 项目概览aliendao 能做什么aliendao 由两部分组成正好覆盖「模型获取 模型服务」两大环节模块作用关键文件模型下载从镜像下载 Hugging Face 模型/数据集支持断点续传model_download.py聊天服务调用国产大模型提供 Web 聊天界面aiitchat/aiitchat.py先下载模型再部署服务这是构建大模型聊天服务最典型的流程# 带 --mirror 参数优先从镜像下载解决下载慢的问题 python model_download.py --repo_id Qwen/Qwen-7B 模型下载的详细用法见项目说明README.md 快速上手3 步跑起大模型聊天服务第 1 步创建 Python 虚拟环境并安装依赖conda create -n aliendao python3.10 -y conda activate aliendao pip install -r requirements.txt依赖清单很轻量核心就是 requirements.txt 里的 aiohttp 与 requests 等。第 2 步启动聊天服务后端nohup python -u aiitchat.py aiitchat.log 21 tail -f aiitchat.log第 3 步启动 React 聊天前台cd aiitchat/chat npm start三步完成你就拥有了一个支持 ChatGLM-6b 和通义千问 Qwen-7b 双模型切换的 Web 聊天服务。 源码剖析aiitchat.py 如何处理一次请求打开 aiitchat/aiitchat.py整个后端不到 100 行结构非常清晰敏感词过滤 → 模型路由 → 结果包装 → 返回 JSON。1️⃣ 请求入口一个 API 搞定所有对话服务基于 aiohttp 框架只注册了一个 POST 路由/api/stream/v2app.router.add_post(/api/stream/v2, stream_v2)前端每次提问都会带上token、context包含 prompt 和历史对话与modelname三个参数服务统一在 stream_v2 函数 中处理。2️⃣ 敏感词过滤对话前的第一道关卡模型回答之前会先经过filter_context函数检查。敏感词从本地的filter.txt文件按行加载并缓存到内存只读一次文件命中任一敏感词就直接返回 403 提示不再消耗宝贵的 GPU 算力if filter_context(prompt): return web.Response( content_typeapplication/json, textjson.dumps({response: 请更换问题重新输入, status: 403, stop: True}), )这是一个很实用的工程技巧把校验放在昂贵操作之前。3️⃣ 核心路由一行 if 切换两大国产大模型这是整个文件的灵魂所在aiitchat.py 第 64-67 行if modelname Qwen-7b: result getAnswerFromQwen7b_v2(context) else: result getAnswerFromChatGLM6b_v2(context, validtoken)路由规则一目了然Qwen-7b通义千问→ 调用 Qwen_7b.py 中的getAnswerFromQwen7b_v2固定转发到千问推理服务其他默认 ChatGLM-6b→ 调用 ChatGLM_6b.py 中的getAnswerFromChatGLM6b_v2根据 token 是否有效二次分流到不同的推理节点这种「一个入口 按模型名分发」的路由设计就是多模型服务最简实现范式你完全可以照搬。4️⃣ Token 验证与算力不足兜底checkToken 函数 负责校验用户 token验证结果会传给 ChatGLM 模块用于选择不同算力的推理地址两个模型模块都有统一的错误兜底当推理服务返回非 200 时不会让服务崩溃而是返回友好提示return {response: 算力不足请稍候再试[stop], history: [], status: 200, time: now}响应末尾的[stop]标记用于告知前端「回答已生成完毕」前端据此停止轮询无效 token 的回答会追加[无效token]标记这套「兜底 结束标记」机制让聊天服务在高负载下依然稳定。 前端配合React 聊天页如何轮询前台是基于 ChatUI 的 React 应用源码在 aiitchat/chat/src/App.js。它的设计很值得学习双模型一键切换快捷回复按钮「ChatGLM2 / 通义千问」只需改变全局变量modelname的取值请求就自动路由到对应模型轮询式生成onGenCode函数通过递归轮询后端接口直到stop标记返回并用进度条展示生成状态多轮对话只保留最近 5 条历史对话随请求携带兼顾上下文记忆与请求体积体验细节回答支持 Markdown 渲染、生成中禁止重复提问、提供历史记录面板 核心文件清单文件说明aiitchat/aiitchat.py聊天服务后端入口路由、过滤、鉴权aiitchat/ChatGLM_6b.pyChatGLM-6b 模型调用模块aiitchat/Qwen_7b.py通义千问 Qwen-7b 模型调用模块aiitchat/chat/src/App.jsReact 聊天前台含模型切换与轮询逻辑aiitchat/chat/README.md前台部署说明model_download.py模型镜像下载脚本requirements.txtPython 依赖清单✅ 总结大模型聊天服务的最小构建范式通读 aiitchat.py 源码构建一个可用的大模型聊天服务其实只需要 4 个关键要素轻量 API 网关一个 aiohttp POST 接口承接所有对话请求模型路由层按modelname将请求分发到不同大模型的推理服务防护机制敏感词过滤 token 鉴权 算力不足兜底前端轮询渲染React 页面轮询结果直到收到[stop]结束标记配合 aliendao 自带的模型镜像下载能力你甚至不需要复杂的基础设施就能快速拥有自己的国产大模型聊天服务。动手试试吧【免费下载链接】aliendaohuggingface mirror download项目地址: https://gitcode.com/gh_mirrors/al/aliendao创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/22 3:44:59

Win_ISO_Patching_Scripts 三步 ISO 补丁集成,生成最新安装镜像

Win_ISO_Patching_Scripts 三步 ISO 补丁集成,生成最新安装镜像 【免费下载链接】Win_ISO_Patching_Scripts Win_ISO_Patching_Scripts 项目地址: https://gitcode.com/gh_mirrors/wi/Win_ISO_Patching_Scripts 新装的 Windows 要逐个下载安装上百个累积更新…

2026/10/24 10:13:58

吸烟肺组织转录组的因果推断:DAG、倾向评分与FDR敏感性分析

简介:SmokingGeneExpression 面向生物信息学、统计分析与因果推断学习者,围绕吸烟对健康肺组织基因表达的短期因果效应,提供一套可复现的 R 语言项目材料。压缩包共 45 个文件,约 3.1MB,包含 19 个 png 结果图、13 个 …

2026/10/24 10:13:58

AI代理与工作流的本质区别:从Anthropic指南看工程落地范式

简介:本资源是Anthropic官方发布的《构建高效的 Agents 指南》中文全译版PDF,面向AI工程师、LLM应用开发者及Agent系统架构师,聚焦解决实际工作流中人力消耗大、重复操作多、自动化落地难等核心痛点。报告颠覆“越复杂越强大”的惯性认知&…

2026/10/24 10:13:58

NetSuite知识会汇编:管理员与顾问的实战避坑指南

简介:《NetSuite知识会汇编-管理员篇&顾问篇2023》面向NetSuite系统管理员与实施顾问,精选近两年知识会中涉及开发、权限、系统管理等较深内容的19篇文章,适合具备一定基础、希望提升SuiteCloud客制与运维能力的专业用户。资源包内含1个P…

2026/10/24 10:13:58

Python OOP实战:从类设计到数据建模的工程决策

简介:《Python Object-Oriented Programming》第四版是Packt Publishing于2021年出版的英文原版技术书,由Steven F. Lott与Dusty Phillips合著。全书聚焦于Python面向对象编程,适合希望从基础迈向工程化的中高级程序员以及教学培训场景。内容…

2026/10/24 10:08:58

电子政务OA系统建设方案:国产化协同办公环境部署与验证指南

简介:这份电子政务OA系统建设方案文档面向政府信息化项目负责人、系统架构师及参与政务OA建设的实施人员,用于指导办公自动化系统的规划、设计与落地。方案围绕总则、国产化适配改造及升级、基础支撑平台、应用系统功能特点、基本功能、数据迁移方案等模…

2026/10/23 22:56:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/24 0:02:40

MATLAB缩进快捷键与批量格式化实战指南

1. 被自动缩进折磨的那些年如果你写过MATLAB代码,大概率经历过这种场景:从某个文档、网页或者聊天记录里复制了一段代码,粘贴进编辑器之后,每一行前面都带着莫名其妙的空格,有的行首是四个空格,有的是一个T…

2026/10/24 0:02:40

用Poco实现Qt风格信号与槽的跨平台C++方案

简介:本资源是一份面向C中级开发者的技术实践工程,聚焦于在非Qt框架环境下模拟实现Qt核心通信机制——信号与槽,借助Poco网络库的事件系统完成解耦式对象通信。适用于需在跨平台C项目中引入松耦合回调机制、但受限于无法集成Qt依赖的开发场景…

2026/10/24 0:02:40

ESXi裸机虚拟化安装指南:从硬件兼容到虚拟机部署

1. 为什么还要折腾ESXi:从一台闲置机器说起手里攒了几台淘汰下来的迷你主机,配置不算差,i5加16G内存,扔了可惜,装个桌面系统又觉得浪费。这种场景下,ESXi就成了一个绕不开的选择。它是一套裸机虚拟化平台&a…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑