Share via


Tutorial: Conectar-se a um banco de dados vetorial Qdrant em Aplicativos de Contêiner do Azure (visualização)

Os Aplicativos de Contêiner do Azure usam complementos para facilitar a conexão a vários serviços de nuvem de nível de desenvolvimento. Em vez de criar instâncias de serviços com antecedência para estabelecer conexões com definições de configuração complexas, você pode usar um complemento para conectar seu aplicativo de contêiner a um banco de dados como o Qdrant.

Para obter uma lista completa dos serviços suportados, consulte Ligar a serviços nas Aplicações de Contentor do Azure.

O aplicativo de exemplo implantado neste tutorial permite que você interaja com um mecanismo de recomendação de música baseado no banco de dados vetorial Qdrant. A imagem de contêiner hospeda um Jupyter Notebook que contém o código que você pode executar no banco de dados para:

  • Interface com dados de músicas
  • Gerar incorporações para cada música
  • Ver recomendações de músicas

Uma vez implantado, você tem a oportunidade de executar código no Jupyter Notebook para interagir com dados de músicas no banco de dados.

Screenshot of the Jupyter Notebook deployed in the container image.

Neste tutorial, você:

  • Criar um aplicativo de contêiner
  • Usar um complemento Container Apps para se conectar a um banco de dados Qdrant
  • Interaja com um Jupyter Notebook para explorar os dados

Importante

Este tutorial usa serviços que podem afetar sua fatura do Azure. Se você decidir acompanhar o passo a passo, certifique-se de desativar ou excluir os recursos apresentados neste artigo para evitar cobranças inesperadas.

Pré-requisitos

Para concluir este projeto, você precisa dos seguintes itens:

Necessidade Instruções
Conta do Azure Se você não tiver uma, crie uma conta gratuitamente. Você precisa da permissão de Colaborador ou Proprietário na assinatura do Azure para continuar.

Consulte Atribuir funções do Azure usando o portal do Azure para obter detalhes.
CLI do Azure Instale a CLI do Azure.

Configuração

Antes de começar a trabalhar com o banco de dados Qdrant, primeiro você precisa criar seu aplicativo de contêiner e os recursos necessários.

Execute os comandos a seguir para criar seu grupo de recursos, ambiente de aplicativos de contêiner e perfil de carga de trabalho.

  1. Configure o nome do aplicativo e as variáveis do grupo de recursos. Você pode alterar esses valores de acordo com sua preferência.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Crie variáveis para dar suporte à configuração do aplicativo. Esses valores são fornecidos para você para os fins desta lição. Não altere esses valores.

    export SERVICE_NAME=qdrantdb
    export LOCATION=southcentralus
    export ENVIRONMENT=music-recommendations-demo-environment
    export WORKLOAD_PROFILE_TYPE=D32
    export CPU_SIZE=8.0
    export MEMORY_SIZE=16.0Gi
    export IMAGE=simonj.azurecr.io/aca-ephemeral-music-recommendation-image
    
    Variável Description
    SERVICE_NAME O nome do serviço de complemento criado para seu aplicativo de contêiner. Nesse caso, você cria uma instância de nível de desenvolvimento de um banco de dados Qdrant.
    LOCATION O local da região do Azure onde você cria seu aplicativo de contêiner e complemento.
    ENVIRONMENT O nome do ambiente dos Aplicativos de Contêiner do Azure para seu aplicativo de demonstração.
    WORKLOAD_PROFILE_TYPE O tipo de perfil de carga de trabalho usado para seu aplicativo de contêiner. Este exemplo usa um perfil de carga de trabalho de uso geral com 32 núcleos e 128 GiB de memória.
    CPU_SIZE O tamanho alocado da CPU.
    MEMORY_SIZE A quantidade alocada de memória.
    IMAGE A imagem de contêiner usada neste tutorial. Esta imagem de contêiner inclui o Jupyter Notebook que permite interagir com dados no banco de dados Qdrant.
  3. Faça logon no Azure com a CLI do Azure.

    az login
    
  4. Crie um grupo de recursos.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Crie seu ambiente de aplicativos de contêiner.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Crie um perfil de carga de trabalho dedicado com recursos suficientes para trabalhar com um banco de dados vetorial.

    az containerapp env workload-profile add \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --workload-profile-type $WORKLOAD_PROFILE_TYPE \
      --workload-profile-name bigProfile \
      --min-nodes 0 \
      --max-nodes 2
    

Use o complemento Qdrant

Agora que você tem um ambiente existente e um perfil de carga de trabalho, você pode criar seu aplicativo de contêiner e vinculá-lo a uma instância complementar do Qdrant.

  1. Crie o serviço complementar Qdrant.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Crie o aplicativo de contêiner.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --workload-profile-name bigProfile \
      --cpu $CPU_SIZE \
      --memory $MEMORY_SIZE \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --env-vars RESTARTABLE=yes \
      --ingress external \
      --target-port 8888 \
      --transport auto \
      --query properties.outputs.fqdn
    

    Este comando retorna o nome de domínio totalmente qualificado (FQDN) do seu aplicativo contêiner. Copie esse local para um editor de texto conforme necessário em uma próxima etapa.

    Uma próxima etapa instrui você a solicitar um token de acesso para fazer login no aplicativo hospedado pelo aplicativo contêiner. Certifique-se de aguardar de três a cinco minutos antes de tentar executar a solicitação para o token de acesso depois de criar o aplicativo contêiner para dar tempo suficiente para configurar todos os recursos necessários.

  3. Associe o serviço de complemento Qdrant ao aplicativo de contêiner.

    az containerapp update \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --bind qdrantdb
    

Configurar o aplicativo de contêiner

Agora que seu aplicativo de contêiner está em execução e conectado ao Qdrant, você pode configurar seu aplicativo de contêiner para aceitar solicitações de entrada.

  1. Configure as configurações de CORS no aplicativo de contêiner.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. Depois de esperar de três a cinco minutos para que o aplicativo conclua as operações de configuração, solicite um token de acesso para o Jupyter Notebook hospedado.

    echo Your access token is: `az containerapp logs show -g $RESOURCE_GROUP --name $APP_NAME --tail 300 | \
      grep token |  cut -d= -f 2 | cut -d\" -f 1 | uniq`
    

    Quando você executa esse comando, seu token é impresso no terminal. A mensagem deve ser semelhante ao exemplo a seguir.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Copie o valor do token para o editor de texto para usar para entrar no Jupyter Notebook.

Usar o Jupyter Notebook

  1. Abra um navegador da Web e cole a URL do aplicativo de contêiner reservado em um editor de texto.

    Quando a página é carregada, é apresentada uma caixa de entrada para introduzir o seu token de acesso.

  2. Ao lado do rótulo Senha para token, insira seu token na caixa de entrada e selecione Login.

    Depois de autenticar, você pode interagir com o código e os dados no Jupyter Notebook.

    Screenshot of the deployed Jupyter Notebook in the container image.

    Com o notebook iniciado, siga as instruções para interagir com o código e os dados.

Clean up resources (Limpar recursos)

Os recursos criados neste tutorial têm um efeito na sua fatura do Azure. Se você não vai usar esses serviços a longo prazo, execute o seguinte comando para remover tudo o que foi criado neste tutorial.

az group delete \
  --resource-group $RESOURCE_GROUP

Próximos passos