评测与 CI 运行
测试套件和提示词评测每次运行都发送相同的请求。放在网关后面,只有改动过的提示词才会产生费用。
将您的 OpenAI 或 Anthropic SDK 指向一个 URL,重复的请求就由 HotKV 作答,不必再次付费。无需修改代码。
在服务商前面放一个二进制文件或容器。调用方自己的 API 密钥会被转发,因此网关本身不需要密钥。
使用真实 HotKV 命令和示例回复的动画演示。点击任意步骤即可跳转。 命令和回复保持英文,与您在 HotKV 中输入和看到的完全一致。
大部分 LLM 流量都在重复。同样的系统提示词和问题来自不同的用户、重试和测试运行,一遍又一遍,每一次都要计费。在每个服务、您用到的每种语言里各自加一层缓存,既费时又容易出错。
hotkv-gateway 位于您的应用和 LLM API 之间。改一下 SDK 的 base URL,相同的请求就由 HotKV 返回,流式响应会以流的形式重放,换了说法的问题可以按语义作答,同时在途的相同请求共享一次上游调用。如果 HotKV 变慢或宕机,请求会直接发往服务商。
在服务商前面放一个二进制文件或容器。调用方自己的 API 密钥会被转发,因此网关本身不需要密钥。
hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small还没有任何缓存。请求发往上游一次,完成的 200 响应被存储下来。
curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache完全相同的请求,即使键的顺序不同,也由 HotKV 作答,根本不会到达服务商。
curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache开启语义缓存后,措辞不同的单轮问题可以用相似问题的答案来回答。
curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @rephrased.json | grep -i x-hotkv-cache第一个请求还在途中时,又来了三个相同的请求。它们共享一次上游调用。
for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done测试套件和提示词评测每次运行都发送相同的请求。放在网关后面,只有改动过的提示词才会产生费用。
Python 后端、Node.js worker 和 Go 服务只需改一个 base URL 就能共用同一个缓存,无需为每种语言引入库。
放在 vLLM 或 Ollama 前面时,网关节省的是 GPU 时间而不是 API 费用,因为重复的提示词根本不会到达模型服务器。
相同的 chat、completion 和 embeddings 请求都会被缓存,单轮聊天问题还可以按语义匹配(--semantic)。
流式响应会被捕获并以流的形式重放,客户端的行为与之前完全一致。
每个 API 密钥都有自己的缓存。错误和被过滤的答案从不存储,请求还可以通过一个请求头跳过缓存。
如果 HotKV 变慢或不可用,请求会直接发往服务商。网关还会在 /_hotkv/metrics 上报告各项数据。
from openai import OpenAI client = OpenAI(base_url="http://localhost:8080/v1") # the only change # For Anthropic: start the gateway with --upstream https://api.anthropic.com import anthropic client = anthropic.Anthropic(base_url="http://localhost:8080")
不需要。它可以在任何 HotKV 服务器上运行。如果许可证包含提示词缓存,条目会存放在 PCACHE 命名空间中,HotKV 还会统计节省的 token。语义缓存始终需要许可证。
不会。缓存键包含调用方的凭据,因此每个 API 密钥都有自己的缓存,除非您在网关中只保留一个上游密钥,或用 --scope global 启动它。
OpenAI、Azure OpenAI、OpenRouter、vLLM、Ollama、LiteLLM 以及其他任何兼容 OpenAI API 的服务,另外 Anthropic 的 Messages API 支持精确缓存。