Objetivos del proveedor de inferencias
Los objetivos de los proveedores de inferencias le proporcionan un control explícito sobre el punto final, las asignaciones de modelos y las operaciones de un proveedor de modelos. Utilice una configuración de proveedor cuando necesite personalizar los modelos que están disponibles, establecer límites de token por modelo, configurar la reescritura de rutas o conectarse a un proveedor que no tenga un conector integrado.
Temas
Configuración de destino
La configuración de destino de un objetivo de proveedor de inferencias utiliza la siguiente estructura:
{ "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"} ] } ] } } }
-
punto final (obligatorio): la URL HTTPS del proveedor del modelo.
-
ModelMapping (opcional): configuración de traducción del ID del modelo.
-
ProviderPrefix (opcional): configura la forma en que los clientes pueden omitir el prefijo del proveedor en los ID de los modelos. Si se omite, no se aplica ninguna traducción de prefijos y los clientes deben usar los ID de modelo completos del proveedor.
-
strip (opcional): cuando
truelos clientes pueden usar los ID de modelo sin el prefijo del proveedor (por ejemplo,claude-opus-4-7en lugar de).anthropic.claude-opus-4-7El valor predeterminado esfalse. -
separador (opcional): el carácter separador entre el prefijo del proveedor y el nombre del modelo (por ejemplo,
.).
-
-
-
operaciones (opcional): una lista de configuraciones de operaciones que asignan las rutas de solicitud a los modelos compatibles:
-
ruta (obligatoria): la ruta de solicitud para esta operación (por ejemplo,
/v1/chat/completions). -
ProviderPath (opcional): la ruta a la que se debe reenviar en el proveedor si es diferente de la ruta de solicitud.
-
modelos (opcional): los modelos compatibles para esta operación. Cada entrada incluye un campo de modelo (obligatorio) que contiene un identificador de modelo o un patrón global (por ejemplo,
anthropic.claude-opus-*).
-
Crear un objetivo de inferencia de proveedores
El siguiente ejemplo crea un objetivo de inferencia de OpenAI mediante una configuración de proveedor:
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 " } } } ] }'
El siguiente ejemplo crea un objetivo de inferencia de Bedrock con una configuración de proveedor y un mapeo de modelos explícitos. La modelMapping configuración providerPrefix permite a los clientes usar nombres de modelo cortos (por ejemploclaude-opus-4-7) mientras que la puerta de enlace los traduce a nombres con prefijo del proveedor (por ejemplo): 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"} ] }'
Invocar un objetivo de inferencia del proveedor
Para invocar un objetivo de inferencia, envíe las solicitudes a la ruta de la puerta de enlace. /inference La pasarela enruta cada solicitud al destino correcto en función del model campo del cuerpo de la solicitud. El model valor puede ser un identificador de modelo simple (por ejemplo,gpt-5.5) o un identificador de modelo apto para el objetivo en el formulario {targetName}/{modelId} (por ejemplo,openai/gpt-5.5). Para obtener detalles sobre cómo se hace coincidir el model valor con un objetivo, consulte Model-based enrutamiento.
El formato de la dirección URL es:
https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/inference/{path}
{path}Sustitúyalo por la ruta de la operación de inferencia (por ejemplov1/chat/completions,,v1/responses, ov1/messages).
Uso del SDK de OpenAI
Establezca la /inference/v1 ruta de la puerta de enlace como: 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!"}] )
Uso del SDK de Anthropic
Establezca la /inference ruta de la puerta de enlace como: 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!"}] )
Usando 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!"}]}'
Enrutamiento de modelos calificados
Cuando varios destinos sirvan al mismo modelo, añada el nombre del destino al ID del modelo como prefijo para dirigirse a un proveedor específico:
# Route explicitly to the "bedrock" target response = client.chat.completions.create( model="bedrock/claude-opus-4-7", messages=[{"role": "user", "content": "Hello!"}] )
Model-based enrutamiento
La pasarela enruta las solicitudes de inferencia en función del model campo del cuerpo de la solicitud:
-
Enrutamiento cualificado: si el ID del modelo contiene una
/y el prefijo coincide con el nombre de un destino, la solicitud se enruta a ese destino (por ejemplo, seopenai/gpt-5.5dirige alopenaiobjetivo). -
Enrutamiento no cualificado: si el ID del modelo no contiene un
/, la puerta de enlace lo compara con todos los destinos configurados. Una coincidencia exacta tiene prioridad sobre los patrones globales. Si un objetivo coincide exactamente, la solicitud se dirige a él. -
Gestión de colisiones: cuando varios objetivos coinciden con el mismo modelo con la misma especificidad, la puerta de enlace elige de forma predeterminada el objetivo de Amazon Bedrock si hay uno de los que coinciden. De lo contrario, distribuye las solicitudes entre los objetivos coincidentes en orden de rotación. Para fijar las solicitudes a un objetivo específico, califique el modelo con el nombre del objetivo como prefijo (por ejemplo,).
bedrock/claude-opus-4-7
Transmisión
La transmisión sigue la convención OpenAI SSE. Si se configura "stream": true en el cuerpo de la solicitud, la pasarela pasa por el flujo de SSE del proveedor sin transformarse:
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="")
Autorización saliente
Los destinos de los proveedores de inferencias admiten los siguientes tipos de autorización de salida:
-
IAM (SiGv4): se usa
GATEWAY_IAM_ROLEpara los proveedores que aceptan la autenticación de IAM (como Amazon Bedrock). -
Clave de API: se usa
API_KEYpara los proveedores que requieren una clave de API (como OpenAI y Anthropic). La puerta de enlace inyecta la clave de API almacenada en las solicitudes salientes.