注
このドキュメントでは、 Microsoft Foundry (クラシック) ポータルを参照します。
🔍 新しいポータルの詳細については、Microsoft Foundry (新しい) ドキュメント を参照してください。
Foundryリソースは、モデル、エージェント、およびツールに対して統一されたアクセスを提供します。 この記事では、シナリオに使用する SDK とエンドポイントについて説明します。
| SDK | その用途 | エンドポイント |
|---|---|---|
| Foundry SDK | OpenAI と互換性のあるインターフェイスを使用した Foundry 固有の機能。 Responses API を介して Foundryダイレクトモデルにアクセスする機能が含まれます(チャット完了ではありません)。 | https://<resource-name>.services.ai.azure.com/api/projects/<project-name> |
| OpenAI SDK | OpenAI API の完全なsurfaceを備えた最新の OpenAI SDK モデルと機能。 (応答ではなく) Chat Completions API を通じて利用できる Foundry ダイレクト モデル。 | https://<resource-name>.openai.azure.com/openai/v1 |
| Foundry Tools SDK | 事前構築済みのソリューション (Vision、Speech、Content Safety など)。 | ツール固有のエンドポイント (サービスによって異なります)。 |
| Agent Framework | コード内のマルチエージェント オーケストレーション。 クラウドに依存しません。 | Foundry SDK を介してプロジェクトのエンドポイントを使用します。 |
SDK を選択します。
- エージェント、評価、または Foundry 固有の機能を使用してアプリを構築するときに Foundry SDK を使用する
- OpenAI の最大互換性が必要な場合は OpenAI SDK を使用する、またはチャット完了を介して Foundry ダイレクト モデルを使用する
- 特定の AI サービス (Vision、Speech、Language など) を操作するときに Foundry Tools SDK を 使用する
- コードでマルチエージェント システムを構築するときに エージェント フレームワーク を使用する (ローカル オーケストレーション)
注
リソースの種類: Foundry リソースは、以前に一覧表示されたすべてのエンドポイントを提供します。 Azure OpenAI リソースは、/openai/v1 エンドポイントのみを提供します。
Authentication: サンプルでは、Microsoft Entra ID (DefaultAzureCredential) を使用します。 API キーは、 /openai/v1で動作します。 トークン プロバイダーの代わりに api_key としてキーを渡します。
[前提条件]
-
アクティブなサブスクリプションを持つAzure アカウント。 お持ちでない場合は、無料試用版サブスクリプションを含む無料Azure アカウントを作成します。
Foundry リソースを作成および管理するには、次のいずれかのAzure RBAC ロールがあります。
- Azure AI ユーザー (開発のための最小特権ロール)
- Azure AI Project Manager (Foundry プロジェクトの管理用)
- 共同作成者 または 所有者 (サブスクリプション レベルのアクセス許可の場合)
各ロールのアクセス許可の詳細については、Microsoft Foundry のロールベースのアクセス制御に関するページを参照してください。
「開発環境の準備」の説明に従って、必要な言語ランタイム、グローバル ツール、VS Code 拡張機能 をインストールします。
Important
開始する前に、開発環境の準備ができていることを確認します。
この記事では、SDK のインストール、認証、サンプル コードの実行などの シナリオ固有の手順 について説明します。
前提条件を確認する
続行する前に、次のことを確認します:
- [ ] Azureサブスクリプションがアクティブです:
az account show - [ ] 必要な RBAC ロールがある: Azure portal → Foundry リソース → Access control (IAM) を確認する
- [ ] 言語ランタイムがインストールされている:
- Python:
python --version(≥3.8) - Node.js:
node --version(≥18) - .NET:
dotnet --version(≥6.0) - Java:
java --version(≥11)
- Python:
Foundry SDK
Foundry SDK は、最も一般的な Foundry 機能にアクセスを提供する単一のプロジェクト エンドポイントに接続します。
https://<resource-name>.services.ai.azure.com/api/projects/<project-name>
注
組織でカスタム サブドメインを使用している場合は、 <resource-name> をエンドポイント URL の <your-custom-subdomain> に置き換えます。
この方法により、アプリケーションの構成が簡略化されます。 複数のエンドポイントを管理する代わりに、1 つを構成します。
SDK をインストールする
注
この記事は、Foundry project に適用されます。 ここで示すコードは、hub ベースのprojectでは機能しません。 詳しくは、「プロジェクトの種類」をご覧ください。
注
SDK のバージョン: 2.x プレビュー SDK は、新しい Foundry ポータルと API を対象とします。 1.x GA SDK は Foundry クラシックを対象とします。 従うサンプルがインストールされているパッケージと一致していることを確認します。
| SDK バージョン | ポータル バージョン | ステータス | Python パッケージ |
|---|---|---|---|
| 2.x (プレビュー) | Foundry (新規) | Preview | azure-ai-projects>=2.0.0b1 --pre |
| 1.x (GA) | ファウンドリークラシック | 安定 | azure-ai-projects==1.0.0 |
python 用の
このコマンドを実行して、Foundry クラシック プロジェクト用の安定したパッケージをインストールします。
pip install openai azure-identity azure-ai-projects==1.0.0
| SDK バージョン | ポータル バージョン | ステータス | Java パッケージ |
|---|---|---|---|
| 1.0.0-beta.3 1.0.0-beta.1 |
Foundry (新規) | Preview | azure-ai-projectsazure-ai-agents |
| SDK バージョン | ポータル バージョン | ステータス | JavaScript パッケージ |
|---|---|---|---|
| 2.0.0-beta.4 (プレビュー) | Foundry (新規) | Preview | @azure/ai-projects 'prerelease' |
| 1.0.1 | ファウンドリークラシック | 安定 | @azure/ai-projects |
| SDK バージョン | ポータル バージョン | ステータス | .NET パッケージ |
|---|---|---|---|
| 1.2.0-beta.5 (プレビュー) | Foundry (新規) | Preview | Azure.AI.ProjectsAzure.AI.Projects.Openai |
| 1.x (GA) | ファウンドリークラシック | 安定 | Azure.AI.Projects |
Azure Java 用 AI Projects クライアント ライブラリ (プレビュー) は、1 つのproject エンドポイントに接続することで複数のクライアント ライブラリを一緒に使用できる統合ライブラリです。
Important
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの使用条件を参照してください。
これらのパッケージを Foundry クラシック プロジェクトのインストールに追加します。
package com.azure.ai.foundry.samples;
import com.azure.ai.projects;
import com.azure.ai.inference.ChatCompletionsClient;
import com.azure.ai.inference.ChatCompletionsClientBuilder;
import com.azure.ai.inference.models.ChatCompletions;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.credential.TokenCredential;
import com.azure.core.exception.HttpResponseException;
import com.azure.core.util.logging.ClientLogger;
import com.azure.identity.DefaultAzureCredentialBuilder;
Azure JavaScript 用の AI Projects クライアント ライブラリは、単一のproject エンドポイントに接続することで複数のクライアント ライブラリを一緒に使用できる統合ライブラリです。
このコマンドを実行して、Foundry クラシック プロジェクト用の現在の JavaScript パッケージをインストールします。
npm install @azure/ai-projects @azure/identity
.NET 用の
次のコマンドを実行して、Foundry クラシック プロジェクト用の Azure AI SDK パッケージを追加します。
# Add Azure AI SDK packages
dotnet add package Azure.Identity
dotnet add package Azure.AI.Projects
dotnet add package Azure.AI.Agents.Persistent
dotnet add package Azure.AI.Inference
Foundry SDK の使用
Foundry と OpenAI には異なる API シェイプがあるため、SDK は 2 つのクライアントの種類を公開します。
- Project client – OpenAI の対応する操作がない場合に Foundry ネイティブ操作を使用します。 例: 接続の一覧表示、projectプロパティの取得、トレースの有効化。
-
OpenAI 互換クライアント – OpenAI の概念に基づく Foundry 機能に使用します。 Responses API、エージェント、評価、および微調整はすべて、OpenAI スタイルの要求/応答パターンを使用します。 このクライアントでは、Foundry ダイレクト モデル (Foundry でホストされている Azure 以外の OpenAI モデル) へのaccessも提供されます。 project エンドポイントは、
/openaiルートでこのトラフィックを処理します。
ほとんどのアプリでは、両方のクライアントが使用されます。 セットアップと構成には project クライアントを使用し、エージェント、評価、および呼び出しモデル (Foundry ダイレクト モデルを含む) を実行するために OpenAI 互換クライアントを使用します。
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
project = AIProjectClient(
endpoint="https://<resource-name>.services.ai.azure.com/api/projects/<project-name>",
credential=DefaultAzureCredential(),
)
```**Create an OpenAI-compatible client from your project:**
```python
models = project_client.get_openai_client(api_version="2024-10-21")
chat_responses = models.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "What is the size of France in square miles?"},
],
)
print(chat_responses.choices[0].message.content)
プロジェクトクライアントを作成します。
package com.azure.ai.foundry.samples;
import com.azure.ai.inference.ChatCompletionsClient;
import com.azure.ai.inference.ChatCompletionsClientBuilder;
import com.azure.ai.inference.models.ChatCompletions;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.credential.TokenCredential;
import com.azure.core.exception.HttpResponseException;
import com.azure.core.util.logging.ClientLogger;
import com.azure.identity.DefaultAzureCredentialBuilder;
String prompt = "What best practices should I follow when asking an AI model to review Java code?";
String endpoint = "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(credential)
.endpoint(endpoint)
.buildClient();
```**Create and use an OpenAI-compatible client from your project:**
```java
ChatCompletions completions = client.complete(prompt);
String content = completions.getChoice().getMessage().getContent();
System.out.println("\nResponse from AI assistant:\n" + content);
プロジェクトクライアントを作成します:
const endpoint = "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>";
const deployment = "gpt-4o";
const project = new AIProjectClient(endpoint, new DefaultAzureCredential());
あなたのプロジェクトから OpenAI 対応クライアントを作成します
const client = await project.getAzureOpenAIClient({
// The API version should match the version of the Azure OpenAI resource
apiVersion: "2024-12-01-preview"
});
const chatCompletion = await client.chat.completions.create({
model: deployment,
messages: [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "What is the speed of light?" },
],
});
console.log(chatCompletion.choices[0].message.content);
プロジェクトクライアントを作成します:
string endpoint = "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>";
AIProjectClient projectClient = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential());
あなたのプロジェクトからOpenAI互換クライアントを作成します:
ClientConnection connection = projectClient.GetConnection(typeof(AzureOpenAIClient).FullName!);
if (!connection.TryGetLocatorAsUri(out Uri uri) || uri is null)
{
throw new InvalidOperationException("Invalid URI.");
}
uri = new Uri($"https://{uri.Host}");
const string modelDeploymentName = "gpt-4o";
AzureOpenAIClient azureOpenAIClient = new AzureOpenAIClient(uri, new DefaultAzureCredential());
ChatClient chatClient = azureOpenAIClient.GetChatClient(deploymentName: modelDeploymentName);
Console.WriteLine("Complete a chat");
ChatCompletion result = chatClient.CompleteChat("List all the rainbow colors");
Console.WriteLine(result.Content[0].Text);
Foundry SDK でできること
- Access Foundry Models (OpenAI Azure を含む)
- Foundry Agent Service を使用します
- クラウド評価を実行する
- アプリトレースを有効にする
- モデルを微調整します
- Foundry Tools、ローカル オーケストレーションなどのエンドポイントとキーを取得する
トラブルシューティング
認証エラー
DefaultAzureCredential failed to retrieve a tokenが表示される場合:
Verify Azure CLIが認証されます:
az account show az login # if not logged inRBAC ロールの割り当てを確認します。
- Foundry projectで少なくとも Azure AI ユーザー ロールがあることを確認します
- 「Assign Azure roles」を参照してください。
運用環境のマネージド ID の場合:
- マネージド ID に適切なロールが割り当てられていることを確認する
- マネージド ID の構成を参照してください
エンドポイント構成エラー
Connection refusedまたは404 Not Foundが表示される場合:
- リソース名とプロジェクト名が実際のデプロイと一致することを確認してください
-
エンドポイント URL 形式の確認:
https://<resource-name>.services.ai.azure.com/api/projects/<project-name>にする必要があります -
カスタム サブドメインの場合:
<resource-name>をカスタム サブドメインに置き換える
SDK バージョンの不一致
コード サンプルが AttributeError または ModuleNotFoundErrorで失敗した場合:
-
SDK のバージョンを確認します。
pip show azure-ai-projects # Python npm list @azure/ai-projects # JavaScript dotnet list package # .NET - モニカーの配置を確認する: 2.x SDK には Foundry ポータルが必要、1.x SDK には Foundry クラシックが必要
- 正しいバージョン フラグを使用して再インストールする: 上記の各言語セクションのインストール コマンドを参照してください
OpenAI SDK
OpenAI API の完全なsurfaceとクライアントの最大互換性が必要な場合は、OpenAI SDK を使用します。 このエンドポイントは、Azure の OpenAI モデルと Foundry ダイレクトモデルにアクセスを提供します(Chat Completions API を使用)。 Foundry固有の機能であるエージェントや評価へのアクセスは提供していません。
次のスニペットは、Azure OpenAI /openai/v1 エンドポイントを直接使用する方法を示しています。
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://<resource-name>.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="model_deployment_name",
input= "What is the size of France in square miles?"
)
print(response.model_dump_json(indent=2))
詳細については、「Azure OpenAI でサポートされるプログラミング言語を参照してください。 予想される出力:
{
"id": "resp_abc123",
"object": "response",
"created": 1234567890,
"model": "gpt-5.2",
"output_text": "France has an area of approximately 213,011 square miles (551,695 square kilometers)."
}
詳細については、「
Important
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの使用条件を参照してください。
次のスニペットは、Azure OpenAI /openai/v1 エンドポイントを直接使用する方法を示しています。
import com.azure.ai.openai.OpenAIClient;
import com.azure.ai.openai.OpenAIClientBuilder;
import com.azure.ai.openai.models.ChatChoice;
import com.azure.ai.openai.models.ChatCompletions;
import com.azure.ai.openai.models.ChatCompletionsOptions;
import com.azure.ai.openai.models.ChatRequestAssistantMessage;
import com.azure.ai.openai.models.ChatRequestMessage;
import com.azure.ai.openai.models.ChatRequestSystemMessage;
import com.azure.ai.openai.models.ChatRequestUserMessage;
import com.azure.ai.openai.models.ChatResponseMessage;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.util.Configuration;
import java.util.ArrayList;
import java.util.List;
String endpoint = "https://<resource-name>.openai.azure.com/openai/v1";
String deploymentName = "gpt-5.2";
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
OpenAIClient client = new OpenAIClientBuilder()
.credential(defaultCredential)
.endpoint("{endpoint}")
.buildClient();
List<ChatRequestMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant."));
chatMessages.add(new ChatRequestUserMessage("What is the speed of light?"));
ChatCompletions chatCompletions = client.getChatCompletions(deploymentName, new ChatCompletionsOptions(chatMessages));
System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole());
System.out.println("Message:");
System.out.println(message.getContent());
OpenAI SDK の使用方法の詳細については、「Azure OpenAI でサポートされるプログラミング言語」を参照してください。
import { AzureOpenAI } from "openai";
import { DefaultAzureCredential } from "@azure/identity";
const deployment = "gpt-4o"
const endpoint = "https://<resource-name>.openai.azure.com/openai/v1";
const scope = "https://cognitiveservices.azure.com/.default";
const apiVersion = "2024-04-01-preview";
const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
const options = { azureADTokenProvider, deployment, apiVersion }
const client = new AzureOpenAI(options);
const result = await client.chat.completions.create({
model: deployment,
messages: [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "What is the speed of light?" },
],
});
console.log(result.choices[0].message.content);
OpenAI SDK の使用方法の詳細については、「Azure OpenAI でサポートされるプログラミング言語」を参照してください。
- OpenAI パッケージをインストールする: このコマンドを実行して、OpenAI クライアント ライブラリを.NET projectに追加します。
dotnet add package OpenAI ```When it succeeds, the .NET CLI confirms that it installed the `OpenAI` package. This snippet configures `DefaultAzureCredential`, builds `OpenAIClientOptions`, and creates a `ChatClient` for the Azure OpenAI v1 endpoint. ```csharp using System.ClientModel.Primitives; using Azure.Identity; using OpenAI; using OpenAI.Chat; #pragma warning disable OPENAI001 const string directModelEndpoint = "https://<resource-name>.openai.azure.com/openai/v1/"; const string modelDeploymentName = "gpt-5.2"; BearerTokenPolicy tokenPolicy = new( new DefaultAzureCredential(), "https://ai.azure.com/.default"); OpenAIClient openAIClient = new( authenticationPolicy: tokenPolicy, options: new OpenAIClientOptions() { Endpoint = new($"{directModelEndpoint}"), }); ChatClient chatClient = openAIClient.GetChatClient(modelDeploymentName); ChatCompletion completion = await chatClient.CompleteChatAsync( [ new SystemChatMessage("You are a helpful assistant."), new UserChatMessage("How many feet are in a mile?") ]); Console.WriteLine(completion.Content[0].Text); #pragma warning restore OPENAI001
OpenAI SDK の使用方法の詳細については、「Azure OpenAI でサポートされるプログラミング言語」を参照してください。
ローカル オーケストレーションにエージェント フレームワークを使用する
Microsoft Agent Framework は、クラウド プロバイダーに依存しないインターフェイスを使用してコード (.NETや Python など) でマルチエージェント システムを構築するためのオープンソース SDK です。
エージェントをローカルで定義および調整する場合は、Agent Framework を使用します。 Foundry モデルに対してこれらのエージェントを実行する場合、または Foundry でホストされているエージェントをエージェント フレームワークで調整する場合は、Foundry SDK とペアリングします。
詳細については、 Microsoft Agent Framework の概要を参照してください。
Foundry Tools SDK
Foundry Tools (以前のAzure AI Services) は、専用 SDK を使用した事前構築済みのポイント ソリューションです。 Foundry Tools を使用するには、次のエンドポイントを使用します。
どのエンドポイントを使用する必要がありますか?
ニーズに基づいてエンドポイントを選択します。
Azure AI Services エンドポイントを使用して、コンピュータービジョン、コンテンツセーフティ、ドキュメントインテリジェンス、言語、翻訳、トークンファウンドリツールにアクセスします。
Foundry Tools のエンドポイント: https://<your-resource-name>.cognitiveservices.azure.com/
注
エンドポイントでは、リソース名またはカスタム サブドメインが使用されます。 組織でカスタム サブドメインを設定している場合は、すべてのエンドポイントの例で your-resource-name を your-custom-subdomain に置き換えます。
Speech and Translation Foundry Tools の場合は、次の表のエンドポイントを使用します。 プレースホルダーをリソース情報に置き換えます。
音声エンドポイント
| 鋳物工場ツール | エンドポイント |
|---|---|
| 音声テキスト変換 (標準) | https://<YOUR-RESOURCE-REGION>.stt.speech.microsoft.com |
| Text to Speech (ニューラル) | https://<YOUR-RESOURCE-REGION>.tts.speech.microsoft.com |
| Custom Voice | https://<YOUR-RESOURCE-NAME>.cognitiveservices.azure.com/ |
翻訳エンドポイント
| 鋳物工場ツール | エンドポイント |
|---|---|
| テキスト翻訳 | https://api.cognitive.microsofttranslator.com/ |
| ドキュメント変換 | https://<YOUR-RESOURCE-NAME>.cognitiveservices.azure.com/ |
次のセクションには、Foundry Tools SDK のクイック スタート リンクとリファレンス情報が含まれています。