Dela via


Självstudie: Anslut till en Qdrant-vektordatabas i Azure Container Apps (förhandsversion)

Azure Container Apps använder tillägg för att göra det enkelt att ansluta till olika molntjänster i utvecklingsklass. I stället för att skapa instanser av tjänster i förväg för att upprätta anslutningar med komplexa konfigurationsinställningar kan du använda ett tillägg för att ansluta containerappen till en databas som Qdrant.

En fullständig lista över tjänster som stöds finns i Anslut till tjänster i Azure Container Apps.

Med exempelprogrammet som distribueras i den här självstudien kan du interagera med en musikrekommendationsmotor baserat på Qdrant-vektordatabasen. Containeravbildningen är värd för en Jupyter Notebook som innehåller den kod som du kan köra mot databasen för att:

  • Gränssnitt med sångdata
  • Generera inbäddningar för varje låt
  • Visa låtrekommendationer

När du har distribuerat den har du möjlighet att köra kod i Jupyter Notebook för att interagera med låtdata i databasen.

Screenshot of the Jupyter Notebook deployed in the container image.

I den här självstudien:

  • Skapa en containerapp
  • Använda ett Container Apps-tillägg för att ansluta till en Qdrant-databas
  • Interagera med en Jupyter Notebook för att utforska data

Viktigt!

I den här självstudien används tjänster som kan påverka din Azure-faktura. Om du bestämmer dig för att följa med steg för steg ska du inaktivera eller ta bort resurserna i den här artikeln för att undvika oväntad fakturering.

Förutsättningar

För att slutföra det här projektet behöver du följande:

Krav Instruktioner
Azure-konto Om du inte har något skapar du ett konto kostnadsfritt. Du behöver behörigheten Deltagare eller Ägare för Azure-prenumerationen för att kunna fortsätta.

Mer information finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Azure CLI Installera Azure CLI.

Konfiguration

Innan du börjar arbeta med Qdrant-databasen måste du först skapa din containerapp och de resurser som krävs.

Kör följande kommandon för att skapa resursgruppen, containerappmiljön och arbetsbelastningsprofilen.

  1. Konfigurera programnamn och resursgruppsvariabler. Du kan ändra dessa värden efter dina önskemål.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Skapa variabler som stöd för programkonfigurationen. Dessa värden tillhandahålls för dig i den här lektionen. Ändra inte dessa värden.

    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
    
    Olika beskrivning
    SERVICE_NAME Namnet på tilläggstjänsten som skapats för containerappen. I det här fallet skapar du en instans av utvecklingsklass för en Qdrant-databas.
    LOCATION Den Plats i Azure-regionen där du skapar din containerapp och ditt tillägg.
    ENVIRONMENT Miljönamnet för Azure Container Apps för ditt demoprogram.
    WORKLOAD_PROFILE_TYPE Den arbetsbelastningsprofiltyp som används för din containerapp. I det här exemplet används en arbetsbelastningsprofil för generell användning med 32 kärnor 128 GiB minne.
    CPU_SIZE Den allokerade storleken på processorn.
    MEMORY_SIZE Den allokerade mängden minne.
    IMAGE Containeravbildningen som används i den här självstudien. Den här containeravbildningen innehåller Jupyter Notebook som gör att du kan interagera med data i Qdrant-databasen.
  3. Logga in på Azure med Azure CLI.

    az login
    
  4. Skapa en resursgrupp.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Skapa din containerappmiljö.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Skapa en dedikerad arbetsbelastningsprofil med tillräckligt med resurser för att arbeta med en vektordatabas.

    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
    

Använda Qdrant-tillägget

Nu när du har en befintlig miljö och arbetsbelastningsprofil kan du skapa din containerapp och binda den till en tilläggsinstans av Qdrant.

  1. Skapa Qdrant-tilläggstjänsten.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Skapa containerappen.

    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
    

    Det här kommandot returnerar det fullständigt kvalificerade domännamnet (FQDN) för containerappen. Kopiera den här platsen till en textredigerare när du behöver den i ett kommande steg.

    Ett kommande steg instruerar dig att begära en åtkomsttoken för att logga in på programmet som värdhanteras av containerappen. Vänta tre till fem minuter innan du försöker köra begäran för åtkomsttoken när du har skapat containerappen för att ge tillräckligt med tid för att konfigurera alla nödvändiga resurser.

  3. Binda Qdrant-tilläggstjänsten till containerappen.

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

Konfigurera containerappen

Nu när containerappen körs och är ansluten till Qdrant kan du konfigurera containerappen så att den accepterar inkommande begäranden.

  1. Konfigurera CORS-inställningar i containerappen.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. När du har väntat tre till fem minuter på att appen ska slutföra installationsåtgärderna begär du en åtkomsttoken för den värdbaserade Jupyter Notebook.

    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`
    

    När du kör det här kommandot skrivs din token ut till terminalen. Meddelandet bör se ut som i följande exempel.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Kopiera ditt tokenvärde till textredigeraren som ska användas för att logga in på Jupyter Notebook.

Använda Jupyter Notebook

  1. Öppna en webbläsare och klistra in URL:en för containerappen som du har angett i en textredigerare.

    När sidan läses in visas en indataruta för att ange din åtkomsttoken.

  2. Bredvid etiketten Lösenord till token anger du din token i indatarutan och väljer Logga in.

    När du har autentiserats kan du interagera med koden och data i Jupyter Notebook.

    Screenshot of the deployed Jupyter Notebook in the container image.

    När notebook-filen har startats följer du anvisningarna för att interagera med koden och data.

Rensa resurser

De resurser som skapas i den här självstudien påverkar din Azure-faktura. Om du inte ska använda dessa tjänster på lång sikt kör du följande kommando för att ta bort allt som skapats i den här självstudien.

az group delete \
  --resource-group $RESOURCE_GROUP

Nästa steg