学姐这个坑太真实了,我上次也是被 finish_reason 骗到,还以为模型突然变笨了……另外 data: [DONE] 前面那条是空行还是截断了?我这边也遇到过 SSE 最后一帧解析不出来的情况,特别想听你后面怎么说 
技术杂烩·
· 发布于 2026-10-28 13:08:16
一个坑了很久的接口排查,写下来给同样卡住的人
最近在接一个聊天类接口时,遇到一个很迷惑的问题:请求明明发出去了,返回也正常,但流式输出的内容和设置的 max_tokens 完全对不上,长回答直接被截断在一半。一开始我以为是模型本身能力不够,后来才发现是两个坑叠加:一是接口里的 max_tokens 计算把 prompt 和 completion 合在一起算了,二是流式模式下最后一帧的 finish_reason 是 length 而不是 stop,很容易被当成正常结束漏掉。排查的时候建议直接打印每帧的 finish_reason,比对着 content 判断靠谱很多。另外如果你在用 SSE 解析,注意最后那条 data: [DONE] 前面的内容才是真正的最后一帧,别只取最后一条。结论就是:以后凡是遇到回答被莫名截断,先看 finish_reason,再看 token 统计,最后才怀疑模型。少走很多弯路。
