Note
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
GenAI (Generateive AI) Prompt スキルは、Azure AI Foundry にデプロイされた大規模言語モデル (LLM) または Azure AI Foundry モデルの Azure OpenAI に対してチャット完了要求を実行します。 この機能を使用して、インデックスを作成して検索可能なコンテンツとして格納できる新しい情報を作成します。
GenAI プロンプト スキルがコンテンツの作成にどのように役立つかの例を次に示します。
- 画像を言語化する
- テキストの大きな一節を要約する
- 複雑なコンテンツを簡略化する
- プロンプトで明確に示すことができるその他のタスクを実行する
GenAI プロンプト スキルは、 最新のプレビュー REST API で使用できます。 このスキルは、テキスト、画像、およびテキストと画像を含む PDF などのマルチモーダル コンテンツをサポートします。
Tip
このスキルは、データ チャンク スキルと組み合わせて使用するのが一般的です。 次のチュートリアルでは、2 つの異なるデータ チャンク手法を使用した画像の言語化について説明します。
サポートされているモデル
AI Foundry にデプロイされている チャット補完推論モデル (GPT モデル、Deepseek R#、Llama-4-Mavericj、Cohere-command-r など) を使用できます。 具体的には、GPT モデルでは、チャット入力候補 API エンドポイントのみがサポートされます。 Azure OpenAI Responses API (URI の一部として
/openai/responsesを含む) を使用するエンドポイントは、現在互換性がありません。画像の言語化では、画像の分析に使用するモデルによって、サポートされる画像形式が決まります。
GPT-5 モデルの場合、
temperatureパラメーターは以前のモデルと同じ方法ではサポートされていません。 定義されている場合は、1.0に設定する必要があります。他の値を指定するとエラーが発生するためです。課金は、使用するモデルの価格に基づきます。
Note
検索サービスはパブリック エンドポイント経由でモデルに接続するため、リージョンの場所の要件はありませんが、オールアップ Azure ソリューションを使用している場合は、 Azure AI Search リージョン と Azure OpenAI モデル リージョン を確認して、データ所在地の要件がある場合は、適切なペアを見つける必要があります。
Prerequisites
Azure AI Foundry または Azure OpenAI にデプロイされたチャット完了モデル ( gpt-4o や互換性のあるオープン ソース ソフトウェア (OSS) モデルなど)。
Foundry ポータルの モデルとエンドポイント 、または Azure OpenAI リソース サブドメイン (
*.openai.azure.com) からエンドポイントをコピーします。スキル定義の
Uriパラメーターにこのエンドポイントを指定します。
認証は、Azure AI Foundry または Azure OpenAI リソースの API キーを使用してキーベースにすることができます。 ただし、ロールに割り当てられた 検索サービスのマネージド ID を 使用して、ロールベースのアクセスをお勧めします。
Azure OpenAI で、 Cognitive Services OpenAI ユーザー をマネージド ID に割り当てます。
AI Foundry モデルの場合は、 Azure AI ユーザーを割り当てます。
@odata.type
#Microsoft.Skills.Custom.ChatCompletionSkill
データ制限
| Limit | Notes |
|---|---|
maxTokens |
省略した場合、既定値は 1024 です。 最大値はモデルに依存します。 |
| 要求のタイムアウト | 30 秒 (既定)。
timeout プロパティ (PT##S) でオーバーライドします。 |
| Images | Base 64 でエンコードされたイメージとイメージ URL がサポートされています。 サイズ制限はモデルに依存します。 |
スキルのパラメーター
| Property | タイプ | Required | Notes |
|---|---|---|---|
uri |
文字列 | Yes | デプロイされたモデルのパブリック エンドポイント。 |
apiKey |
文字列 | Cond.* | モデルの秘密鍵。 マネージド ID を使用する場合は空白のままにします。 |
authIdentity |
文字列 | Cond.* | ユーザー割り当て マネージド ID クライアント ID (Azure OpenAI のみ)。 システム割り当て ID を使用するには、空白のままにします。 |
commonModelParameters |
オブジェクト | No |
temperature、maxTokensなどの標準生成コントロール。 |
extraParameters |
オブジェクト | No | 基になるモデル API に渡されるディクショナリを開きます。 |
extraParametersBehavior |
文字列 | No |
"pass-through"
|
"drop"
|
"error" (既定の "error")。 |
responseFormat |
オブジェクト | No | モデルが テキスト、自由形式の JSON オブジェクト、または厳密に型指定された JSON スキーマを返すかどうかを制御します。
responseFormat ペイロードの例: {responseFormat: { type: text }}, {responseFormat: { type: json_object }}, {responseFormat: { type: json_schema }} |
*
、apiKey、またはサービスのauthIdentity ID のいずれかを使用する必要があります。
commonModelParameters デフォルト
| Parameter | Default |
|---|---|
model |
(デプロイの既定値) |
frequencyPenalty |
0 |
presencePenalty |
0 |
maxTokens |
1024 |
temperature |
0.7 |
seed |
null |
stop |
null |
スキルの入力
| 入力名 | タイプ | Required | Description |
|---|---|---|---|
systemMessage |
文字列 | Yes | システム レベルの命令 (例: "You are a helpful assistant.")。 |
userMessage |
文字列 | Yes | ユーザー プロンプト。 |
text |
文字列 | No |
userMessageに追加される省略可能なテキスト (テキストのみのシナリオ)。 |
image |
string (Base 64 data-URL) | No | プロンプトにイメージを追加します (マルチモーダル モデルのみ)。 |
imageDetail |
string (low | high | auto) |
No | Azure OpenAI マルチモーダル モデルの忠実性のヒント。 |
スキルの出力
| 出力名 | タイプ | Description |
|---|---|---|
response |
string または JSON オブジェクト |
responseFormat.typeによって要求された形式のモデル出力。 |
usageInformation |
JSON オブジェクト | モデル パラメーターのトークン数とエコー。 |
サンプル定義
テキストのみの要約
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"name": "Summarizer",
"description": "Summarizes document content.",
"context": "/document",
"timeout": "PT30S",
"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
}
}
}
ベスト プラクティス
- テキスト分割スキルを使用して長いドキュメントをチャンクし、モデルのコンテキスト ウィンドウ内に留めます。
- 大量のインデックス作成の場合は、クエリ時間 RAG ワークロードのトークン クォータが影響を受けないように、このスキル専用の別のモデルデプロイを行います。
- 待機時間を最小限に抑えるには、同じ Azure リージョンでモデルと Azure AI Search サービスを併置します。
-
responseFormat.json_schemaでを使用して、信頼性の高い構造化抽出を行い、インデックス フィールドへのマッピングを容易にします。 - インデクサーによって 1 分あたりのトークン数 (TPM) の制限が飽和している場合は、トークンの使用状況を監視し、 クォータの引き上げ要求 を送信します。
エラーと警告
| Condition | Result |
|---|---|
見つからないか無効 uri |
Error |
| 認証方法が指定されていない | Error |
apiKeyとauthIdentityの両方が提供されます |
Error |
| マルチモーダル プロンプトのサポートされていないモデル | Error |
| 入力がモデル トークンの制限を超えています | Error |
モデルが無効な JSON を返す json_schema |
警告 – で返される生の文字列 response |