

# Objetivos del proveedor de inferencias
<a name="gateway-target-inference-provider"></a>

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.

**Topics**
+ [Configuración de destino](#gateway-target-inference-provider-config)
+ [Crear un objetivo de inferencia de proveedores](#gateway-target-inference-provider-create)
+ [Invocar un objetivo de inferencia del proveedor](#gateway-target-inference-provider-invoke)
+ [Model-based enrutamiento](#gateway-target-inference-provider-routing)
+ [Transmisión](#gateway-target-inference-provider-streaming)
+ [Autorización saliente](#gateway-target-inference-provider-auth)

## Configuración de destino
<a name="gateway-target-inference-provider-config"></a>

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 `true` los clientes pueden usar los ID de modelo sin el prefijo del proveedor (por ejemplo, `claude-opus-4-7` en lugar de). `anthropic.claude-opus-4-7` El valor predeterminado es `false`.
    +  **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
<a name="gateway-target-inference-provider-create"></a>

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 ejemplo`claude-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
<a name="gateway-target-inference-provider-invoke"></a>

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.](#gateway-target-inference-provider-routing)

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 ejemplo`v1/chat/completions`,,`v1/responses`, o`v1/messages`).

### Uso del SDK de OpenAI
<a name="_using_the_openai_sdk"></a>

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
<a name="_using_the_anthropic_sdk"></a>

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
<a name="_using_awscurl"></a>

```
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
<a name="_qualified_model_routing"></a>

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
<a name="gateway-target-inference-provider-routing"></a>

La pasarela enruta las solicitudes de inferencia en función del `model` campo del cuerpo de la solicitud:

1.  **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, se `openai/gpt-5.5` dirige al `openai` objetivo).

1.  **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.

1.  **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
<a name="gateway-target-inference-provider-streaming"></a>

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
<a name="gateway-target-inference-provider-auth"></a>

Los destinos de los proveedores de inferencias admiten los siguientes tipos de autorización de salida:
+  **IAM (SiGv4)**: se usa `GATEWAY_IAM_ROLE` para los proveedores que aceptan la autenticación de IAM (como Amazon Bedrock).
+  **Clave de API**: se usa `API_KEY` para 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.