Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste artigo, você aprenderá a implantar um aplicativo que usa o Azure OpenAI ou OpenAI no AKS. Com o OpenAI, você pode facilmente adaptar diferentes modelos de IA, como geração de conteúdo, sumarização, pesquisa semântica e linguagem natural para geração de código, para suas tarefas específicas. Você começa implantando um cluster AKS em sua assinatura do Azure. Em seguida, você implanta seu serviço OpenAI e o aplicativo de exemplo.
O aplicativo nativo da nuvem de exemplo é representativo de implementações do mundo real. O aplicativo de vários contêineres é composto por aplicativos escritos em várias linguagens e estruturas, incluindo:
- Golang com Gin
- Rust com Actix-Web
- JavaScript com Vue.js e Fastify
- Python com FastAPI
Esses aplicativos fornecem front-ends para clientes e administradores de loja, APIs REST para enviar dados para a fila de mensagens RabbitMQ e banco de dados MongoDB e aplicativos de console para simular tráfego.
Nota
Não recomendamos a execução de contêineres com monitoração de estado, como MongoDB e Rabbit MQ, sem armazenamento persistente para produção. Nós os usamos aqui para simplificar, mas recomendamos o uso de serviços gerenciados, como o Azure CosmosDB ou o Azure Service Bus.
Para acessar a base de código do GitHub para o aplicativo de exemplo, consulte AKS Store Demo.
Antes de começar
- Você precisa de uma conta do Azure com uma assinatura ativa. Se você não tiver uma, crie uma conta gratuitamente.
- Para esta demonstração, você pode usar o serviço OpenAI do Azure ou o serviço OpenAI.
- Se você planeja usar o serviço Azure OpenAI, precisará solicitar acesso para habilitá-lo em sua assinatura do Azure usando o formulário Solicitar acesso ao Serviço OpenAI do Azure.
- Se você planeja usar o OpenAI, inscreva-se no site do OpenAI.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Introdução ao Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Criar um grupo de recursos
Um grupo de recursos do Azure é um grupo lógico no qual você implanta e gerencia recursos do Azure. Ao criar um grupo de recursos, você será solicitado a especificar um local. Esse local é o local de armazenamento dos metadados do grupo de recursos e onde os recursos são executados no Azure se você não especificar outra região durante a criação do recurso.
O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
Crie um grupo de recursos usando o
az group createcomando.az group create --name myResourceGroup --location eastusO exemplo de saída a seguir mostra a criação bem-sucedida do grupo de recursos:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Criar um cluster do AKS
O exemplo a seguir cria um cluster chamado myAKSCluster em myResourceGroup.
Crie um cluster AKS usando o
az aks createcomando.az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keysApós alguns minutos, o comando conclui e retorna informações formatadas em JSON sobre o cluster.
Ligar ao cluster
Para gerenciar um cluster Kubernetes, use o cliente de linha de comando Kubernetes, kubectl.
kubectl já está instalado se você usar o Azure Cloud Shell.
Instale
kubectllocalmente usando oaz aks install-clicomando.az aks install-cliNota
Se o seu sistema baseado em Linux requer permissões elevadas, você pode usar o
sudo az aks install-clicomando.Configure
kubectlpara se conectar ao cluster do Kubernetes usando oaz aks get-credentialscomando.Este comando executa as seguintes operações:
- Baixa credenciais e configura a CLI do Kubernetes para usá-las.
- Usa
~/.kube/config, o local padrão para o arquivo de configuração do Kubernetes. Especifique um local diferente para o arquivo de configuração do Kubernetes usando o argumento --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifique a conexão com o cluster usando o
kubectl getcomando. Este comando retorna uma lista dos nós do cluster.kubectl get nodesO exemplo de saída a seguir mostra os nós criados nas etapas anteriores. Verifique se o status do nó é Pronto.
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
Nota
Para clusters privados, os nós podem ficar inacessíveis se você tentar se conectar a eles por meio do endereço IP público. Para corrigir isto, precisa criar um ponto de extremidade dentro da mesma VNET do cluster para a qual se pretende conectar. Siga as instruções para Criar um cluster AKS privado e, em seguida, conecte-se a ele.
Implementar a aplicação
O manifesto do aplicativo AKS Store inclui as seguintes implantações e serviços do Kubernetes:
- Serviço do produto: Mostra as informações do produto.
- Serviço de pedidos: Faz pedidos.
- Serviço Makeline: Processa pedidos da fila e conclui os pedidos.
- Vitrine: aplicativo Web para que os clientes visualizem produtos e façam pedidos.
- Store admin: aplicativo Web para funcionários da loja visualizarem pedidos na fila e gerenciarem informações do produto.
- Cliente virtual: Simula a criação de pedidos de forma programada.
- Trabalhador virtual: simula a conclusão do pedido de forma programada.
- Mongo DB: instância NoSQL para dados persistentes.
- Rabbit MQ: Fila de mensagens para processamento de pedidos.
Nota
Não recomendamos a execução de contêineres com monitoração de estado, como MongoDB e Rabbit MQ, sem armazenamento persistente para produção. Nós os usamos aqui para simplificar, mas recomendamos o uso de serviços gerenciados, como o Azure CosmosDB ou o Azure Service Bus.
Revise o manifesto YAML da aplicação.
Implante o aplicativo usando o
kubectl applycomando e especifique o nome do seu manifesto YAML.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yamlO exemplo de saída a seguir mostra as implementações e os serviços criados com êxito.
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
Implante o OpenAI
Você pode usar o Azure OpenAI ou OpenAI e executar seu aplicativo no AKS.
- No portal do Azure, crie uma instância do Azure OpenAI.
- Navegue até a instância do Azure OpenAI que você criou.
- Na folha Visão geral , navegue até o portal do Azure AI Foundry.
- Crie uma nova implantação de Chat usando o modelo base gpt-4o-mini .
Para obter mais informações sobre como criar uma implantação no Azure OpenAI, consulte Introdução à geração de texto usando o Serviço OpenAI do Azure.
Implantar o serviço de IA
Agora que o aplicativo está implantado, você pode implantar o microsserviço baseado em Python que usa OpenAI para gerar automaticamente descrições para novos produtos que estão sendo adicionados ao catálogo da loja.
Crie um arquivo nomeado
ai-service.yamle copie no seguinte manifesto: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-serviceDefina a variável
USE_AZURE_OPENAIde ambiente como"True".Obtenha o seu nome de implementação do Azure OpenAI a partir do Azure AI Foundry e preencha o valor
AZURE_OPENAI_DEPLOYMENT_NAME.Obtenha o seu endpoint do Azure OpenAI e a chave da API do Azure OpenAI no portal do Azure selecionando Chaves e Endpoint no painel esquerdo do recurso. Atualize o
AZURE_OPENAI_ENDPOINTe oOPENAI_API_KEYno YAML em conformidade.Implante o aplicativo usando o
kubectl applycomando e especifique o nome do seu manifesto YAML.kubectl apply -f ai-service.yamlO exemplo de saída a seguir mostra as implementações e os serviços criados com êxito.
deployment.apps/ai-service created service/ai-service created
Nota
Adicionar diretamente informações confidenciais, como chaves de API, nos ficheiros de manifesto do Kubernetes não é seguro e pode ser acidentalmente submetido a repositórios de código. Nós o adicionamos aqui para simplificar. Para cargas de trabalho de produção, use a Identidade Gerenciada para autenticar no serviço Azure OpenAI ou armazenar os seus segredos no Azure Key Vault.
Testar a aplicação
Verifique o status dos pods implantados usando o comando kubectl get pods .
kubectl get podsCertifique-se de que todos os pods estão em execução antes de continuar para a próxima etapa.
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 99sObtenha o IP do aplicativo Web de administração da loja e do aplicativo Web do site da loja usando o comando
kubectl get service.kubectl get service store-adminO aplicativo expõe o site de administração da loja à internet por meio de um balanceador de carga público provisionado pelo serviço Kubernetes. Este processo pode demorar alguns minutos a concluir. IP EXTERNO inicialmente mostra pendente até que o serviço aparece e mostra o endereço IP.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mRepita a mesma etapa para o serviço chamado 'store-front''.
Abra um navegador da Web e navegue até o endereço IP externo do seu serviço. No exemplo mostrado aqui, abra 40.64.86.161 para ver o administrador da loja no navegador. Repita o mesmo passo para a frente da loja.
No administrador da loja, selecione a guia produtos e, em seguida, selecione Adicionar produtos.
Quando o 'ai-service'' estiver sendo executado com sucesso, você verá o botão Ask OpenAI ao lado do campo de descrição. Preencha o nome, o preço e as palavras-chave e, em seguida, gere uma descrição do produto, seleccionando Ask OpenAI>Save product.
Agora você pode ver o novo produto que você criou no Administrador da Loja usado pelos vendedores. Na imagem, pode-se observar que o Dog Smart Collar foi adicionado.
Você também pode ver o novo produto que você criou na vitrine usada pelos compradores. Na imagem, pode-se observar que o Dog Smart Collar foi adicionado. Lembre-se de obter o endereço IP da frente da loja usando o
kubectl get servicecomando.
Próximos passos
Agora que adicionou a funcionalidade OpenAI a uma aplicação AKS, pode Proteger o acesso ao Azure OpenAI a partir do Serviço Kubernetes do Azure (AKS).
Para saber mais sobre casos de uso de IA generativa, consulte os seguintes recursos: