

# Obiettivi del provider di inferenza
<a name="gateway-target-inference-provider"></a>

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.

**Topics**
+ [Configurazione di Target](#gateway-target-inference-provider-config)
+ [Creazione di un obiettivo di inferenza del provider](#gateway-target-inference-provider-create)
+ [Invocare un obiettivo di inferenza del provider](#gateway-target-inference-provider-invoke)
+ [Model-based routing](#gateway-target-inference-provider-routing)
+ [Streaming](#gateway-target-inference-provider-streaming)
+ [Autorizzazione in uscita](#gateway-target-inference-provider-auth)

## Configurazione di Target
<a name="gateway-target-inference-provider-config"></a>

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-7` anziché). `anthropic.claude-opus-4-7` L’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
<a name="gateway-target-inference-provider-create"></a>

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

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

Il formato dell'URL è:

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

Sostituisci `{path}` con il percorso dell'operazione di inferenza (ad esempio`v1/chat/completions`,`v1/responses`, o`v1/messages`).

### Utilizzo dell'SDK OpenAI
<a name="_using_the_openai_sdk"></a>

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

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

### Modello di routing qualificato
<a name="_qualified_model_routing"></a>

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

Il gateway indirizza le richieste di inferenza in base al `model` campo nel corpo della richiesta:

1.  **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, le `openai/gpt-5.5` rotte verso la destinazione). `openai`

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

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

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

Gli obiettivi dei provider di inferenza supportano i seguenti tipi di autorizzazione in uscita:
+  **IAM (SigV4)**: da utilizzare `GATEWAY_IAM_ROLE` per i provider che accettano l'autenticazione IAM (come Amazon Bedrock).
+  **Chiave API**: da utilizzare `API_KEY` per i provider che richiedono una chiave API (come OpenAI e Anthropic). Il gateway inserisce la chiave API memorizzata nelle richieste in uscita.