# LiteLLM 语义缓存：相似问法可以复用，只有一个否定词不同也要避免误命中

已执行作者语义分值与否定意图反例审计；未运行embedding、LiteLLM缓存或测得真实命中，合成分值明确标注。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 准备同义与否定两类问题

q1/q2意思相近，q3多了否定。应答真假条件不同，不能把“字符串很像”直接当成可共用答案。

## 2. 审计高相似反例

包内0.96/0.98是作者设定分值，不是embedding模型测量。audit.py展示只看阈值会把否定问题错误复用。

## 3. 确认LiteLLM缓存后端和字段

在测试Proxy配置语义缓存与真实embedding提供方，记录缓存键、TTL和阈值作用。先看当前后端文档支持范围。

## 4. 写入允许重启问题的缓存

调用q1保存完整响应、模型、系统提示和缓存状态。不要把来自其他系统约束的缓存混入同一实验。

## 5. 请求同义和否定问题

分别保存q2/q3真实cache-hit字段、相似度与答案。不能为了截图把预期结果预填成缓存响应。

## 6. 收紧高风险复用边界

否定、数量、权限或时间敏感问题可禁用语义缓存或另加确定性键。语义相似不是事实等价，阈值调高也不保证消除误命中。

## 7. 交付命中记录与错误条件

保留三条请求、缓存配置及错误复用样例。本文没有跑embedding或LiteLLM语义缓存，作者分值只用于反例审计。

## 官方依据

- LiteLLM 官方文档或源码：https://docs.litellm.ai/docs/proxy/caching
