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


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Все уровни управления API

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

Примечание.

Действия по настройке, описанные в этой статье, позволяют включить семантический кэширование для API-интерфейсов OpenAI Azure. Эти шаги можно обобщить, чтобы включить семантические кэширования для соответствующих API больших языковых моделей (LLM), доступных через API вывода модели ИИ Azure.

Предварительные условия

Тестирование развертывания 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
  • Учетные данные авторизации— перейдите на вкладку "Управляемое удостоверение ".
    • Идентификатор клиента — выберите назначенное системой удостоверение или введите идентификатор клиента управляемого удостоверения, назначаемого пользователем.
    • Идентификатор ресурса. Введите https://cognitiveservices.azure.com/ для службы Azure OpenAI.

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

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

  1. На вкладке конструктора API нажмите кнопку +Добавить операцию.
  2. Введите отображаемое имя и, по желанию, имя для операции.
  3. В разделе frontend в URL-адресе
  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,
            [...]
        ]
    }]
}

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

Чтобы включить семантическое кэширование для Azure OpenAI API в Azure API Management, примените следующие политики: одна для проверки кэша перед отправкой запросов (поиск) и другая для хранения ответов для дальнейшего повторного использования (store):

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

    Примечание.

    При включении семантического кэширования для других крупных API языковой модели используйте политику llm-semantic-cache-lookup.

    Пример:

    <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.

    Примечание.

    При включении семантического кэширования для других API большой языковой модели используйте политику llm-semantic-cache-store.

    Пример:

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

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

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

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

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