チュートリアル: 接続文字列を使用して AKS の Azure OpenAI Service に接続する (プレビュー)
このチュートリアルでは、接続文字列を使用して Azure OpenAI Service と通信する、Azure Kubernetes (AKS) クラスター内にポッドを作成する方法を学習します。 次のタスクを実行します。
gpt-4
モデル デプロイを使用して AKS クラスターと Azure OpenAI Service を作成します。- サービス コネクタを使用して、AKS クラスターと Azure OpenAI の間に接続を作成します。
- AKS クラスターから OpenAI サービスと通信するサンプル アプリケーションを複製します。
- AKS クラスター内のポッドにアプリケーションを配置し、接続をテストします。
- リソースをクリーンアップする。
警告
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フローでは、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、より安全なフローが実行可能ではない場合にのみ使用してください。 マネージド ID を使用するチュートリアルを参照してください。
前提条件
- アクティブなサブスクリプションが含まれる 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 を実行します。
- コンテナー イメージと Kubernetes リソースを管理するための Docker と kubectl。
- コンテナーと AKS の基本的な理解。 AKS 用のアプリケーションの準備から開始します。
- Azure OpenAI Service リソースを作成し、モデルをデプロイするためのアクセス許可。
Azure リソースを作成する
このチュートリアル用のリソース グループを作成します。
az group create \ --name MyResourceGroup \ --location eastus
次のコマンドを使用するか、AKS クイック スタートを参照して、AKS クラスターを作成します。 このクラスターでは、サービス接続とポッド定義を作成し、サンプル アプリケーションをデプロイします。
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 Service リソースを作成します。 必要に応じて、詳細な手順についてはこのチュートリアルを参照してください。 Azure OpenAI Service は、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 ポッド定義が使用するサンプル アプリケーションのコンテナー イメージをホストします。
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
Service Connector を使用して AKS でサービス接続を作成する (プレビュー)
Azure portal または Azure CLI で、AKS クラスターと Azure OpenAI Service の間にサービス接続を作成します。
新しい接続を作成し、次の表の例を参照して設定を入力する手順については、AKS サービス接続のクイックスタートを参照してください。 その他の設定はすべて既定値のままにします。
[基本] タブ:
設定 値の例 説明 Kubernetes の名前空間 default Kubernetes 名前空間。 サービスの種類 OpenAI Service ターゲット サービスの種類。 接続名 openai_conn Service Connector によって提供される接続名を使用するか、独自の接続名を選択します。 サブスクリプション <MySubscription>
Azure OpenAI Service に使用されるサブスクリプション。 OpenAI <MyOpenAIService>
接続先のターゲット Azure OpenAI Service。 クライアントの種類 Python ターゲット サービスに接続するために使用するコード言語またはフレームワーク。 [認証] タブ
認証設定 値の例 説明 認証の種類 接続文字列 Service Connector 認証の種類。
接続が作成されたら、[サービス コネクタ] ペインでその詳細を表示できます。
サンプル アプリケーションを複製する
サンプル リポジトリをクローンします。
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>
をサービス コネクタによって作成されたシークレットに置き換えます。 シークレット名は、Azure portal の [サービス コネクタ] ペインで確認できます。
kubectl apply
コマンドを使用してポッドをクラスターに配置します。kubectl
がインストールされていない場合は、az aks install-cli コマンドを使用して、ローカルにインストールします。 コマンドでは、AKS クラスターの既定の名前空間にsc-demo-openai-connstr
という名前のポッドが作成されます。kubectl apply -f pod.yaml
kubectl
でポッドを表示して、デプロイが成功したかどうかを確認します。kubectl get pod/sc-demo-openai-connstr
kubectl
でログを表示して、接続が機能していることを確認します。kubectl logs pod/sc-demo-openai-connstr
リソースをクリーンアップする
これらのリソースが不要になった場合は、リソース グループを削除して、このチュートリアルで作成した Azure リソースをクリーンアップします。
az group delete \
--resource-group MyResourceGroup
次のステップ
サービス コネクタの概念と、それを使って AKS を Azure サービスに接続する方法について詳しくは、次の記事をご覧ください。