Azure AI 模型推斷 REST API 參考
Azure AI 模型推斷是一種 API,其會公開基礎模型的一組常見功能,而且開發人員可以使用此 API,以統一且一致的方式取用不同模型集合的預測。 開發人員可以與 Azure AI Foundry 入口網站中部署的不同模型交談,而不需要變更其所使用的基礎程序代碼。
好處
語言模型等基礎模型近年來確實取得了顯著的進步。 這些進步已經徹底改變了各種領域,包括自然語言處理和計算機視覺,並已啟用聊天機器人、虛擬助理和語言翻譯服務等應用程式。
雖然基礎模型在特定領域表現得很出色,但它們缺乏一組統一的功能。 有些模型在特定的工作中表現較好,甚至跨相同工作,有些模型可能會以一種方式處理問題,而另一個模型則以另一種方式處理問題。 開發人員可以使用正確的工作模型,讓開發人員能夠 適當的工作,以受益於這種多樣性:
- 改善特定下游工作的效能。
- 針對更簡單的工作使用更有效率的模型。
- 使用可在特定工作上執行速度較快的較小模型。
- 撰寫多個模型以開發智慧型手機體驗。
擁有統一方式來取用基礎模型,可讓開發人員在不犧牲可移植性或變更基礎程式代碼的情況下,實現所有這些優點。
推斷 SDK 支援
Azure AI 推斷套件可讓您取用支援 Azure AI 模型推斷 API 的所有模型,並輕鬆地變更這些模型。 Azure AI 推斷套件是 Azure AI Foundry SDK 的一部分。
語言 | 文件 | 包 | 例子 |
---|---|---|---|
C# | 參考 | azure-ai-inference (NuGet) | C# 範例 |
爪哇島 | 參考 | azure-ai-inference (Maven) | Java 範例 |
JavaScript | 參考 | @azure/ai-inference (npm) | JavaScript 範例 |
蟒 | 參考 | azure-ai-inference (PyPi) | Python 範例 |
能力
下一節說明 API 公開的一些功能:
方式
API 會指出開發人員如何使用下列形式的預測:
擴展
Azure AI 模型推斷 API 會指定模型可訂閱的一組形式和參數。 不過,某些模型可能有 API 所指出的進一步功能。 在這些情況下,API 可讓開發人員將它們當作承載中的額外參數傳遞。
藉由設定標頭 extra-parameters: pass-through
,API 會嘗試將任何未知的參數直接傳遞至基礎模型。 如果模型可以處理該參數,要求就會完成。
下列範例顯示傳遞Mistral-Large所支持參數 safe_prompt
的要求,此要求未在 Azure AI 模型推斷 API 中指定。
要求
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" },
"safe_prompt": true
}
注意
extra-parameters
的預設值是 error
,如果在承載中指出額外的參數,則會傳回錯誤。 或者,您可以將 extra-parameters: drop
設定為卸除要求中的任何未知參數。 如果您碰巧傳送要求與您知道模型不支援的額外參數,但您想要要求完成,請使用此功能。 這的一個典型範例表示 seed
參數。
具有不同功能集的模型
Azure AI 模型推斷 API 指出一組一般功能,但每個模型都可以決定實作它們。 模型不支援特定參數的案例會傳回特定的錯誤。
下列範例顯示聊天完成要求的回應,指出參數 reponse_format
,並以 JSON
格式要求回復。 在此範例中,由於模型不支援這類功能,因此會將錯誤 422 傳回給使用者。
要求
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "json_object" },
}
回應
{
"status": 422,
"code": "parameter_not_supported",
"detail": {
"loc": [ "body", "response_format" ],
"input": "json_object"
},
"message": "One of the parameters contain invalid values."
}
提示
您可以檢查 屬性 details.loc
以瞭解違規參數的位置,並 details.input
查看要求中傳遞的值。
內容安全性
Azure AI 模型推斷 API 支援 Azure AI Content Safety。 搭配 Azure AI 內容安全性使用部署時,輸入和輸出會通過一組分類模型,以偵測並防止有害內容的輸出。 內容篩選 (預覽) 系統會偵測並針對輸入提示和輸出完成中潛在有害內容的特定類別採取動作。
下列範例顯示已觸發內容安全性之聊天完成要求的回應。
要求
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
],
"temperature": 0,
"top_p": 1,
}
回應
{
"status": 400,
"code": "content_filter",
"message": "The response was filtered",
"param": "messages",
"type": null
}
開始
Azure AI 模型推斷 API 可在 Azure AI 服務資源上使用。 您可以使用與在 Azure 訂用帳戶中為 Azure AI 模型推斷 或服務實例建立和設定資源的任何其他 Azure產品一樣開始使用。 您可以視需要建立任意數量的資源,並獨立設定它們,以防您有多個具有不同需求的小組。
建立 Azure AI 服務資源之後,您必須先部署模型,才能開始進行 API 呼叫。 根據預設,沒有任何模型可供使用,因此您可以控制要從哪個模型開始。 請參閱教學課程 在 Azure AI 模型推斷中建立您的第一個模型部署。