Начало работы с частными конечными точками чата для Python

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

В этом примере реализовано приложение чата с применением Python, Служба Azure OpenAI и технологии дополненной генерации поиска (RAG) в службе Поиск с использованием ИИ Azure для получения ответов на вопросы о пособиях для сотрудников в вымышленной компании. Приложение заполнено PDF-файлами, включающими руководство сотрудника, документ о преимуществах и список ролей и ожиданий компании.

Следуя инструкциям в этой статье, вы:

  • Разверните приложение чата в Azure для общедоступного доступа в веб-браузере.
  • Повторно разверните приложение чата с частными конечными точками.

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

Обзор архитектуры

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

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

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

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

В виртуальной сети существует отдельная подсеть для приложения Службы приложений Azure и других внутренних служб Azure. Эта структура упрощает применение различных правил группы безопасности сети к каждой подсети.

Схема с подсетью приложения чата и внутренней подсетью в виртуальной сети.

В виртуальной сети службы используют частные конечные точки для взаимодействия друг с другом. Каждая частная конечная точка связана с зоной частного доменного имени (DNS), чтобы сопоставить имя частной конечной точки с IP-адресом в границах виртуальной сети.

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

Действия по развертыванию

Разверните решение дважды. Разверните один раз с общедоступным доступом, чтобы убедиться, что приложение чата работает правильно. Снова разверните приватный доступ для защиты приложения чата с помощью виртуальной сети.

Предпосылки

Вам нужна среда контейнера разработки со всеми зависимостями, необходимыми для завершения этой статьи. Контейнер разработки можно запустить в GitHub Codespaces (в браузере) или локально с помощью Visual Studio Code.

Чтобы использовать эту статью, необходимо выполнить следующие предварительные требования.

Затраты на использование образцов ресурсов

Большинство ресурсов, используемых в этой архитектуре, попадают под базовые или ценовые категории на основе потребления. Эта модель ценообразования означает, что вы оплачиваете только то, что вы используете, и плата обычно минимальна во время разработки или тестирования.

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

Подробные сведения о ожидаемых затратах см. в разделе "Перед началом работы" в репозитории GitHub для примера.

Открытие среды разработки

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

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

Это важно

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

  1. Запустите процесс, чтобы создать новое пространство кода GitHub в main ветви репозитория GitHub Azure-Samples/azure-search-openai-demo GitHub.

  2. Щелкните правой кнопкой мыши следующую кнопку и выберите "Открыть ссылку" в новых окнах , чтобы среда разработки и документация была доступна одновременно.

    Открыть в GitHub Codespaces.

  3. На странице "Создание пространства кода " просмотрите параметры конфигурации пространства кода и выберите "Создать пространство кода".

    Снимок экрана: экран подтверждения перед созданием нового пространства кода.

  4. Дождитесь запуска рабочего пространства кода. Этот процесс запуска может занять несколько минут.

  5. В терминале в нижней части экрана войдите в Azure с помощью Интерфейса командной строки разработчика Azure:

    azd auth login
    
  6. Скопируйте код из терминала и вставьте его в браузер. Следуйте инструкциям по проверке подлинности с помощью учетной записи Azure.

Остальные задачи в этой статье выполняются в контексте этого контейнера разработки.

Настраиваемые параметры

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

Настройки Описание
AZURE_PUBLIC_NETWORK_ACCESS Управляет значением доступа к общедоступной сети в поддерживаемых ресурсах Azure. Допустимые значения — Enabled или Disabled.
AZURE_USE_PRIVATE_ENDPOINT Управляет развертыванием частных конечных точек, которые подключают ресурсы Azure к виртуальной сети. Значение TRUE означает, что частные конечные точки развертываются для подключения.
AZURE_USE_VPN_GATEWAY Управляет развертыванием VPN-шлюза для виртуальной сети. Если вы не используете этот параметр и отключите общедоступный доступ, вам потребуется другой способ подключения к виртуальной сети. Значение TRUE означает, что VPN-шлюз развертывается для подключения.

Развертывание приложения чата

Первое развертывание создает ресурсы и предоставляет общедоступную конечную точку.

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

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Enabled
    

    При запросе имени среды помните, что имя среды используется для создания группы ресурсов. Введите понятное имя. Если вы находитесь в команде или организации, укажите свое имя, как в morgan-chat-private-endpoints. Запишите имя среды. Вам потребуется позже найти ресурсы на портале Azure.

  2. Выполните следующую команду, чтобы включить процесс подготовки ресурсов виртуальной сети. Помните, что развертывание не ограничивает доступ до второго развертывания.

    azd env set AZURE_USE_PRIVATE_ENDPOINT true
    
  3. Разверните решение с помощью следующей команды:

    azd up
    

    Подготовка ресурсов — это наиболее трудоемкая часть процесса развертывания. Дождитесь завершения развертывания, прежде чем продолжить.

  4. В конце процесса развертывания появится конечная точка приложения. Скопируйте конечную точку в браузер, чтобы открыть приложение чата. Выберите один из вопросов на карточках, а затем дождитесь ответа.

    Запишите URL-адрес конечной точки, так как он понадобится позже в статье.

Развертывание приложения чата в Azure с частным доступом

Измените конфигурацию развертывания, чтобы защитить приложение чата для закрытого доступа.

  1. Выполните следующую команду, чтобы использовать VPN-шлюз для доступа к виртуальной сети:

    azd env set AZURE_USE_VPN_GATEWAY true
    
  2. Выполните следующую команду, чтобы отключить общедоступный доступ:

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Disabled
    
  3. Выполните следующую команду, чтобы изменить конфигурацию ресурса. Эта команда не развертывает код приложения, так как изменена только конфигурация инфраструктуры.

    azd provision
    
  4. После завершения подготовки снова откройте приложение чата в браузере. Приложение чата больше не доступно, так как общедоступная конечная точка отключена.

Доступ к приложению чата

Чтобы получить доступ к приложению чата, используйте средство, например VPN-шлюз Azure или виртуальный рабочий стол Azure. Помните, что любой инструмент, используемый для доступа к приложению, должен быть безопасным и соответствует политикам безопасности вашей организации.

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

В следующих шагах описан процесс очистки используемых ресурсов.

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

Если в будущем не требуется Azure ресурсов, удалите их, чтобы избежать текущих затрат.

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

azd down --purge

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

Это важно

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

  1. Войдите в панель мониторинга GitHub Codespaces.

  2. Найдите ваши запущенные пространства кода, которые имеют источник из репозитория Azure-Samples/azure-search-openai-demo на GitHub.

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

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

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

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

Этот репозиторий предлагает сведения об устранении неполадок.

Если проблема не устранена, добавьте проблему на веб-страницу "Проблемы репозитория".