Share via


教學課程:在 Azure Container Apps 中 連線 Qdrant 向量資料庫 (預覽)

Azure Container Apps 會使用 附加元件 ,輕鬆地連線到各種開發等級的雲端服務。 您可以使用附加元件,將容器應用程式連線到 Qdrant 等資料庫,而不是事先建立服務實例來建立複雜的組態設定。

如需支援服務的完整清單,請參閱 azure Container Apps 中的服務 連線。

本教學課程中部署的範例應用程式可讓您根據 Qdrant 向量資料庫與音樂建議引擎互動。 容器映射裝載 Jupyter Notebook,其中包含您可以針對資料庫執行的程式代碼,以執行下列動作:

  • 使用歌曲數據的介面
  • 產生每個歌曲的內嵌
  • 檢視歌曲建議

部署之後,您有機會在 Jupyter Notebook 中執行程式代碼,以與資料庫中的歌曲數據進行介面。

Screenshot of the Jupyter Notebook deployed in the container image.

在本教學課程中,您會:

  • 建立容器應用程式
  • 使用 Container Apps 附加元件連線到 Qdrant 資料庫
  • 與 Jupyter Notebook 互動以探索數據

重要

本教學課程使用可能會影響 Azure 帳單的服務。 如果您決定依照逐步操作,請務必停用或刪除本文中精選的資源,以避免非預期的計費。

必要條件

若要完成此專案,您需要下列專案:

需求 指示
Azure 帳戶 如果您沒有帳戶,可免費建立帳戶。 您需要 Azure 訂用帳戶的參與者擁有者 許可權才能繼續。

如需詳細資訊,請參閱使用 Azure 入口網站 指派 Azure 角色。
Azure CLI 安裝 Azure CLI

設定

開始使用 Qdrant 資料庫之前,您必須先建立容器應用程式和所需的資源。

執行下列命令來建立您的資源群組、容器應用程式環境和工作負載配置檔。

  1. 設定應用程式名稱和資源組名變數。 您可以將這些值變更為喜好設定。

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. 建立變數以支援您的應用程式組態。 為了本課程的目的,系統會為您提供這些值。 請勿變更這些值。

    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
    
    變數 描述
    SERVICE_NAME 為容器應用程式建立的附加元件服務名稱。 在此情況下,您會建立 Qdrant 資料庫的開發等級實例。
    LOCATION 您建立容器應用程式和附加元件所在的 Azure 區域位置。
    ENVIRONMENT 示範應用程式的 Azure Container Apps 環境名稱。
    WORKLOAD_PROFILE_TYPE 用於容器應用程式的工作負載配置檔類型。 此範例使用具有 32 個核心 128 GiB 記憶體的一般用途工作負載配置檔。
    CPU_SIZE CPU 的配置大小。
    MEMORY_SIZE 配置的記憶體數量。
    IMAGE 本教學課程中使用的容器映像。 此容器映像包含 Jupyter Notebook,可讓您與 Qdrant 資料庫中的數據互動。
  3. 使用 Azure CLI 登入 Azure。

    az login
    
  4. 建立資源群組。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. 建立容器應用程式環境。

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. 建立具有足夠資源的專用工作負載配置檔,以使用向量資料庫。

    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
    

使用 Qdrant 附加元件

既然您已有環境和工作負載配置檔,您可以建立容器應用程式,並將它系結至 Qdrant 的附加元件實例。

  1. 建立 Qdrant 附加元件服務。

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. 建立容器應用程式。

    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
    

    此命令會傳回容器應用程式的完整功能變數名稱(FQDN)。 將這個位置複製到文本編輯器,因為您在後續步驟中需要它。

    即將推出的步驟會指示您要求存取令牌,以登入容器應用程式所裝載的應用程式。 建立容器應用程式之後,請務必等候三到五分鐘,再嘗試執行存取令牌的要求,以有足夠的時間設定所有必要的資源。

  3. 將 Qdrant 附加元件服務系結至容器應用程式。

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

設定容器應用程式

既然您的容器應用程式正在執行並連線到 Qdrant,您可以將容器應用程式設定為接受傳入要求。

  1. 在容器應用程式上設定 CORS 設定。

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. 一旦您等待三到五分鐘,應用程式才能完成設定作業,請要求託管 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`
    

    當您執行此命令時,令牌會列印至終端機。 訊息看起來應該像下列範例。

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    將令牌值複製到文本編輯器,以用來登入 Jupyter Notebook。

使用 Jupyter Notebook

  1. 開啟網頁瀏覽器,並貼上您在文本編輯器中放在一邊的容器應用程式的URL。

    當頁面載入時,您會看到輸入方塊來輸入存取令牌。

  2. 在 [ 密碼到令牌] 標籤旁,在輸入方塊中輸入您的令牌 ,然後選取 [ 登入]。

    驗證之後,您就可以與 Jupyter Notebook 中的程式代碼和數據互動。

    Screenshot of the deployed Jupyter Notebook in the container image.

    啟動筆記本后,請遵循指示來與程式碼和數據互動。

清除資源

本教學課程中建立的資源會影響您的 Azure 帳單。 如果您不會長期使用這些服務,請執行下列命令來移除本教學課程中建立的所有專案。

az group delete \
  --resource-group $RESOURCE_GROUP

下一步