Включение семантического кэширования для API Azure OpenAI в Azure Управление API
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Включение семантического кэширования ответов на запросы API OpenAI Azure для уменьшения требований к пропускной способности и обработке, введенных для внутренних API и снижения задержки, воспринимаемой потребителями API. С помощью семантического кэширования можно возвращать кэшированные ответы для идентичных запросов, а также для запросов, аналогичных по значению, даже если текст не совпадает. Дополнительные сведения см. в руководстве. Использование Кэш Azure для Redis в качестве семантического кэша.
Примечание.
Действия по настройке, описанные в этой статье, позволяют включить семантический кэширование для API-интерфейсов OpenAI Azure. Эти шаги можно обобщить, чтобы включить семантические кэширования для соответствующих API больших языковых моделей (LLM), доступных через API вывода модели ИИ Azure.
Необходимые компоненты
- В Управление API экземпляр необходимо добавить один или несколько API-интерфейсов службы Azure OpenAI. Дополнительные сведения см. в статье "Добавление API службы Azure OpenAI" в Azure Управление API.
- Служба Azure OpenAI должна иметь следующие развертывания:
- API завершения чата (или API завершения) — развертывание, используемое для вызовов потребителей API
- API внедрения — развертывание, используемое для семантического кэширования
- Экземпляр Управление API необходимо настроить для использования проверки подлинности управляемого удостоверения в API Azure OpenAI. Дополнительные сведения см. в статье "Аутентификация и авторизация доступа к API Azure OpenAI" с помощью Azure Управление API.
- Экземпляр Кэш Azure для Redis Enterprise или Управляемый Redis Azure. Модуль RediSearch должен быть включен в кэше Redis.
Примечание.
Модуль RediSearch можно включить только при создании нового кэша Redis Enterprise или Управляемого Redis Azure. Невозможно добавить модуль в существующий кэш. Подробнее
- Внешний кэш, настроенный в экземпляре Управление API Azure. Инструкции см. в статье Об использовании внешнего кэша, совместимого с Redis, в Azure Управление API.
Тестирование развертывания 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:
- На вкладке конструктора API нажмите кнопку +Добавить операцию.
- Введите отображаемое имя и необязательно имя для операции.
- В разделе frontend в URL-адресе выберите POST и введите путь
/
. - На вкладке "Заголовки" добавьте обязательный заголовок с именем
Content-Type
и значениемapplication/json
. - Выберите Сохранить
Настройте следующие политики в разделе обработки входящих данных операции 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 Внедрения.Примечание.
При включении семантического кэширования для других крупных API-интерфейсов языковой модели используйте политику подстановки llm-semantic-cache-lookup .
Пример:
<azure-openai-semantic-cache-lookup score-threshold="0.8" embeddings-backend-id="embeddings-deployment" 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 для Redis
- Возможности шлюза GenAI в Azure Управление API