Note
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
GenAI (Generateive AI) Prompt スキルは、Azure OpenAI in Foundry Models または Microsoft Foundry でデプロイされた大規模言語モデル (LLM) に対してチャット完了要求を実行します。 このスキルを使用して、インデックス化できる新しい情報を作成して、検索可能なコンテンツとして格納します。
GenAI Prompt スキルがコンテンツの作成にどのように役立つかの例を次に示します。
- 画像を言語化する
- テキストの大きな一文を要約する
- 複雑なコンテンツを簡単にする
- プロンプトで明確に示すことができるその他のタスクを実行する
GenAI Prompt スキルは、最新のプレビュー REST API で使用できます。 このスキルは、テキスト、画像、およびテキストと画像を含む PDF などのマルチモーダル コンテンツをサポートします。
Tip
このスキルは、データ チャンク スキルと組み合わせて使用するのが一般的です。 次のチュートリアルでは、2 つの異なるデータ チャンク手法を使用した画像の言語化について説明します。
サポートされているモデル
Foundry にデプロイされているチャット補完推論モデル (GPT モデル、Deepseek R#、Llama-4-Mavericj、Cohere-command-r など) を使用できます。 具体的に言うと、GPT モデルでは、chat completions API エンドポイントのみがサポートされます。 Azure OpenAI Responses API (URI に
/openai/responsesを含む) を使用するエンドポイントは、現在互換性がありません。画像の言語化では、画像の分析に使用するモデルによって、サポートされる画像形式が決まります。
GPT-5 モデルの場合、
temperatureパラメーターは以前のモデルと同じ方法ではサポートされていません。 定義されている場合は、1.0に設定する必要があります。これは、他の値を指定するとエラーが発生するためです。請求は、使用するモデルの価格に基づきます。
Note
検索サービスはパブリック エンドポイント経由でモデルに接続するため、リージョンの場所の要件はありませんが、Azure 全体のソリューションを使用している場合は、Azure AI Search リージョン と Azure OpenAI モデル リージョンを確認し、特にデータ所在地の要件がある場合は、最適なペアを見つける必要があります。
Prerequisites
リソースまたはプロジェクトにデプロイされているサポートされているモデル。
Azure OpenAI の場合は、Azure portal の
openai.azure.comページから、 ドメインを持つエンドポイントをコピーします。 このエンドポイントは、このスキルのUriパラメーターに使用します。Foundry の場合は、Foundry ポータルの モデル パイプラインからデプロイの URI をコピーします。 このエンドポイントは、このスキルの
Uriパラメーターに使用します。
認証は、Foundry または Azure OpenAI リソースの API キーを使用してキーベースにすることができます。 ただし、ロールに割り当てられた検索サービスのマネージド ID を使用するロールベースのアクセスをお勧めします。
Azure OpenAI で、Cognitive Services OpenAI ユーザーを、マネージド ID に割り当てます。
Foundry で、マネージド ID に 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 |
文字列(Base 64 data-URL) | No | プロンプトにイメージを追加します (マルチモーダル モデルのみ)。 |
imageDetail |
string (low | high | auto) |
No | Azure OpenAI マルチモーダル モデルの忠実性に関するヒント。 |
スキルの出力
| 出力名 | タイプ | Description |
|---|---|---|
response |
文字列 または 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
}
}
}
ベスト プラクティス
- Text Split スキルを使用して長いドキュメントをチャックし、モデルのコンテキスト内に収めます。
- 大量のインデックス作成の場合は、クエリ時間 RAG ワークロードのトークン クォータが影響を受けないように、このスキル用に個別のモデル デプロイを割り当てます。
- 待機時間を最小限に抑えるには、同じ Azure リージョンでモデルと Azure AI Search サービスを併置します。
-
responseFormat.json_schemaと GPT-4o を併用して、信頼性の高い構造化抽出を確保し、インデックス フィールドへのマッピングを容易にします。 - インデクサーが 1 分あたりのトークン数 (TPM) の制限を飽和している場合は、トークンの使用状況を監視し、クォータの引き上げ要求を送信します。
エラーと警告
| Condition | Result |
|---|---|
uri が見つからないか、無効 |
Error |
| 認証方法が指定されていない | Error |
apiKey と authIdentity の両方が提供されている |
Error |
| マルチモーダル プロンプトのサポートされていないモデル | Error |
| 入力がモデル トークンの制限を超えている | Error |
モデルが json_schema に関する無効な JSON を返す |
警告 – response で返される生文字列 |