Note
Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。
Important
這些功能支援與其他 Microsoft 服務 及第三方服務的連結。 使用這些服務須遵守其各自的條款,可能導致資料處理或儲存超出 Azure 合規邊界,以及資料流入 Azure 合規邊界。
你有責任管理資料是否會超出組織的合規與地理邊界及相關影響,並確保適當的權限、邊界與核准被提供。
你有責任仔細審查並測試你在特定使用情境中所建置的應用程式,並做出所有適當的決策與客製化。 這包括實施你自己負責任的 AI 緩解措施,例如元提示、內容過濾器或其他安全系統,並確保你的應用程式符合適當的品質、可靠性、安全性與可信度標準。 欲了解更多資訊,請參閱Azure AI 搜尋服務透明度說明。
以下是生成式AI提示技能如何幫助你創作內容的一些範例:
- 將影像轉為文字描述
- 摘要長篇文字
- 簡化複雜內容
- 做任何你能在提示中表達的任務
GenAI 提示技能通常可在 2026-04-01 Search Service REST API 以及針對此版本的Azure SDK中取得。 此技能支援文字、圖片及多模態內容,例如帶有視覺效果的圖片,以及從 PDF 檔案擷取的文字。
Tip
這項技能常常會與資料分塊技能結合使用。 多模態教學示範了兩種不同的資料分塊策略來進行影像語言化。
支援的模型
你可以使用 Foundry 中部署的任何 聊天完成推論模型 ,例如 GPT 模型、DeepSeek-R#、Llama-4-Maverick 和 Cohere-command-r。 針對 GPT 模型,僅支援聊天完成 API 端點。 使用 Azure OpenAI 回應 API(URI 中包含
/openai/responses)的端點目前不相容。對於影像語言化,你用來分析影像的模型決定支援哪些影像格式。
對於 GPT-5 模型,該
temperature參數的支援方式與先前模型不同。 若定義,必須設為1.0,否則其他值會導致錯誤。帳單是根據你所使用的模式定價來計算的。
Note
搜尋服務透過公開端點連接到你的模型,因此沒有區域位置的要求。 不過,如果你使用的是全Azure解決方案,應該檢查 Azure AI 搜尋服務 regions 以及 Azure OpenAI 模型區域,特別是如果你有資料駐留要求時,能找到合適的配對。
先決條件
一個已部署到你的資源或專案 上的支援模型 。
對於 OpenAI Azure,請從 Azure 入口網站的
openai.azure.com頁面複製帶有 網域的端點。 用這個端點來設定Uri這個技能的參數。對於 Foundry,請從 Foundry 入口網站的 模型 頁面複製部署的目標 URI。 用這個端點來設定
Uri這個技能的參數。
認證可以是基於金鑰的,使用 Foundry 或 Azure OpenAI 資源的 API 金鑰。 不過,我們建議使用分配給角色的 搜尋服務管理身份 來使用基於角色的存取。
在 Azure OpenAI 上,將 Cognitive Services OpenAI User 指派到受管理身份。
在 Foundry 中,將 Foundry User 指派到受管理身份。
Important
Foundry RBAC 職務最近已更名。 Foundry 用戶、Foundry 擁有者、Foundry Account Owner 以及 Foundry Project Manager 先前分別被稱為 Azure AI 使用者、Azure AI 擁有者、Azure AI 帳戶擁有者及 Azure AI Project 管理者。 在更名期間,你可能還會在某些地方看到之前的名字。角色 ID 與核心權限不會因命名而改變。
@odata.type
#Microsoft.Skills.Custom.ChatCompletionSkill
資料限制
| 極限 | Notes |
|---|---|
maxTokens |
若省略,預設為 1024 。 最大值依模型而異。 |
| 要求逾時 | 修正為30秒。 在選擇批量索引模型時,請考慮這個限制,因為推理模型(如 o1 和 o3)可能會超過這個限制。 |
| 圖片 | 支援 Base 64 編碼的圖片與圖片網址。 尺寸限制依模型而異。 |
技能參數
| 房產 | 類型 | Required | Notes |
|---|---|---|---|
uri |
字串 | Yes | 部署模型的端點。 支援的網域有:
也支援 Azure API 管理 端點,包括 API 管理自訂網域。 關於設定,包括認證、RBAC 及可選的私人連線,請參見 Use Azure API 管理 with Azure OpenAI 技能與向量器。 |
apiKey |
字串 | Cond.* | 模型的秘密金鑰。 使用受管理身份時請留空。 |
authIdentity |
字串 | Cond.* | User-assigned 管理身份客戶端 ID(Azure僅限 OpenAI)。 使用 系統指定的 身份時,請留空。 |
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 }} |
* 必須使用服務系統指派的身份中apiKeyauthIdentity、 。
commonModelParameters 預設值
| 參數 | 預設值 |
|---|---|
model |
(部署預設) |
frequencyPenalty |
0 |
presencePenalty |
0 |
maxTokens |
1024 |
temperature |
0.7 |
seed |
零 |
stop |
零 |
技能輸入
| 輸入名稱 | 類型 | Required | Description |
|---|---|---|---|
systemMessage |
字串 | Yes | 系統層級的指導(例如:「 你是個有幫助的助理。」)。 |
userMessage |
字串 | Yes | 使用者提示。 |
text |
字串 | No | 附加於(僅文字情境)的可選文字 userMessage 。 |
image |
string(base 64 data-URL) | No | 在提示中新增圖片(僅限多模態模型)。 |
imageDetail |
字串 (low | high | auto) |
No | Fidelity hint for Azure OpenAI multimodal models. |
技能產出
| 輸出名稱 | 類型 | 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
}
}
}
最佳做法
- 用 文字分割 技能將長文件分塊保存在模型的上下文視窗內。
- 對於高流量索引,應專門為此技能設置一個模型部署,以確保查詢時 RAG 工作負載的代幣配額不受影響。
- 為了降低延遲,請將模型與你的 Azure AI 搜尋服務 服務共置於同一 Azure 區域。
- 搭配
responseFormat.json_schemaGPT-4o 進行可靠的結構化擷取,並更容易映射到索引欄位。 - 監控代幣使用情況,若索引器達到每分鐘代幣數(TPM)上限,請提交 配額增加請求 。
錯誤與警告
| 狀況 | 結果 |
|---|---|
缺失或無效 uri |
錯誤 |
| 未指定認證方法 | 錯誤 |
兩者皆apiKeyauthIdentity有供應 |
錯誤 |
| 多模態提示詞的不支援模型 | 錯誤 |
| 輸入超過模型代幣限制 | 錯誤 |
模型會回傳無效的 JSON 對 json_schema |
警告:原始弦線已回來 response |
管理身份驗證的安全考量
當 GenAI 提示技能使用管理式身份驗證時,Azure AI 搜尋服務 會取得 Microsoft Entra 存取權杖,用於 Foundry Tools 受眾https://cognitiveservices.azure.com(),並將該憑證包含在發送給指定uri端點的請求中。 管理式身份驗證適用於authIdentity設定 時,或當 和 apiKey 皆authIdentity為空且服務使用系統指派的身份時。
所uri參考的端點預期是你自己的 Azure OpenAI 或 Foundry 資源。 支援的網域有:
openai.azure.comcognitiveservices.azure.comservices.ai.azure.com
Azure API 管理(APIM)端點(*.azure-api.net)以及前置這些資源的自訂網域也被支援。 由於自訂網域或 APIM 主機名稱無法僅憑名稱驗證,Azure AI 搜尋服務 會在設定時即時驗證這些端點,而非透過網域匹配。 你負責配置並維護端點與其背後的 Azure OpenAI 或 Foundry 資源之間的關係。
Note
為 Foundry Tools 受眾發行的管理身份憑證,對該身份授權的 Foundry Tools 或 Azure OpenAI 資源有效。 將它傳送到不受信任的端點可能會暴露該憑證。
建議的安全性做法
為維持部署安全,請遵循以下做法:
- 只設定
uri你擁有且信任的端點。 偏好前面提到的 Foundry Tools 網域。 如果你使用 APIM 或自訂網域端點,請確認它在啟用受管理身份前端是你自己的資源。 看起來可信的主機名稱並不代表擁有權。 - 將最小權限原則應用於搜尋服務所使用的管理身份:
- 在 Azure OpenAI 中,只指定認知服務為 OpenAI 使用者。
- 在 Foundry 中,只指派 Foundry 使用者。 避免授予較廣泛的職務。
- 使用 網路安全邊界(NSP) 與私有端點或VNet整合,限制搜尋服務可到達的端點,以及目標資源接受來自哪些來源的請求。
- 如果你使用 APIM 或自訂網域端點,請確保閘道驗證入站請求,並只轉發到預期的後端。 你也應該定期檢視其存取政策。
- 偏好管理身份而非
apiKey。 如果你使用apiKey,請安全儲存並旋轉它,不要嵌入到原始碼控制中。 服務會拒絕同時設定apiKey和authIdentity的配置。 - 定期檢視技能組定義、受管理身份角色指派,以及 APIM 與自訂領域設定,以確認值、存取控制與身份權限是否
uri保持最新且適當。 透過您已建立的變更管理與安全審查流程來審查組態變更。 - 監控 Azure OpenAI、Foundry Tools 及 Foundry 的登入日誌、認證事件,以及存取日誌中是否有意外或未經授權的活動。
- 移除不再需要的技能、端點、角色指派和 API 金鑰。
限制技能組設定的存取
能建立、修改或執行技能組的使用者,同時控制目標端點(uri)及技能所使用的認證設定。 由於該技能會將 Foundry Tools 受眾的管理身份憑證傳送到該端點,請將這些權限限制給受信任的管理員,並在配置啟用管理身份的技能時,遵循標準的變更管理與安全審查流程。