Когда ваш движок локализации переводит текст, часть промпта, который он отправляет в LLM, остаётся одинаковой для всех запросов, а часть меняется от запроса к запросу. Кэширование промпта позволяет движку повторно использовать стабильную часть вместо того, чтобы каждый раз заново оплачивать её обработку. Эти повторно используемые токены отображаются в статистике использования как токены кэша и стоят лишь часть цены обычных входных токенов.
Как формируется промпт перевода#
Каждый запрос, который движок отправляет модели, собирается из нескольких слоёв. Некоторые из них остаются стабильными для всех запросов в рамках одного и того же движка и локали, а один слой — динамический и меняется от запроса к запросу.
| Слой | Стабильный или динамический | Кэшируется |
|---|---|---|
| Системный промпт — идентичность движка, правила локализации, грамматика | Стабилен для любого движка | Да |
| Ваши инструкции и тональность бренда для каждой локали | Стабильно, пока вы не измените движок | Да |
| Термины глоссария, подобранные для этого конкретного запроса | Динамический — зависит от запроса | Нет |
| Текст для перевода | Динамический | Нет |
Стабильные слои образуют непрерывный префикс в начале промпта. Движок помечает конец этого префикса как точку отсечения кэша: всё, что находится до неё, можно кэшировать и использовать повторно, а всё, что после неё — глоссарий для конкретного запроса, примеры и входной текст — отправляется заново при каждом запросе.
Почему глоссарий не кэшируется
Глоссарий подбирается для каждого запроса на основе конкретного текста, который вы переводите, поэтому он меняется от запроса к запросу. Если оставлять его после точки отсечения кэша, остальная часть промпта будет пригодна для повторного использования независимо от того, какие термины глоссария подтянет конкретный запрос.
Почему кэшированный ввод дешевле#
Первый запрос для конкретного движка и локали записывает стабильный префикс в кэш провайдера. Каждый следующий запрос, который повторно использует этот префикс, считывает его из кэша вместо повторной обработки с нуля. Провайдеры тарифицируют чтение из кэша лишь как долю от обычной стоимости входных токенов, поэтому основная часть вашего промпта — та, что никогда не меняется, — перестаёт заново оплачиваться по полной цене при каждом запросе.
Кэш живёт недолго и управляется провайдером модели, а не вашим движком. Это значит, что максимальная выгода достигается, когда вы много переводите в рамках одного и того же движка и локали за короткий промежуток времени: запросы приходят, пока префикс ещё тёплый, и считываются напрямую из кэша.
Кэширование работает автоматически
Ничего настраивать не нужно. Будет ли запрос использовать кэширование, зависит от модели, которая его обрабатывает: модели Anthropic и Google используют явные точки отсечения кэша, модели OpenAI сами кэшируют длинные префиксы, а некоторые провайдеры не поддерживают кэширование вовсе. Движок выбирает нужное поведение для каждой модели.
Что это даёт#
- Меньше расходов — за стабильный префикс вы платите один раз по полной цене, а затем по сниженной ставке чтения из кэша при каждом повторном запросе.
- Ниже задержка — кэшированные токены не нужно обрабатывать заново, поэтому тёплые запросы возвращаются быстрее.
- Без настройки — кэширование включено по умолчанию, и в конфигурации движка ничего дополнительно включать не нужно.
Эффект нарастает при стабильном потоке запросов к одному и тому же движку и локали — именно так обычно и выглядит production-пайплайн локализации, где одна и та же конфигурация обрабатывает запрос за запросом.
Как читать токены кэша в статистике использования#
В каждом ответе на перевод есть разбивка использования, где токены кэша отделены от новых входных токенов:
{
"usage": {
"inputTokens": 1200,
"outputTokens": 800,
"cacheReadTokens": 950,
"cacheWriteTokens": 0
}
}| Поле | Значение |
|---|---|
inputTokens | Токены промпта, заново обработанные в рамках этого запроса |
outputTokens | Токены, сгенерированные моделью |
cacheReadTokens | Токены промпта, полученные из кэша провайдера. 0, если ничего не было закэшировано. |
cacheWriteTokens | Токены промпта, записанные в кэш в рамках этого запроса — промах кэша / первый вызов. |
Первый запрос для движка и локали обычно показывает положительное значение cacheWriteTokens (префикс записывается) и cacheReadTokens, равное 0. В последующих запросах, пока кэш ещё тёплый, картина меняется: cacheReadTokens растёт, а cacheWriteTokens падает до 0. Отслеживайте суммарное использование токенов по всем вашим движкам в разделе Reports.
