Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Все уровни управления API
Включение семантического кэширования ответов на запросы API LLM для уменьшения требований к пропускной способности и обработке, введенных для внутренних API и снижения задержки, воспринимаемой потребителями API. С помощью семантического кэширования можно возвращать кэшированные ответы для идентичных запросов, а также для запросов, аналогичных значениям, даже если текст не идентичен. Для информации см. в руководстве: Использование управляемого Redis в Azure в качестве семантического кэша.
Примечание.
Действия по настройке, описанные в этой статье, показаны, как включить семантическое кэширование для API, добавленных в службу управления API от Azure OpenAI в моделях Microsoft Foundry. Вы можете применить аналогичные шаги, чтобы включить семантический кэширование для соответствующих API больших языковых моделей (LLM), доступных через API вывода модели ИИ Azure или с моделями, совместимыми с OpenAI, обслуживаемых сторонними поставщиками вывода.
Предварительные условия
Добавьте одно или несколько развертываний Azure OpenAI в модели Microsoft Foundry в качестве API в экземпляр управления API. Дополнительные сведения см. в статье "Добавление API OpenAI Azure в службу управления API Azure".
Создайте развертывания для следующих API:
- API завершения чата — развертывание, используемое для вызовов клиентов API
- API встраивания — развертывание, используемое для семантического кэширования.
Настройте экземпляр API Management для использования аутентификации с управляемым удостоверением в Azure OpenAI API. Дополнительные сведения см. в статье "Аутентификация и авторизация доступа к API Azure OpenAI" с помощью Azure Управление API.
Экземпляр Управляемого Redis Azure с модулем RediSearch , включенным в кэше Redis.
Примечание.
Модуль RediSearch можно включить только при создании нового кэша Управляемого Redis в Azure. Невозможно добавить модуль в существующий кэш. Подробнее
Настройте управляемый экземпляр Redis Azure в качестве внешнего кэша в экземпляре Azure API Management. Инструкции см. в статье Об использовании внешнего кэша, совместимого с 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-адресе
- На вкладке "Заголовки" добавьте обязательный заголовок с именем
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,
[...]
]
}]
}
Настройка политик семантического кэширования
Чтобы включить семантическое кэширование для 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.15" embeddings-backend-id="embeddings-backend" 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> <rate-limit calls="10" renewal-period="60" />Примечание.
Добавьте политику ограничения скорости (или политику ограничения скорости по ключу ) после поиска кэша, чтобы ограничить количество вызовов и предотвратить перегрузку серверной службы в случае, если кэш недоступен.
В разделе "Исходящая обработка" для API добавьте политику azure-openai-semantic-cache-store.
Примечание.
При включении семантического кэширования для других API большой языковой модели используйте политику llm-semantic-cache-store.
Пример:
<azure-openai-semantic-cache-store duration="60" />
Подтверждение кэширования
Чтобы убедиться, что семантическое кеширование работает должным образом, отследите тестовую операцию завершения или чата с помощью тестовой консоли в портале. Убедитесь, что кэш используется при последующих попытках, проверив трассировку. Дополнительные сведения о трассировке вызовов API в Azure Управление API.
Измените атрибут score-threshold в политике поиска, чтобы определить, насколько точно входящий запрос должен соответствовать кэшированному запросу, чтобы вернуть сохраненный ответ. Более низкий порог оценки означает, что запросы должны иметь более высокую семантику сходства для возврата кэшированных ответов. Запросы с оценками выше порогового значения не используют кэшированный ответ.
Например, если используется кэш, раздел выходных данных содержит записи, аналогичные следующему снимку экрана:
Связанный контент
- Политики кэширования
- Управляемый Redis Azure
- Возможности шлюза искусственного интеллекта в службе "Управление API Azure"