Microsoft Foundry クイック スタート (クラシック)

現在表示中:Foundry (クラシック) ポータルのバージョン - 新しい Foundry ポータルのバージョンに切り替える

このクイック スタートでは、Microsoft Foundry を使用して次の操作を行います。

  • プロジェクトを作成する
  • モデルをデプロイする
  • チャット完了を実行する
  • エージェントを作成して実行する
  • エージェントにファイルをアップロードする

Microsoft Foundry SDK は、Python、Java、TypeScript、C# など、複数の言語で使用できます。 このクイック スタートでは、これらの各言語の手順について説明します。

ヒント

この記事の残りの部分では、 Foundry プロジェクトを作成して使用する方法について説明します。 代わりにハブ ベースのプロジェクトを使用する場合は、「Quickstart: Microsoft Foundry (Hub プロジェクト) の概要」を参照してください。 必要なプロジェクトの種類

前提 条件

  • アクティブなサブスクリプションを持つAzure アカウント。 お持ちでない場合は、無料試用版サブスクリプションを含む無料Azure アカウントを作成します。
  • サブスクリプションまたはリソース グループの、Foundry Account OwnerFoundry Owner などの Foundry リソースを作成できるロールへのアクセス。 アクセス許可の詳細については、「Microsoft Foundry の Role ベースのアクセス制御」を参照してください。

    重要

    Foundry RBAC ロールの名前が最近変更されました。 Foundry User, Foundry Owner, Foundry Account Owner、および Foundry Project Manager は、以前は、AZURE AI ユーザー、Azure AI 所有者、Azure AI アカウント所有者、および AZURE AI Project Manager という名前でした。 名前の変更がロールアウトされている間、以前の名前が表示される場合があります。ロール ID とコア アクセス許可は、名前の変更によって変更されません。

  • 「開発環境の準備」の説明に従って、必要な言語ランタイム、グローバル ツール、VS Code 拡張機能 をインストールします

重要

開始する前に、開発環境の準備ができていることを確認します。
このクイック スタートでは、SDK のインストール、認証、サンプル コードの実行などの シナリオ固有の手順 について説明します。

ポータルでは、さまざまなプロバイダーの最先端モデルの豊富なカタログを調べることができます。 このチュートリアルでは、 gpt-4o モデルを検索して選択します。

  1. Microsoft Foundry にサインイン>。 「New Foundry」トグルがオフになっていることを確認します。 これらの手順は Foundry (クラシック) を参照します。

  2. プロジェクトを使用している場合は、左上の階層リンクで Microsoft Foundry を選択してプロジェクトを終了します。 すぐに新しいものを作成します。

  3. ランディング ページまたは モデル カタログから、 gpt-4o (または gpt-4o-mini) を選択します。

    Foundry ポータルでモデルを開始する方法を示すスクリーンショット。

  4. [ このモデルを使用] を選択します。 メッセージが表示されたら、新しいプロジェクト名を入力し、[ 作成] を選択します。

  5. デプロイ名を確認し、[ 作成] を選択します。

  6. 次に、デプロイの種類を選択した後、[ 接続して デプロイ] を選択します。

  7. デプロイ後、デプロイ ページから [ プレイグラウンドで開く ] を選択します。

  8. モデルが事前にデプロイされ、使用できる状態でチャットプレイグラウンドに着陸します。

エージェントを構築する場合は、代わりにエージェントの 作成から始めることができます。 手順は似ていますが、順序は異なります。 プロジェクトが作成されると、チャットプレイグラウンドではなくエージェントプレイグラウンドに到着します。

コーディングの準備を整える

ヒント

コードでは、Azure AI Projects 1.x SDK を使用し、Azure AI Projects 2.x と互換性がありません。 Azure AI Projects 2.x バージョンの Foundry (新しい) ドキュメントを参照してください。

  1. 次のパッケージをインストールします。

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. プロジェクトのウェルカム画面でプロジェクト エンドポイントを見つけます。

    エンドポイント URL とコピー ボタンが表示Microsoft Foundry Models のようこそ画面のスクリーンショット.

  3. Python スクリプトを実行する前に、CLI az login (または az login --use-device-code) コマンドを使用して認証を行ってください。

以下に従うか、コードを取得します。

モデルとのチャット

チャットの完了は、AI アプリケーションの基本的な構成要素です。 チャットの完了を使用すると、メッセージの一覧を送信し、モデルから応答を取得できます。

ヒント

コードでは、Azure AI Projects 1.x SDK を使用し、Azure AI Projects 2.x と互換性がありません。 Azure AI Projects 2.x バージョンの Foundry (新しい) ドキュメントを参照してください。

エンドポイントを次のコードの endpoint に置き換える:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

models = project.get_openai_client(api_version="2024-10-21")
response = models.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful writing assistant"},
        {"role": "user", "content": "Write me a poem about flowers"},
    ],
)

print(response.choices[0].message.content)

エージェントとのチャット

エージェントを作成してチャットします。

ヒント

コードでは、Azure AI Projects 1.x SDK を使用し、Azure AI Projects 2.x と互換性がありません。 Azure AI Projects 2.x バージョンの Foundry (新しい) ドキュメントを参照してください。

エンドポイントを次のコードの endpoint に置き換える:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FilePurpose

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-agent",
    instructions="You are a helpful writing assistant")

thread = project.agents.threads.create()
message = project.agents.messages.create(
    thread_id=thread.id, 
    role="user", 
    content="Write me a poem about flowers")

run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
if run.status == "failed":
    # Check if you got "Rate limit is exceeded.", then you want to get more quota
    print(f"Run failed: {run.last_error}")

# Get messages from the thread
messages = project.agents.messages.list(thread_id=thread.id)

# Get the last message from the sender
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Delete the agent once done
project.agents.delete_agent(agent.id)
print("Deleted agent")

エージェントにファイルを追加する

エージェントには、ツールを使用して強力な機能があります。 知識の取得を可能にするファイル検索ツールを追加しましょう。

ヒント

コードでは、Azure AI Projects 1.x SDK を使用し、Azure AI Projects 2.x と互換性がありません。 Azure AI Projects 2.x バージョンの Foundry (新しい) ドキュメントを参照してください。

エンドポイントを次のコードの endpoint に置き換える:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FileSearchTool

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

# Upload file and create vector store
file = project.agents.files.upload(file_path="./product_info_1.md", purpose=FilePurpose.AGENTS)
vector_store = project.agents.vector_stores.create_and_poll(file_ids=[file.id], name="my_vectorstore")

# Create file search tool and agent
file_search = FileSearchTool(vector_store_ids=[vector_store.id])
agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-assistant",
    instructions="You are a helpful assistant and can search information from uploaded files",
    tools=file_search.definitions,
    tool_resources=file_search.resources,
)

# Create thread and process user message
thread = project.agents.threads.create()
project.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)

# Handle run status
if run.status == "failed":
    print(f"Run failed: {run.last_error}")

# Print thread messages
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Cleanup resources
project.agents.vector_stores.delete(vector_store.id)
project.agents.files.delete(file_id=file.id)
project.agents.delete_agent(agent.id)

リソースのクリーンアップ

作成したリソースが不要になった場合は、プロジェクトに関連付けられているリソース グループを削除します。

  • Azure ポータルでリソース グループを選択し、Delete を選択します。 リソース グループを削除することを確認します。