Gemini 输出被截断:完成原因与 token 限制
长文写到一半突然戛然而止?全面解读 finish_reason: MAX_TOKENS 状态码,指导在配置中显式调大 max_output_tokens 参数。
一、内容腰斩的根本技术原因
当检查接口返回的 JSON 对象中,candidates[0].finish_reason 字段显示为 2(在枚举中定义为 MAX_TOKENS)时,明确代表模型的生成触碰到了单次最大允许输出上限。
二、调整参数两步实操
在默认调用时,部分 SDK 赋予了较小的保守输出上限。可在代码中显式将其拉满:
generation_config = {
"max_output_tokens": 8192, # Gemini 1.5 支持单次最大输出 8192 个 Token
"temperature": 0.3
}
model = genai.GenerativeModel("gemini-1.5-flash", generation_config=generation_config)
三、超长任务的分段规划
若单次任务本身超过了 8192 个 Token(约合 1.2 万中文字符),必须在提示词中明确要求模型按章节分批输出,并在后续请求中传递断点参数。
基础配置见:[Gemini API 入门总指南](https://aihuiyuan.club/articles/gemini-api-key-google-ai-studio-free)。