Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как развернуть приложение, использующее #REF! OpenAI или OpenAI в AKS. С помощью OpenAI можно легко адаптировать различные модели ИИ, такие как создание контента, сводка, семантический поиск и естественный язык для создания кода для конкретных задач. Начните с развертывания кластера AKS в подписке #REF!. Затем вы развернете службу OpenAI и пример приложения.
Пример облачного собственного приложения является представителем реальных реализаций. Многоконтейнерное приложение состоит из приложений, написанных на нескольких языках и платформах, в том числе:
- Голанг с Джин
- Rust с Actix-Web
- JavaScript с Vue.js и Fastify
- Python с FastAPI
Эти приложения предоставляют интерфейсы для клиентов и администраторов магазина, REST API для отправки данных в очередь сообщений RabbitMQ и базу данных MongoDB, а также консольные приложения для имитации трафика.
Примечание.
Не рекомендуется запускать контейнеры с состоянием, такие как MongoDB и RabbitMQ, без постоянного хранилища в производственной среде. Мы используем их здесь для простоты, но мы рекомендуем использовать управляемые службы, такие как #REF! CosmosDB или Служебная шина Azure.
Сведения о доступе к базе кода #REF! для примера приложения см. в разделе демонстрация магазинаAKS.
Прежде чем начать
- Вам нужна учетная запись #REF! с активной подпиской. Если у вас нет учетной записи, создайте бесплатную учетную запись.
- Для этой демонстрации можно использовать сервис #REF! OpenAI или сервис OpenAI.
- Если вы планируете использовать сервис #REF! OpenAI, необходимо запросить доступ, чтобы его активировать в вашей подписке #REF!, используя форму запроса доступа к сервису #REF! OpenAI.
- Если вы планируете использовать OpenAI, зарегистрируйтесь на веб-сайте OpenAI.
Предварительные условия
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье Начало работы с Azure Cloud Shell.
Если вы предпочитаете локально запускать справочные команды CLI, установите Azure CLI. Если вы работаете на #REF! или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в разделе Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Другие параметры входа см. в разделе Аутентификация в #REF! с использованием Azure CLI.
При появлении запроса установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в разделе Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создание группы ресурсов
Группа ресурсов #REF! — это логическая группа, в которой развертываются ресурсы #REF! и управляют ими. При создании группы ресурсов вам будет предложено указать расположение. Данное место является местом хранения метаданных группы ресурсов и точкой выполнения ваших ресурсов в #REF!, если вы не указываете другой регион при создании ресурсов.
В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
Создайте группу ресурсов с помощью команды.
az group create --name myResourceGroup --location eastusВ следующем примере выходных данных показано успешное создание группы ресурсов:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Создание кластера AKS
В следующем примере создается кластер с именем myAKSCluster в myResourceGroup.
Создайте кластер AKS с помощью команды.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keysЧерез несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
Подключение к кластеру
Для управления кластером Kubernetes используйте клиент командной строки Kubernetes kubectl.
kubectl уже установлен, если вы используете Azure Cloud Shell.
Установите локально с помощью команды.
az aks install-cliПримечание.
Если для системы под управлением Linux требуются повышенные разрешения, можно использовать команду.
Настройте для подключения к вашему кластеру Kubernetes, используя команду .
Эта команда выполняет следующие операции:
- скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования;
- использует , расположение по умолчанию для файла конфигурации Kubernetes. Чтобы указать другое расположение файла конфигурации Kubernetes, используйте аргумент --file.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterПроверьте подключение к кластеру с помощью команды. Эта команда возвращает список узлов кластера.
kubectl get nodesВ следующем примере показан узел, созданный на предыдущих шагах. Убедитесь, что состояние узла — "готов".
NAME STATUS ROLES AGE VERSION aks-nodepool1-31469198-vmss000000 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000001 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000002 Ready agent 3h29m v1.25.6
Примечание.
Для частных кластеров узлы могут быть недоступны, если вы пытаетесь подключиться к ним через общедоступный IP-адрес. Чтобы устранить эту проблему, необходимо создать конечную точку в той же виртуальной сети, что и кластер для подключения. Следуйте инструкциям по созданию частного кластера AKS, а затем подключитесь к нему.
Развертывание приложения
Схема архитектуры демонстрации AKS AI.
Манифест приложения AKS Store включает следующие развертывания и службы Kubernetes:
- Обслуживание продукта: отображает информацию о продукте.
- Служба заказов: помещает заказы.
- Сервис Makeline: обрабатывает заказы из очереди и завершает их.
- Интерфейс магазина: веб-приложение для пользователей для просмотра продуктов и размещения заказов.
- Администратор магазина: веб-приложение для сотрудников магазина для просмотра заказов в очереди и управления сведениями о продукте.
- Виртуальный клиент: симулирует создание заказа на регулярной основе по расписанию.
- Виртуальный работник: имитирует завершение заказа на запланированной основе.
- Mongo DB: NoSQL экземпляр для сохраненных данных.
- Rabbit MQ: очередь сообщений для обработки заказов.
Примечание.
Не рекомендуется запускать контейнеры с состоянием, такие как MongoDB и RabbitMQ, без постоянного хранилища в производственной среде. Мы используем их здесь для простоты, но мы рекомендуем использовать управляемые службы, такие как #REF! CosmosDB или Служебная шина Azure.
Просмотрите манифест YAML для приложения.
Разверните приложение с помощью команды и укажите имя манифеста YAML.
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yamlВ следующем примере выходных данных показаны успешно созданные развертывания и службы:
deployment.apps/mongodb created service/mongodb created deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/makeline-service created service/makeline-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created deployment.apps/store-admin created service/store-admin created deployment.apps/virtual-customer created deployment.apps/virtual-worker created
Развертывание OpenAI
Вы можете использовать #REF! OpenAI или OpenAI и запустить приложение в AKS.
- #REF! OpenAI
- OpenAI
- На портале #REF! создайте экземпляр #REF! OpenAI.
- Перейдите к экземпляру #REF! OpenAI, который вы создали.
- В колонке "Обзор" перейдите на портал Microsoft Foundry.
- Создайте новое развертывание чата с помощью базовой модели gpt-4o-mini.
Дополнительные сведения о создании развертывания в #REF! OpenAI см. в разделе Начало работы с генерацией текста с помощью службы #REF! OpenAI.
Развертывание службы ИИ
Теперь, когда приложение развернуто, можно развернуть микрослужбу на основе Python, которая использует OpenAI для автоматического создания описания новых продуктов, добавляемых в каталог магазина.
- #REF! OpenAI
- OpenAI
Создайте файл с именем и скопируйте его в следующем манифесте:
apiVersion: apps/v1 kind: Deployment metadata: name: ai-service spec: replicas: 1 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: ai-service image: ghcr.io/azure-samples/aks-store-demo/ai-service:latest ports: - containerPort: 5001 env: - name: USE_AZURE_OPENAI value: "True" - name: AZURE_OPENAI_DEPLOYMENT_NAME value: "" - name: AZURE_OPENAI_ENDPOINT value: "" - name: OPENAI_API_KEY value: "" resources: requests: cpu: 20m memory: 50Mi limits: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: ai-service spec: type: ClusterIP ports: - name: http port: 5001 targetPort: 5001 selector: app: ai-serviceЗадайте для переменной среды значение .
Получите имя развертывания #REF! OpenAI из Foundry и введите значение
AZURE_OPENAI_DEPLOYMENT_NAME.Получите конечную точку и ключ API #REF! OpenAI на портале #REF!, выбрав Keys and Endpoint в левой панели ресурса. Обновите и в YAML соответствующим образом.
Разверните приложение с помощью команды и укажите имя манифеста YAML.
kubectl apply -f ai-service.yamlВ следующем примере выходных данных показаны успешно созданные развертывания и службы:
deployment.apps/ai-service created service/ai-service created
Примечание.
Непосредственное добавление конфиденциальной информации, например ключей API, в файлы манифеста Kubernetes не является безопасным и может случайно зафиксироваться в репозиториях кода. Мы добавили его здесь для простоты. Для рабочих нагрузок используйте Managed Identity для аутентификации в службе #REF! OpenAI, или вместо этого храните свои секреты в Azure Key Vault.
Тестирование приложения
Проверьте состояние развернутых pod'ов с помощью команды kubectl get pods.
kubectl get podsПеред продолжением следующего шага убедитесь, что все модули pod запущены.
NAME READY STATUS RESTARTS AGE makeline-service-7db94dc7d4-8g28l 1/1 Running 0 99s mongodb-78f6d95f8-nptbz 1/1 Running 0 99s order-service-55cbd784bb-6bmfb 1/1 Running 0 99s product-service-6bf4d65f74-7cbvk 1/1 Running 0 99s rabbitmq-9855984f9-94nlm 1/1 Running 0 99s store-admin-7f7d768c48-9hn8l 1/1 Running 0 99s store-front-6786c64d97-xq5s9 1/1 Running 0 99s virtual-customer-79498f8667-xzsb7 1/1 Running 0 99s virtual-worker-6d77fff4b5-7g7rj 1/1 Running 0 99sПолучите IP-адрес веб-приложения администратора магазина и веб-приложения витрины магазина с помощью команды .
kubectl get service store-adminПриложение предоставляет сайт администратора Магазина интернету через общедоступную подсистему балансировки нагрузки, подготовленную службой Kubernetes. Этот процесс может занять несколько минут. ВНЕШНИЙ IP-адрес сначала отображается в статусе ожидания, а затем, когда служба становится активной, отображает IP-адрес.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mПовторите тот же шаг для сервиса с именем `store-front`.
Откройте веб-браузер и перейдите к внешнему IP-адресу службы. В приведенном здесь примере откройте 40.64.86.161, чтобы увидеть Магазин администратора в браузере. Повторите тот же шаг для Front Store.
В административной панели магазина выберите вкладку "Продукты", а затем нажмите "Добавить товары".
После успешного запуска ai-service появится кнопка Ask OpenAI рядом с полем описания. Введите имя, цену и ключевые слова, а затем создайте описание продукта, нажав кнопку Ask OpenAISave product.
Снимок экрана: использование openAI для создания описания продукта.
Теперь вы можете увидеть новый продукт, созданный на сайте "Администратор Магазина", используемый продавцами. На рисунке вы можете видеть, что добавлен собачий смарт-ошейник.
Снимок экрана: просмотр нового продукта на странице администрирования магазина.
Вы также можете увидеть новый продукт, который вы создали, на Store Front, используемом покупателями. На рисунке вы можете видеть, что добавлен собачий смарт-ошейник. Не забудьте получить IP-адрес витрины магазина с помощью команды .
Снимок экрана: просмотр нового продукта на первой странице магазина.
Следующие шаги
Теперь, когда вы добавили функции OpenAI в приложение AKS, вы можете обеспечить безопасный доступ к #REF! OpenAI из службы #REF! Kubernetes (AKS).
Дополнительные сведения о вариантах использования сгенерируемым ИИ см. в следующих ресурсах:
- Документация Служба Azure OpenAI
- Introduction to #REF! OpenAI Services
- Платформа OpenAI
- Проект Мияги — пример концептуализации для стека Copilot