当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > Gemini API 隐式缓存怎么提高命中:公共前缀与 total_cached_tokens 核对法

Gemini API 隐式缓存怎么提高命中:公共前缀与 total_cached_tokens 核对法

来源:17golang原创 2026-09-03 14:11:53 0浏览 收藏

团队把同一份产品手册反复发给 Gemini API,却发现请求看起来一样,缓存命中并不稳定。Gemini 2.5 及更新模型默认启用隐式缓存,不需要创建缓存对象;真正需要调整的是输入顺序:把大段、公共、稳定的内容放在最前面,把每次变化的问题放在后面,再从 usage.total_cached_tokens 判断是否命中。

要点速览
  • 隐式缓存默认开启,但输入 token 没达到模型门槛时不会形成有效命中。
  • 公共前缀越大、越稳定,且相似请求越集中在短时间内,命中机会越高。
  • 不要凭响应速度猜缓存,直接记录 usage.total_cached_tokens 做请求级核对。

隐式缓存改变了什么

Google 官方文档将隐式缓存描述为 Gemini API 的默认优化:Gemini 2.5 及更新模型均可使用,状态式对话和无状态请求都支持。命中后,平台会自动传递相应的成本节省;调用方不用显式创建、命名或续期缓存对象。

这不等于“任何重复文字都会缓存”。文档当前列出的最低输入门槛是:Gemini 2.5 Flash 与 Gemini 2.5 Pro 为 2048 tokens,Gemini 3.1 Pro Preview 及文档所列的 3.5/3.6/3.7/3.8 Flash 为 4096 tokens。模型列表会更新,接入时应以对应模型页面为准。

模型范围文档所列最低输入 token判断
Gemini 2.5 Flash / Pro2048低于门槛时先别讨论命中率
文档所列 Gemini 3.x 模型4096公共前缀本身最好接近或超过门槛

隐式缓存为什么要把公共前缀放前面

隐式缓存匹配的是请求开头的相似内容。更稳的组织方式是:公共前缀先放固定文档与固定规则,末尾再拼用户问题 A 或用户问题 B。若把时间戳、随机 ID、会话摘要等变化字段塞在最前面,即使后面是同一份长文档,前缀也会过早分叉。

另一个条件是短时间窗口。官方建议相似前缀的请求尽量在较短时间内发送,所以批量评测、文档问答和同一知识包的集中流量更容易利用隐式缓存;一天只来一个请求的低频场景,不应把成本预算建立在必然命中上。

Gemini API 隐式缓存的公共前缀、变化问题与短时间窗口静态结构图
图1:查看稳定输入、变化输入和缓存条件三个边界,判断固定文档与规则是否先组成公共前缀,再承接不同用户问题。

用 total_cached_tokens 判断有没有命中

最小验证不需要猜。准备带同一公共前缀的请求 A 与请求 B,只改变末尾问题,并在短时间内连续发送。每个响应对象都读取 usage.total_cached_tokens,同时保存模型名、输入 token 数和前缀版本。该值记录命中的缓存 token 数,适合直接形成命中记录。

如果字段为零或没有增长,就保存为未命中记录,再检查三个地方:输入是否达到当前模型门槛;公共内容是否真的位于最前;前缀中是否混入动态值。不要为了提高数值而删除必要上下文,先保证语义正确,再优化重复部分。

Gemini API 响应对象中 usage.total_cached_tokens 与命中记录的核对结构图
图2:对照请求样本、用量字段和核对结果三个分组,用同一公共前缀的两次请求生成可比较的命中与未命中记录。

Interactions API 与显式缓存的边界

Interactions API 只支持隐式缓存,不支持手工创建和管理显式缓存对象;需要显式缓存时,应改用 generateContent API。隐式缓存则同时适用于通过 previous_interaction_id 续接的状态式对话,以及自行重传上下文的无状态模式。

迁移时先做一周观测:按模型、公共前缀版本和业务场景汇总 usage.total_cached_tokens,再决定是否值得调整输入布局。若前缀经常变化或输入长期低于门槛,继续维持清晰的请求结构,比追求一个不稳定的命中率更实际。

常见问题

公共前缀相同就一定命中吗?

不一定。还要满足模型的最低输入 token 门槛,并尽量让相似请求在短时间内出现。最终仍以 usage.total_cached_tokens 为准。

状态式对话才能使用隐式缓存吗?

不是。官方文档明确说明状态式与无状态式请求都支持隐式缓存;区别只在上下文如何传递,不在缓存是否可用。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Redis 8.10 Compact Hash 怎么省字段名内存:共享 schema 的适用条件Redis 8.10 Compact Hash 怎么省字段名内存:共享 schema 的适用条件
上一篇
Redis 8.10 Compact Hash 怎么省字段名内存:共享 schema 的适用条件
漫蛙离线缓存一次能下多少话?20话范围与书架同步说明
下一篇
漫蛙离线缓存一次能下多少话?20话范围与书架同步说明
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    116次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    32次使用
  • Gradio是什么?Python开源库快速构建机器学习Web演示界面
    Gradio
    Gradio是一个用于构建机器学习和数据科学Web应用的开源Python库。支持快速创建交互界面,获Google、Meta等大厂青睐,适合模型演示、部署反馈及调试。
    109次使用
  • AutoGPT是什么?开源AI Agent自动化工作流平台详解与使用教程
    AutoGPT
    AutoGPT是基于GPT-4的开源AI代理平台,拥有超10万GitHub星标。本文介绍其低代码界面、自动化工作流功能、系统配置要求及安装步骤,助您高效部署和管理AI Agent。
    114次使用
  • Dataify评测:AI全链路数据服务平台,提供代理IP、采集API与高质量数据集
    Dataify
    Dataify是专注AI生态的一站式数据服务平台,整合全球住宅代理、多源数据采集API及高质量训练数据集。支持LLM训练、跨境电商及金融分析,解决数据孤岛难题,助力企业智能化转型。
    20次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码