Sunday 的面试指南

Prompt Cache 和答案缓存有什么区别?为什么不能混着用?

🧑‍💻 面试官:我们有一份很长的系统提示词,每次都发给模型。开启 Prompt Cache 后,用户问相同问题,是不是直接返回上次答案?

🙋‍♂️ 我:不是。Prompt Cache 主要复用相同提示前缀的处理结果,模型仍会处理本次新增内容并生成回答。直接返回上次答案,是应用层的答案缓存。

🧑‍💻 面试官:那我给 FAQ 做答案缓存,键用用户问题原文,行不行?

🙋‍♂️ 我:不一定。答案可能依赖用户身份、文档版本和时间。两个用户问同一句“我的订单能退吗”,不能因为问题文字一样就共用答案。

🧑‍💻 面试官:怎样分别优化这两种缓存?

🙋‍♂️ 我:提示缓存要保持可复用前缀稳定;答案缓存要先确定哪些结果真的可以共享,并设计权限、版本和失效条件。

一个省的是模型处理共同输入的工作,另一个省的是重新生成答案的工作;省下的东西不同,风险也不同。

面试速答(60 秒版)

Prompt Cache 和答案缓存不是一回事。Prompt Cache 让模型服务复用相同前缀的计算,例如稳定的系统说明和工具定义;本次请求仍会生成新回答。答案缓存则是应用发现“这次可以复用旧结果”,直接把上次答案返回。

提示缓存重点是前缀是否稳定、是否满足服务商的命中条件。答案缓存重点是正确性:同一个问题在不同用户、权限、时间或知识库版本下,答案可能不同。缓存键和失效规则必须覆盖这些差异。

我会分开记录两类命中率、节省的延迟与费用,并抽查过期或越权答案。不能为了提高命中率,把本来需要实时查询的业务答案缓存起来。

知识点详解:看清“复用”发生在哪一层

Prompt Cache 复用前缀计算,答案缓存直接复用旧输出

Prompt Cache 复用的是共同前缀

假设每次请求都带同一份系统规范、工具清单和长篇背景。模型服务若能识别出相同的前缀,就可能复用此前处理前缀的计算。后面新增的用户问题、检索材料或对话仍需处理,输出也会重新生成。

因此要把稳定内容放在前面,变化内容放在后面,并关注服务商实际的命中条件与统计字段。随意改动前缀、插入动态时间或重排工具定义,都可能降低命中。它不是“给相同问题找旧答案”的功能。

答案缓存直接面向业务结果

例如“公司报销上限是多少”,若政策版本固定、所有员工权限一致,可以考虑短时缓存答案。但“我的报销还剩多少”是用户私有数据,问题字面相同也必须区分用户和实时状态。

答案缓存的键至少要反映影响结果的变量:租户、用户或权限范围、知识库版本、请求参数等;失效规则还要跟文档更新和业务数据变动对齐。若无法可靠界定结果的适用范围,就先不缓存。

两种缓存能同时用,但指标要分开

即使答案缓存未命中,发送给模型的稳定前缀仍可能命中 Prompt Cache。反过来,如果答案缓存直接返回结果,这次根本不会请求模型。

评估时分开看两者的命中率、延迟改善和错误率。尤其要做跨用户与版本切换测试,验证缓存没有把旧政策或别人的订单信息发出去。缓存提高效率,但错误缓存会让错误稳定地重复。

面试官继续追问

用户问题完全一样,就能安全复用答案吗?

不能。还要看身份、权限、上下文、数据版本和时间是否相同。

Prompt Cache 命中会让答案变得一样吗?

不会。它复用的是前缀处理,不是最终输出;后续输入和生成仍可能不同。

政策更新后,先清哪种缓存?

先保证答案缓存与检索缓存不会继续提供旧政策。提示缓存是否可复用取决于前缀是否变化,不能拿它代替内容失效管理。

面试速记卡

  • Prompt Cache:复用相同输入前缀的模型计算。
  • 答案缓存:应用直接复用此前的输出。
  • 前者关注前缀稳定与服务商命中条件。
  • 后者关注身份、权限、版本、时效和失效。
  • 共同底线:省钱不能换来旧答案或越权答案。
简历汪永久免费在线制作简历,模板直接套用、导出无水印,永久免费、下载免费,不需要付费解锁任何功能。去写简历