Кеширование запросов
Кэширование промптов
Уменьшите стоимость использования моделей ИИ с помощью функции кэширования промптов AITUNNEL. Узнайте, как кэшировать и повторно использовать ответы для моделей OpenAI, Anthropic Claude, DeepSeek и других.
Для экономии на стоимости запросов вы можете включить кэширование промптов для поддерживаемых провайдеров и моделей.
Большинство провайдеров автоматически включают кэширование промптов, но обратите внимание, что некоторые (например, Anthropic) требуют включения кэширования для каждого сообщения отдельно.
В AITUNNEL при работе с кэшированием используется sticky routing: повторные запросы стараются направляться к тому же провайдеру для повышения cache hit.
Особенности sticky routing:
- Привязка включается только если чтение из кэша у провайдера выгоднее обычной цены входных токенов.
- Если sticky-провайдер недоступен, используется автоматический fallback.
- Если в запросе задан явный порядок провайдеров, sticky routing не применяется.
- Привязка ведётся на уровне аккаунта, модели и диалога.
- Для идентификации диалога используется хеш первых сообщений (system/developer + первого non-system), чтобы разные диалоги естественно распределялись между провайдерами.
Как проверить использование кэша
Проверить эффект кэширования можно:
- В деталях генерации в интерфейсе AITUNNEL (история/логи запросов).
- Через API генераций/логов в вашем проекте.
- Через объект
usage.prompt_tokens_detailsв ответе модели.
Поле cache_discount в ответе показывает экономию от кэша. Для некоторых провайдеров (например, Anthropic) запись в кэш может давать отрицательный discount, а чтение из кэша — положительный.
Пример полей в ответе:
{
"usage": {
"prompt_tokens": 10339,
"completion_tokens": 60,
"total_tokens": 10399,
"prompt_tokens_details": {
"cached_tokens": 10318,
"cache_write_tokens": 0
}
}
}cached_tokens— токены, считанные из кэша (cache hit).cache_write_tokens— токены, записанные в кэш при создании новой кэш-записи.
OpenAI
Изменения в ценообразовании при кэшировании:
- Запись в кэш: бесплатно
- Чтение из кэша: (в зависимости от модели) оплачивается по цене 0.25x или 0.50x от оригинальной стоимости входных токенов
Нажмите здесь, чтобы посмотреть цены на кэширование для каждой модели OpenAI.
Кэширование промптов с OpenAI происходит автоматически и не требует дополнительной настройки. Минимальный размер промпта составляет 1024 токена.
Нажмите здесь, чтобы узнать больше о кэшировании промптов OpenAI и его ограничениях.
Grok
Изменения в ценообразовании при кэшировании:
- Запись в кэш: бесплатно
- Чтение из кэша: оплачивается по коэффициенту к входной цене (зависит от модели)
Нажмите здесь, чтобы посмотреть цены Grok по моделям.
Кэширование промптов с Grok происходит автоматически и не требует дополнительной настройки.
Moonshot AI
Изменения в ценообразовании при кэшировании:
- Запись в кэш: бесплатно
- Чтение из кэша: оплачивается по коэффициенту к входной цене (зависит от модели)
Кэширование промптов с Moonshot AI происходит автоматически и не требует дополнительной настройки.
Groq
Изменения в ценообразовании при кэшировании:
- Запись в кэш: бесплатно
- Чтение из кэша: оплачивается по коэффициенту к входной цене (зависит от модели)
Кэширование промптов с Groq происходит автоматически и не требует дополнительной настройки. На текущий момент доступно для моделей Kimi K2.
Нажмите здесь, чтобы посмотреть документацию Groq по кэшированию.
Anthropic Claude
Изменения в ценообразовании при кэшировании:
- Запись в кэш (TTL 5 минут): ~1.25x от стоимости входных токенов
- Запись в кэш (TTL 1 час): 2x от стоимости входных токенов
- Чтение из кэша: дешевле обычного входа (точное значение зависит от модели/провайдера)
Кэширование с Anthropic поддерживает два режима:
- Автоматическое кэширование:
cache_controlзадаётся на верхнем уровне запроса (лучше для многошаговых диалогов). - Явные точки кэширования:
cache_controlставится на конкретные блоки контента (тонкая настройка).
Для явного кэширования есть ограничение: максимум 4 breakpoint в одном запросе. Рекомендуется использовать их для больших блоков: character cards, CSV, RAG-контекст, главы книг и т.д.
По умолчанию TTL — 5 минут. Для продления до 1 часа используйте "ttl": "1h" внутри cache_control.
Важно: top-level
cache_controlдля автоматического кэширования работает только при маршрутизации в Anthropic. Для Bedrock/Vertex используйте per-blockcache_control.
Нажмите здесь, чтобы узнать больше о кэшировании промптов Anthropic и его ограничениях.
Точка разрыва cache_control может быть вставлена только в текстовую часть мультимодального сообщения.
Параметры TTL (Anthropic)
- 5 минут (по умолчанию):
{
"cache_control": { "type": "ephemeral" }
}- 1 час:
{
"cache_control": { "type": "ephemeral", "ttl": "1h" }
}TTL 1 час полезен для длинных сессий, где важно реже переписывать кэш.
Автоматическое кэширование (рекомендуется для multi-turn)
{
"model": "claude-sonnet-4.6",
"cache_control": { "type": "ephemeral" },
"messages": [
{
"role": "system",
"content": "Вы историк, изучающий падение Римской империи. Вы хорошо знаете следующую книгу: БОЛЬШОЙ ТЕКСТ"
},
{
"role": "user",
"content": "Что послужило причиной краха?"
}
]
}По мере роста диалога cache breakpoint автоматически сдвигается вперёд и покрывает всё большую часть истории сообщений.
Автоматическое кэширование с TTL 1 час:
{
"model": "claude-sonnet-4.6",
"cache_control": { "type": "ephemeral", "ttl": "1h" },
"messages": [
{
"role": "system",
"content": "Вы полезный ассистент."
},
{
"role": "user",
"content": "В чем смысл жизни?"
}
]
}Явные точки кэширования (fine-grained control)
Пример кэширования системного сообщения (TTL 5 минут):
{
"messages": [
{
"role": "system",
"content": [
{
"type": "text",
"text": "Вы историк, изучающий падение Римской империи. Вы хорошо знаете следующую книгу:"
},
{
"type": "text",
"text": "БОЛЬШОЙ ТЕКСТ",
"cache_control": {
"type": "ephemeral"
}
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Что послужило причиной краха?"
}
]
}
]
}Пример кэширования пользовательского сообщения (TTL 1 час):
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Учитывая книгу ниже:"
},
{
"type": "text",
"text": "БОЛЬШОЙ ТЕКСТ",
"cache_control": {
"type": "ephemeral",
"ttl": "1h"
}
},
{
"type": "text",
"text": "Перечислите всех персонажей в книге выше"
}
]
}
]
}Поддерживаемые модели
Следующие модели Claude поддерживают prompt caching (автоматический и явный):
- Claude Opus 4.6
- Claude Opus 4.5
- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4.6
- Claude Sonnet 4.5
- Claude Sonnet 4
- Claude Sonnet 3.7 (deprecated)
- Claude Haiku 4.5
- Claude Haiku 3.5
Минимальные требования по токенам (Anthropic)
Минимальный кэшируемый размер prompt зависит от модели:
- 4096 токенов: Claude Opus 4.6, Claude Opus 4.5, Claude Haiku 4.5
- 2048 токенов: Claude Sonnet 4.6, Claude Haiku 3.5
- 1024 токенов: Claude Sonnet 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4, Claude Sonnet 3.7
Промпты короче этих порогов не будут кэшироваться.
DeepSeek
Изменения в ценообразовании при кэшировании:
- Запись в кэш: оплачивается по той же цене, что и оригинальные входные токены
- Чтение из кэша: оплачивается по коэффициенту к входной цене (зависит от модели/провайдера)
Кэширование промптов с DeepSeek происходит автоматически и не требует дополнительной настройки.
Google Gemini
Неявное кэширование
Модели Gemini 2.5 Pro и 2.5 Flash теперь поддерживают неявное кэширование, предоставляя автоматическую функциональность кэширования, аналогичную автоматическому кэшированию OpenAI. Неявное кэширование работает бесшовно — не требуется ручная настройка или дополнительные точки разрыва cache_control.
Изменения в ценообразовании:
- Нет стоимости записи или хранения в кэше.
- Кэшированные токены оплачиваются по коэффициенту к входной цене (зависит от модели/провайдера).
Обратите внимание, что время жизни кэша (TTL) в среднем составляет 3-5 минут, но может варьироваться. Для Gemini 2.5 Flash требуется минимум 2048 токенов, а для Gemini 2.5 Pro — 4096 токенов, чтобы запросы могли быть кэшированы.
Официальное объявление от Google
TIP
Для максимизации попаданий в неявный кэш, сохраняйте начальную часть ваших массивов сообщений согласованной между запросами. Размещайте вариации (такие как вопросы пользователя или динамические элементы контекста) ближе к концу вашего промпта/запросов.
Изменения в ценообразовании для кэшированных запросов:
- Запись в кэш: Оплачивается по стоимости входных токенов плюс 5 минут хранения в кэше, рассчитывается следующим образом:
Стоимость записи в кэш = Цена входных токенов + (Цена хранения в кэше × (5 минут / 60 минут))- Чтение из кэша: Оплачивается по коэффициенту к входной цене (зависит от модели/провайдера).
Поддерживаемые модели и ограничения:
Только определенные модели Gemini поддерживают кэширование. Пожалуйста, обратитесь к документации по ценообразованию API Gemini для получения актуальной информации.
Записи в кэш имеют время жизни (TTL) 5 минут, которое не обновляется. После 5 минут кэш истекает и должна быть создана новая запись в кэше.
Модели Gemini обычно имеют минимум 4096 токенов для записи в кэш. Кэшированные токены учитываются в максимальном использовании токенов модели. Gemini 2.5 Pro имеет минимум 4096 токенов, а Gemini 2.5 Flash имеет минимум 2048 токенов.
Как работает кэширование промптов Gemini в AITUNNEL:
AITUNNEL упрощает управление кэшем Gemini, абстрагируя сложности:
- Вам не нужно вручную создавать, обновлять или удалять кэши.
- Вам не нужно явно управлять именами кэша или TTL.
Как включить кэширование промптов Gemini:
Кэширование Gemini в AITUNNEL требует явного вставления точек разрыва cache_control в содержимое сообщения, аналогично Anthropic. Мы рекомендуем использовать кэширование в основном для больших блоков контента (таких как CSV-файлы, длинные карточки персонажей, данные RAG или обширные текстовые источники).
TIP
Нет ограничения на количество точек разрыва cache_control, которые вы можете включить в ваш запрос. AITUNNEL будет использовать только последнюю точку разрыва для кэширования Gemini. Включение нескольких точек разрыва безопасно и может помочь сохранить совместимость с Anthropic, но только последняя будет использоваться для Gemini.
Примеры:
Пример кэширования системного сообщения
{
"messages": [
{
"role": "system",
"content": [
{
"type": "text",
"text": "Вы историк, изучающий падение Римской империи. Ниже приведена обширная справочная книга:"
},
{
"type": "text",
"text": "БОЛЬШОЙ ТЕКСТ ЗДЕСЬ",
"cache_control": {
"type": "ephemeral"
}
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Что послужило причиной краха?"
}
]
}
]
}Пример кэширования пользовательского сообщения
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "На основе текста книги ниже:"
},
{
"type": "text",
"text": "БОЛЬШОЙ ТЕКСТ ЗДЕСЬ",
"cache_control": {
"type": "ephemeral"
}
},
{
"type": "text",
"text": "Перечислите всех основных персонажей, упомянутых в тексте выше."
}
]
}
]
}