Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Cibles du connecteur d'inférence
Les cibles du connecteur d'inférence fournissent une configuration préconfigurée pour les fournisseurs de modèles pris en charge. Lorsque vous utilisez un connecteur, la passerelle gère automatiquement les opérations, la découverte de modèles, la traduction de l'ID de modèle et la réécriture de chemins en fonction de la connaissance intégrée de l'API du fournisseur. Vous n'avez donc pas besoin de les spécifier manuellement.
Les connecteurs sont recommandés lorsque vous souhaitez ajouter rapidement un fournisseur de modèles pris en charge sans configurer manuellement les points de terminaison, les opérations ou les mappages de modèles.
Rubriques
Configuration cible
La configuration cible d'une cible de connecteur d'inférence utilise la structure suivante :
{ "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }
-
connectorId (obligatoire) — Identifiant du connecteur intégré. Les valeurs prises en charge sont
bedrock-mantle,openaietanthropic.
Chaque connecteur fournit des valeurs par défaut intégrées équivalentes à une configuration de fournisseur entièrement spécifiée. Par exemple, le bedrock-mantle connecteur configure automatiquement :
-
Suppression du préfixe de l'ID de modèle : les clients peuvent omettre le préfixe du fournisseur dans les ID de modèle (par exemple, l'utiliser
claude-opus-4-7à la place de).anthropic.claude-opus-4-7 -
Réécriture des chemins : les chemins des demandes d'inférence entrantes sont mappés aux chemins d'API du fournisseur.
-
Opérations prises en charge : ensemble d'opérations d'inférence exposées par le connecteur, telles que la complétion des discussions et les messages.
Création d'une cible d'inférence de connecteur
L'exemple suivant montre comment créer une cible d'inférence à l'aide du connecteur Bedrock Mantle :
aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "bedrock-mantle", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }, "credentialProviderConfigurations": [ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ] }'
L'exemple suivant montre comment créer une cible d'inférence à l'aide du connecteur OpenAI :
aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "openai", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "openai" } } } }, "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 montre comment créer une cible d'inférence à l'aide du connecteur Anthropic :
aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "anthropic", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "anthropic" } } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/apikeycredentialprovider/anthropic-key", "credentialLocation": "HEADER", "credentialParameterName": "x-api-key" } } } ] }'
Invocation d'une cible d'inférence de connecteur
Pour invoquer une cible d'inférence, envoyez des requêtes au chemin de la passerelle. /inference 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 exemplegpt-5.5) ou un identifiant de modèle qualifié pour la cible dans le formulaire {targetName}/{modelId} (par exemple,openai/gpt-5.5). Pour plus de détails sur la manière 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-le {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!"}]}'
Liste des modèles disponibles
Pour découvrir les modèles disponibles pour toutes les cibles d'inférence, appelez le point de terminaison de la liste des modèles :
awscurl --service bedrock-agentcore --region us-west-2 \ "https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1/models"
La réponse est au /v1/models format OpenAI avec les identifiants de modèle préfixés par le nom de la cible :
{ "data": [ {"id": "bedrock-mantle/anthropic.claude-opus-4-7", "object": "model", "owned_by": "system"}, {"id": "openai/gpt-5.5", "object": "model", "owned_by": "openai"}, {"id": "anthropic/claude-sonnet-4-6", "object": "model", "owned_by": "anthropic"} ] }
Le owned_by champ indique le fournisseur du modèle. La valeur de system indique un modèle hébergé par Amazon Bedrock, tandis que la valeur openai et anthropic indique les modèles proposés directement par ces fournisseurs.
Model-based routage
La passerelle achemine les demandes d'inférence en fonction du model champ du corps de la demande :
-
Routage qualifié : si l'ID du modèle contient un
/et que le préfixe correspond à un nom de cible, la demande est acheminée vers cette cible (par exemple,openai/gpt-5.5les itinéraires vers laopenaicible). -
Routage non qualifié : si l'ID du modèle ne contient pas de
/, la passerelle le compare à toutes les cibles configurées. Une correspondance exacte a priorité sur les modèles globulaires. Si exactement une cible correspond, la demande lui est acheminée. -
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 correspond. Sinon, il sélectionne l'une des cibles correspondantes au hasard sur chaque demande, de sorte que les requêtes pour le même modèle peuvent atterrir sur des cibles différentes. Pour affecter les demandes à une cible spécifique, qualifiez le modèle en utilisant le nom de la cible comme préfixe (par exemple,
bedrock/claude-opus-4-7).
Pour personnaliser ou modifier la cible vers laquelle un modèle est acheminé, vous pouvez réécrire le model champ dans un intercepteur de requêtes. Pour plus d'informations, voir Personnaliser le routage des modèles à l'aide d'un intercepteur de requêtes.
Streaming
Le streaming suit la convention OpenAI SSE. "stream": trueDéfini dans le corps de la requête, et la passerelle passe par le flux SSE du 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="")
Limites du flux de réponse
Important
AgentCore Gateway n'impose pas de niveau de service maximum sur la durée du flux de réponse ou la taille de la réponse. Si vous ne configurez pas de politique de limite de jetons sur la cible de votre passerelle, chaque demande peut générer une réponse en streaming illimitée.
Sans politique de limite de jetons configurée, les réponses illimitées peuvent entraîner les problèmes suivants :
-
Épuisement des ressources de la passerelle : la passerelle maintient les ressources de calcul (mémoire, emplacements du pool de connexions HTTP et processeur pour l'évaluation des politiques) ouvertes pendant la durée de chaque réponse de streaming. Les flux simultanés importants peuvent épuiser les ressources des tâches de passerelle.
-
Amplification des coûts liés aux informations d'identification partagées : tous les utilisateurs qui transitent par la même cible partagent le même ensemble d'informations d'identification du fournisseur. Un seul utilisateur qui envoie des
max_tokensdemandes élevées peut consommer le quota de jetons par minute (TPM) du fournisseur pour tous les utilisateurs de cette cible. -
Effets de voisinage bruyants : la limitation Requests-per-minute (RPM) limite le nombre de demandes mais pas le coût par demande. Un seul utilisateur peut générer des demandes au coût maximum dans les limites du nombre de tours par minute, ce qui nuit aux performances des autres utilisateurs.
Pour atténuer ces risques, configurez une politique de limite de jetons sur les cibles de votre passerelle. Pour plus d'informations, consultez la section Politiques de passerelle.
Autorisation sortante
Les cibles du connecteur d'inférence prennent en charge les types d'autorisation sortante suivants :
-
IAM (Sigv4) : à utiliser
GATEWAY_IAM_ROLEpour les fournisseurs qui acceptent l'authentification IAM (comme Amazon Bedrock). -
Clé API : à utiliser
API_KEYpour les fournisseurs qui ont besoin d'une clé API (tels que OpenAI et Anthropic). La passerelle injecte la clé API stockée dans les demandes sortantes.