Кеширование промптов (Anthropic)
Кеширование длинных промптов для удешевления повторных вызовов с тем же контекстом.
Anthropic-модели (Claude) поддерживают кеширование частей промпта на стороне провайдера. Это даёт значительную экономию, когда вы много раз отправляете один и тот же длинный системный промпт или контекст с разными user-сообщениями.
Когда это работает
- Длинный системный промпт (≥1024 токена) — описание роли ассистента, гайдлайны, документация.
- Большой контекст в начале — RAG-сниппеты, долгая история диалога.
- Повторные вызовы в течение 5 минут — Anthropic кешит на ~5-минутный TTL.
Если у вас короткий промпт или вы дёргаете API раз в час — кеширование не сэкономит ничего.
Как включить
Передайте cache_control в content-блоке сообщения:
curl -s https://api.hubris.pw/v1/chat/completions \
-H "Authorization: Bearer sk-gw-..." \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [
{
"role": "system",
"content": [
{
"type": "text",
"text": "Очень длинная инструкция на 5000 токенов...",
"cache_control": {"type": "ephemeral"}
}
]
},
{
"role": "user",
"content": "Ваш вопрос"
}
]
}'Маркер cache_control: { type: "ephemeral" } ставится на content-блок, который вы хотите закешировать. Часто это весь системный промпт или большой документ в начале первого user-сообщения.
Биллинг
В ответе usage появятся дополнительные поля от Anthropic:
{
"usage": {
"prompt_tokens": 5050,
"completion_tokens": 100,
"prompt_tokens_details": {
"cached_tokens": 5000
}
}
}cached_tokens — то, что было прочитано из кеша. У Anthropic стоимость cache-read обычно в 10× дешевле обычных prompt-токенов; cache-write — в 1.25× дороже.
Кеш учитывается в стоимости: списываем по фактической цене апстрима — чтение из кеша дешевле обычного входа, запись кеша дороже. Разбивку по токенам кеша и сэкономленную сумму видно в ответе GET /v1/usage (поля cache_read_tokens, cache_write_tokens, cache_savings_rub) и в кабинете (вкладка «Активность»).
Токены кеша в /v1/usage
После вызовов с кешированием объект totals в ответе GET /v1/usage содержит дополнительные поля:
| Поле | Описание |
|---|---|
cache_read_tokens | Токены, прочитанные из кеша. Суммируются вместе с prompt_tokens для подсчёта всего входа. |
cache_write_tokens | Токены, записанные в кеш при первом обращении. |
reasoning_tokens | Токены внутреннего рассуждения модели — подмножество completion_tokens. |
cache_hit_rate | Доля попаданий в кеш за выбранный период (0..1). |
Поля cache_savings_kopecks и cache_savings_rub показывают, сколько за период сэкономлено благодаря кешу, — нетто относительно полной входной ставки.
Что закешировать
Эффективные кандидаты:
- System prompt с гайдлайнами и примерами (5–20k токенов) — основная экономия.
- RAG-контекст — если шлёте те же документы много раз в течение 5 минут.
- Длинный one-shot пример — для классификаторов или агентов.
Не имеет смысла кешировать:
- Каждое user-сообщение (они уникальны).
- Маленькие промпты (< 1024 токена).
- Запросы реже раза в 5 минут (cache TTL истечёт).
Что дальше
- POST /v1/chat/completions — полная схема.
- Каталог моделей — какие Anthropic-модели доступны.
- Цены — про токенный биллинг.
Обновлено: