拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何快速将ChatGLM2-6B部署为API服务:FastAPI与OpenAI兼容流式接口双方案完整指南

如何快速将ChatGLM2-6B部署为API服务FastAPI与OpenAI兼容流式接口双方案完整指南【免费下载链接】ChatGLM2-6B-codeChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型项目地址: https://gitcode.com/zai-org/ChatGLM2-6B-codeChatGLM2-6B 是智谱AI开源的中英双语对话大模型本教程带你用不到 10 分钟把 ChatGLM2-6B 部署为 API 服务完整对比官方提供的两大方案FastAPI 自定义接口与OpenAI 兼容流式接口。无论你是想给内部系统接入大模型能力还是给 ChatGPT 类前端换后端都能照着一键上手。一、先看懂两大 API 部署方案怎么选 仓库内置了两种 API 服务实现一张表看懂区别对比项方案一FastAPI 自定义接口方案二OpenAI 兼容接口服务文件api.pyopenai_api.py请求格式自定义 JSONprompt / history标准/v1/chat/completions流式输出❌ 需等完整回复✅ SSE 逐字流式在线文档无自动提供/docs页面适用场景快速验证、简单后端对接 ChatGPT 生态前端、Agent 框架一句话建议只是想快速调通模型用方案一要接 LangChain、ChatGPT-Next-Web 这类现成生态直接上方案二。二、准备工作3 步搭好运行环境第 1 步获取代码仓库git clone https://gitcode.com/zai-org/ChatGLM2-6B-code cd ChatGLM2-6B-code第 2 步安装依赖pip install -r requirements.txt pip install fastapi uvicorn其中 requirements.txt 已锁定关键版本transformers4.30.2、torch2.02.0 才能启用高效 Attention显存占用更低。第 3 步先体验再部署部署前建议先用 cli_demo.py 验证模型能正常对话python cli_demo.py显存参考FP16/BF16 需约13 GBINT8 约8 GBINT4 量化约5 GB。显存不够时把模型地址THUDM/chatglm2-6b换成THUDM/chatglm2-6b-int4即可流畅度损失很小。三、方案一FastAPI 自定义 API最快上手运行 api.py 即可启动服务python api.py默认监听0.0.0.0:8000。核心逻辑在 api.py#L21-L49接收prompt、history等参数调用model.chat生成回复返回含response、history、status、time的 JSON。支持的请求参数参数说明默认值prompt本次提问内容必填-history对话历史[[问题, 回答], ...][]max_length回复最大长度2048top_p核采样阈值0.7temperature随机温度0.95用 curl 发起第一次调用curl -X POST http://127.0.0.1:8000 \ -H Content-Type: application/json \ -d {prompt: 你好, history: []}返回结果示例{ response: 你好我是人工智能助手 ChatGLM2-6B很高兴见到你……, history: [[你好, 你好我是人工智能助手……]], status: 200, time: 2023-03-23 21:38:40 }接口极简一分钟跑通代价是不支持流式长回复需要等生成完才返回。四、方案二OpenAI 兼容流式 API生产首选运行 openai_api.pypython openai_api.py浏览器访问http://localhost:8000/docs即可查看自动生成的接口文档。它提供两个核心端点GET /v1/models获取模型列表POST /v1/chat/completions对话补全接口openai_api.py#L97-L126请求体与 OpenAI 格式完全一致支持system/user/assistant角色和多轮历史。当streamtrue时openai_api.py#L129-L165 中的predict函数会通过model.stream_chat增量产出文本以 SSEtext/event-stream形式逐块推送最后以[DONE]结束——用户端可以看着答案一个字一个字蹦出来体验与 ChatGPT 一致。接入方式直接复用 OpenAI SDK只需改一行地址import openai openai.api_base http://localhost:8000/v1 openai.api_key none for chunk in openai.ChatCompletion.create( modelchatglm2-6b, messages[{role: user, content: 你好}], streamTrue ): if hasattr(chunk.choices[0].delta, content): print(chunk.choices[0].delta.content, end, flushTrue)这意味着任意基于 ChatGPT API 的前端应用如 ChatGPT-Next-Web、各类 AI 助手只要把后端地址指向你的服务就能秒变 ChatGLM2-6B 专属助手五、部署常见问题速查 ✅问题解决办法显存不足 13 GB换 INT4 量化模型chatglm2-6b-int4多卡切分用 utils.py 的load_model_on_gpus按num_gpus2均匀分配到多张卡没有 GPUCPU 推理加.float()需约 32 GB 内存量化模型可进一步降低内存模型下载慢先把模型下载到本地再把代码中的THUDM/chatglm2-6b替换为本地文件夹路径端口 8000 被占用修改 api.py#L60 或 openai_api.py#L177 中uvicorn.run的port想开多 worker 提升吞吐不建议两个服务均为workers1模型只加载在单进程中多 worker 会重复占用显存六、写在最后两条命令就能把开源双语大模型变成可用的后端服务快速验证→python api.pycurl 直调简单粗暴生态集成→python openai_api.pyOpenAI 格式 SSE 流式即插即用。部署完成后无论是构建智能客服、知识库问答还是给现有 ChatGPT 前端换上国产大脑ChatGLM2-6B 的 API 服务都能稳稳接住。快去试试吧【免费下载链接】ChatGLM2-6B-codeChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型项目地址: https://gitcode.com/zai-org/ChatGLM2-6B-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门