把千问 3.5 Flash 对话API 接进自己的应用,多数人卡在两处:鉴权请求头写错,流式输出接不上。前者直接返回 401,后者表现为“等十几秒才一次性吐字”。
下面按“准备信息 → 鉴权配置 → 流式输出 → 排错”的顺序走一遍。文中涉及的接口地址、模型名称和计费规则,都以你所用平台控制台实际显示的为准,不要直接照抄示例字符串。
一、接入前先确认三件事
千问 3.5 Flash 对话API 属于典型的 Chat Completions 风格接口,接入前需要先确认三件事,缺一件都会让后面的调试变成盲猜。
- Base URL:接口的请求前缀。不同平台的路径可能带
/v1,也可能不带,拼接错误通常表现为 404 而不是 401。 - API Key:调用凭证,放在请求头里,不要写进前端代码或提交到公开仓库。
- 模型名称:接口里的
model字段必须是平台侧真实存在的标识,写法上大小写、连字符、版本号都可能不同。
如果不想在多个平台之间反复注册、切换 Key 和管理余额,可以把 通联AI中转站 作为统一入口来了解:一个 Base URL、一套 Key 管理方式,模型广场里能看到当前可选用的模型与调用说明,再决定是否用它承接你的千问 3.5 Flash 对话API 调用。
二、鉴权配置:请求头怎么放、怎么验
标准请求头写法
绝大多数兼容接口使用 Bearer 方式传 Key,两个请求头缺一不可:
Authorization: Bearer 你的API_KEY Content-Type: application/json
注意 Bearer 与 Key 之间有一个空格;Key 前后不要带引号、换行或多余空格。很多 401 并不是 Key 失效,而是复制时把首尾空格一起粘了进去。
最小验证请求
先用一次非流式请求验证鉴权是否通过,把问题范围缩小:
curl https://你的BaseURL/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "以控制台显示的模型名为准", "messages": [{"role": "user", "content": "你好"}], "stream": false }'
能正常返回 JSON 说明鉴权与模型名都对,接下来再把 stream 改成 true,单独验证流式链路。
配置项对照表
| 配置项 | 作用 | 检查方法 |
|---|---|---|
| Base URL | 决定请求发往哪个网关 | 与控制台文档逐字符比对,注意结尾是否带 /v1 |
| API Key | 身份校验与用量归属 | 用 curl 或接口工具直连,排除框架层干扰 |
| model | 指定要调用的具体模型 | 以平台模型列表中的名称为准,不要自行拼写 |
| stream | 切换流式或一次性返回 | 观察响应头是否为 text/event-stream |
三、流式输出:参数、解析与常见坑
流式输出走的是 SSE(Server-Sent Events)。开启后,服务端会持续推回若干行以 data: 开头的数据块,每块里是增量文本,最后以 data: [DONE] 结束。前端要做的不是等一个完整 JSON,而是边收边拼。
三个关键点
- 请求侧:把
stream设为true,部分平台还支持按需传stream_options来获取用量统计,是否支持要看文档。 - 解析侧:逐行读取,跳过空行,去掉
data:前缀后再做 JSON 解析;遇到[DONE]立即停止读取,不要继续解析。 - 拼接侧:通常取
choices[0].delta.content累加输出。首个数据块可能只有角色信息、没有正文,需要做空值判断。
容易踩的三个坑
- 反向代理缓冲:Nginx 等中间层默认会缓冲响应,导致所有内容一次性弹出。需要关闭对应缓冲配置。
- 超时设置过短:流式请求的耗时包含整个生成过程,读取超时要比非流式请求留得更宽。
- 前端用了错误的读取方式:普通
fetch().json()拿不到增量内容,需要用可读流逐块读取或使用事件流接口。
判断流式是否真的生效,不看总耗时,而看第一个数据块到达的时间。如果首块延迟和整体耗时可忽略不计,多半是缓冲没关掉,而不是模型变快了。
四、可复用的接入步骤
- 登录控制台,确认接口地址、可用模型名称与当前计费说明。
- 创建一个独立的 API Key,按环境区分测试与线上,避免共用同一把 Key。
- 先用非流式 curl 验证鉴权,再用同样参数把
stream改为true。 - 在业务代码中封装统一的请求层,把 Base URL、模型名称、超时时间做成配置项。
- 加入异常处理:401 检查 Key,404 检查路径,429 检查频率,5xx 做有限次退避重试。
- 上线前做一次长文本与并发测试,确认超时、截断和用量记录符合预期。
五、常见问题速查
鉴权失败但 Key 明显没写错
优先检查三处:请求头是否被框架覆盖、代理是否改写了 Authorization、Key 是否已被删除或额度用尽。可以换一个干净环境用 curl 复测。
流式内容被截断
多数是读取循环提前退出,或没有正确处理以空行分隔的事件块。把原始响应先打印出来再解析,通常一眼就能看出问题。
同一段代码换个模型就报错
不同模型对参数的支持范围不同,例如部分模型不接受某些采样参数。建议把通用参数集中在配置里,按模型做差异化覆盖。
需要统一管理多个模型的调用、Key 与余额时,可以到 通联AI中转站 查看模型广场与接入文档,按同样的 OpenAI 兼容思路完成一次千问 3.5 Flash 对话API 的实测,再决定是否把线上流量迁过去。所有模型名称、接口地址与计费规则,请以控制台页面实时展示的信息为准。
鉴权和流式都跑通之后,下一步就是把它放进真实业务里。你可以到通联注册账号,创建一把专用的 API Key,对照控制台给出的 Base URL 与模型名称,先发一次最小流式请求,确认首块返回正常后再接入正式代码。
注册通联AI中转站,获取 API Key 并完成首次流式测试限會員,要發表迴響,請先登入


