文档OriHub
Prompt 缓存
缓存命中和缓存创建是分开计价的两个维度;缓存本身由上游做,平台透传。
Prompt 缓存在平台上有三个计费维度:缓存命中价、5 分钟缓存创建价、1 小时缓存创建价。命中的部分按便宜的那个算,没命中的部分照常按输入价算。
价在哪看
每条渠道分组的定价里都有这三个字段:
| 字段 | 含义 |
|---|---|
input_cache_hit_price |
缓存命中价 |
input_cache_write_5m_price |
5 分钟缓存创建价 |
input_cache_write_1h_price |
1 小时缓存创建价 |
值是 0 表示这条渠道没有这个计费维度 —— 比如只支持 5 分钟缓存的渠道,1 小时那项就是 0。
查一个模型的全部渠道定价:
curl https://api.lk888.ai/v1/skills/models/tt-6-luna/pricing \
-H "Authorization: Bearer $OPENAI_API_KEY"
返回里每个渠道分组一份,还带 tier2_* / tier3_* —— 那是按上下文长度分的档位,各档有自己的输入价和缓存价。
默认返回所有渠道分组(包括 is_active=false 的,那些不是永久关闭,平台可能随时开关)。只看当前在跑的加 ?status=active。
怎么触发
缓存是各家上游自己做的,平台原样透传,请求里该怎么标就怎么标:
- Anthropic 格式 —— 在
messages或system的内容块上打cache_control断点,指定要缓存到哪一段 - OpenAI 格式 —— 上游自动缓存,相同前缀的请求直接命中,不用自己标断点
断点能打几个、TTL 怎么选、命中条件是什么,都以各家的 API 文档为准,平台不改。
怎么看有没有命中
响应里的 usage 会把缓存部分单独算出来(字段名跟上游一致,Anthropic 格式是 cache_read_input_tokens / cache_creation_input_tokens,OpenAI 格式在 prompt_tokens_details.cached_tokens)。
特别注意
- 换线路就不命中。缓存是上游按线路维度存的,平台按密钥的调度策略选线路 —— 这次选了另一条渠道,前缀再一样也命不中
- 分组路由的三个字段都不改路由:请求体里的
channel_group和请求头X-Channel-Group都不影响选路,只会被透传给上游 - 缓存价也是分档的。上下文跨过
tier2_threshold/tier3_threshold之后,输入价和缓存价都会换档 - 分组路由由密钥的调度策略决定(价格优先 / 速度优先 / 成功率优先),要缓存稳定命中,一般让策略固定在同一条线路上