Tutorial: Conectar-se ao Serviço OpenAI do Azure no AKS usando uma cadeia de conexão (versão prévia)

Neste tutorial, você aprenderá a criar um pod em um cluster do AKS (Kubernetes do Azure), que conversa com o Serviço OpenAI do Azure usando uma cadeia de conexão. Conclua as seguintes tarefas:

  • Crie um cluster do AKS e o Serviço OpenAI do Azure com a implantação de modelo gpt-4.
  • Crie uma conexão entre o cluster do AKS e o OpenAI do Azure com o Conector de Serviço.
  • Clone um aplicativo de exemplo que se comunicará com o serviço OpenAI a partir de um cluster do AKS.
  • Implante o aplicativo em um pod no cluster do AKS e teste a conexão.
  • Limpe os recursos.

Aviso

A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis. Consulte o tutorial usando uma identidade gerenciada.

Pré-requisitos

Criar recursos do Azure

  1. Crie um grupo de recursos para este tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Crie um cluster do AKS com o comando a seguir ou consulte o Guia de início rápido do AKS. Esse cluster é onde criamos a conexão de serviço e a definição do pod e implantamos o aplicativo de exemplo.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
       --generate-ssh-keys
    
  3. Conecte-se ao cluster usando o comando az aks get-credentials.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Crie um recurso do Serviço OpenAI do Azure usando o comando az cognitiveservices account create. Opcionalmente, consulte este tutorial para obter mais instruções. O Serviço OpenAI do Azure é o serviço de destino que conectaremos ao cluster do AKS.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenaiservice \
        --subscription <SubscriptionID>
    
  5. Implante um modelo com o comando az cognitiveservices deployment create. O modelo é usado no aplicativo de exemplo para testar a conexão.

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard"
        --capacity 1
    
  6. Crie um recurso do ACR (Registro de Contêiner do Azure) com o comando az acr create ou referindo-se a este tutorial. O registro hospeda a imagem de contêiner do aplicativo de exemplo, que será consumida pela definição de pod do AKS.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Habilite o pull anônimo usando o comando az acr update para que o cluster do AKS possa consumir as imagens no registro.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    

Criar uma conexão de serviço no AKS com o Service Connector (versão prévia)

Crie uma conexão de serviço entre um cluster do AKS e o Serviço OpenAI do Azure no portal do Azure ou na CLI do Azure.

Consulte o início rápido da conexão de serviço do AKS para obter instruções para criar uma conexão e preencher as configurações referentes aos exemplos na tabela a seguir. Deixe todas as outras configurações com os valores padrão delas.

  1. Guia Básico:

    Configuração Valor de exemplo Descrição
    Namespace do Kubernetes padrão O namespace do Kubernetes.
    Tipo de serviço Serviço OpenAI O tipo de serviço de destino.
    Nome da conexão openai_conn Use o nome da conexão fornecido pelo Conector de Serviço ou escolha um nome de conexão próprio.
    Assinatura <MySubscription> A assinatura usada para o Serviço OpenAI do Azure.
    OpenAI <MyOpenAIService> O Serviço OpenAI do Azure de destino ao qual você deseja se conectar.
    Tipo de cliente Python A linguagem de código ou a estrutura que você usa para se conectar ao serviço de destino.
  2. Guia Autenticação:

    Configuração de Autenticação Valor de exemplo Descrição
    Tipo de autenticação Cadeia de Conexão Tipo de autenticação do Conector de Serviço.

Depois que a conexão for criada, você poderá exibir seus detalhes no painel Conector de Serviço.

Clonar aplicativo de exemplo

  1. Clone o repositório de exemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Vá para a pasta de exemplo do repositório para o OpenAI do Azure:

    cd serviceconnector-aks-samples/azure-openai-connection-string
    
  3. Substitua o espaço reservado <MyModel> no arquivo app.py pelo nome do modelo que implantamos.

Compilar e efetuar push da imagem do contêiner

  1. Compile e efetue push das imagens para o registro de contêiner usando o comando az acr build da CLI do Azure.

    az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
    
  2. Exiba as imagens no registro de contêiner usando o comando az acr repository list.

    az acr repository list --name <MyRegistry> --output table
    

Executar o aplicativo e testar a conexão

  1. Substitua os espaços reservados no arquivo pod.yaml da pasta azure-openai-connection-string.

    • Substitua <YourContainerImage> pelo nome da imagem que criamos anteriormente. Por exemplo: <MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest.
    • Substitua <SecretCreatedByServiceConnector> pelo segredo criado pelo Conector de Serviço. Você pode verificar o nome do segredo no portal do Azure, no painel Conector de Serviço.
  2. Implante o pod em seu cluster com o comando kubectl apply. Instale kubectl localmente usando o comando az aks install-cli se ele não estiver instalado. O comando cria um pod chamado sc-demo-openai-connstr no namespace padrão de seu cluster do AKS.

    kubectl apply -f pod.yaml
    
  3. Verifique se a implantação foi bem-sucedida visualizando o pod com kubectl.

    kubectl get pod/sc-demo-openai-connstr
    
  4. Verifique se a conexão está funcionando exibindo os logs com kubectl.

    kubectl logs pod/sc-demo-openai-connstr
    

Limpar os recursos

Se você não precisar mais desses recursos, limpe os recursos do Azure criados neste tutorial excluindo o grupo de recursos.

az group delete \
    --resource-group MyResourceGroup

Próximas etapas

Leia os artigos a seguir para saber mais sobre os conceitos do Conector de Serviço e como ele ajuda o AKS a se conectar aos serviços do Azure.