← Back to Blog

Gemini 长上下文怎么用更省:中转、模型选择与成本控制

Zivv11 min read
Gemini长上下文成本优化

Gemini 的长上下文能力很适合读文档、读日志、读仓库,但长上下文也最容易烧 Token。很多团队一开始觉得“上下文越长越好”,什么都往里塞,账单跟着一路涨,才回头研究怎么省。这篇讲清楚三件事:什么时候该用长上下文,什么时候不该用;长上下文任务的调用策略和缓存思路;以及如何通过 Zivv 把 Gemini 和其他模型放在同一个成本框架里管理。

长上下文适合什么、不适合什么

Gemini 长上下文适合的场景,共同特征是“需要一次性建立全局理解”:

  • 一次性分析长文档、合同、需求说明
  • 汇总大量日志,找异常模式和时间关联
  • 读取多文件代码,理解模块间的整体结构
  • 把历史对话或知识库压缩成结构化摘要

不适合的场景,共同特征是“高频、简单、格式固定”:

  • 简单分类、情感判断
  • 短问答
  • 固定格式抽取(提取字段、打标签)
  • 高频低价值请求

后面这类任务用 gemini-3.5-flash 这样的低成本模型就够了,塞长上下文纯属浪费。一个判断口径:如果这个请求不看全量材料也能答对,就不该带全量材料。

最大浪费:把所有东西都塞进去

长上下文不是免整理的借口。实际账单里最常见的四种浪费:

  • 每次请求都传完整文档,而不是传相关片段——文档 10 万 Token,问 50 个问题就是 500 万 Token 输入
  • 系统提示写了几千字,且每次请求原样重复
  • 多轮对话历史不做摘要,越积越长,后期每轮都拖着全部历史
  • 不限制输出,模型每次返回大段无用解释

成本优化的第一步不是换模型,而是砍掉无效上下文。通常这一步就能省下一半以上。

推荐调用策略:读一次全量,之后用摘要

任务阶段推荐做法参考模型
初次理解读完整材料,产出结构化摘要gemini-3.5-flash-high
后续问答只传摘要和相关片段gemini-3.5-flash
高频抽取低成本模型,短上下文gemini-3.5-flash
复杂判断临时升级到强推理模型claude-opus-4-8

核心思路是把长上下文用在“建立全局理解”这一步,把理解结果沉淀为摘要资产,后续请求复用摘要,而不是每次都为全量材料重复付费。

先算一笔账:长上下文到底贵在哪

拿一个典型场景算:一份 10 万 Token 的技术文档,团队一周内围绕它提了 60 个问题。

  • 每次传全文:60 次 × 10 万 Token 输入 = 600 万 Token,还没算输出
  • 摘要策略:读全文 1 次(10 万)+ 产出 3 千 Token 摘要 + 60 次 ×(3 千摘要 + 平均 2 千相关片段)= 约 40 万 Token

同样的业务效果,输入成本相差十几倍。这就是为什么说长上下文的优化空间主要在调用策略,而不是在模型单价上砍。把这笔账套到你自己的文档大小和提问频率上,很容易判断值不值得改造。

顺带说明输出侧:长上下文任务的输出往往也失控——模型读了十万字,倾向于“汇报式”长输出。在提示里明确“只输出结论,不超过 300 字”或要求固定 JSON 结构,输出成本通常还能再砍一半。

通过 Zivv 接入 Gemini

Zivv 提供 Gemini 兼容协议入口,base_url 为 https://zivv.pro/v1beta,用 Zivv Key 替换 Google API Key 即可:

curl "https://zivv.pro/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: sk-your-key-here" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"用三句话总结这段日志的异常模式:..."}]}]}'

如果你的技术栈已经在用 OpenAI SDK,也可以直接走 OpenAI 兼容入口调 Gemini 模型,不用引入新依赖:

from openai import OpenAI

client = OpenAI(base_url="https://zivv.pro/v1", api_key="sk-your-key-here")

# 第一步:读全量材料,产出摘要(只做一次)
summary = client.chat.completions.create(
    model="gemini-3.5-flash-high",
    messages=[{"role": "user", "content": "阅读以下文档并输出结构化摘要:\n" + full_doc}],
).choices[0].message.content

# 之后:所有问答只带摘要,不再传全文
answer = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "基于摘要回答:\n" + summary + "\n问题:" + question}],
).choices[0].message.content

三种协议、同一个 Key、同一份余额,这是中转入口的核心便利。端点规则见 API 端点参考,可用模型见 模型广场

不用全文也能答对:片段检索的简单做法

摘要策略再进一步,是给“后续问答”补一个片段检索层。做法不需要一上来就上向量数据库:

  1. 初次处理时,把长文档按章节或固定长度切成片段,每段存标题和位置索引
  2. 让模型在产出全局摘要的同时,为每个片段生成一句话描述,一起缓存
  3. 后续提问时,先用关键词或让低成本模型从片段描述里挑出最相关的两三段
  4. 只把全局摘要加上选中的片段传给回答模型

