

# 推論プロバイダーのターゲット
<a name="gateway-target-inference-provider"></a>

推論プロバイダーターゲットを使用すると、モデルプロバイダーのエンドポイント、モデルマッピング、およびオペレーションを明示的に制御できます。使用可能なモデルをカスタマイズしたり、モデルごとのトークン制限を設定したり、パスの書き換えを設定したり、コネクタが組み込まれていないプロバイダーに接続したりする必要がある場合は、プロバイダー設定を使用します。

**Topics**
+ [ターゲット設定](#gateway-target-inference-provider-config)
+ [プロバイダー推論ターゲットの作成](#gateway-target-inference-provider-create)
+ [プロバイダー推論ターゲットの呼び出し](#gateway-target-inference-provider-invoke)
+ [モデルベースのルーティング](#gateway-target-inference-provider-routing)
+ [ストリーミング](#gateway-target-inference-provider-streaming)
+ [アウトバウンド認可](#gateway-target-inference-provider-auth)

## ターゲット設定
<a name="gateway-target-inference-provider-config"></a>

推論プロバイダーターゲットのターゲット設定では、次の構造を使用します。

```
{
    "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** (必須) – モデルプロバイダーの HTTPS URL。
+  **modelMapping** (オプション) – モデル ID 変換設定。
  +  **providerPrefix** (オプション) – クライアントがモデル IDs からプロバイダープレフィックスを省略する方法を設定します。省略した場合、プレフィックス変換は適用されず、クライアントはプロバイダーの完全なモデル IDs を使用する必要があります。
    +  **strip** (オプション) – の場合`true`、クライアントはプロバイダープレフィックスなしでモデル IDs を使用できます (たとえば、 `claude-opus-4-7`の代わりに)`anthropic.claude-opus-4-7`。デフォルトは `false` です。
    +  **separator** (オプション) – プロバイダープレフィックスとモデル名の間の区切り文字 (例: `.`)。
+  **operations** (オプション) – リクエストパスをサポートされているモデルにマッピングするオペレーション設定のリスト。
  +  **path** (必須) – このオペレーションのリクエストパス (例: `/v1/chat/completions`)。
  +  **providerPath** (オプション) – リクエストパスと異なる場合にプロバイダーで に転送するパス。
  +  **models** (オプション) – このオペレーションでサポートされているモデル。各エントリには、**モデル** ID または glob パターン ( など) を含むモデルフィールド (必須) が含まれます`anthropic.claude-opus-*`。

## プロバイダー推論ターゲットの作成
<a name="gateway-target-inference-provider-create"></a>

次の例では、プロバイダー設定を使用して OpenAI 推論ターゲットを作成します。

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

次の例では、明示的なプロバイダー設定とモデルマッピングを使用して Bedrock 推論ターゲットを作成します。を使用した`modelMapping`設定`providerPrefix`では、クライアントは短いモデル名 ( など`claude-opus-4-7`) を使用でき、ゲートウェイはそれらをプロバイダープレフィックス名 ( など) に変換します`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"}
    ]
}'
```

## プロバイダー推論ターゲットの呼び出し
<a name="gateway-target-inference-provider-invoke"></a>

推論ターゲットを呼び出すには、ゲートウェイの`/inference`パスにリクエストを送信します。ゲートウェイは、リクエスト本文の `model`フィールドに基づいて、各リクエストを正しいターゲットにルーティングします。`model` 値は、プレーンモデル ID ( など`gpt-5.5`) または 形式のターゲット修飾モデル ID `{targetName}/{modelId}` ( など) のいずれかです`openai/gpt-5.5`。`model` 値がターゲットと一致する方法の詳細については、[「モデルベースのルーティング](#gateway-target-inference-provider-routing)」を参照してください。

URL 形式は次のとおりです。

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

を推論オペレーションパス (、、 など`v1/messages`) `v1/chat/completions``{path}`に置き換え`v1/responses`ます。

### OpenAI SDK の使用
<a name="_using_the_openai_sdk"></a>

ゲートウェイの`/inference/v1`パスを として設定します`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!"}]
)
```

### Anthropic SDK の使用
<a name="_using_the_anthropic_sdk"></a>

ゲートウェイの`/inference`パスを として設定します`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!"}]
)
```

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

### 認定モデルルーティング
<a name="_qualified_model_routing"></a>

複数のターゲットが同じモデルを提供する場合は、モデル ID にターゲット名をプレフィックスして、特定のプロバイダーにルーティングします。

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

## モデルベースのルーティング
<a name="gateway-target-inference-provider-routing"></a>

ゲートウェイは、リクエスト本文の `model`フィールドに基づいて推論リクエストをルーティングします。

1.  **認定ルーティング** – モデル ID に が含まれ`/`、プレフィックスがターゲット名と一致する場合、リクエストはそのターゲットにルーティングされます (`openai`ターゲットへの`openai/gpt-5.5`ルートなど）。

1.  **非修飾ルーティング** – モデル ID に が含まれていない場合`/`、ゲートウェイは設定されたすべてのターゲットと照合します。完全一致は glob パターンよりも優先されます。ターゲットが 1 つだけ一致する場合、リクエストはそのターゲットにルーティングされます。

1.  **衝突処理** – 複数のターゲットが同じモデルを同じ特異度で一致させる場合、ゲートウェイはデフォルトで Amazon Bedrock ターゲットに一致させます。それ以外の場合、リクエストは一致するターゲット全体にラウンドロビンの順序で分散されます。特定のターゲットにリクエストを固定するには、ターゲット名をプレフィックスとしてモデルを認定します (例: `bedrock/claude-opus-4-7`)。

## ストリーミング
<a name="gateway-target-inference-provider-streaming"></a>

ストリーミングは OpenAI SSE 規則に従います。リクエスト本文`"stream": true`に を設定すると、ゲートウェイは変換なしでプロバイダーから SSE ストリームを通過します。

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

## アウトバウンド認可
<a name="gateway-target-inference-provider-auth"></a>

推論プロバイダーターゲットは、次のアウトバウンド認可タイプをサポートしています。
+  **IAM (SigV4)** – IAM 認証を受け入れるプロバイダー (Amazon Bedrock など) `GATEWAY_IAM_ROLE`に使用します。
+  **API キー** – API キーを必要とするプロバイダー (OpenAI や Anthropic など) `API_KEY`に使用します。ゲートウェイは、保存された API キーをアウトバウンドリクエストに挿入します。