用途:为 LLM 应用提供语义缓存,按语义相似度而非精确字符串匹配复用已有响应,从而减少模型调用与成本。
主要能力:
- 多级缓存层级:请求依次经过 L1 精确匹配(约 1ms)、L2 语义匹配(约 10ms)、L3 提示缓存(约 2s)、L4 实际 LLM 调用(约 3s)。L1 与 L2 命中可 100% 节省,L3 约 90%。
- Redis 语义缓存服务:使用 redisvl 的 SearchIndex 与 VectorQuery,按 agent_type 等元数据过滤,通过向量距离判断是否命中,并设置 TTL(示例为 86400 秒即 24 小时)。
- 相似度阈值:提供阈值与距离对照表,默认建议 0.92,可按命中率调优。
- 混合检索:Redis 8.4+ 的 FT.HYBRID 在单次查询中结合向量相似度与关键词匹配,使用 RRF 融合分数,BM25STD 为关键词默认评分器。
使用方式:需 Redis 8+(Search、JSON、TimeSeries、Bloom 模块已内置,无需单独安装 Redis Stack,Docker 可用 redis:8)。通过 redisvl 建立索引并执行向量查询;命中后可将 L2 结果提升到 L1。示例代码展示了 get/set 方法、embedding 生成、元数据过滤与过期设置。
适用场景:需要按语义复用 LLM 响应的应用;多租户缓存中要求精确租户匹配并叠加语义相似度;需要按元数据(agent_type、tenant、category)过滤的缓存。
限制与注意事项:阈值过低会产生误命中;冷启动缺少缓存预热;缺少元数据过滤会降低准确性;未将 L2 命中提升到 L1 会损失性能。具体部署环境、成本收益与效果数据暂未提供。