Partager via


Tutoriel : Se connecter à une base de données vectorielle Qdrant dans Azure Container Apps (préversion)

Azure Container Apps utilise des modules complémentaires pour faciliter la connexion à différents services cloud de niveau développement. Au lieu de créer des instances de services à l’avance pour établir des connexions avec des paramètres de configuration complexes, vous pouvez utiliser un module complémentaire pour connecter votre application conteneur à une base de données comme Qdrant.

Pour obtenir la liste complète des services pris en charge, consultez Se connecter aux services dans Azure Container Apps.

L’exemple d’application déployé dans ce tutoriel vous permet d’interagir avec un moteur de suggestions musicales basé sur la base de données vectorielle Qdrant. L’image conteneur héberge un notebook Jupyter qui contient le code que vous pouvez exécuter sur la base de données pour :

  • Interface avec des données de chanson
  • Générer des incorporations pour chaque chanson
  • Afficher les suggestions relatives aux chansons

Une fois déployé, vous avez la possibilité d’exécuter du code dans le notebook Jupyter pour interagir avec les données de chanson dans la base de données.

Screenshot of the Jupyter Notebook deployed in the container image.

Dans ce tutoriel, vous allez :

  • Créer une application de conteneur
  • Utiliser un module complémentaire Container Apps pour se connecter à une base de données Qdrant
  • Interagir avec un notebook Jupyter pour explorer les données

Important

Ce tutoriel utilise des services qui peuvent affecter votre facture Azure. Si vous décidez de suivre les étapes pas à pas, veillez à désactiver ou à supprimer les ressources proposées dans cet article pour éviter une facturation inattendue.

Prérequis

Pour mener à bien ce projet, vous avez besoin des éléments suivants :

Condition requise Instructions
Compte Azure Si vous n’en avez pas un, créez un compte gratuitement. Vous avez besoin de l’autorisation Contributeur ou Propriétaire sur l’abonnement Azure pour continuer.

Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Azure CLI Installez Azure CLI.

Paramétrage

Avant de commencer à utiliser la base de données Qdrant, vous devez d’abord créer votre application conteneur et les ressources requises.

Exécutez les commandes suivantes pour créer votre groupe de ressources, votre environnement d’applications conteneur et votre profil de charge de travail.

  1. Configurez le nom de l’application et les variables de groupe de ressources. Vous pouvez modifier ces valeurs selon vos préférences.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Créez des variables pour prendre en charge la configuration de votre application. Ces valeurs sont fournies dans le cadre de cette leçon. Ne changez pas ces valeurs.

    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
    
    Variable Description
    SERVICE_NAME Nom du service de module complémentaire créé pour votre application conteneur. Dans ce cas, vous créez une instance de niveau développement d’une base de données Qdrant.
    LOCATION Emplacement de la région Azure où vous créez votre application conteneur et votre module complémentaire.
    ENVIRONMENT Nom de l’environnement Azure Container Apps pour votre application de démonstration.
    WORKLOAD_PROFILE_TYPE Type de profil de charge de travail utilisé pour votre application conteneur. Cet exemple utilise un profil de charge de travail à usage général avec 32 cœurs 128 Gio de mémoire.
    CPU_SIZE Taille allouée du processeur.
    MEMORY_SIZE Quantité de mémoire allouée.
    IMAGE Image conteneur utilisée dans ce tutoriel. Cette image conteneur inclut le notebook Jupyter qui vous permet d’interagir avec les données de la base de données Qdrant.
  3. Connectez-vous à Azure avec Azure CLI.

    az login
    
  4. Créez un groupe de ressources.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Créez votre environnement d’applications conteneur.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Créez un profil de charge de travail dédié avec suffisamment de ressources pour utiliser une base de données vectorielle.

    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
    

Utiliser le module complémentaire Qdrant

Maintenant que vous disposez d’un environnement et d’un profil de charge de travail existants, vous pouvez créer votre application conteneur et la lier à une instance de module complémentaire de Qdrant.

  1. Créez le service de module complémentaire Qdrant.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Créez l’application conteneur.

    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
    

    Cette commande retourne le nom de domaine complet (FQDN) de votre application conteneur. Copiez cet emplacement dans un éditeur de texte, car vous en avez besoin dans une étape à venir.

    Une étape à venir vous indique de demander un jeton d’accès pour vous connecter à l’application hébergée par l’application conteneur. Veillez à patienter trois à cinq minutes avant d’essayer d’exécuter la demande du jeton d’accès après avoir créé l’application conteneur pour donner suffisamment de temps pour configurer toutes les ressources requises.

  3. Liez le service de module complémentaire Qdrant à l’application conteneur.

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

Configurer l’application conteneur

Maintenant que votre application conteneur est en cours d’exécution et connectée à Qdrant, vous pouvez configurer votre application conteneur pour accepter les demandes entrantes.

  1. Configurez les paramètres CORS sur l’application conteneur.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. Une fois que vous attendez trois à cinq minutes pour que l’application termine les opérations d’installation, demandez un jeton d’accès pour le notebook Jupyter hébergé.

    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`
    

    Lorsque vous exécutez cette commande, votre jeton est imprimé sur le terminal. Le message doit ressembler à l’exemple suivant.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Copiez votre valeur de jeton dans votre éditeur de texte pour vous connecter au notebook Jupyter.

Utiliser le notebook Jupyter

  1. Ouvrez un navigateur Web et collez l’URL de votre application conteneur que vous avez mise de côté dans un éditeur de texte.

    Lorsque la page se charge, une zone de saisie s’affiche pour entrer votre jeton d’accès.

  2. À côté du Mot de passe pour le jeton , entrez votre jeton dans la zone de saisie, puis sélectionnez Connexion.

    Une fois que vous vous authentifiez, vous pouvez interagir avec le code et les données dans le notebook Jupyter.

    Screenshot of the deployed Jupyter Notebook in the container image.

    Avec le notebook lancé, suivez les instructions pour interagir avec le code et les données.

Nettoyer les ressources

Les ressources créées dans ce tutoriel ont un effet sur votre facture Azure. Si vous n’allez pas utiliser ces services à long terme, exécutez la commande suivante pour supprimer tout ce qui a été créé dans ce didacticiel.

az group delete \
  --resource-group $RESOURCE_GROUP

Étapes suivantes