View a markdown version of this page

Target penyedia inferensi - Batuan Dasar Amazon AgentCore

Target penyedia inferensi

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.

Konfigurasi target

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) - Kapantrue, klien dapat menggunakan ID model tanpa awalan penyedia (misalnya, claude-opus-4-7 bukananthropic.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

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. modelMappingKonfigurasi dengan providerPrefix memungkinkan klien untuk menggunakan nama model pendek (seperticlaude-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

Untuk memanggil target inferensi, kirim permintaan ke jalur gateway. /inference Gateway merutekan setiap permintaan ke target yang benar berdasarkan model bidang di badan permintaan. modelNilai 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.

Format URL-nya adalah:

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

Ganti {path} dengan jalur operasi inferensi (misalnya,, v1/chat/completionsv1/responses, atauv1/messages).

Menggunakan OpenAI SDK

Atur /inference/v1 jalur gateway sebagaibase_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

Atur /inference jalur gateway sebagaibase_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

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

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

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

  2. 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.

  3. 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

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

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.