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.
Argomenti
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) — Quando
true, i client possono utilizzare gli ID dei modelli senza il prefisso del provider (ad esempio,claude-opus-4-7anziché).anthropic.claude-opus-4-7L’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:
-
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, leopenai/gpt-5.5rotte verso la destinazione).openai -
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. -
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_ROLEper i provider che accettano l'autenticazione IAM (come Amazon Bedrock). -
Chiave API: da utilizzare
API_KEYper i provider che richiedono una chiave API (come OpenAI e Anthropic). Il gateway inserisce la chiave API memorizzata nelle richieste in uscita.