LangChain 实践4 7-3 缓存系统搭建

发布时间:2026/6/1 9:13:27

LangChain 实践4 7-3 缓存系统搭建 阶段目标新增语义缓存会话缓存已落地可见阶段 2 多轮对话记忆能力降低模型调用成本、提升响应速度。后端任务统一使用内存缓存简易版复用 LangChain 内置缓存进阶版自研内存缓存 ✅️实现两类缓存逻辑精确匹配LangChain 内置缓存、语义相似匹配自研内存缓存改为 精确匹配和语义相似匹配自研内存缓存 ✅️配置缓存过期规则支持自动 / 手动清理 ✅️LangChain 内置缓存 ❌️本节使用内存缓存(InMemoryCache)使用方式可见LangChain 缓存问题当前项目开启流式输出后LangChain 内置缓存无法生效因其仅支持非流式调用。若要同时保留流式能力、实现精确匹配与语义相似两类缓存并配置过期及清理规则需放弃框架自带缓存在接口层自研内存缓存方案。自研内存缓存精确匹配通过全局字典按 session_id 分组将用户问题与对应回答一一存储提问时先判断问题是否完全一致一致则直接返回缓存答案否则调用模型并缓存新问答。语义相似匹配关键向量相似度匹配向量计算可见embeddings缓存过期与清理本方案采用惰性清理机制管理缓存过期逻辑为每一条缓存数据统一设置固定有效时长数据写入时自动计算并记录过期时间每次查询缓存时会先校验所有条目是否超时自动过滤并移除已过期数据无需额外开启定时任务减少系统资源消耗。同时配套手动清理能力在聊天界面提供入口可一键清空当前会话下的全部缓存内容满足用户重置对话的使用需求。阶段交付✅ 可展示缓存命中状态✅ 接口响应提速✅ 模型 Token 消耗降低运行效果精确匹配首次提问页面明显的流式输出打字机效果耗时再次提问完全相同的问题系统会直接命中本地缓存无需调用大模型几乎瞬时返回结果。耗时若提问内容发生变化系统将无法匹配到有效缓存会自动重新调用大模型生成全新答案耗时与首次提问保持一致。语义相似匹配用 BGE 向量模型计算出的相似度约为0.803这个值触发了语义缓存阈值因此第二次请求直接返回了缓存答案耗时从 5 秒多降到了 0.3 秒性能提升非常明显。缓存过期与清理缓存过期缓存有效期设为1分钟。当用户提问超过 1 分钟后再次输入相同问题时由于原缓存数据已过期系统会判定为未命中缓存转而调用大模型重新生成回答因此接口耗时与首次提问时的响应时间相近。缓存清理点击缓存清理按钮即使第三次提问发生在首次提问后的 1 分钟有效期内但此时缓存已被用户手动清除系统同样无法命中缓存需重新调用大模型生成回答因此耗时仍与首次提问相近。

相关新闻