语义缓存:让AI响应快10倍,省一半API费

📘 AI教程 💬 🔥 Trending 发布者: leakey
语义缓存:让AI响应快10倍,省一半API费

🩺 摘要

用户问的问题80%是重复的——「你们的退换货政策是什么」「你们支持哪些支付方式」。每次都要调LLM,又慢又贵。语义缓存能解决这个问题。

📝 详情

语义缓存是什么

普通缓存:完全相同的文字才能命中缓存。 语义缓存:意思相近的问题也能命中。

用户1问:「怎么退货?」 用户2问:「退换货流程是什么?」 用户3问:「我想退款,怎么办?」

语义缓存把这三个视为同一个问题,直接从缓存返回答案,不用调LLM。

怎么实现

from sentence_transformers import SentenceTransformer
import numpy as np

model = SentenceTransformer("all-MiniLM-L6-v2")
cache = {}  # 向量→缓存的映射

def semantic_cache(question, threshold=0.85):
    # 向量化当前问题
    q_vec = model.encode(question, normalize_embeddings=True)

    # 找最相似的缓存
    for cached_q, cached_vec in cache.items():
        similarity = np.dot(q_vec, cached_vec)
        if similarity > threshold:
            return cache[cached_q]["answer"]

    # 没命中,调LLM
    answer = call_llm(question)

    # 存缓存
    cache[question] = {"vector": q_vec, "answer": answer}
    return answer

命中率通常在60-80%。也就是说,10次请求里有6-8次不用调LLM。

推荐使用Redis+向量搜索插件的方案做生产级语义缓存。