跳至内容

推理缓存

TensorZero网关支持缓存推理响应以降低延迟并减少成本。 启用缓存后,相同的请求将从缓存中获取,而不会发送给模型提供商,从而实现更快的响应时间和更低的令牌消耗。

使用方法

TensorZero网关支持以下缓存模式:

  • write_only (默认): 仅写入缓存但不提供缓存响应
  • read_only: 仅从缓存读取数据,但不写入新条目
  • on: 同时读取和写入缓存
  • off: 完全禁用缓存

您还可以选择性地为推理读取指定缓存条目的最大存活时间(以秒为单位)。 此参数对推理写入操作无效。

更多详情请参阅API参考文档

示例

from tensorzero import TensorZeroGateway
with TensorZeroGateway.build_http(gateway_url="http://localhost:3000") as client:
response = client.inference(
model_name="openai::gpt-4o-mini",
input={
"messages": [
{
"role": "user",
"content": "What is the capital of Japan?",
}
]
},
cache_options={
"enabled": "on", # read and write to cache
"max_age_s": 3600, # optional: cache entries >1h (>3600s) old are disregarded for reads
},
)
print(response)

技术说明

  • 缓存适用于单个模型请求,而非推理请求。 这意味着以下情况将分别缓存: 同一函数的多个变体; 使用不同参数对同一函数的多次调用; 针对推理时优化的独立模型请求; 等等。
  • max_age_s参数适用于检索缓存的响应。缓存不会自动删除旧条目(即不是TTL)。
  • 当网关返回缓存响应时,使用量字段会被设为零值。
  • 缓存数据存储在ClickHouse中。
  • 对于批量推理,网关仅写入缓存但不提供缓存响应。