Note
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
Important
これらの機能は、他のMicrosoft サービスおよびサード パーティのサービスへの接続をサポートします。 これらのサービスの使用は、それぞれの用語の対象となり、データ処理やストレージがAzureコンプライアンス境界の外側に置き、データがAzureコンプライアンス境界に流れ込む可能性があります。
データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。
特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 これには、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策の実装や、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する機能が含まれます。 詳細については、「Azure AI 検索透過性に関するメモを参照してください。
GenAI(生成AI)プロンプトスキルは、Azure OpenAI in Foundry ModelsまたはMicrosoft Foundryに展開された大規模言語モデル(LLM)に対してチャット完了リクエストを実行します。 このスキルを使って、検索可能なコンテンツとしてインデックス化・保存できる新しい情報を作成します。
ここでは、GenAIプロンプトスキルがコンテンツ作成に役立つ例をいくつか紹介します。
- 画像を言語化する
- 長い文章を要約する
- 複雑な内容を簡素化する
- プロンプトで表現できる他のタスクを何でも実行してください
GenAIプロンプトスキルは、2026-04-01 Search Service REST APIおよびこのバージョンを対象としたAzure SDKで一般に利用可能です。 このスキルはテキスト、画像、そしてPDFファイルから抽出したビジュアルを含む画像やテキストを含むマルチモーダルコンテンツをサポートします。
Tip
このスキルはデータチャンクスキルと組み合わせるのが一般的です。 マルチモーダルのチュートリアルでは、2つの異なるデータチャンク戦略を用いた画像言語化を実演します。
サポートされているモデル
Foundry にデプロイされている チャット補完推論モデル (GPT モデル、DeepSeek-R#、Llama-4-Maverick、Cohere-command-r など) を使用できます。 特にGPTモデルでは、チャットコンプリートAPIエンドポイントのみがサポートされています。 Azure OpenAI Responses API(URI内に
/openai/responsesを含む)を使用しているエンドポイントは現在互換性がありません。画像の言語化の場合、画像を分析するモデルが対応する画像フォーマットを決定します。
GPT-5モデルでは、
temperatureパラメータは従来のモデルとは異なりサポートされていません。 定義されている場合は1.0に設定しなければなりません。なぜなら、他の値は誤りを引き起こすためです。請求は使用するモデルの価格に基づいています。
Note
検索サービスは公開エンドポイントを介してモデルに接続しているため、地域の位置要件はありません。 ただし、オールアップAzureソリューションを使う場合は、Azure AI 検索リージョンとAzure OpenAIモデルリージョンを確認し、適切なペアを見つけるべきです。特にデータレジデンシーの要件がある場合はなおさらです。
Prerequisites
サポートモデルがあなたのリソースやプロジェクトに展開されます。
OpenAI Azure場合は、Azureポータルの
openai.azure.comページからドメインのエンドポイントをコピーしてください。 このスキルのUriパラメータとしてこのエンドポイントを使います。Foundryの場合は、Foundryポータルの モデル ページからデプロイ用のターゲットURIをコピーしてください。 このスキルの
Uriパラメータとしてこのエンドポイントを使います。
認証は、FoundryやAzure OpenAIリソースからのAPIキーでキーベースにすることができます。 ただし、ロールに割り当てられた 検索サービスのマネージドアイデンティ ティを使ったロールベースアクセスを推奨します。
OpenAI Azure上で、管理IDにCognitive Services OpenAI Userを割り当てます。
Foundry で、 Foundry ユーザー をマネージド ID に割り当てます。
Important
Foundry RBAC ロールの名前が最近変更されました。 Foundry User, Foundry Owner, Foundry Account Owner、および Foundry Project Manager は、以前は、AZURE AI ユーザー、Azure AI 所有者、Azure AI アカウント所有者、および AZURE AI Project Manager という名前でした。 名前の変更がロールアウトされている間、以前の名前が表示される場合があります。ロール ID とコア アクセス許可は、名前の変更によって変更されません。
@odata.type
#Microsoft.Skills.Custom.ChatCompletionSkill
データ制限
| 制限 | メモ |
|---|---|
maxTokens |
デフォルトは省略した場合 1024 です。 最大値はモデルによって異なります。 |
| 要求のタイムアウト | 30秒で固定。 バルクインデックスのモデルを選ぶ際には、推論モデル(例えばo1やo3)がそれを超えることがあるため、この制限を考慮してください。 |
| 画像 | Base 64でエンコードされた画像および画像URLもサポートされています。 サイズ制限はモデルによって異なります。 |
スキル パラメーター
| 財産 | タイプ | 必須 | メモ |
|---|---|---|---|
uri |
文字列 | イエス | デプロイされたモデルのエンドポイント。 サポートされているドメインは以下の通りです:
Azure API Management エンドポイントもサポートされています(API Management カスタム ドメインを含む)。 認証、RBAC、およびオプションのプライベート接続を含むセットアップについては、「 OpenAI スキルとベクター化Azure Azure API Managementを使用するを参照してください。 |
apiKey |
文字列 | Cond.* | モデルの秘密鍵。 管理IDを使うときは空欄のままにしてください。 |
authIdentity |
文字列 | Cond.* | User-assigned管理型アイデンティティクライアントID(Azure OpenAIのみ)。 システムに割り当てられたアイデンティティを使う場合は空欄のままにしてください。 |
commonModelParameters |
オブジェクト | いいえ |
temperature、maxTokensなどの標準的な生成コントロールです。 |
extraParameters |
オブジェクト | いいえ | オープン辞書が基礎となるモデルAPIにパススルーされます。 |
extraParametersBehavior |
文字列 | いいえ |
"pass-through"
|
"drop"
|
"error" (デフォルトの "error") |
responseFormat |
オブジェクト | いいえ | モデルが テキスト、自由形式の JSONオブジェクト、または強型付けの JSONスキーマを返すかを制御します。
responseFormat ペイロードの例:{responseFormat: { type: text }}, {responseFormat: { type: json_object }}, {responseFormat: { type: json_schema }} |
* サービスのシステムに割り当てられた識別子apiKey、authIdentity、またはいずれかの1つだけが使用されなければなりません。
commonModelParameters デフォルト
| パラメーター | デフォルト |
|---|---|
model |
(デプロイの既定値) |
frequencyPenalty |
0 |
presencePenalty |
0 |
maxTokens |
1024 |
temperature |
0.7 |
seed |
Null |
stop |
Null |
スキルの入力
| 入力名 | タイプ | 必須 | Description |
|---|---|---|---|
systemMessage |
文字列 | イエス | システムレベルの指示(例:「 あなたは役立つアシスタントです」)。 |
userMessage |
文字列 | イエス | ユーザー プロンプト。 |
text |
文字列 | いいえ |
userMessageに付加される任意のテキスト(テキストのみのシナリオ)。 |
image |
文字列(Base 64 data-URL) | いいえ | プロンプトに画像を追加します(マルチモーダルモデルのみ)。 |
imageDetail |
弦(low | high | auto) |
いいえ | Azure OpenAI マルチモーダル モデルの忠実性のヒント。 |
スキルの出力
| 出力名 | タイプ | Description |
|---|---|---|
response |
文字列 または JSONオブジェクト |
responseFormat.typeが要求した形式で出力をモデル化します。 |
usageInformation |
JSON オブジェクト | トークンカウントとモデルパラメータのエコー。 |
定義例
テキストのみの要約
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"name": "Summarizer",
"description": "Summarizes document content.",
"context": "/document",
"inputs": [
{ "name": "text", "source": "/document/content" },
{ "name": "systemMessage", "source": "='You are a concise AI assistant.'" },
{ "name": "userMessage", "source": "='Summarize the following text:'" }
],
"outputs": [ { "name": "response" } ],
"uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
"apiKey": "<api-key>",
"commonModelParameters": { "temperature": 0.3 }
}
テキスト+画像の説明
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"name": "Image Describer",
"context": "/document/normalized_images/*",
"inputs": [
{ "name": "image", "source": "/document/normalized_images/*/data" },
{ "name": "imageDetail", "source": "=high" },
{ "name": "systemMessage", "source": "='You are a useful AI assistant.'" },
{ "name": "userMessage", "source": "='Describe this image:'" }
],
"outputs": [ { "name": "response" } ],
"uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
"authIdentity": "11111111-2222-3333-4444-555555555555",
"responseFormat": { "type": "text" }
}
構造化された数値ファクトファインダー
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"name": "NumericalFactFinder",
"context": "/document",
"inputs": [
{ "name": "systemMessage", "source": "='You are an AI assistant that helps people find information.'" },
{ "name": "userMessage", "source": "='Find all the numerical data and put it in the specified fact format.'"},
{ "name": "text", "source": "/document/content" }
],
"outputs": [ { "name": "response" } ],
"uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
"apiKey": "<api-key>",
"responseFormat": {
"type": "json_schema",
"jsonSchemaProperties": {
"name": "NumericalFactObj",
"strict": true,
"schema": {
"type": "object",
"properties": "{\"facts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"number\":{\"type\":\"number\"},\"fact\":{\"type\":\"string\"}},\"required\":[\"number\",\"fact\"]}}}",
"required": [ "facts" ],
"additionalProperties": false
}
}
}
}
サンプル出力(短縮)
{
"response": {
"facts": [
{ "number": 32.0, "fact": "Jordan scored 32 points per game in 1986-87." },
{ "number": 6.0, "fact": "He won 6 NBA championships." }
]
},
"usageInformation": {
"usage": {
"completion_tokens": 203,
"prompt_tokens": 248,
"total_tokens": 451
}
}
}
ベスト プラクティス
- Text Split スキルでチャンク長文書を作成し、モデルのコンテキストウィンドウ内に収まります。
- 大量インデックス作成の場合は、このスキル専用のモデル展開を専用にし、クエリ時のRAGワークロードのトークンクォータに影響を受けないようにしましょう。
- 遅延を最小限に抑えるために、モデルとAzure AI 検索サービスを同じAzureリージョン内に同時に配置してください。
- 信頼できる構造化抽出とインデックスフィールドへのマッピングを容易にするために
responseFormat.json_schemaと組み合わせてのを活用しましょう。 - トークンの使用状況を監視し、インデクサーがトークン/分(TPM)の上限に達した場合は クォータ増加リクエスト を送信してください。
エラーと警告
| 状態 | 結果 |
|---|---|
欠落または無効 uri |
エラー |
| 認証方法の指定はありません | エラー |
apiKeyとauthIdentityの両方が供給されました |
エラー |
| マルチモーダルプロンプトの非サポートモデル | エラー |
| 入力がモデルトークンの上限を超えた | エラー |
モデルは無効なJSONを返します json_schema |
警告: 未加工の文字列が返されます response |
マネージド ID 認証のセキュリティに関する考慮事項
GenAI Prompt スキルがマネージド ID 認証を使用する場合、Azure AI 検索 Foundry Tools 対象ユーザー (https://cognitiveservices.azure.com) のMicrosoft Entra アクセス トークンを取得し、uriによって指定されたエンドポイントに送信された要求に含めます。 マネージド ID 認証は、 authIdentity が設定されている場合、または apiKey と authIdentity の両方が空で、サービスがシステム割り当て ID を使用する場合に適用されます。
uriによって参照されるエンドポイントは、独自の Azure OpenAI または Foundry リソースである必要があります。 サポートされているドメインは以下の通りです:
openai.azure.comcognitiveservices.azure.comservices.ai.azure.com
Azure API Management (APIM) エンドポイント (*.azure-api.net) と、これらのリソースの前面にあるカスタム ドメインもサポートされます。 カスタム ドメインまたは APIM ホスト名は名前だけでは検証できないため、Azure AI 検索は、ドメイン照合ではなく、構成時にライブ接続チェックを使用してこれらのエンドポイントを検証します。 エンドポイントと、その背後にある Azure OpenAI または Foundry リソースの間の関係を構成し、維持する責任があります。
Note
Foundry Tools 対象ユーザーに対して発行されたマネージド ID トークンは、Foundry Tools または ID が承認されている OpenAI リソースAzureに対して有効です。 信頼されていないエンドポイントに送信すると、トークンが公開される可能性があります。
推奨セキュリティ プラクティス
セキュリティで保護されたデプロイを維持するには、次のプラクティスに従います。
-
uriは、自分が所有し、信頼するエンドポイントのみに設定します。 前に示した Foundry Tools ドメインを優先します。 APIM またはカスタム ドメイン エンドポイントを使用する場合は、マネージド ID を有効にする前に、独自のリソースの前に存在することを確認します。 信頼できる見た目のホスト名は、所有権の証明ではありません。 - 検索サービスで使用されるマネージド ID に最小特権の原則を適用します。
- Azure OpenAI で、Cognitive Services OpenAI ユーザーのみを割り当てます。
- Foundry で Foundry ユーザーのみを割り当てます。 より広範なロールの付与は避けてください。
- ネットワーク セキュリティ境界 (NSP) とプライベート エンドポイントまたは VNet 統合を使用して、検索サービスが到達できるエンドポイントと、ターゲット リソースが要求を受け入れるソースを制限します。
- APIM またはカスタム ドメイン エンドポイントを使用する場合は、ゲートウェイが受信要求を検証し、目的のバックエンドにのみ転送することを確認します。 また、アクセス ポリシーも定期的に確認する必要があります。
-
apiKeyよりもマネージド ID を優先します。apiKeyを使用する場合は、安全に保存して回転させ、ソース管理に埋め込むことはありません。 サービスは、apiKeyとauthIdentityの両方を設定する構成を拒否します。 - スキルセットの定義、マネージド ID ロールの割り当て、APIM とカスタム ドメインの構成を定期的に確認して、
uri値、アクセス制御、ID アクセス許可が最新で適切であることを確認します。 確立された変更管理プロセスとセキュリティ レビュー プロセスを通じて、構成の変更を確認します。 - OpenAI、Foundry Tools、Foundry のサインイン ログ、認証イベント、アクセス ログAzure、予期しないアクティビティまたは未承認のアクティビティを監視します。
- 不要になった未使用のスキル、エンドポイント、ロールの割り当て、API キーを削除します。
スキルセット構成へのアクセスを制限する
スキルセットを作成、変更、または実行できるユーザーは、ターゲット エンドポイント (uri) とスキルで使用される認証構成の両方を制御します。 このスキルは Foundry Tools 対象ユーザーのマネージド ID トークンをそのエンドポイントに送信するため、これらのアクセス許可を信頼された管理者に制限し、マネージド ID 対応スキルを構成するときに、標準の変更管理およびセキュリティ レビュー プロセスに従います。