智谱清言API怎么实现流式输出?

尼克

尼克

2026-08-04

830人浏览

原创

要在python中实现智谱清言api实时返回字词,必须启用stream=true并正确处理chatcompletionchunk流式响应,主流模型如glm-4-flash支持流式,但autoglm系列不支持;需用zhipuai sdk最新版或requests手动请求,逐块提取delta.content并监控finish_reason判断结束。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

智谱清言api怎么实现流式输出?

要在Python中让智谱清言API实时返回每个字词,避免等待整段响应才显示,必须启用流式传输并正确处理分块数据流。

确认模型支持stream参数

GLM-4-Flash、GLM-5.2、GLM-5V-Turbo 等主流模型均支持 stream=True 参数。但 AutoGLM 系列(如 auto-glm-05)的 Open-AutoGLM 接口不接受 stream 字段,它默认以沉思模式一次性返回完整结果。

调用前务必核对文档:https://docs.bigmodel.cn/cn/guide/start/quick-start 中明确列出支持流式的模型列表。

使用zhipuai SDK启用流式输出

第一步:安装最新版SDK(旧版本可能不兼容流式返回格式)

pip install zhipuai --upgrade

第二步:初始化客户端时传入 API Key,并在 create() 调用中显式设置 stream=True

第三步:遍历 response 迭代器,逐个提取 content 字段

这一步不能用 response.choices[0].message.content 直接取值——因为流式响应返回的是 ChatCompletionChunk 对象流,不是完整 Message 对象。强行调用会报 AttributeError。

处理流式响应的三种写法

方法一:基础打印(适合调试)

for chunk in response:

  content = chunk.choices[0].delta.content

  if content is not None:

    print(content, end="", flush=True)

方法二:拼接完整文本(适合需后续处理的场景)

full_response = ""

for chunk in response:

  delta = chunk.choices[0].delta

  if delta.content:

    full_response += delta.content

print("最终回答:", full_response)

方法三:捕获 finish_reason 判断结束(生产环境推荐)

php获得文件的mime type类
php获得文件的mime type类

php获得文件的mime type类

下载

for chunk in response:

  delta = chunk.choices[0].delta

  if delta.content:

    print(delta.content, end="", flush=True)

  finish_reason = chunk.choices[0].finish_reason

  if finish_reason == "stop" or finish_reason == "length":

    break

注意:finish_reason 为 None 是正常现象,不代表响应未完成;只有出现 stop 或 length 才代表生成彻底结束。

用requests手动发起流式请求

① 构造 headers,必须包含 Authorization 和 Content-Type

② 构造 JSON payload,确保 "stream": true 是布尔值而非字符串

③ 使用 requests.post(..., stream=True) 发起请求

④ 用 response.iter_lines() 逐行读取 SSE 格式响应

这一步容易出错:若漏掉 stream=True 参数,requests 会等待整个响应体下载完毕才返回,失去流式意义;若没设 decode_unicode=True,中文可能乱码。

for line in response.iter_lines(decode_unicode=True):

  if line.startswith("data: "):

    data = json.loads(line[6:])

    if "choices" in data and data["choices"]:

      delta = data["choices"][0]["delta"]

      if "content" in delta and delta["content"]:

        print(delta["content"], end="", flush=True)

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
智谱清言使用教程大全
智谱清言使用教程大全

智谱清言专题提供全面的使用教程与功能解析,涵盖账号注册、网页版入口、App下载安装、AI问答、内容创作、文档处理、学习办公辅助等核心功能,帮助用户快速掌握智谱清言的使用方法,提升工作、学习与创作效率。

2026.06.09

184

10

智谱清言提示词大全
智谱清言提示词大全

本专题围绕智谱清言Prompt提示词展开,系统讲解高质量提问技巧、场景化提示词模板、内容创作Prompt、办公学习Prompt以及AI对话优化方法,帮助用户获得更精准、更专业的回答结果。

2026.06.09

50

10

智谱清言AI写作教程
智谱清言AI写作教程

本专题聚焦智谱清言AI写作能力,涵盖文章创作、SEO内容生成、新媒体运营、自媒体写作、电商文案、广告推广文案以及办公写作等场景,帮助用户利用AI提升内容生产效率与创作质量。

2026.06.09

98

10

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

1

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

1

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

3

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

2

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习