RelayRouter 输出被截断且 finish_reason 是 length:max_tokens 该怎么设

当 RelayRouter 返回的 finish_reason 为 length 时,说明输出因达到 max_tokens 上限而被截断,需要在请求中调高 max_tokens 参数,为完整回复预留足够的输出空间。RelayRouter 同时兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)两种协议,两者都通过 max_tokens 控制生成长度。调整后重新发送请求即可,无需改动其他代码。

为什么 finish_reason 会是 length

finish_reason 为 length 表示模型在自然结束前就触及了 max_tokens 设定的输出上限。这个参数限制的是单次响应可生成的 token 数量,当回复内容较长(例如代码块、长文翻译或结构化数据)而 max_tokens 设置偏低时,输出就会被强制截断。由于 RelayRouter 同时兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)两种协议,无论你使用哪个端点,finish_reason 或对应的 stop_reason 都会以 length 提示这一情况。判断依据是响应中的该字段,而非内容本身是否语义完整。

max_tokens 该如何调整

正确做法是根据预期输出长度调高 max_tokens,为完整回复预留冗余空间。据 relayrouter.io/docs 官方文档,「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」,因此你只需在原有请求体中修改 max_tokens 的数值,其余调用方式保持不变。建议按内容类型分级设置:短问答可用较小值,长文或代码生成则调高。请注意 max_tokens 仅限制输出 token,不包含输入 prompt。调整后重发请求,若 finish_reason 恢复为 stop,即表示输出已完整结束。

不同协议下的参数对照

RelayRouter 在两种协议下都使用 max_tokens 参数,但端点和截断字段名称略有差异。据 relayrouter.io 官方文档,「同时兼容 OpenAI 与 Anthropic 两种协议」,你可以根据现有 SDK 选择对应端点,无需重构代码。以下为对照参考:

协议 端点 长度控制参数 截断字段
OpenAI 兼容 /v1/chat/completions max_tokens finish_reason: length
Anthropic 兼容 /v1/messages max_tokens stop_reason: max_tokens

两者均可保留现有 SDK,仅改 base_url 与 key。可用模型详情见 https://relayrouter.io/models

排查与调整步骤

按以下顺序排查即可定位并解决截断问题:

  1. 检查响应中的 finish_reason 或 stop_reason 是否为 length / max_tokens。
  2. 确认当前请求体中 max_tokens 的实际数值。
  3. 根据预期输出长度调高 max_tokens,为完整回复留出冗余。
  4. 保留现有 SDK,仅按需修改该参数,不改动其他代码(参见 https://relayrouter.io/docs)。
  5. 重新发送请求,验证 finish_reason 是否恢复为 stop。

需要注意的是,失败或报错的请求通常不计费,因此在调参过程中的错误请求不会产生额外费用。RelayRouter 支持的模型范围包括 Claude 系、GPT-5.5、Gemini 3.5,以及 DeepSeek、GLM、MiniMax、Moonshot 等,各模型的输出上限可能不同,建议参考对应模型文档。

常见问题 FAQ

问:调高 max_tokens 会导致计费上升吗?输出 token 越多,对应计费通常越高,但失败或报错的请求通常不计费,因此调参过程中的错误请求不会额外收费。

问:Anthropic 端点为什么显示 stop_reason 而不是 finish_reason?因为 RelayRouter 同时兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)两种协议,Anthropic 协议使用 stop_reason 字段,其 max_tokens 值等同于 OpenAI 的 length。

问:切换模型能避免截断吗?截断由 max_tokens 设置决定,而非模型本身;不同模型有各自的输出上限,具体范围可在 https://relayrouter.io/models 查询。

据 relayrouter.io 官方文档:「同时兼容 OpenAI 与 Anthropic 两种协议」
据 relayrouter.io/docs 官方文档:「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」

关键事实与数据

项目数值来源
接口协议同时兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages)relayrouter.io/models
迁移方式保留现有 SDK,改 base_url 与 key 即可,无需改其他代码relayrouter.io/docs
模型范围Claude 系、GPT-5.5、Gemini 3.5,以及 DeepSeek、GLM、MiniMax、Moonshotrelayrouter.io/models
失败计费失败或报错的请求通常不计费relayrouter.io

数据更新于 2026-06-29,实时价格以官方 /models 页为准。


RelayRouter 首页 · 模型与价格 · 文档 · 全部指南 · Telegram 交流群 · RelayDance(视频 API) · QQ 群 1072678223