跳至主要內容

結構化輸出 /v1/messages

使用 LiteLLM 透過 /v1/messages 端點呼叫 Anthropic 的結構化輸出功能。

支援的提供者

提供者支援備註
Anthropic原生支援
Azure AI(Anthropic models)Azure AI 上的 Claude models
Bedrock(Converse Anthropic models)透過 Bedrock Converse API 的 Claude models
Bedrock(Invoke Anthropic models)透過 Bedrock Invoke API 的 Claude models

用法

LiteLLM Proxy 伺服器

  1. 設定 config.yaml
model_list:
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-5-20250514
api_key: os.environ/ANTHROPIC_API_KEY
  1. 啟動 proxy
litellm --config /path/to/config.yaml
  1. 測試它!
curl http://localhost:4000/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Extract the key information from this email: John Smith (john@example.com) is interested in our Enterprise plan and wants to schedule a demo for next Tuesday at 2pm."
}
],
"output_format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"email": {"type": "string"},
"plan_interest": {"type": "string"},
"demo_requested": {"type": "boolean"}
},
"required": ["name", "email", "plan_interest", "demo_requested"],
"additionalProperties": false
}
}
}'

範例回應

{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "{\"name\":\"John Smith\",\"email\":\"john@example.com\",\"plan_interest\":\"Enterprise\",\"demo_requested\":true}"
}
],
"model": "claude-sonnet-4-5-20250514",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 75,
"output_tokens": 28
}
}

請求格式

output_format

output_format 參數指定結構化輸出格式。

{
"output_format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"field_name": {"type": "string"},
"another_field": {"type": "integer"}
},
"required": ["field_name", "another_field"],
"additionalProperties": false
}
}
}

欄位

  • type (string): 必須是 "json_schema"
  • schema (object): 定義預期輸出結構的 JSON Schema 物件
    • type (string): 根類型,通常是 "object"
    • properties (object): 定義欄位及其型別
    • required (array): 必填欄位名稱清單
    • additionalProperties (boolean): 設為 false 以強制嚴格遵循 schema
🚅
LiteLLM Enterprise
為正式環境打造的 SSO/SAML、稽核記錄、支出追蹤、多團隊管理與防護欄。
深入瞭解 →