Масштабирование Azure OpenAI для JavaScript с помощью Azure Управление API

Узнайте, как добавить балансировку нагрузки корпоративного уровня в приложение, чтобы расширить приложение чата за пределы маркера Azure OpenAI и квоты модели. Этот подход использует Azure Управление API для интеллектуального прямого трафика между тремя ресурсами Azure OpenAI.

В этой статье требуется развернуть 2 отдельных примера:

  • Приложение чата

    • Если вы еще не развернули приложение чата, дождитесь развертывания примера подсистемы балансировки нагрузки.
    • Если вы уже развернули приложение чата один раз, вы измените переменную среды для поддержки пользовательской конечной точки для подсистемы балансировки нагрузки и повторно разверните ее.
  • Подсистема балансировки нагрузки с azure Управление API

Архитектура балансировки нагрузки Azure OpenAI с помощью Azure Управление API

Так как ресурс Azure OpenAI имеет определенные ограничения на маркер и квоту модели, приложение чата с использованием одного ресурса Azure OpenAI может иметь сбои бесед из-за этих ограничений.

Схема, на которой показана архитектура приложения чата с выделенным ресурсом Azure OpenAI.

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

Схема, на которой показана архитектура приложения чата с Управление API Azure перед тремя ресурсами Azure OpenAI.

Ресурс Azure Управление API в качестве слоя API находится перед набором ресурсов Azure OpenAI. Уровень API применяется к двум сценариям: нормальным и регулированием. В обычном сценарии , где доступна квота маркера и модели, ресурс Azure OpenAI возвращает 200 обратно через уровень API и сервер серверного приложения.

Схема, отображающая обычный сценарий. Обычный сценарий показывает три группы конечных точек Azure OpenAI с первой группой двух конечных точек, получая успешный трафик.

Когда ресурс регулируется из-за ограничений квоты, уровень API может повторить другой ресурс Azure OpenAI немедленно, чтобы выполнить исходный запрос приложения чата.

Схема, отображающая сценарий регулирования с кодом ответа 429 сбоем и заголовок ответа сколько секунд клиенту придется ждать повтора.

Необходимые компоненты

Открытие примера приложения локального балансировщика azure Управление API

GitHub Codespaces запускает контейнер разработки, управляемый GitHub, с Помощью Visual Studio Code для Интернета в качестве пользовательского интерфейса. Для наиболее простой среды разработки используйте GitHub Codespaces, чтобы у вас были правильные средства разработчика и зависимости, предварительно установленные для выполнения этой статьи.

Открытие в GitHub Codespaces

Внимание

Все учетные записи GitHub могут использовать пространства Кода до 60 часов бесплатно каждый месяц с 2 основными экземплярами. Дополнительные сведения см. в GitHub Codespaces ежемесячно включаемых в хранилище и основные часы.

Развертывание подсистемы балансировки нагрузки Управление API Azure

  1. Чтобы развернуть подсистему балансировки нагрузки в Azure, войдите в Azure Developer CLI (AZD).

    azd auth login
    
  2. Завершите выполнение инструкций для входа.

  3. Разверните приложение подсистемы балансировки нагрузки.

    azd up
    

    Вам потребуется выбрать подписку и регион для развертывания. Они не должны быть той же подпиской и регионом, что и приложение чата.

  4. Дождитесь завершения развертывания, прежде чем продолжать работу. Это может занять до 30 минут.

Получение конечной точки подсистемы балансировки нагрузки

Выполните следующую команду Bash, чтобы просмотреть переменные среды из развертывания. Эти сведения потребуются вам позже.

azd env get-values | grep APIM_GATEWAY_URL

Повторное развертывание приложения чата с конечной точкой подсистемы балансировки нагрузки

Они завершены в примере приложения чата.

  1. Откройте контейнер разработки приложения чата с помощью одного из следующих вариантов.

    Язык Кодовые пространства Visual Studio Code
    .NET Открытие в GitHub Codespaces Открытие в контейнерах разработки
    JavaScript Открытие в GitHub Codespaces Открытие в контейнерах разработки
    Python Открытие в GitHub Codespaces Открытие в контейнерах разработки
  2. Войдите в Azure Developer CLI (AZD).

    azd auth login
    

    Завершите выполнение инструкций для входа.

  3. Создайте среду AZD с таким именем, как chat-app.

    azd env new <name>
    
  4. Добавьте следующую переменную среды, которая сообщает серверной части приложения Чата использовать настраиваемый URL-адрес для запросов OpenAI.

    azd env set OPENAI_HOST azure_custom
    
  5. Добавьте следующую переменную среды, которая сообщает серверной части приложения Чата, что такое значение настраиваемого URL-адреса для запроса OpenAI.

    azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
    
  6. Разверните приложение чата.

    azd up
    

Настройка маркеров в минуту квоты (TPM)

По умолчанию каждый экземпляр OpenAI в подсистеме балансировки нагрузки будет развернут с емкостью 30 000 TPM (токенов в минуту). Вы можете использовать приложение чата с уверенностью в том, что оно создано для масштабирования для многих пользователей без превышения квоты. Измените это значение, если:

  • Вы получаете ошибки емкости развертывания: ниже этого значения.
  • Планирование более высокой емкости, повышение значения.
  1. Чтобы изменить значение, используйте следующую команду.

    azd env set OPENAI_CAPACITY 50
    
  2. Повторно разверните подсистему балансировки нагрузки.

    azd up
    

Очистка ресурсов

Когда вы закончите работу с приложением чата и подсистемой балансировки нагрузки, очистите ресурсы. Ресурсы Azure, созданные в этой статье, выставляются в подписку Azure. Если вы не ожидаете, что эти ресурсы потребуются в будущем, удалите их, чтобы избежать дополнительных расходов.

Очистка ресурсов приложения чата

Вернитесь в статью о приложении чата, чтобы очистить эти ресурсы.

Очистка ресурсов подсистемы балансировки нагрузки

Выполните следующую команду Командной строки разработчика Azure, чтобы удалить ресурсы Azure и удалить исходный код:

azd down --purge --force

Параметры предоставляют следующие параметры:

  • purge: удаленные ресурсы немедленно очищаются. Это позволяет повторно использовать TPM Azure OpenAI.
  • force: удаление происходит автоматически, не требуя согласия пользователя.

Очистка GitHub Codespaces

Удаление среды GitHub Codespaces гарантирует, что вы можете максимально увеличить объем бесплатных прав на базовые часы, которые вы получаете для вашей учетной записи.

Внимание

Дополнительные сведения о правах учетной записи GitHub см . в GitHub Codespaces ежемесячно включено в хранилище и основные часы.

  1. Войдите на панель мониторинга GitHub Codespaces (https://github.com/codespaces).

  2. Найдите текущие запущенные пространства Codespaces, полученные из azure-samples/openai-apim-lb репозитория GitHub.

    Снимок экрана: все запущенные пространства Codespace, включая их состояние и шаблоны.

  3. Откройте контекстное меню для элемента Codespaces и нажмите кнопку "Удалить".

    Снимок экрана: контекстное меню для одного пространства кода с выделенным параметром удаления.

Получить помощь

Если у вас возникли проблемы с развертыванием подсистемы балансировки нагрузки azure Управление API, зайдите в журнал проблемы репозитория.

Пример кода

Примеры, используемые в этой статье, включают:

Следующий шаг