这套朴素方案能覆盖大部分文档问答场景,成本只有全文重传的几十分之一。等问答量大到朴素检索不够准,再考虑引入向量检索也不迟——先让策略跑起来,再优化召回质量。

批处理任务要单独设防

长上下文加批处理,是成本事故的高发组合:一个循环 bug 就能在夜里跑掉一个月预算。除了前面说的独立 Key 和日预算,脚本侧再加三道保险:

  • 循环里加总量计数器,处理条数或累计 Token 超过阈值就主动停止
  • 失败重试设上限并退避,避免坏数据反复重试烧钱
  • 先跑 10 条样本人工检查输出,确认无误再放全量

平台预算是最后一道防线,脚本自身的护栏才是第一道。两道都设,才谈得上安心跑夜间任务。

常见报错与排查

Gemini 链路配置阶段的高频问题,对着现象查:

  • 404 / model not found:模型名拼写错误,或把 OpenAI 入口的地址用在了 Gemini 原生协议上。记住 Gemini 原生协议走 /v1beta,OpenAI 兼容协议走 /v1,两条路都能调 Gemini 模型但格式不同
  • 401 / 鉴权失败:Gemini 原生协议用 x-goog-api-key 头,OpenAI 兼容协议用 Authorization: Bearer,两种头不要混用;Key 前后有空格也会触发
  • 请求超长被拒:单次输入超过模型上下文上限,先检查是不是把整个目录的文件都拼进去了
  • 输出被截断:输出 Token 上限设小了,或没有处理流式的分帧拼接

把配置错误和策略问题分开排查:前者用一条最小 curl 就能定位,后者要看用量数据。错误码细节见 错误码说明

多模型团队的统一管理

如果团队同时用 Claude、GPT、Gemini,最难的不是调用,而是管理:

  • 每个平台一套 Key、一套充值渠道
  • 每个平台一张账单、口径互不相同
  • 每个平台不同的额度和限速规则
  • 成员用量分散在三个后台,无法统一比较

Zivv 把多模型统一到一个入口:一个 Key 接入 100+ 模型,充值汇率 ¥1 = $1,按量计费;团队模式 提供共享余额、成员独立 Key、多维预算和按成员/Key/模型的用量分析。长上下文任务最需要的就是这套预算兜底——它的单次成本天然比普通请求高一个量级。

实战清单

  1. 长文档先做一次结构化摘要,摘要连同原文片段索引一起缓存
  2. 后续问答只传摘要加相关片段,命中不了再回退读原文
  3. “读全文”和“基于摘要回答”使用不同档位的模型
  4. 给长上下文任务单独建 Key,用量和普通业务分开统计
  5. 给这个 Key 设日预算上限,防止批处理脚本失控
  6. 输出端加约束:限定字数、限定 JSON 格式,砍掉无用解释

第 4、5 条尤其重要。批量文档分析一旦脚本循环写错,一晚上就能烧掉一个月的正常预算;单独 Key 加日预算,损失会被自动截断在可接受范围内。

常见问题 FAQ

Q1:通过 Zivv 调 Gemini,和直连 Google 有什么差别? 协议层完全兼容,改一个 base_url 和 Key 即可。差别在管理层:人民币按量计费、和 Claude/GPT 共用余额与预算、团队用量统一可见。直连则需要单独维护 Google 的账号、支付和配额。

Q2:gemini-3.5-flash 和 gemini-3.5-flash-high 怎么选? flash 用于高频、格式固定的常规任务;flash-high 用于初次读全量材料、需要更强理解质量的场景。按上文的分阶段策略组合使用,比全程用高档位省得多。

Q3:摘要缓存放在哪里? 放你自己的存储里(数据库、对象存储、甚至本地文件都行),Key 是文档标识加版本号。原则是摘要作为工程资产管理,而不是每次会话临时生成。

Q4:怎么发现长上下文任务的成本异常? 单独建 Key 后,控制台按 Key 看用量曲线即可;再配合日预算,超限自动拦截。指标上重点盯“单请求平均输入 Token”,这个数突然上涨通常意味着有人开始传全文了。

Q5:什么时候该用 Claude 或 GPT 而不是 Gemini 处理长材料? 如果长材料任务的下一步是改代码,Claude 系列往往衔接更好;如果只是读懂、汇总、抽取,Gemini 的性价比通常更高。在 Zivv 上切换只是换模型名,建议各跑一小批真实样本对比质量和成本再定,多模型选型思路可参考 多模型路由策略

结论

Gemini 长上下文很强,但不是所有请求都配得上长上下文。正确的用法是:第一次读全量、沉淀摘要,后续读摘要;复杂判断临时升强模型,高频任务用低成本模型;再通过 Zivv 把 Key、账单、预算和团队成员统一管理起来,长上下文的成本就能从“失控项”变成“可预算项”。可以先 注册 建一个长上下文专用 Key,把本文的分阶段策略跑一遍,对比一下账单变化。