View a markdown version of this page

推論提供者目標 - Amazon Bedrock AgentCore

推論提供者目標

推論提供者目標可讓您明確控制模型提供者的端點、模型映射和操作。當您需要自訂可用的模型、設定每個模型字符限制、設定路徑重寫,或連接到沒有內建連接器的提供者時,請使用提供者組態。

目標組態

推論提供者目標的目標組態使用下列結構:

{ "inference": { "provider": { "endpoint": "https://api.openai.com", "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"}, {"model": "gpt-5.4-mini"} ] }, { "path": "/v1/responses", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"} ] } ] } } }
  • endpoint (必要) – 模型提供者的 HTTPS URL。

  • modelMapping (選用) – 模型 ID 轉譯組態。

    • providerPrefix (選用) – 設定用戶端如何從模型 IDs 省略提供者字首。如果省略,則不會套用字首轉譯,且用戶端必須使用提供者的完整模型 IDs。

      • strip (選用) – 當 時true,用戶端可以使用沒有提供者字首IDs (例如,claude-opus-4-7而不是 anthropic.claude-opus-4-7)。預設為 false

      • 分隔符號 (選用) – 提供者字首和模型名稱之間的分隔符號字元 (例如 .)。

  • operations (選用) – 將請求路徑映射至支援模型的操作組態清單:

    • path (必要) – 此操作的請求路徑 (例如,/v1/chat/completions)。

    • providerPath (選用) – 如果與請求路徑不同,則在提供者上轉送至 的路徑。

    • 模型 (選用) – 此操作支援的模型。每個項目都包含模型欄位 (必要),其中包含模型 ID 或 glob 模式 (例如 anthropic.claude-opus-*)。

建立提供者推論目標

下列範例使用提供者組態建立 OpenAI 推論目標:

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "openai", "targetConfiguration": { "inference": { "provider": { "endpoint": "https://api.openai.com", "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"}, {"model": "gpt-5.4-mini"} ] }, { "path": "/v1/responses", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"} ] } ] } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/apikeycredentialprovider/openai-key", "credentialLocation": "HEADER", "credentialParameterName": "Authorization", "credentialPrefix": "Bearer " } } } ] }'

下列範例會建立具有明確提供者組態和模型映射的 Bedrock 推論目標。使用 的modelMapping組態providerPrefix可讓用戶端使用短模型名稱 (如 claude-opus-4-7),而閘道會將它們轉譯為提供者字首名稱 (如 anthropic.claude-opus-4-7):

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "bedrock", "targetConfiguration": { "inference": { "provider": { "endpoint": "https://bedrock-mantle.us-east-1.api.aws", "modelMapping": { "providerPrefix": {"strip": true, "separator": "."} }, "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "anthropic.claude-opus-*"}, {"model": "anthropic.claude-sonnet-*"}, {"model": "openai.gpt-oss-*"} ] }, { "path": "/v1/messages", "providerPath": "/anthropic/v1/messages", "models": [ {"model": "anthropic.claude-opus-*"}, {"model": "anthropic.claude-sonnet-*"} ] } ] } } }, "credentialProviderConfigurations": [ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ] }'

叫用供應商推論目標

若要叫用推論目標,請將請求傳送到閘道的/inference路徑。閘道會根據請求內文中的 model 欄位,將每個請求路由至正確的目標。model 值可以是純模型 ID (例如 gpt-5.5) 或以 格式顯示的目標合格模型 ID {targetName}/{modelId}(例如 openai/gpt-5.5)。如需 model值如何符合目標的詳細資訊,請參閱以模型為基礎的路由

URL 格式為:

https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/inference/{path}

{path} 將 取代為推論操作路徑 (例如 v1/chat/completionsv1/responsesv1/messages)。

使用 OpenAI 開發套件

將閘道的/inference/v1路徑設定為 base_url

from openai import OpenAI client = OpenAI( base_url="https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1", api_key="<gateway-auth-token>" ) response = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Hello!"}] )

使用 Anthropic SDK

將閘道的/inference路徑設定為 base_url

import anthropic client = anthropic.Anthropic( base_url="https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference", api_key="<gateway-auth-token>" ) response = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}] )

使用 awscurl

awscurl --service bedrock-agentcore --region us-west-2 -X POST \ "https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{"model": "gpt-5.5", "messages": [{"role": "user", "content": "Hello!"}]}'

合格模型路由

當多個目標提供相同的模型時,請在模型 ID 前加上目標名稱,以路由至特定提供者:

# Route explicitly to the "bedrock" target response = client.chat.completions.create( model="bedrock/claude-opus-4-7", messages=[{"role": "user", "content": "Hello!"}] )

模型型路由

閘道會根據請求內文中的 model 欄位路由推論請求:

  1. 合格路由 – 如果模型 ID 包含 ,/且字首符合目標名稱,則請求會路由到該目標 (例如,openai/gpt-5.5路由到openai目標)。

  2. 不合格的路由 – 如果模型 ID 不包含 /,閘道會比對它與所有設定的目標。完全相符項目的優先順序高於 glob 模式。如果只有一個目標相符,請求會路由到該目標。

  3. 碰撞處理 – 當多個目標符合相同特異性的相同模型時,如果符合其中之一,閘道會預設為 Amazon Bedrock 目標。否則,它會以循環順序將請求分配到相符的目標。若要鎖定對特定目標的請求,請將具有目標名稱的模型視為字首 (例如,bedrock/claude-opus-4-7)。

串流

串流遵循 OpenAI SSE 慣例。在請求內文"stream": true中設定 ,而閘道會從提供者傳遞 SSE 串流,而不需要轉換:

stream = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Write a story."}], stream=True ) for chunk in stream: print(chunk.choices[0].delta.content, end="")

傳出授權

推論提供者目標支援下列傳出授權類型:

  • IAM (SigV4)GATEWAY_IAM_ROLE用於接受 IAM 身分驗證 (例如 Amazon Bedrock) 的供應商。

  • API 金鑰API_KEY用於需要 API 金鑰 (例如 OpenAI 和 Anthropic) 的提供者。閘道會將儲存的 API 金鑰注入傳出請求。