現在表示中:Foundry (クラシック) ポータルのバージョン - 新しい Foundry ポータルのバージョンに切り替える
Foundry リソースは、モデル、エージェント、およびツールへの統合アクセスを提供します。 この記事では、シナリオに使用する SDK とエンドポイントについて説明します。
| SDK | 用途 | エンドポイント |
|---|---|---|
| Foundry SDK | OpenAI と互換性のあるインターフェイスを使用した Foundry 固有の機能。 Responses API を介して Foundry ダイレクトモデルへのアクセスが含まれています(Chat Completionsではありません)。 | https://<resource-name>.services.ai.azure.com/api/projects/<project-name> |
| OpenAI SDK | 埋め込みを含む完全な OpenAI API サーフェスを備えた最新の 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 SDK は、OpenAI の最大互換性が必要な場合、埋め込みを生成する場合、またはチャット完了を介して 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 の
Role ベースのアクセス制御」を参照してください。 「開発環境の準備」の説明に従って、必要な言語ランタイム、グローバル ツール、VS Code 拡張機能 をインストールします。
重要
開始する前に、開発環境の準備ができていることを確認します。
この記事では、SDK のインストール、認証、サンプル コードの実行などの シナリオ固有の手順 について説明します。
前提条件を確認する
続行する前に、次の内容を確認します。
- Azure サブスクリプションはアクティブです:
az account show - 必要な RBAC ロールがあることを確認してください: Azure ポータル → Foundry リソース → アクセス制御 (IAM)
- インストールされている言語ランタイム:
- Python:
python --version(≥3.8)
- Python:
- インストールされている言語ランタイム:
- Node.js:
node --version(≥18)
- Node.js:
- インストールされている言語ランタイム:
- .NET:
dotnet --version(≥6.0)
- .NET:
- インストールされている言語ランタイム:
- Java:
java --version(≥11)
- Java:
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 プロジェクトに適用されます。 ここで示すコードは、 ハブ ベースのプロジェクトでは機能しません。 詳細については、「 プロジェクトの種類」を参照してください。
メモ
SDK のバージョン: この記事では、1.x SDK のインストールについて説明します。 従うサンプルがインストールされているパッケージと一致していることを確認します。 新しい Foundry ポータルのドキュメントに切り替えて、2.x の記事を表示します。
| SDK バージョン | ポータルのバージョン | ステータス | Python パッケージ |
|---|---|---|---|
| 2.x | Foundry (新規) | 安定 | azure-ai-projects>=2.0.0 |
| 1.x | Foundry (クラシック) | 安定 | azure-ai-projects==1.0.0 |
Azure Python 用の AI Projects クライアント ライブラリは、1 つのプロジェクト エンドポイントに接続することで複数のクライアント ライブラリを一緒に使用できる統合ライブラリです。
このコマンドを実行して、Foundry クラシック プロジェクトの 1.x パッケージをインストールします。
pip install openai azure-identity azure-ai-projects==1.0.0
| SDK バージョン | ポータルのバージョン | ステータス | Java パッケージ |
|---|---|---|---|
| 2.0.0 | Foundry (新規) | 安定 | azure-ai-projectsazure-ai-agents |
| SDK バージョン | ポータルのバージョン | ステータス | JavaScript パッケージ |
|---|---|---|---|
| 2.0.1 | Foundry (新規) | 安定 | @azure/ai-projects |
| 1.0.1 | 鋳造所クラシック | 安定 | @azure/ai-projects |
| SDK バージョン | ポータルのバージョン | ステータス | .NET パッケージ |
|---|---|---|---|
| 2.0.0-beta.1 (プレビュー) | Foundry (新規) | プレビュー | Azure.AI.ProjectsAzure.AI.Projects.OpenAI |
| 1.1.0 (GA) | 鋳造所クラシック | 安定 | Azure.AI.Projects |
Java 用の
重要
Java azure-ai-projects パッケージには 1.x GA リリースがありません。 Java セクションのコード サンプルでは、azure-ai-inference パッケージを直接使用します。これは非推奨となり、2026 年 5 月 30 日に廃止される予定です。
2.x Projects SDK の場合は、 新しい Foundry ポータルのドキュメントに切り替えます。
これらの依存関係を Foundry クラシック プロジェクトの Maven pom.xml に追加します。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.6</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.2</version>
</dependency>
javaScript 用の
このコマンドを実行して、Foundry クラシック プロジェクト用の 1.x JavaScript パッケージをインストールします。
npm install @azure/ai-projects@1.0.1 @azure/identity
.NET 用の
次のコマンドを実行して、Foundry クラシック プロジェクト用の 1.x Azure AI SDK パッケージを追加します。
# Add 1.x Azure AI SDK packages
dotnet add package Azure.Identity
dotnet add package Azure.AI.Projects --version 1.1.0
dotnet add package Azure.AI.Agents.Persistent --version 1.1.0
dotnet add package Azure.AI.Inference
Foundry SDK の使用
Foundry と OpenAI には異なる API シェイプがあるため、SDK は 2 つのクライアントの種類を公開します。
- プロジェクト クライアント – OpenAI に対応するものがない場合の Foundry 専用操作に使用します。 例: 接続の一覧表示、プロジェクトのプロパティの取得、トレースの有効化。
-
OpenAI 互換クライアント – OpenAI の概念に基づく Foundry 機能に使用します。 Responses API、エージェント、評価、および微調整はすべて、OpenAI スタイルの要求/応答パターンを使用します。 このクライアントでは、Foundry ダイレクト モデル (Foundry でホストされているAzure-OpenAI 以外のモデル) にもアクセスできます。 プロジェクト エンドポイントは、
/openaiルートでこのトラフィックを処理します。
ほとんどのアプリでは、両方のクライアントが使用されます。 セットアップと構成にはプロジェクト クライアントを使用し、エージェント、評価、および呼び出しモデル (Foundry ダイレクト モデルを含む) を実行するために OpenAI 互換クライアントを使用します。
プロジェクト クライアントを作成します。
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
project_client = AIProjectClient(
endpoint="https://<resource-name>.services.ai.azure.com/api/projects/<project-name>",
credential=DefaultAzureCredential(),
)
プロジェクトから OpenAI 互換クライアントを作成します。
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);
プロジェクト クライアントを作成します。
using System.ClientModel.Primitives;
using Azure.AI.OpenAI;
using Azure.AI.Projects;
using Azure.Identity;
using OpenAI.Chat;
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、Azure OpenAI を含む
- Foundry エージェント サービスを使用する
- クラウド評価を実行する
- アプリトレースを有効にする
- モデルを微調整する
- Foundry Tools、ローカル オーケストレーションなどのエンドポイントとキーを取得する
トラブルシューティング
認証エラー
DefaultAzureCredential failed to retrieve a tokenが表示される場合:
Verify Azure CLIが認証されます:
az account show az login # if not logged inRBAC ロールの割り当てを確認します。
- Foundry プロジェクトに少なくとも 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正しいバージョン フラグを使用して再インストールする: 上記の各言語セクションのインストール コマンドを参照してください
OpenAI SDK
OpenAI API の完全なサーフェスとクライアントの最大互換性が必要な場合は、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://ai.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)."
}
詳細については、「
重要
この記事でマークされている項目 (プレビュー) は、現在パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードにはお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「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, getBearerTokenProvider } from "@azure/identity";
const deployment = "gpt-4o";
const endpoint = "https://<resource-name>.openai.azure.com";
const scope = "https://ai.azure.com/.default";
const apiVersion = "2024-04-01-preview";
const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
const options = { azureADTokenProvider, deployment, apiVersion, endpoint };
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 プロジェクトに追加します。
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 サービス) は、専用 SDK を使用した事前構築済みのポイント ソリューションです。 Foundry Tools を使用するには、次のエンドポイントを使用します。
どのエンドポイントを使用する必要がありますか?
ニーズに基づいてエンドポイントを選択します。
Azure AI サービス エンドポイントを使用して、Computer Vision、コンテンツの安全性、ドキュメント インテリジェンス、言語、翻訳、トークン ファウンドリ ツールにアクセスします。
Foundry Tools エンドポイント: https://<your-resource-name>.cognitiveservices.azure.com/
メモ
エンドポイントでは、リソース名またはカスタム サブドメインが使用されます。 組織でカスタム サブドメインを設定している場合は、すべてのエンドポイントの例で your-resource-name を your-custom-subdomain に置き換えます。
ワークロードで廃止Azure AI Language機能 (センチメント分析、キー フレーズ抽出、要約、エンティティ リンク、CLU、CQA など) を使用している場合は、Microsoft Foundry の代替手段に移行する予定です。 新しい開発では、この記事で前述したように、Foundry SDK または OpenAI 互換エンドポイントの使用を検討してください。 Language Studio から Microsoft Foundry への移行について参照してください。
Speech and Translation Foundry Tools の場合は、次の表のエンドポイントを使用します。 プレースホルダーをリソース情報に置き換えます。
音声エンドポイント
| 鋳造ツール | エンドポイント |
|---|---|
| 音声テキスト変換 (標準) | https://<YOUR-RESOURCE-REGION>.stt.speech.microsoft.com |
| 音声合成(ニューラル) | 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/ |
言語エンドポイント
| 鋳造ツール | エンドポイント |
|---|---|
| テキスト分析 | https://<YOUR-RESOURCE-NAME>.cognitiveservices.azure.com |
重要
2027 年 3 月 20 日に、Azure Language Studio は廃止され、Microsoft Foundry に移行されます。すべての機能と今後の機能強化が Microsoft Foundry で利用できるようになります。
2029 年 3 月 31 日に、次のAzure言語機能が廃止されます (サポート終了)。 その日付より前に、ユーザーは既存のワークロードを移行し、新しいプロジェクトを Microsoft Foundry モデル にオンボードして、自然言語の理解を強化し、アプリケーション統合を簡素化する必要があります。
- キー フレーズ抽出
- 感情分析とオピニオン マイニング
- カスタム テキスト分類
- 会話型言語理解 (CLU)
- カスタム質問の回答 (CQA)
- オーケストレーション ワークフロー
- 要約 (ドキュメントと会話の抽出と抽象化)
- エンティティ関連付け
継続的なサポートを備えたコア機能: 言語検出、PII 検出、ヘルスケア用テキストアナリティクス、プリビルトNER、およびカスタム NER。
移行オプションについては、