

# Target penyedia inferensi
<a name="gateway-target-inference-provider"></a>

Target penyedia inferensi memberi Anda kontrol eksplisit atas titik akhir, pemetaan model, dan operasi untuk penyedia model. Gunakan konfigurasi penyedia saat Anda perlu menyesuaikan model mana yang tersedia, menetapkan batas token per model, mengonfigurasi penulisan ulang jalur, atau menyambung ke penyedia yang tidak memiliki konektor bawaan.

**Topics**
+ [Konfigurasi target](#gateway-target-inference-provider-config)
+ [Membuat target inferensi penyedia](#gateway-target-inference-provider-create)
+ [Memanggil target inferensi penyedia](#gateway-target-inference-provider-invoke)
+ [Model-based perutean](#gateway-target-inference-provider-routing)
+ [Streaming](#gateway-target-inference-provider-streaming)
+ [Otorisasi keluar](#gateway-target-inference-provider-auth)

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

Konfigurasi target untuk target penyedia inferensi menggunakan struktur berikut:

```
{
    "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** (wajib) — URL HTTPS dari penyedia model.
+  **ModelMapping** (opsional) - Konfigurasi terjemahan ID Model.
  +  **ProviderPrefix** (opsional) - Mengkonfigurasi bagaimana klien dapat menghilangkan awalan penyedia dari ID model. Jika dihilangkan, tidak ada terjemahan awalan yang diterapkan dan klien harus menggunakan ID model lengkap penyedia.
    +  **strip** (opsional) - Kapan`true`, klien dapat menggunakan ID model tanpa awalan penyedia (misalnya, `claude-opus-4-7` bukan`anthropic.claude-opus-4-7`). Default ke `false`.
    +  **separator** (opsional) - Karakter pemisah antara awalan penyedia dan nama model (misalnya,). `.`
+  **operasi** (opsional) - Daftar konfigurasi operasi yang memetakan jalur permintaan ke model yang didukung:
  +  **path** (required) — Jalur permintaan untuk operasi ini (misalnya,`/v1/chat/completions`).
  +  **providerPath** (opsional) - Jalur untuk meneruskan ke penyedia jika berbeda dari jalur permintaan.
  +  **model** (opsional) - Model yang didukung untuk operasi ini. Setiap entri menyertakan bidang **model** (wajib) yang berisi ID model atau pola glob (misalnya,`anthropic.claude-opus-*`).

## Membuat target inferensi penyedia
<a name="gateway-target-inference-provider-create"></a>

Contoh berikut membuat target inferensi OpenAI menggunakan konfigurasi penyedia:

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

Contoh berikut membuat target inferensi Bedrock dengan konfigurasi penyedia eksplisit dan pemetaan model. `modelMapping`Konfigurasi dengan `providerPrefix` memungkinkan klien untuk menggunakan nama model pendek (seperti`claude-opus-4-7`) sementara gateway menerjemahkannya ke nama awalan penyedia (seperti): `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"}
    ]
}'
```

## Memanggil target inferensi penyedia
<a name="gateway-target-inference-provider-invoke"></a>

Untuk memanggil target inferensi, kirim permintaan ke jalur gateway. `/inference` Gateway merutekan setiap permintaan ke target yang benar berdasarkan `model` bidang di badan permintaan. `model`Nilai dapat berupa ID model biasa (misalnya,`gpt-5.5`) atau ID model yang memenuhi syarat target dalam formulir `{targetName}/{modelId}` (misalnya,`openai/gpt-5.5`). Untuk detail tentang bagaimana `model` nilai dicocokkan dengan target, lihat [Model-based perutean](#gateway-target-inference-provider-routing).

Format URL-nya adalah:

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

Ganti `{path}` dengan jalur operasi inferensi (misalnya,, `v1/chat/completions``v1/responses`, atau`v1/messages`).

### Menggunakan OpenAI SDK
<a name="_using_the_openai_sdk"></a>

Atur `/inference/v1` jalur gateway sebagai`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!"}]
)
```

### Menggunakan Anthropic SDK
<a name="_using_the_anthropic_sdk"></a>

Atur `/inference` jalur gateway sebagai`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!"}]
)
```

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

### Perutean model yang memenuhi syarat
<a name="_qualified_model_routing"></a>

Saat beberapa target melayani model yang sama, awali ID model dengan nama target untuk merutekan ke penyedia tertentu:

```
# Route explicitly to the "bedrock" target
response = client.chat.completions.create(
    model="bedrock/claude-opus-4-7",
    messages=[{"role": "user", "content": "Hello!"}]
)
```

## Model-based perutean
<a name="gateway-target-inference-provider-routing"></a>

Gateway merutekan permintaan inferensi berdasarkan `model` bidang di badan permintaan:

1.  **Perutean yang memenuhi syarat** - Jika ID model berisi a `/` dan awalan cocok dengan nama target, permintaan dirutekan ke target tersebut (misalnya, `openai/gpt-5.5` rute ke target). `openai`

1.  **Perutean yang tidak memenuhi syarat** - Jika ID model tidak berisi a`/`, gateway mencocokkannya dengan semua target yang dikonfigurasi. Pencocokan yang tepat diprioritaskan di atas pola glob. Jika tepat satu target cocok, permintaan diarahkan ke sana.

1.  **Penanganan tabrakan** — Ketika beberapa target cocok dengan model yang sama pada spesifisitas yang sama, gateway default ke target Amazon Bedrock jika salah satu di antara yang cocok. Jika tidak, ia mendistribusikan permintaan di seluruh target yang cocok dalam urutan round-robin. Untuk menyematkan permintaan ke target tertentu, kualifikasi model dengan nama target sebagai awalan (misalnya,`bedrock/claude-opus-4-7`).

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

Streaming mengikuti konvensi OpenAI SSE. Setel `"stream": true` di badan permintaan, dan gateway melewati aliran SSE dari penyedia tanpa transformasi:

```
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="")
```

## Otorisasi keluar
<a name="gateway-target-inference-provider-auth"></a>

Target penyedia inferensi mendukung jenis otorisasi keluar berikut:
+  **IAM (SiGv4)** — Gunakan `GATEWAY_IAM_ROLE` untuk penyedia yang menerima otentikasi IAM (seperti Amazon Bedrock).
+  **Kunci API** — Gunakan `API_KEY` untuk penyedia yang memerlukan kunci API (seperti OpenAI dan Anthropic). Gateway menyuntikkan kunci API yang disimpan ke dalam permintaan keluar.