Поделиться через


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

Кэширование запросов позволяет сократить общую задержку запроса и затраты на более длинные запросы, имеющие идентичное содержимое в начале запроса. "Запрос" в этом контексте ссылается на входные данные, которые вы отправляете модели в рамках запроса завершения чата. Вместо повторной обработки одинаковых входных маркеров снова и снова модель может сохранить временный кэш обработанных входных данных для повышения общей производительности. Кэширование запросов не влияет на выходное содержимое, возвращаемое в ответе модели, за пределами сокращения задержки и затрат. Для поддерживаемых моделей кэшированные маркеры выставляются по тарифу на 50 % по ценам на входной токен.

Поддерживаемые модели

В настоящее время только следующие модели поддерживают кэширование запросов с помощью Azure OpenAI:

  • o1-preview-2024-09-12
  • o1-mini-2024-09-12
  • gpt-4o-2024-05-13
  • gpt-4o-2024-08-06
  • gpt-4o-mini-2024-07-18

поддержка API

Официальная поддержка кэширования запросов была добавлена в версию 2024-10-01-previewAPI. В настоящее время поддерживаются только o1-preview-2024-09-12 o1-mini-2024-09-12 модели cached_tokens ответа API.

Начало работы

Чтобы запрос воспользовался кэшированием запроса, должен быть как:

  • Длина не менее 1024 токенов.
  • Первые 1024 токенов в запросе должны быть идентичными.

При обнаружении совпадения между запросом и текущим содержимым кэша запросов он называется хитом кэша. Хиты кэша будут отображаться в cached_tokens prompt_token_details ответе завершения чата.

{
  "created": 1729227448,
  "model": "o1-preview-2024-09-12",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_50cdd5dc04",
  "usage": {
    "completion_tokens": 1518,
    "prompt_tokens": 1566,
    "total_tokens": 3084,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 576
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 1408
    }
  }
}

После первых попаданий кэша маркеров 1024 будет выполняться каждые 128 дополнительных идентичных токенов.

Одно символьное различие в первых 1024 токенах приведет к пропуску кэша, который характеризуется cached_tokens значением 0. Кэширование запросов включено по умолчанию без дополнительной конфигурации, необходимой для поддерживаемых моделей.

Что кэшируется?

Модели серии O1 — это только текст и не поддерживают системные сообщения, изображения, вызовы инструментов или вызовы функций или структурированные выходные данные. Это ограничивает эффективность кэширования запросов для этих моделей до частей массива сообщений пользователя или помощника, которые, скорее всего, имеют идентичный префикс маркера 1024.

Для gpt-4o и gpt-4o-mini моделей кэширование запросов поддерживается для следующих вариантов:

Поддерживается кэширование Description
Сообщения Полный массив сообщений: системное, пользовательское и помощникное содержимое
Изображения Изображения, включенные в сообщения пользователя, как ссылки, так и данные в кодировке Base64. Параметр сведений должен быть задан одинаково в запросах.
Использование инструмента Как массив сообщений, так и определения инструментов
Структурированные выходные данные Структурированная выходная схема добавляется в виде префикса к системному сообщению

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

Можно ли отключить кэширование запросов?

Кэширование запросов включено по умолчанию. Нет возможности отказаться.

Как выполняется кэширование запросов для подготовленных развертываний?

Для поддерживаемых моделей для подготовленных развертываний мы скидываем до 100 % кэшированных входных маркеров. Дополнительные сведения см. в документации по подготовленной пропускной способности.