0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Azure AI Foundry:第1回】クラウド知能への接続:SDKのセットアップとAIProjectClient

0
Last updated at Posted at 2026-07-27

【Azure AI Foundry:第1回】クラウド知能への接続:SDKのセットアップとAIProjectClient

新連載:Azure AI Foundryとマルチエージェント

※本連載は、前回の「AIエージェントの解剖学」で組み立てた自律知能を、Azureの強固なクラウドインフラへと移植し、実務で安全・強力に動作する「エンタープライズ仕様の自律チームエージェント」を構築するステップバイステップのハンズオン連載です。


1. イントロダクション(今回の到達目標)

これまでの連載では、ローカルPCの限られたリソースと擬似的なコードを用いて、エージェントを構成する基本的な「脳と神経パーツ(ReAct、MCP、Graph状態など)」の仕組みを解剖してきました。

しかし、これらのパーツを実業務で本番運用するためには、ローカルPCの閉じた世界から脱却し、強固なセキュリティ境界、安全なプログラムコード実行環境、そしてスケーラブルなデータベース検索インフラが必要です。これらを一挙に提供するのが、MicrosoftのエンタープライズAI基盤、「Azure AI Foundry」です。

新連載の第1回となる今回は、この強固なクラウド知能へとローカル開発環境から安全にアクセスするためのSDKのセットアップを行い、すべてのAzure AIサービスの司令塔となる中心的な接続オブジェクト、「AIProjectClient」を構築して、デプロイ済みのAIモデルとの間で最初の会話(疎通確認)を完結させることを目標とします。


2. 前提条件(Prerequisites)

本連載のコードを実際に手元で動かすためには、事前に以下の環境準備と権限設定が必要です。

① Azure上のリソース準備

  1. Azureサブスクリプション の所有、または共同作成者権限。
  2. Azure AI Foundry のハブ(Hub)およびプロジェクト(Project)の作成。
  3. プロジェクト内へのチャットモデル(例: gpt-4o など)のデプロイ(デプロイメント名はモデル名と一致させておくとスムーズです)。
  4. プロジェクトの「プロジェクト設定」ページから、「プロジェクトのエンドポイント」(https://... から始まるURL)をコピーしておきます。

② ローカル環境の認証設定

本SDKは、安全な認証プロトコルである Microsoft Entra ID を用いたトークンベースの認証のみをサポートしています。
ローカル開発PCから接続する場合、事前に Azure CLI をインストールし、ターミナルで以下のコマンドを実行してAzureへログインしてください。

az login

③ Azureリソースへの適切なロール(権限)の割り当て

ローカルでログインしているあなたのAzureアカウントに対し、Azure portalの該当AIプロジェクトのリソース上で、最低限以下のロールが「アクセス制御(IAM)」タブから割り当てられていることを確認してください。

  • Azure AI Developer(推奨)、またはそれに準ずるデータプレーンアクセス権限。

④ ライブラリのインストール

ターミナルで以下のコマンドを実行し、最新バージョンの SDK と認証用ライブラリをインストールします。

pip install "azure-ai-projects>=2.0.0" azure-identity

3. システム設計と認証フロー

本SDKにおける認証の最大の特徴は、「DefaultAzureCredential」を利用した資格情報の自動切り替えメカニズムです。

DefaultAzureCredential を使用してクライアントを初期化すると、コードがローカルで走っているときは自動的に az login された開発者トークンを検出し、Azure上の本番環境(App Service や Container Apps など)へデプロイされた後は、コードを1文字も書き換えることなく「マネージドID(Managed Identity)」を用いたパスワードレスな安全接続へとシームレスに切り替わります。APIキーをコード内に直接書き込む必要は一切ありません。


4. 【実践】プロジェクトへの接続とChatCompletionsの呼び出し

それでは、実際にAzure AI Foundryプロジェクトへ接続し、デプロイ済みの gpt-4o モデルと対話を行う Python スクリプトを実行してみましょう。

ローカル環境変数の AZURE_AI_PROJECT_ENDPOINT に、事前にコピーしたプロジェクトエンドポイントを設定してから実行します。

# Windows (PowerShell) の環境変数設定例
$env:AZURE_AI_PROJECT_ENDPOINT="https://your-project-endpoint.services.ai.azure.com"
# 動作確認済みライブラリバージョン: azure-ai-projects==2.0.0
import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

def main():
    # 1. 環境変数からエンドポイントの取得
    endpoint = os.environ.get("AZURE_AI_PROJECT_ENDPOINT")
    if not endpoint:
        print("Error: 環境変数 AZURE_AI_PROJECT_ENDPOINT が設定されていません。")
        return
        
    print(f"⚡ システム: エンドポイント {endpoint} への接続を試みます...")

    # 2. DefaultAzureCredential を介した安全な認証クライアントの初期化
    credential = DefaultAzureCredential()
    project_client = AIProjectClient(
        endpoint=endpoint,
        credential=credential
    )

    # 3. 認証済み OpenAI 互換クライアントの取得
    # 最新のSDKでは、inferenceプロパティを経由せず、直接 get_openai_client() を呼び出します
    openai_client = project_client.get_openai_client(
        api_version="2024-10-21"
    )

    # 4. デプロイ済みのチャットモデルを呼び出して疎通確認
    print("🤖 AIモデルに問い合わせを送信中...")
    response = openai_client.chat.completions.create(
        model="gpt-4o",  # Azureポータル上でデプロイした「モデルのデプロイ名」を指定します
        messages=[
            {"role": "system", "content": "あなたは優秀なエンジニアリングアシスタントです。"},
            {"role": "user", "content": "AIProjectClient を使用した接続テストに成功しました!一言感想を述べてください。"}
        ]
    )

    # 5. 応答の表示
    answer = response.choices[0].message.content
    print("\n--- AIからの返答 ---")
    print(answer)
    print("--------------------")

if __name__ == "__main__":
    main()

このスクリプトを実行すると、ローカルPC内のAzure認証トークンを元に、クラウド上にある AI Foundry プロジェクトのエンドポイントへ安全に要求が届き、プロジェクトに紐付いた gpt-4o モデルから安全に応答が引き出される様子が確認できます。


5. まとめと次回の展望

これで、私たちのAIエージェント構築に必要な「クラウド上のセキュアなインフラの接続基盤」が完成しました。
これによって、APIキー流出のリスクがない、本番運用の水準に耐えうる接続が担保されました。

しかし、今の状態はまだ一問一答の「チャットボット」と変わりません。エージェントが自律して働くためには、これまでの会話や推論の文脈(コンテキスト)をずっと記憶し続ける仕組みが必要です。

次回、第2回。
会話の履歴や推論状態をAzureのクラウド側で自動的に永続化・管理する拡張ステート機能、Threadによる会話履歴の自動永続化を彼に装着します。

知能が「会話の流れ(記憶)」を維持して自律稼働するための、ステート管理の扉を開きましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?