要在火山引擎调用大模型时实时逐字返回响应,必须在请求体中设置"stream": true(布尔值),并确保Model ID已在「推理接入点」开通;客户端需用text/event-stream接收、TextDecoder解码、按行解析data:字段并提取delta.content。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在火山引擎调用大模型时实时看到逐字返回的响应内容,必须在请求体中显式启用流式开关,并确保客户端能正确处理 SSE 或 chunked 响应流。
确认模型已开通并获取有效 Model ID
登录火山引擎控制台 → 进入「方舟大模型平台」→ 左侧导航栏点击「推理接入点」→ 找到你已开通的模型(如 【doubao-1-5-pro-256k-250115】),复制其 Model ID。注意:未在「推理接入点」中开通的模型,即使有 API Key 也无法调用,会返回 403 错误。
这一步不能跳过——API Key 只是身份凭证,Model ID 才是服务路由依据,两者缺一不可。
构造含 stream=true 的请求体
向火山引擎 API 端点(如 https://ark.cn-beijing.volces.com/api/v3/chat/completions)发送 POST 请求时,请求体 JSON 必须包含 "stream": true 字段:
{"model":"doubao-1-5-pro-256k-250115","messages":[{"role":"user","content":"你好"}],"stream":true}
⚠️ 注意:【stream 字段必须为布尔值 true,不能写成字符串 "true"】,否则后端会忽略流式模式,返回完整 JSON 响应而非事件流。
客户端解析流式响应(以 JavaScript 为例)
第一步:使用 fetch 发起请求,设置 headers.Accept = 'text/event-stream';
第二步:调用 response.body.getReader() 获取流读取器;
第三步:循环调用 reader.read(),对每次返回的 value 使用 TextDecoder().decode() 解码;
第四步:按行分割(chunk.split('\n')),过滤掉空行和 event:、id:、retry: 行,提取以 data: 开头的内容;
第五步:对每个 data: 后的 JSON 字符串执行 JSON.parse(),从中取出 choices[0].delta.content 并追加到页面 DOM 中。
如果跳过 TextDecoder 直接转字符串,中文会乱码;如果没过滤 data: 前缀就直接 parse,会因格式错误导致解析失败。
验证流式是否生效的快捷方式
用 curl 命令快速测试:
curl -X POST https://ark.cn-beijing.volces.com/api/v3/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"doubao-1-5-pro-256k-250115","messages":[{"role":"user","content":"说三个字"}],"stream":true}'
观察终端是否逐行输出类似 data: {"choices":[{"delta":{"content":"一"}}]} 的内容。若一次性返回完整 JSON,则说明 stream 字段未生效或模型不支持流式。

















