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


Включение семантического кэширования для API Azure OpenAI в Azure Управление API

Включение семантического кэширования ответов на запросы API OpenAI Azure для уменьшения требований к пропускной способности и обработке, введенных для внутренних API и снижения задержки, воспринимаемой потребителями API. С помощью семантического кэширования можно возвращать кэшированные ответы для идентичных запросов, а также для запросов, аналогичных по значению, даже если текст не совпадает. Дополнительные сведения см. в руководстве. Использование Кэш Azure для Redis в качестве семантического кэша.

Необходимые компоненты

Тестирование развертывания API чата

Сначала проверьте развертывание Azure OpenAI, чтобы убедиться, что API завершения чата или API чата работают должным образом. Инструкции см. в статье "Импорт API OpenAI Azure" в Управление API Azure.

Например, протестируйте API чата Azure OpenAI, отправив запрос POST в конечную точку API с запросом в тексте запроса. Ответ должен включать завершение запроса. Пример запроса:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

с текстом запроса:

{"messages":[{"role":"user","content":"Hello"}]}

После успешного выполнения запроса ответ включает завершение сообщения чата.

Создание серверной части ДЛЯ API внедрения

Настройте внутренний ресурс для развертывания API внедрения с помощью следующих параметров:

  • Имя — имя выбранного варианта, например embeddings-backend. Это имя используется для ссылки на серверную часть в политиках.
  • Тип — выбор пользовательского URL-адреса.
  • URL-адрес среды выполнения— URL-адрес развертывания API внедрения в службе Azure OpenAI, аналогичный следующему: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Проверка серверной части

Чтобы протестировать серверную часть, создайте операцию API для API службы Azure OpenAI:

  1. На вкладке конструктора API нажмите кнопку +Добавить операцию.
  2. Введите отображаемое имя и необязательно имя для операции.
  3. В разделе frontend в URL-адресе выберите POST и введите путь/.
  4. На вкладке "Заголовки" добавьте обязательный заголовок с именем Content-Type и значением application/json.
  5. Выберите Сохранить

Настройте следующие политики в разделе обработки входящих данных операции API. В политике set-backend-service замените имя созданной серверной части.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

На вкладке "Тест" проверьте операцию, добавив api-version параметр запроса со значением, 2024-02-01например. Укажите допустимый текст запроса. Например:

{"input":"Hello"}

Если запрос выполнен успешно, ответ включает векторное представление входного текста:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Настройка политик семантического кэширования

Настройте следующие политики, чтобы включить семантический кэширование для API OpenAI в Azure Управление API:

  • В разделе "Входящий трафик" для API добавьте политику поиска azure-openai-semantic-cache-lookup. В атрибуте embeddings-backend-id укажите созданную серверную часть API Внедрения.

    Пример:

    <azure-openai-semantic-cache-lookup
        score-threshold="0.8"
        embeddings-backend-id="embeddings-deployment"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    
    
  • В разделе "Исходящая обработка" для API добавьте политику azure-openai-semantic-cache-store.

    Пример:

    <azure-openai-semantic-cache-store duration="60" />
    

Подтверждение кэширования

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

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

Снимок экрана: трассировка запроса в портал Azure.