

# Ziele von Inferenzanbietern
<a name="gateway-target-inference-provider"></a>

Ziele von Inferenzanbietern geben Ihnen die explizite Kontrolle über den Endpunkt, die Modellzuordnungen und die Operationen für einen Modellanbieter. Verwenden Sie eine Anbieterkonfiguration, wenn Sie anpassen müssen, welche Modelle verfügbar sind, Token-Limits pro Modell festlegen, das Umschreiben von Pfaden konfigurieren oder eine Verbindung zu einem Anbieter herstellen müssen, der keinen integrierten Connector hat.

**Topics**
+ [Zielkonfiguration](#gateway-target-inference-provider-config)
+ [Ein Inferenzziel für Anbieter erstellen](#gateway-target-inference-provider-create)
+ [Aufrufen eines Provider-Inferenzziels](#gateway-target-inference-provider-invoke)
+ [Model-based Routing](#gateway-target-inference-provider-routing)
+ [Streaming](#gateway-target-inference-provider-streaming)
+ [Ausgehende Autorisierung](#gateway-target-inference-provider-auth)

## Zielkonfiguration
<a name="gateway-target-inference-provider-config"></a>

Die Zielkonfiguration für ein Ziel eines Inferenzanbieters verwendet die folgende Struktur:

```
{
    "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** (erforderlich) — Die HTTPS-URL des Modellanbieters.
+  **ModelMapping** (optional) — Konfiguration der Modell-ID-Übersetzung.
  +  **providerPrefix** (optional) — Konfiguriert, wie Clients das Anbieterpräfix in Modell-IDs weglassen können. Wenn dieser Wert weggelassen wird, wird keine Präfixübersetzung angewendet und die Clients müssen die vollständigen Modell-IDs des Anbieters verwenden.
    +  **strip** (optional) — Wann `true` können Clients Modell-IDs ohne das Anbieterpräfix verwenden (z. B. `claude-opus-4-7` anstelle von`anthropic.claude-opus-4-7`). Standardeinstellung: `false`.
    +  **separator** (optional) — Das Trennzeichen zwischen dem Anbieterpräfix und dem Modellnamen (z. B.`.`).
+  **operations** (optional) — Eine Liste von Betriebskonfigurationen, die Anforderungspfade unterstützten Modellen zuordnen:
  +  **path** (erforderlich) — Der Anforderungspfad für diesen Vorgang (z. B.`/v1/chat/completions`).
  +  **providerPath** (optional) — Der Pfad, an den auf dem Anbieter weitergeleitet werden soll, falls er sich vom Anforderungspfad unterscheidet.
  +  **models** (optional) — Die für diesen Vorgang unterstützten Modelle. Jeder Eintrag enthält ein **Modellfeld** (erforderlich), das eine Modell-ID oder ein Glob-Muster (z. B.`anthropic.claude-opus-*`) enthält.

## Ein Inferenzziel für Anbieter erstellen
<a name="gateway-target-inference-provider-create"></a>

Das folgende Beispiel erstellt ein OpenAI-Inferenzziel mithilfe einer Anbieterkonfiguration:

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

Im folgenden Beispiel wird ein Bedrock-Inferenzziel mit expliziter Anbieterkonfiguration und Modellzuordnung erstellt. Die `modelMapping` Konfiguration mit `providerPrefix` ermöglicht es Clients, kurze Modellnamen (like`claude-opus-4-7`) zu verwenden, während das Gateway sie in Namen mit Anbieterpräfix (like) übersetzt: `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"}
    ]
}'
```

## Aufrufen eines Provider-Inferenzziels
<a name="gateway-target-inference-provider-invoke"></a>

Um ein Inferenzziel aufzurufen, senden Sie Anfragen an den Pfad des Gateways. `/inference` Das Gateway leitet jede Anfrage basierend auf dem `model` Feld im Anfragetext an das richtige Ziel weiter. Der `model` Wert kann entweder eine einfache Modell-ID (z. B.`gpt-5.5`) oder eine zielqualifizierte Modell-ID in der Form `{targetName}/{modelId}` (z. B.`openai/gpt-5.5`) sein. [Einzelheiten dazu, wie der `model` Wert einem Ziel zugeordnet wird, finden Sie unter Model-based Routing.](#gateway-target-inference-provider-routing)

Das URL-Format ist:

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

`{path}`Ersetzen Sie es durch den Pfad der Inferenzoperation (z. B.`v1/chat/completions`,`v1/responses`, oder`v1/messages`).

### Verwenden des OpenAI SDK
<a name="_using_the_openai_sdk"></a>

Stellen Sie den `/inference/v1` Pfad des Gateways wie folgt ein: `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!"}]
)
```

### Verwenden des Anthropic SDK
<a name="_using_the_anthropic_sdk"></a>

Stellen Sie den `/inference` Pfad des Gateways wie folgt ein: `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!"}]
)
```

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

### Qualifiziertes Modell-Routing
<a name="_qualified_model_routing"></a>

Wenn mehrere Ziele dasselbe Modell bedienen, stellen Sie der Modell-ID den Zielnamen voran, um die Route an einen bestimmten Anbieter weiterzuleiten:

```
# 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>

Das Gateway leitet Inferenzanfragen auf der Grundlage des `model` Felds im Hauptteil der Anfrage weiter:

1.  **Qualifiziertes Routing** — Wenn die Modell-ID ein enthält `/` und das Präfix mit einem Zielnamen übereinstimmt, wird die Anfrage an dieses Ziel weitergeleitet (z. B. `openai/gpt-5.5` Routen zum `openai` Ziel).

1.  **Unqualifiziertes Routing** — Wenn die Modell-ID kein A enthält`/`, gleicht das Gateway es mit allen konfigurierten Zielen ab. Eine exakte Übereinstimmung hat Vorrang vor Glob-Mustern. Wenn genau ein Ziel übereinstimmt, wird die Anfrage an dieses weitergeleitet.

1.  **Kollisionsbehandlung** — Wenn mehrere Ziele demselben Modell mit derselben Spezifität entsprechen, verwendet das Gateway standardmäßig das Amazon Bedrock-Ziel, wenn eines der Treffer enthalten ist. Andernfalls werden Anfragen in Round-Robin-Reihenfolge auf die passenden Ziele verteilt. Um Anfragen an ein bestimmtes Ziel zu binden, qualifizieren Sie das Modell mit dem Zielnamen als Präfix (z. B.`bedrock/claude-opus-4-7`).

## Streaming
<a name="gateway-target-inference-provider-streaming"></a>

Streaming folgt der OpenAI SSE-Konvention. Wird `"stream": true` im Anforderungstext festgelegt, und das Gateway durchläuft den SSE-Stream vom Anbieter ohne 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="")
```

## Ausgehende Autorisierung
<a name="gateway-target-inference-provider-auth"></a>

Die Ziele von Inference Providern unterstützen die folgenden Autorisierungstypen für ausgehende Anfragen:
+  **IAM (SigV4)** — Wird `GATEWAY_IAM_ROLE` für Anbieter verwendet, die IAM-Authentifizierung akzeptieren (z. B. Amazon Bedrock).
+  **API-Schlüssel** — Wird `API_KEY` für Anbieter verwendet, die einen API-Schlüssel benötigen (wie OpenAI und Anthropic). Das Gateway fügt den gespeicherten API-Schlüssel in ausgehende Anfragen ein.