教學課程:使用連接字串連線到 AKS 中的 Azure OpenAI 服務 (預覽)
在本教學課程中,您會了解如何在 Azure Kubernetes (AKS) 叢集中建立 Pod,以使用連接字串與 Azure OpenAI 服務交談。 您要完成下列工作:
- 建立具有
gpt-4
模型部署的 AKS 叢集和 Azure OpenAI 服務。 - 使用服務連接器在 AKS 叢集與 Azure OpenAI 之間建立連線。
- 複製可從 AKS 叢集與 OpenAI 服務交談的應用程式範例。
- 將應用程式部署至 AKS 叢集中的 Pod,並測試連線。
- 清除資源。
警告
Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。 請參閱使用受控識別的教學課程。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
-
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- Docker 和 kubectl 可管理容器映像和 Kubernetes 資源。
- 對容器和 AKS 有基本了解。 從準備 AKS 的應用程式開始。
- 建立 Azure OpenAI 服務資源及部署模型的存取權限。
建立 Azure 資源
為本教學課程建立資源群組。
az group create \ --name MyResourceGroup \ --location eastus
使用下列命令建立 AKS 叢集,或參考 AKS 快速入門。 我們會在此叢集中建立服務連線和 Pod 定義,並將應用程式範例部署至此叢集。
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 \ --generate-ssh-keys
使用 az aks get-credentials 命令連線到叢集。
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
使用 az cognitiveservices account create 命令建立 Azure OpenAI 服務資源。 如需更多指示,請選擇性地參閱本教學課程。 Azure OpenAI 服務是將與 AKS 叢集連線的目標服務。
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
使用 az cognitiveservices deployment create 命令部署模型。 此模型會在應用程式範例中用來測試連線。
az cognitiveservices account deployment create \ --resource-group MyResourceGroup \ --name MyOpenAIService --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" --capacity 1
使用 az acr create 命令建立 Azure Container Registry (ACR) 資源,或參考本教學課程。 登錄會裝載應用程式範例的容器映像,由 AKS Pod 定義取用。
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
使用 az acr update 命令啟用匿名提取,讓 AKS 叢集可以取用登錄中的映像。
az acr update \ --resource-group MyResourceGroup \ --name myregistry \ --anonymous-pull-enabled
使用服務連接器在 AKS 中建立服務連線 (預覽)
在 Microsoft Azure 入口網站或 Azure CLI 中,建立 AKS 叢集與 Azure OpenAI 服務之間的服務連線。
請參閱 AKS 服務連線快速入門,以取得建立新連線的指示,並參考下表中範例填入設定。 讓其他所有設定保留其預設值。
[基本] 索引標籤:
設定 範例值 描述 Kubernetes 命名空間 預設值 Kubernetes 命名空間。 服務類型 OpenAI 服務 目標服務類型。 連線名稱 openai_conn 使用服務連接器所提供的連線名稱,或選擇您自己的連線名稱。 訂用帳戶 <MySubscription>
用於 Azure OpenAI 服務的訂用帳戶。 OpenAI <MyOpenAIService>
您想要與之連線的目標 Azure OpenAI 服務。 用戶端類型 Python 您用來連線到目標服務的程式碼語言或架構。 [驗證] 索引標籤:
驗證設定 範例值 描述 驗證類型 連接字串 服務連接器驗證類型。
建立連線之後,您可以在 [服務連接器] 窗格中檢視連線的詳細資料。
複製應用程式範例
複製範例存放庫:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
移至 Azure OpenAI 的存放庫範例資料夾:
cd serviceconnector-aks-samples/azure-openai-connection-string
以我們部署的模型名稱取代
app.py
檔案中的<MyModel>
預留位置。
組建和推送容器映像
使用 Azure CLI az acr build 命令來組建映像,並將其推送至您的容器登錄。
az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
使用 az acr repository list 命令來檢視容器登錄中的映像。
az acr repository list --name <MyRegistry> --output table
執行應用程式和測試連線
取代
azure-openai-connection-string
資料夾中pod.yaml
檔案的預留位置。- 將
<YourContainerImage>
取代為我們稍早組建的映像名稱。 例如:<MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest
。 - 將
<SecretCreatedByServiceConnector>
取代服務連接器所建立的祕密。 您可以在 Microsoft Azure 入口網站的 [服務連接器] 窗格中查看祕密名稱。
- 將
使用
kubectl apply
命令,將 Pod 部署至您的叢集。 如果未安裝,請使用 az aks install-cli 命令,在本機安裝kubectl
。 命令會在 AKS 叢集的預設命名空間中建立名為sc-demo-openai-connstr
的 Pod。kubectl apply -f pod.yaml
使用
kubectl
檢視 Pod,檢查部署是否成功。kubectl get pod/sc-demo-openai-connstr
使用
kubectl
檢視記錄,檢查是否已建立連線。kubectl logs pod/sc-demo-openai-connstr
清除資源
如果已經不再需要這些資源,您可以刪除資源群組,以刪除在本教學課程中建立的 Azure 資源。
az group delete \
--resource-group MyResourceGroup
下一步
請閱讀下列文章,以深入了解服務連接器的概念,以及其如何協助 AKS 連線到 Azure 服務。