View a markdown version of this page

Obiettivi del provider di inferenza - Amazon Bedrock AgentCore

Obiettivi del provider di inferenza

Gli obiettivi del provider di inferenza offrono il controllo esplicito sull'endpoint, sulle mappature dei modelli e sulle operazioni di un fornitore di modelli. Utilizza la configurazione di un provider quando devi personalizzare i modelli disponibili, impostare limiti di token per modello, configurare la riscrittura dei percorsi o connetterti a un provider che non dispone di un connettore integrato.

Configurazione di Target

La configurazione di destinazione per un target del provider di inferenza utilizza la seguente struttura:

{ "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 (obbligatorio) — L'URL HTTPS del provider del modello.

  • ModelMapping (opzionale) — Configurazione della traduzione dell'ID del modello.

    • ProviderPrefix (opzionale): configura il modo in cui i client possono omettere il prefisso del provider dagli ID del modello. Se omesso, non viene applicata alcuna traduzione del prefisso e i client devono utilizzare gli ID di modello completi del provider.

      • strip (opzionale) — Quandotrue, i client possono utilizzare gli ID dei modelli senza il prefisso del provider (ad esempio, claude-opus-4-7 anziché). anthropic.claude-opus-4-7 L’impostazione predefinita è false.

      • separator (opzionale) — Il carattere separatore tra il prefisso del provider e il nome del modello (ad esempio,). .

  • operations (opzionale) — Un elenco di configurazioni operative che mappano i percorsi delle richieste ai modelli supportati:

    • path (obbligatorio) — Il percorso della richiesta per questa operazione (ad esempio,/v1/chat/completions).

    • providerPath (opzionale) — Il percorso a cui inoltrare sul provider se è diverso dal percorso della richiesta.

    • models (opzionale) — I modelli supportati per questa operazione. Ogni voce include un campo modello (obbligatorio) contenente un ID del modello o uno schema a globo (ad esempio,anthropic.claude-opus-*).

Creazione di un obiettivo di inferenza del provider

L'esempio seguente crea un target di inferenza OpenAI utilizzando una configurazione del provider:

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 " } } } ] }'

L'esempio seguente crea un target di inferenza Bedrock con configurazione esplicita del provider e mappatura del modello. La modelMapping configurazione con providerPrefix consente ai client di utilizzare nomi di modello brevi (likeclaude-opus-4-7) mentre il gateway li traduce in nomi con prefisso del provider (come): 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"} ] }'

Invocare un obiettivo di inferenza del provider

Per richiamare un target di inferenza, invia le richieste al percorso del gateway. /inference Il gateway indirizza ogni richiesta alla destinazione corretta in base al model campo nel corpo della richiesta. Il model valore può essere un semplice ID del modello (ad esempio,gpt-5.5) o un ID modello qualificato per il target nel modulo {targetName}/{modelId} (ad esempio,openai/gpt-5.5). Per i dettagli su come il model valore viene abbinato a un obiettivo, vedete routing. Model-based

Il formato dell'URL è:

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

Sostituisci {path} con il percorso dell'operazione di inferenza (ad esempiov1/chat/completions,v1/responses, ov1/messages).

Utilizzo dell'SDK OpenAI

Imposta il /inference/v1 percorso del gateway come: 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!"}] )

Utilizzando Anthropic SDK

Imposta il /inference percorso del gateway come: 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!"}] )

Usare 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!"}]}'

Modello di routing qualificato

Quando più destinazioni servono lo stesso modello, aggiungi all'ID del modello il nome del target da indirizzare a un provider specifico:

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

Model-based routing

Il gateway indirizza le richieste di inferenza in base al model campo nel corpo della richiesta:

  1. Routing qualificato: se l'ID del modello contiene un / e il prefisso corrisponde al nome di una destinazione, la richiesta viene indirizzata a tale destinazione (ad esempio, le openai/gpt-5.5 rotte verso la destinazione). openai

  2. Routing non qualificato: se l'ID del modello non contiene un/, il gateway lo confronta con tutte le destinazioni configurate. Una corrispondenza esatta ha la priorità rispetto ai modelli a globo. Se esattamente un obiettivo corrisponde, la richiesta viene indirizzata ad esso.

  3. Gestione delle collisioni: quando più target corrispondono allo stesso modello con la stessa specificità, il gateway utilizza come impostazione predefinita il target Amazon Bedrock, se presente tra le corrispondenze. Altrimenti, distribuisce le richieste tra gli obiettivi corrispondenti in ordine round robin. Per associare le richieste a un target specifico, qualifica il modello con il nome del target come prefisso (ad esempio,). bedrock/claude-opus-4-7

Streaming

Lo streaming segue la convenzione OpenAI SSE. Impostato "stream": true nel corpo della richiesta, il gateway passa attraverso il flusso SSE del provider senza alcuna trasformazione:

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="")

Autorizzazione in uscita

Gli obiettivi dei provider di inferenza supportano i seguenti tipi di autorizzazione in uscita:

  • IAM (SigV4): da utilizzare GATEWAY_IAM_ROLE per i provider che accettano l'autenticazione IAM (come Amazon Bedrock).

  • Chiave API: da utilizzare API_KEY per i provider che richiedono una chiave API (come OpenAI e Anthropic). Il gateway inserisce la chiave API memorizzata nelle richieste in uscita.