输出总是到一半就断,以为是窗口不够。

实际是两个独立限制:

  • 上下文长度:输入 + 输出的总和上限
  • max_tokens:单次输出上限

我只看了上下文长度,没设 max_tokens,用了默认值(有的是 1024),所以长输出被截断。

解法:显式设 max_tokens,值要留出输入占用的空间。

判断是否被截断:看返回的 finish_reason,是 length 就是被截断了,是 stop 才是正常结束。

这个字段很多人不看,导致以为模型能力不行。

现在我的代码里固定检查 finish_reason,截断了就自动续写。

主楼