Compartilhar via


Tutorial: Conectar-se a um banco de dados de vetor Qdrant nos Aplicativos de Contêiner do Azure (versão prévia)

Os Aplicativos de Contêiner do Azure usam complementos para facilitar a conexão com 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 configurações 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 com suporte, consulte Conectar-se aos serviços nos Aplicativos de Contêiner do Azure.

O aplicativo de exemplo implantado neste tutorial permite que você interface com um mecanismo de recomendação de música com base no banco de dados de vetor 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:

  • Interagir com dados de música
  • Gerar inserções para cada canção
  • Exibir recomendações de música

Depois de implantado, você tem a oportunidade de executar código no Jupyter Notebook para interagir com dados de música 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 de Aplicativos de Contêiner para se conectar a um banco de dados Qdrant
  • Interagir 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 passo a passo, desative ou exclua os recursos apresentados neste artigo para evitar cobrança inesperada.

Pré-requisitos

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

Requisito Instruções
Conta do Azure Se você não tiver, crie uma conta gratuita. 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.

Instalaçã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 para 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 Descrição
    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 em que 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 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. Essa imagem de contêiner inclui o Jupyter Notebook que permite que você interaja com dados no banco de dados Qdrant.
  3. Faça logon no Azure com a CLI do Azure.

    az login
    
  4. Crie um grupos 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 de vetor.

    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
    

Usar o complemento Qdrant

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

  1. Crie o serviço de complemento 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
    

    Esse comando retorna o FQDN (nome de domínio totalmente qualificado) do seu aplicativo de contêiner. Copie esse local para um editor de texto, pois você precisa dele em uma etapa futura.

    Uma etapa futura instrui você a solicitar um token de acesso para fazer logon no aplicativo hospedado pelo aplicativo de contêiner. Aguarde de três a cinco minutos antes de tentar executar a solicitação do token de acesso depois de criar o aplicativo de 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. Defina as configurações do 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 aguardar de três a cinco minutos para que o aplicativo conclua as operações de instalaçã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 a ser usado para entrar no Jupyter Notebook.

Usar o Jupyter Notebook

  1. Abra um navegador da Web e cole na URL do aplicativo de contêiner que você reservou em um editor de texto.

    Quando a página é carregada, você recebe uma caixa de entrada para inserir seu token de acesso.

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

    Depois de autenticar, você poderá 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.

Limpar os recursos

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

az group delete \
  --resource-group $RESOURCE_GROUP

Próximas etapas