qwen api支持streaming流式输出,可通过官方sdk设stream=true、手动调用restful sse接口、前端fetch api或curl命令行四种方式实现,均需配置相应参数并解析sse格式的data字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在调用千问(Qwen)API时希望获得逐步生成的文本响应,而非等待完整结果一次性返回,则需确认其是否支持Streaming流式输出。以下是实现该功能的具体方法:
一、使用官方SDK启用stream参数
Qwen官方Python SDK(dashscope)支持通过设置stream=True启用流式响应,底层基于SSE(Server-Sent Events)协议逐块接收token。该方式适用于同步调用场景,能实时获取模型生成过程中的每个文本片段。
1、安装最新版dashscope SDK:pip install --upgrade dashscope。
2、初始化调用时传入stream=True参数,并使用for循环迭代响应流对象。
3、对每次接收到的response对象,提取response.output.text或response.output.choices[0].message.content字段获取增量内容。
4、注意捕获dashscope.exceptions.ServiceError等异常,避免因流中断导致程序崩溃。
二、直接调用RESTful API并解析SSE响应
当不使用SDK或需跨语言集成时,可手动发起HTTP POST请求至Qwen的流式接口(如/api/v1/services/aigc/text-generation/generation),并在请求头中指定Accept: text/event-stream,服务端将以SSE格式分段推送data字段。
1、构造JSON请求体,确保包含{"stream": true}字段。
2、使用支持SSE解析的HTTP客户端(如Python的requests配合iter_lines(),或Node.js的eventsource库)。
3、逐行读取响应,过滤以data:开头的行,去除前缀后对JSON字符串进行json.loads()解析。
4、从解析后的字典中提取output.text或output.choices[0].delta.content(依API版本而定)。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
三、在Web前端通过Fetch API实现流式接收
前端JavaScript可通过fetch()发起流式请求,并利用ReadableStream和TextDecoder实时解码SSE数据,适用于构建类ChatUI的即时响应界面。
1、设置headers.Accept = 'text/event-stream',且method为POST。
2、调用response.body.getReader()获取流读取器,配合while (true)循环持续read()。
3、对每次chunk.value使用TextDecoder.decode()转为字符串,按换行符分割并匹配data:行。
4、将提取出的每段内容追加至DOM元素(如<div id="output"></div>)中,实现逐字渲染效果。
四、使用curl命令行工具验证流式行为
在调试阶段,可通过curl快速验证服务端是否正常输出流式数据,便于排查网络或鉴权问题。
1、执行带-H "Accept: text/event-stream"和-d '{"stream":true,...}'的curl命令。
2、添加--no-buffer参数防止输出缓存,确保内容实时打印到终端。
3、观察返回是否以data: {...}格式持续输出,每行一个JSON对象。
4、若返回空或立即结束,需检查API Key权限、模型是否支持stream、以及请求体中model字段是否为流式可用型号(如qwen-max-stream或qwen-plus-stream)。










