Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как добавить балансировку нагрузки корпоративного уровня в приложение, чтобы расширить приложение чата за пределами моделей Azure OpenAI в токене Microsoft Foundry и ограничения квоты модели. Этот подход использует службу Azure API Management для интеллектуального управления трафиком между тремя ресурсами Azure OpenAI.
В этой статье требуется развернуть два отдельных примера:
- Приложение чата:
- Дождитесь развертывания приложения чата до тех пор, пока не будет развернут пример подсистемы балансировки нагрузки.
- Если вы уже развернули приложение чата один раз, измените переменную среды для поддержки пользовательской конечной точки для подсистемы балансировки нагрузки и повторно разверните ее.
- Подсистема балансировки нагрузки с помощью службы "Управление API Azure".
Замечание
В этой статье в качестве основы для примеров и рекомендаций используются один или несколько шаблонов приложений ИИ. Шаблоны приложений искусственного интеллекта предоставляют вам хорошо поддерживаемые эталонные реализации, которые легко развертываться. Они помогают обеспечить высококачественную отправную точку для приложений ИИ.
Архитектура балансировки нагрузки для Azure OpenAI с использованием Управления API Azure
Так как модели Azure OpenAI в Microsoft Foundry имеют определенные ограничения на маркер и квоту модели, приложение чата, использующее один ресурс Azure OpenAI, подвержено сбоям диалога из-за этих ограничений.
Чтобы использовать приложение чата без достижения этих ограничений, используйте решение с балансировкой нагрузки с помощью управления API. Это решение легко предоставляет одну конечную точку из службы управления API на сервер приложения чата.
Ресурс управления API в качестве слоя API находится перед набором ресурсов Azure OpenAI. Уровень API применяется к двум сценариям: нормальный и ограниченный. В обычном сценарии , где доступна квота маркера и модели, ресурс Azure OpenAI возвращает 200 обратно через уровень API и сервер серверного приложения.
Если ресурс ограничен из-за ограничений квот, слой API может сразу попробовать использовать другой ресурс Azure OpenAI, чтобы удовлетворить исходный запрос чат-приложения.
Предпосылки
Подписка Azure. Создайте его бесплатно.
Контейнеры разработки доступны для обоих примеров с всеми зависимостями, необходимыми для выполнения этой статьи. Контейнеры разработки можно запускать в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.
- GitHub Codespaces (рекомендуется)
- Visual Studio Code
- Для использования GitHub Codespaces требуется только учетная запись GitHub .
Откройте пример приложения локального балансировщика API Azure.
- GitHub Codespaces (рекомендуется)
- Visual Studio Code
GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Visual Studio Code для Web в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.
Это важно
Все учетные записи GitHub могут использовать GitHub Codespaces до 60 часов бесплатно каждый месяц на двух процессорных ядрах. Дополнительные сведения см. в ежемесячно предоставляемой информации о хранилище и основных часах в GitHub Codespaces.
Развертывание подсистемы балансировки нагрузки управления API Azure
Чтобы развернуть подсистему балансировки нагрузки в Azure, войдите в интерфейс командной строки разработчика Azure (
AZD):azd auth loginЗавершите инструкцию по входу в систему.
Разверните приложение подсистемы балансировки нагрузки:
azd upВыберите подписку и регион для развертывания. Им не обязательно совпадать с подпиской и регионом приложения для чата.
Дождитесь завершения развертывания, прежде чем продолжить. Этот процесс может занять до 30 минут.
Получите конечную точку балансировщика нагрузки
Выполните следующую команду Bash, чтобы просмотреть переменные среды из развертывания. Эти сведения потребуются вам позже.
azd env get-values | grep APIM_GATEWAY_URL
Разверните повторно приложение чата с конечной точкой балансировщика нагрузки.
Эти примеры завершены в примере приложения чата.
- Начальное развертывание
- повторное развертывание
Откройте контейнер разработки для приложения чата с помощью одного из следующих вариантов.
Язык Пространства GitHub для кода Visual Studio Code .СЕТЬ JavaScript Питон Войдите в интерфейс командной строки разработчика Azure (
AZD):azd auth loginЗавершите инструкцию по входу в систему.
Создайте среду
AZDс именем, напримерchat-app:azd env new <name>Добавьте следующую переменную среды, которая сообщает серверной части приложения чата использовать настраиваемый URL-адрес для запросов Azure OpenAI:
azd env set OPENAI_HOST azure_customДобавьте эту переменную среды, чтобы сообщить серверной части приложения чата пользовательский URL-адрес для запроса Azure OpenAI:
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>Разверните приложение чата:
azd up
Настройка квоты TPM
По умолчанию каждая из моделей Azure OpenAI в экземплярах Microsoft Foundry в подсистеме балансировки нагрузки развертывается с пропускной способностью 30 000 токенов в минуту (TPM). Вы можете использовать приложение чата с уверенностью в том, что оно масштабируется на большое количество пользователей без превышения квоты. Измените это значение, если:
- Возникают ошибки емкости развертывания: уменьшите значение.
- Вам нужна более высокая емкость: увеличьте значение.
Чтобы изменить значение, используйте следующую команду:
azd env set OPENAI_CAPACITY 50Повторно разверните подсистему балансировки нагрузки:
azd up
Очистите ресурсы
Завершив работу с приложением чата и подсистемой балансировки нагрузки, очистите ресурсы. Ресурсы Azure, созданные в этой статье, оплачиваются с вашей подписки Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.
Очистка ресурсов приложения чата
Вернитесь в статью о приложении чата, чтобы очистить эти ресурсы.
Очистка ресурсов подсистемы балансировки нагрузки
Удалите ресурсы Azure и удалите исходный код:
azd down --purge --force
Переключатели обеспечивают:
-
purge: Удаленные ресурсы удаляются немедленно. Вы можете повторно использовать маркеры Azure OpenAI в течение минуты. -
force: удаление происходит незаметно, не требуя согласия пользователя.
Очистите ресурсы
Удаление среды GitHub Codespaces гарантирует, что вы можете максимально использовать объем бесплатных часовых квот на ядро, предоставляемых для учетной записи.
Это важно
Дополнительные сведения о правах вашей учетной записи GitHub см. в разделе о ежемесячно включенном объеме хранилища и основных часах использования GitHub Codespaces.
Найдите в настоящее время запущенные пространства кода, созданные из репозитория
azure-samples/openai-apim-lbGitHub.
Откройте контекстное меню для элемента GitHub Codespaces, а затем выберите Удалить.
Получите помощь
Если у вас возникли проблемы с развертыванием балансировщика нагрузки Azure API Management, добавьте вашу проблему на страницу репозитория Issues.
Пример кода
Примеры, используемые в этой статье, включают:
Связанный контент
- Просмотр диагностических данных службы "Управление API Azure" в Azure Monitor.
- Используйте Azure Load Testing для нагрузочного тестирования вашего чат-приложения.