共用方式為


教學課程:使用連接字串連線到 AKS 中的 Azure OpenAI 服務 (預覽)

在本教學課程中,您會了解如何在 Azure Kubernetes (AKS) 叢集中建立 Pod,以使用連接字串與 Azure OpenAI 服務交談。 您要完成下列工作:

  • 建立具有 gpt-4 模型部署的 AKS 叢集和 Azure OpenAI 服務。
  • 使用服務連接器在 AKS 叢集與 Azure OpenAI 之間建立連線。
  • 複製可從 AKS 叢集與 OpenAI 服務交談的應用程式範例。
  • 將應用程式部署至 AKS 叢集中的 Pod,並測試連線。
  • 清除資源。

警告

Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。 請參閱使用受控識別的教學課程

必要條件

建立 Azure 資源

  1. 為本教學課程建立資源群組。

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 使用下列命令建立 AKS 叢集,或參考 AKS 快速入門。 我們會在此叢集中建立服務連線和 Pod 定義,並將應用程式範例部署至此叢集。

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
       --generate-ssh-keys
    
  3. 使用 az aks get-credentials 命令連線到叢集。

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. 使用 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>
    
  5. 使用 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
    
  6. 使用 az acr create 命令建立 Azure Container Registry (ACR) 資源,或參考本教學課程。 登錄會裝載應用程式範例的容器映像,由 AKS Pod 定義取用。

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. 使用 az acr update 命令啟用匿名提取,讓 AKS 叢集可以取用登錄中的映像。

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    

使用服務連接器在 AKS 中建立服務連線 (預覽)

在 Microsoft Azure 入口網站或 Azure CLI 中,建立 AKS 叢集與 Azure OpenAI 服務之間的服務連線。

請參閱 AKS 服務連線快速入門,以取得建立新連線的指示,並參考下表中範例填入設定。 讓其他所有設定保留其預設值。

  1. [基本] 索引標籤:

    設定 範例值 描述
    Kubernetes 命名空間 預設值 Kubernetes 命名空間。
    服務類型 OpenAI 服務 目標服務類型。
    連線名稱 openai_conn 使用服務連接器所提供的連線名稱,或選擇您自己的連線名稱。
    訂用帳戶 <MySubscription> 用於 Azure OpenAI 服務的訂用帳戶。
    OpenAI <MyOpenAIService> 您想要與之連線的目標 Azure OpenAI 服務。
    用戶端類型 Python 您用來連線到目標服務的程式碼語言或架構。
  2. [驗證] 索引標籤:

    驗證設定 範例值 描述
    驗證類型 連接字串 服務連接器驗證類型。

建立連線之後,您可以在 [服務連接器] 窗格中檢視連線的詳細資料。

複製應用程式範例

  1. 複製範例存放庫:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. 移至 Azure OpenAI 的存放庫範例資料夾:

    cd serviceconnector-aks-samples/azure-openai-connection-string
    
  3. 以我們部署的模型名稱取代 app.py 檔案中的 <MyModel> 預留位置。

組建和推送容器映像

  1. 使用 Azure CLI az acr build 命令來組建映像,並將其推送至您的容器登錄。

    az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
    
  2. 使用 az acr repository list 命令來檢視容器登錄中的映像。

    az acr repository list --name <MyRegistry> --output table
    

執行應用程式和測試連線

  1. 取代 azure-openai-connection-string 資料夾中 pod.yaml 檔案的預留位置。

    • <YourContainerImage> 取代為我們稍早組建的映像名稱。 例如: <MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest
    • <SecretCreatedByServiceConnector> 取代服務連接器所建立的祕密。 您可以在 Microsoft Azure 入口網站的 [服務連接器] 窗格中查看祕密名稱。
  2. 使用 kubectl apply 命令,將 Pod 部署至您的叢集。 如果未安裝,請使用 az aks install-cli 命令,在本機安裝 kubectl。 命令會在 AKS 叢集的預設命名空間中建立名為 sc-demo-openai-connstr 的 Pod。

    kubectl apply -f pod.yaml
    
  3. 使用 kubectl 檢視 Pod,檢查部署是否成功。

    kubectl get pod/sc-demo-openai-connstr
    
  4. 使用 kubectl 檢視記錄,檢查是否已建立連線。

    kubectl logs pod/sc-demo-openai-connstr
    

清除資源

如果已經不再需要這些資源,您可以刪除資源群組,以刪除在本教學課程中建立的 Azure 資源。

az group delete \
    --resource-group MyResourceGroup

下一步

請閱讀下列文章,以深入了解服務連接器的概念,以及其如何協助 AKS 連線到 Azure 服務。