Skip to content

Кеширование запросов

Кэширование промптов

Уменьшите стоимость использования моделей ИИ с помощью функции кэширования промптов AITUNNEL. Узнайте, как кэшировать и повторно использовать ответы для моделей OpenAI, Anthropic Claude, DeepSeek и других.

Для экономии на стоимости запросов вы можете включить кэширование промптов для поддерживаемых провайдеров и моделей.

Большинство провайдеров автоматически включают кэширование промптов, но обратите внимание, что некоторые (например, Anthropic) требуют включения кэширования для каждого сообщения отдельно.

В AITUNNEL при работе с кэшированием используется sticky routing: повторные запросы стараются направляться к тому же провайдеру для повышения cache hit.

Особенности sticky routing:

  • Привязка включается только если чтение из кэша у провайдера выгоднее обычной цены входных токенов.
  • Если sticky-провайдер недоступен, используется автоматический fallback.
  • Если в запросе задан явный порядок провайдеров, sticky routing не применяется.
  • Привязка ведётся на уровне аккаунта, модели и диалога.
  • Для идентификации диалога используется хеш первых сообщений (system/developer + первого non-system), чтобы разные диалоги естественно распределялись между провайдерами.

Как проверить использование кэша

Проверить эффект кэширования можно:

  1. В деталях генерации в интерфейсе AITUNNEL (история/логи запросов).
  2. Через API генераций/логов в вашем проекте.
  3. Через объект usage.prompt_tokens_details в ответе модели.

Поле cache_discount в ответе показывает экономию от кэша. Для некоторых провайдеров (например, Anthropic) запись в кэш может давать отрицательный discount, а чтение из кэша — положительный.

Пример полей в ответе:

json
{
  "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-block cache_control.

Нажмите здесь, чтобы узнать больше о кэшировании промптов Anthropic и его ограничениях.

Точка разрыва cache_control может быть вставлена только в текстовую часть мультимодального сообщения.

Параметры TTL (Anthropic)

  • 5 минут (по умолчанию):
json
{
  "cache_control": { "type": "ephemeral" }
}
  • 1 час:
json
{
  "cache_control": { "type": "ephemeral", "ttl": "1h" }
}

TTL 1 час полезен для длинных сессий, где важно реже переписывать кэш.

Автоматическое кэширование (рекомендуется для multi-turn)

json
{
  "model": "claude-sonnet-4.6",
  "cache_control": { "type": "ephemeral" },
  "messages": [
    {
      "role": "system",
      "content": "Вы историк, изучающий падение Римской империи. Вы хорошо знаете следующую книгу: БОЛЬШОЙ ТЕКСТ"
    },
    {
      "role": "user",
      "content": "Что послужило причиной краха?"
    }
  ]
}

По мере роста диалога cache breakpoint автоматически сдвигается вперёд и покрывает всё большую часть истории сообщений.

Автоматическое кэширование с TTL 1 час:

json
{
  "model": "claude-sonnet-4.6",
  "cache_control": { "type": "ephemeral", "ttl": "1h" },
  "messages": [
    {
      "role": "system",
      "content": "Вы полезный ассистент."
    },
    {
      "role": "user",
      "content": "В чем смысл жизни?"
    }
  ]
}

Явные точки кэширования (fine-grained control)

Пример кэширования системного сообщения (TTL 5 минут):

json
{
  "messages": [
    {
      "role": "system",
      "content": [
        {
          "type": "text",
          "text": "Вы историк, изучающий падение Римской империи. Вы хорошо знаете следующую книгу:"
        },
        {
          "type": "text",
          "text": "БОЛЬШОЙ ТЕКСТ",
          "cache_control": {
            "type": "ephemeral"
          }
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Что послужило причиной краха?"
        }
      ]
    }
  ]
}

Пример кэширования пользовательского сообщения (TTL 1 час):

json
{
  "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.

Примеры:

Пример кэширования системного сообщения

json
{
  "messages": [
    {
      "role": "system",
      "content": [
        {
          "type": "text",
          "text": "Вы историк, изучающий падение Римской империи. Ниже приведена обширная справочная книга:"
        },
        {
          "type": "text",
          "text": "БОЛЬШОЙ ТЕКСТ ЗДЕСЬ",
          "cache_control": {
            "type": "ephemeral"
          }
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Что послужило причиной краха?"
        }
      ]
    }
  ]
}

Пример кэширования пользовательского сообщения

json
{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "На основе текста книги ниже:"
        },
        {
          "type": "text",
          "text": "БОЛЬШОЙ ТЕКСТ ЗДЕСЬ",
          "cache_control": {
            "type": "ephemeral"
          }
        },
        {
          "type": "text",
          "text": "Перечислите всех основных персонажей, упомянутых в тексте выше."
        }
      ]
    }
  ]
}

AITUNNEL