View a markdown version of this page

Cibles des fournisseurs d'inférence - Amazon Bedrock AgentCore

Cibles des fournisseurs d'inférence

Les cibles du fournisseur d'inférence vous permettent de contrôler explicitement le point de terminaison, les mappages de modèles et les opérations d'un fournisseur de modèles. Utilisez une configuration de fournisseur lorsque vous devez personnaliser les modèles disponibles, définir des limites de jetons par modèle, configurer la réécriture de chemins ou vous connecter à un fournisseur qui ne possède pas de connecteur intégré.

Configuration de la cible

La configuration cible d'une cible de fournisseur d'inférence utilise la structure suivante :

{ "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"} ] } ] } } }
  • point de terminaison (obligatoire) — URL HTTPS du fournisseur de modèles.

  • ModelMapping (facultatif) — Configuration de la traduction de l'ID du modèle.

    • ProviderPrefix (facultatif) — Configure la manière dont les clients peuvent omettre le préfixe du fournisseur dans les ID de modèle. En cas d'omission, aucune traduction de préfixe n'est appliquée et les clients doivent utiliser les identifiants de modèle complets du fournisseur.

      • strip (facultatif) — Quand true les clients peuvent utiliser les identifiants de modèle sans le préfixe du fournisseur (par exemple, claude-opus-4-7 au lieu deanthropic.claude-opus-4-7). La valeur par défaut est false .

      • séparateur (facultatif) — Le caractère séparateur entre le préfixe du fournisseur et le nom du modèle (par exemple,.).

  • opérations (facultatif) — Liste des configurations d'opérations qui mappent les chemins de demande aux modèles pris en charge :

    • chemin (obligatoire) — Le chemin de la demande pour cette opération (par exemple,/v1/chat/completions).

    • ProviderPath (facultatif) — Le chemin vers lequel transférer sur le fournisseur s'il est différent du chemin de la demande.

    • modèles (facultatif) : modèles pris en charge pour cette opération. Chaque entrée inclut un champ de modèle (obligatoire) contenant un ID de modèle ou un motif global (par exemple,anthropic.claude-opus-*).

Création d'une cible d'inférence pour les fournisseurs

L'exemple suivant crée une cible d'inférence OpenAI à l'aide d'une configuration de fournisseur :

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'exemple suivant crée une cible d'inférence Bedrock avec une configuration de fournisseur et un mappage de modèles explicites. La modelMapping configuration providerPrefix permet aux clients d'utiliser des noms de modèles courts (commeclaude-opus-4-7) tandis que la passerelle les traduit en noms préfixés par le fournisseur (comme) : 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"} ] }'

Invoquer une cible d'inférence du fournisseur

Pour appeler une cible d'inférence, envoyez des demandes sur le /inference chemin de la passerelle. La passerelle achemine chaque demande vers la bonne cible en fonction du model champ du corps de la demande. La model valeur peut être un identifiant de modèle simple (par exemple,gpt-5.5) ou un identifiant de modèle qualifié par la cible dans le formulaire {targetName}/{modelId} (par exemple,openai/gpt-5.5). Pour plus de détails sur la façon dont la model valeur est mise en correspondance avec une cible, consultez la section Model-based routage.

Le format de l'URL est le suivant :

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

Remplacez {path} par le chemin de l'opération d'inférence (par exemplev1/chat/completions,v1/responses, ouv1/messages).

Utilisation du SDK OpenAI

Définissez le /inference/v1 chemin de la passerelle comme suit 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!"}] )

Utilisation du SDK Anthropic

Définissez le /inference chemin de la passerelle comme suit 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!"}] )

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

Modèle de routage qualifié

Lorsque plusieurs cibles desservent le même modèle, préfixez l'ID du modèle avec le nom de la cible pour l'acheminer vers un fournisseur spécifique :

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

Model-based routage

La passerelle achemine les demandes d'inférence en fonction du model champ du corps de la demande :

  1. Routage qualifié : si l'ID du modèle contient un / et que le préfixe correspond au nom d'une cible, la demande est acheminée vers cette cible (par exemple, openai/gpt-5.5 les routes vers la openai cible).

  2. Routage non qualifié : si l'ID du modèle ne contient pas un/, la passerelle le compare à toutes les cibles configurées. Une correspondance exacte a la priorité sur les modèles globaux. Si exactement une cible correspond, la demande y est acheminée.

  3. Gestion des collisions — Lorsque plusieurs cibles correspondent au même modèle avec la même spécificité, la passerelle utilise par défaut la cible Amazon Bedrock si l'une d'entre elles figure parmi les cibles correspondantes. Dans le cas contraire, il répartit les demandes entre les cibles correspondantes dans un ordre circulaire. Pour épingler les demandes à une cible spécifique, qualifiez le modèle avec le nom de la cible comme préfixe (par exemple,bedrock/claude-opus-4-7).

Streaming

Le streaming suit la convention OpenAI SSE. "stream": trueDéfini dans le corps de la demande, et la passerelle passe par le flux SSE depuis le fournisseur sans transformation :

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

Autorisation de sortie

Les cibles du fournisseur d'inférence prennent en charge les types d'autorisation sortante suivants :

  • IAM (SigV4) — À utiliser GATEWAY_IAM_ROLE pour les fournisseurs qui acceptent l'authentification IAM (comme Amazon Bedrock).

  • Clé d'API — À utiliser API_KEY pour les fournisseurs qui ont besoin d'une clé d'API (tels que OpenAI et Anthropic). La passerelle injecte la clé d'API stockée dans les demandes sortantes.