Gemini 1M 上下文还是把长文档截断

Gemini 2.5 Pro 号称 100 万 token 上下文,长文档还是被切。通常是输出上限,不是输入上限 — 这里给出修复路径。

Gemini 2.5 Pro 宣传 100 万 token 的上下文窗口。你扔进一个 400 页的 PDF,要它按章节总结,结果回答到一半就断了。或者你贴了一整个代码库,回复只引用了前四分之一。

1M 这个数字对输入是真的 — 但输出有另一个、小得多的上限(默认大约 8K token,Gemini 2.5 Pro 开 thinking budget 最多可到 65K)。而且 gemini.google.com 比 AI Studio 或 API 的限制还更紧。大多数”1M 上下文骗人”的反馈,其实是输出上限或选错面板,不是输入被截。

常见原因

按出现频率:

1. 是输出上限,不是输入上限(最常见)

你可以给 Gemini 输入 1M token,但每次回复都有上限 — 默认通常 8,192 token,Gemini 2.5 Pro 加 thinking 最多到 65,536。一本书按章节总结合计 3 万字,这个量级一次回复装不下,不管输入有多少。

如何判断:回复在句子或段落中间戛然而止。模型其实”还知道”,只是输出预算用光了。

2. 消费版比 API 的单消息上限更紧

gemini.google.com 比 AI Studio 或 API 更早截断输出。1M 上下文技术上是有的,但 app 的 UI 层把输出压在 8K token 左右,不管你用什么模型。

如何判断:同样 prompt + 同样文档,app 给的回答比 AI Studio 短。

3. 聊天面板的单消息 token 上限

即使是付费,gemini.google.com 每轮也有隐藏的单消息上限。超长单轮 prompt 会被静默裁剪。

如何判断:把日志贴出来发现 token 数刚好卡在某个圆整数附近(~32K、~100K)就断了。

4. 免费版根本拿不到完整 1M

免费 Gemini 上下文远小于 1M — 大概 32K-100K。1M 是 Pro / AI Studio / API 才有的。

5. 文档被当成图片传了,而不是文字

如果 PDF 是扫描件(没有 OCR 文字层),Gemini 可能把它当图片输入,token 计量完全不同,检索质量也下降。

6. Thinking 模式吃掉了输出预算

Gemini 2.5 Pro Thinking 会写内部推理 token,这些算在输出上限里。一段长推理留给可见回答的空间就少了。

最短修复路径

步骤 1:认真做长上下文,用 API

消费版不是为 1M token 工作负载设计的。要真做长上下文,用 API:

from google import genai
from google.genai import types

client = genai.Client(api_key="YOUR_API_KEY")
with open("long-doc.pdf", "rb") as f:
    doc = f.read()

response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents=[
        types.Part.from_bytes(data=doc, mime_type="application/pdf"),
        "每章用 200 字总结。"
    ],
    config=types.GenerateContentConfig(
        max_output_tokens=65536,
        thinking_config=types.ThinkingConfig(thinking_budget=8000),
    ),
)

显式把 max_output_tokens 调到模型上限附近,再单独给 thinking 预算。

步骤 2:不想写脚本就用 AI Studio

aistudio.google.com
→ 选 Gemini 2.5 Pro
→ 把文档丢进去
→ 右侧 "Run settings" 把 "Max output tokens" 调到 65536
→ 如果有 "Thinking budget" 也调一下

AI Studio 把 API 的旋钮都暴露出来了,做原型免费。

步骤 3:把任务分到多轮

如果非用消费版不可:

第 1 轮:"只总结第 1-5 章。完成后标记一下。"
第 2 轮:"现在总结第 6-10 章。"
第 3 轮:"现在第 11-15 章。"

单轮输出上限只在那一轮生效,分轮做就能覆盖完整内容。

步骤 4:让输出结构化、更短

“每章 200 字摘要”比”全面分析”压缩率高得多。明确指定长度:

对每一章,只输出:
- 标题
- 3 个 bullet(每个最多 15 字)
- 1 句关键引用(最多 30 字)
到第 10 章为止。

紧的结构 + bullet 在同样输出预算下能塞下更多章节。

步骤 5:确认文档是按文字而不是图片被吃进去的

PDF 要看是不是文字 PDF。扫描 PDF 需要先做 OCR(Adobe Acrobat OCR、ABBYY,或者上传成 Google 已经 OCR 过的 Doc)。图片 PDF 信息密度低,token 也吃得多。

步骤 6:确认你的等级

如果是免费 Gemini,你没有 1M 上下文 — 接近 32K。升 AI Pro 或用 AI Studio(免费、上下文更大)拿到真正的窗口。

预防

  • 任何 50 页以上的文档,默认 AI Studio 或 API — 消费版适合快查,不适合长文档工作流
  • 扫描 PDF 先 OCR 再上传
  • 多段总结要逐段指定长度,分多轮跑,不要一次塞全部
  • API 调用始终显式设 max_output_tokens — 默认 8K 是”被截断”投诉的主要来源
  • 开 thinking 模式时,thinking budget 和 max_output_tokens 分开设置,避免推理吃掉回答

相关

标签: #Gemini #排查 #thinking