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


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

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

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

Примечание.

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

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

Тестирование развертывания 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.