Gemini API上下文缓存是否支持导出与查看的技术问询
关于Gemini上下文缓存内容检索的问题
我正在开发一款名为QonQrete的开源本地优先代理/编排层,所有功能均在用户本地机器的容器中沙箱运行。每个“周期”内,它会从本地文件构建内存与上下文,随后在容器内调用Gemini CLI,通过标准输入/输出(stdin/stdout)传递提示词和内存/上下文——我的代码不会直接调用HTTP API。
由于托管聊天UI在长对话中存在不稳定问题(如丢失上下文、不同模型版本间行为变化等),我正尝试将所有持久化内存与缓存迁移至自有技术栈,并将Gemini及其他大语言模型(LLM)视为可替换后端。
已查阅的Gemini缓存相关文档
- Gemini API上下文缓存指南:支持带TTL和
cached_contentID的显式缓存 - Vertex AI上下文缓存概述:介绍了隐式缓存与显式缓存的区别
我的现有理解
根据这些文档,我得出以下结论:
- 可以创建显式缓存条目(例如大型系统提示词或文档),为其设置TTL,后续请求中通过传递缓存ID而非重新发送相同token来复用
- 这种方式能降低成本与延迟,但预标记化、压缩等实现细节均为Gemini内部机制
未明确的问题
不过我尚未从文档中找到以下问题的答案:
- 是否存在公开API可用于检查或下载缓存中实际存储的内容?
比如缓存内容的预标记化或压缩表示,以便我将其镜像到自有缓存(如Redis/SQLite)中进行长期存储或跨供应商复用。 - 或者上下文缓存完全是不透明的服务器端句柄,仅支持以下操作?
- 创建缓存内容
- 在后续请求中通过ID引用它
- 通过TTL自动过期或显式删除
架构需求
我的架构需求如下:
- 保留代表项目状态与“内存”的本地索引(文件+数据库)
- 可选地利用Gemini的上下文缓存来处理大型、频繁复用的提示词
- 同时镜像或复用缓存中的任何表示形式,避免完全依赖服务器端状态
目前我假设答案是“不支持,缓存是不透明且不可导出的;若需可移植/可检查的内存,必须在客户端自行实现RAG/摘要层”,但我希望确认:
最终问题
当前Gemini API是否支持检索或查看上下文缓存条目中存储/编码的内容?还是我应将缓存ID视为完全不透明,并自行构建客户端缓存/索引?
项目开源地址:https://github.com/illdynamics/qonqrete
内容的提问来源于stack exchange,提问作者Ill Dynamics
相关产品推荐
相关产品推荐

