Coze 的 API 调用,网页里明明能跑,到了 Python 里却失败,这种情况在社区里很常见。它通常不是“网页更强”,而是网页端和脚本端用的请求方式不完全一样。尤其是当你处理的是流式返回时,SSE 没处理好,结果就会看起来像“接口坏了”。
先看最容易出错的地方
第一是地址写错。0.0.0.0 这种地址只适合本机监听,不适合拿来当客户端请求地址。第二是流式响应没按 SSE 处理,脚本只是在等普通 JSON。第三是请求字段虽然看着差不多,但 bot_id、user_id、additional_messages 这些参数和页面端的上下文并不完全一致。
为什么网页能跑,脚本却不行
网页通常会帮你把鉴权、会话、流式事件和后续消息一起封装好;Python 脚本则需要你自己接住这些过程。公开 issue 里就有人遇到过:网页里看起来一切正常,但脚本端收到的是 SSE 事件流,结果因为没按事件逐行解析,最终以为接口失败了。
比较稳的做法
- 如果你不想处理流式事件,就先把 `stream` 设成关闭。
- 如果你要用流式,就按 `text/event-stream` 的格式逐行解析,不要直接拿 `response.text` 当最终答案。
- 先用真实 IP 或域名请求,不要拿 `0.0.0.0` 充当访问地址。
另外,Python 端和网页端返回的“后续建议”也可能不一样。那不是异常,而是对话流里的正常附加消息。先把主回复和 follow-up 区分开,排查会清楚很多。
一句话结论
Coze API 网页能跑、Python 却失败,通常不是接口本身坏了,而是地址写错、SSE 没解析,或者请求上下文没有对齐。把这三件事对齐,问题一般就能定位出来。