教學課程:在 Azure Container Apps 中 連線 Qdrant 向量資料庫 (預覽)
Azure Container Apps 會使用 附加元件 ,輕鬆地連線到各種開發等級的雲端服務。 您可以使用附加元件,將容器應用程式連線到 Qdrant 等資料庫,而不是事先建立服務實例來建立複雜的組態設定。
如需支援服務的完整清單,請參閱 azure Container Apps 中的服務 連線。
本教學課程中部署的範例應用程式可讓您根據 Qdrant 向量資料庫與音樂建議引擎互動。 容器映射裝載 Jupyter Notebook,其中包含您可以針對資料庫執行的程式代碼,以執行下列動作:
- 使用歌曲數據的介面
- 產生每個歌曲的內嵌
- 檢視歌曲建議
部署之後,您有機會在 Jupyter Notebook 中執行程式代碼,以與資料庫中的歌曲數據進行介面。
在本教學課程中,您會:
- 建立容器應用程式
- 使用 Container Apps 附加元件連線到 Qdrant 資料庫
- 與 Jupyter Notebook 互動以探索數據
重要
本教學課程使用可能會影響 Azure 帳單的服務。 如果您決定依照逐步操作,請務必停用或刪除本文中精選的資源,以避免非預期的計費。
必要條件
若要完成此專案,您需要下列專案:
需求 | 指示 |
---|---|
Azure 帳戶 | 如果您沒有帳戶,可免費建立帳戶。 您需要 Azure 訂用帳戶的參與者 或 擁有者 許可權才能繼續。 如需詳細資訊,請參閱使用 Azure 入口網站 指派 Azure 角色。 |
Azure CLI | 安裝 Azure CLI。 |
設定
開始使用 Qdrant 資料庫之前,您必須先建立容器應用程式和所需的資源。
執行下列命令來建立您的資源群組、容器應用程式環境和工作負載配置檔。
設定應用程式名稱和資源組名變數。 您可以將這些值變更為喜好設定。
export APP_NAME=music-recommendations-demo-app export RESOURCE_GROUP=playground
建立變數以支援您的應用程式組態。 為了本課程的目的,系統會為您提供這些值。 請勿變更這些值。
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 資料庫中的數據互動。 使用 Azure CLI 登入 Azure。
az login
建立資源群組。
az group create --name $RESOURCE_GROUP --location $LOCATION
建立容器應用程式環境。
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --enable-workload-profiles
建立具有足夠資源的專用工作負載配置檔,以使用向量資料庫。
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 的附加元件實例。
建立 Qdrant 附加元件服務。
az containerapp add-on qdrant create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $SERVICE_NAME
建立容器應用程式。
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)。 將這個位置複製到文本編輯器,因為您在後續步驟中需要它。
即將推出的步驟會指示您要求存取令牌,以登入容器應用程式所裝載的應用程式。 建立容器應用程式之後,請務必等候三到五分鐘,再嘗試執行存取令牌的要求,以有足夠的時間設定所有必要的資源。
將 Qdrant 附加元件服務系結至容器應用程式。
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind qdrantdb
設定容器應用程式
既然您的容器應用程式正在執行並連線到 Qdrant,您可以將容器應用程式設定為接受傳入要求。
在容器應用程式上設定 CORS 設定。
az containerapp ingress cors enable \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --allowed-origins "*" \ --allow-credentials true
一旦您等待三到五分鐘,應用程式才能完成設定作業,請要求託管 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
開啟網頁瀏覽器,並貼上您在文本編輯器中放在一邊的容器應用程式的URL。
當頁面載入時,您會看到輸入方塊來輸入存取令牌。
在 [ 密碼到令牌] 標籤旁,在輸入方塊中輸入您的令牌 ,然後選取 [ 登入]。
驗證之後,您就可以與 Jupyter Notebook 中的程式代碼和數據互動。
啟動筆記本后,請遵循指示來與程式碼和數據互動。
清除資源
本教學課程中建立的資源會影響您的 Azure 帳單。 如果您不會長期使用這些服務,請執行下列命令來移除本教學課程中建立的所有專案。
az group delete \
--resource-group $RESOURCE_GROUP