Memanggil model dengan OpenAI Chat Completions API - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memanggil model dengan OpenAI Chat Completions API

Anda dapat menjalankan inferensi model menggunakan OpenAICreate chat completion API dengan model Amazon Bedrock.

Anda dapat memanggil Create chat completion API dengan cara berikut:

  • Buat permintaan HTTP dengan endpoint Amazon Bedrock Runtime.

  • Gunakan permintaan OpenAI SDK dengan titik akhir Amazon Bedrock Runtime.

Pilih topik untuk mempelajari lebih lanjut:

Model dan Wilayah yang didukung untuk API Penyelesaian OpenAI Obrolan

Anda dapat menggunakan API penyelesaian obrolan Buat dengan semua OpenAI model yang didukung di Amazon Bedrock dan di AWS Wilayah yang mendukung model ini. Untuk informasi selengkapnya tentang model dan wilayah yang didukung, lihatModel pondasi yang didukung di Amazon Bedrock.

Prasyarat untuk menggunakan API Penyelesaian Obrolan

Untuk melihat prasyarat untuk menggunakan API Penyelesaian Obrolan, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK
HTTP request

Buat penyelesaian obrolan

Lihat sumber daya berikut dalam OpenAI dokumentasi untuk detail tentang Create chat completion API:

catatan

Amazon Bedrock saat ini tidak mendukung operasi API penyelesaian OpenAI Obrolan lainnya.

Untuk mempelajari cara menggunakan OpenAI Create chat completion API, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)

Untuk membuat penyelesaian obrolan dengan OpenAI SDK, lakukan hal berikut:

  1. Impor OpenAI SDK dan atur klien dengan bidang berikut:

    • base_url— Awali titik akhir Amazon Bedrock Runtime ke/openai/v1, seperti dalam format berikut:

      https://${bedrock-runtime-endpoint}/openai/v1
    • api_key— Tentukan kunci API Amazon Bedrock.

    • default_headers— Jika Anda perlu menyertakan header apa pun, Anda dapat memasukkannya sebagai pasangan kunci-nilai dalam objek ini. Anda juga dapat menentukan header di extra_headers saat melakukan panggilan API tertentu.

  2. Gunakan chat.completions.create() metode dengan klien dan tentukan secara minimal model dan messages di badan permintaan.

Contoh berikut memanggil Create chat completion API dius-west-2. Ganti $AWS_BEARER_TOKEN_BEDROCK dengan kunci API Anda yang sebenarnya.

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) completion = client.chat.completions.create( model="openai.gpt-oss-20b-1:0", messages=[ { "role": "developer", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] ) print(completion.choices[0].message)
HTTP request

Untuk membuat penyelesaian obrolan dengan permintaan HTTTP langsung, lakukan hal berikut:

  1. Tentukan URL dengan mengawali titik akhir Amazon Bedrock Runtime ke/openai/v1/chat/completions, seperti dalam format berikut:

    https://${bedrock-runtime-endpoint}/openai/v1/chat/completions
  2. Tentukan AWS kredensional Anda atau kunci Amazon Bedrock API di header. Authorization

  3. Di badan permintaan, tentukan setidaknya model dan messages di badan permintaan.

Contoh berikut menggunakan curl untuk memanggil Create chat completion API dius-west-2. Ganti $AWS_BEARER_TOKEN_BEDROCK dengan kunci API Anda yang sebenarnya:

curl -X POST https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \ -d '{ "model": "openai.gpt-oss-20b-1:0", "messages": [ { "role": "developer", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'

Sertakan pagar pembatas dalam penyelesaian obrolan

Untuk menyertakan perlindungan dalam input dan respons model, terapkan pagar pembatas saat menjalankan pemanggilan model dengan menyertakan parameter tambahan berikut sebagai bidang di badan permintaan:

  • extra_headers— Peta ke objek yang berisi bidang berikut, yang menentukan header tambahan dalam permintaan:

    • X-Amzn-Bedrock-GuardrailIdentifier(wajib) — ID pagar pembatas.

    • X-Amzn-Bedrock-GuardrailVersion(wajib) — Versi pagar pembatas.

    • X-Amzn-Bedrock-Trace(opsional) - Apakah akan mengaktifkan jejak pagar pembatas atau tidak.

  • extra_body— Peta ke suatu objek. Dalam objek itu, Anda dapat menyertakan amazon-bedrock-guardrailConfig bidang, yang memetakan ke objek yang berisi bidang berikut:

Untuk informasi selengkapnya tentang parameter ini di Amazon Bedrock Guardrails, lihat. Uji pagar pembatas Anda

Untuk melihat contoh penggunaan pagar pembatas dengan penyelesaian OpenAI obrolan, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)
import openai from openai import OpenAIError # Endpoint for Amazon Bedrock Runtime bedrock_endpoint = "https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1" # Model ID model_id = "openai.gpt-oss-20b-1:0" # Replace with actual values bedrock_api_key = "$AWS_BEARER_TOKEN_BEDROCK" guardrail_id = "GR12345" guardrail_version = "DRAFT" client = openai.OpenAI( api_key=bedrock_api_key, base_url=bedrock_endpoint, ) try: response = client.chat.completions.create( model=model_id, # Specify guardrail information in the header extra_headers={ "X-Amzn-Bedrock-GuardrailIdentifier": guardrail_id, "X-Amzn-Bedrock-GuardrailVersion": guardrail_version, "X-Amzn-Bedrock-Trace": "ENABLED", }, # Additional guardrail information can be specified in the body extra_body={ "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz" # Used for input tagging } }, messages=[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "assistant", "content": "Hello! How can I help you today?" }, { "role": "user", "content": "What is the weather like today?" } ] ) request_id = response._request_id print(f"Request ID: {request_id}") print(response) except OpenAIError as e: print(f"An error occurred: {e}") if hasattr(e, 'response') and e.response is not None: request_id = e.response.headers.get("x-request-id") print(f"Request ID: {request_id}")
OpenAI SDK (Java)
import com.openai.client.OpenAIClient; import com.openai.client.okhttp.OpenAIOkHttpClient; import com.openai.core.http.HttpResponseFor; import com.openai.models.chat.completions.ChatCompletion; import com.openai.models.chat.completions.ChatCompletionCreateParams; // Endpoint for Amazon Bedrock Runtime String bedrockEndpoint = "http://bedrock-runtime.us-west-2.amazonaws.com/openai/v1" // Model ID String modelId = "openai.gpt-oss-20b-1:0" // Replace with actual values String bedrockApiKey = "$AWS_BEARER_TOKEN_BEDROCK" String guardrailId = "GR12345" String guardrailVersion = "DRAFT" OpenAIClient client = OpenAIOkHttpClient.builder() .apiKey(bedrockApiKey) .baseUrl(bedrockEndpoint) .build() ChatCompletionCreateParams request = ChatCompletionCreateParams.builder() .addUserMessage("What is the temperature in Seattle?") .model(modelId) // Specify additional headers for the guardrail .putAdditionalHeader("X-Amzn-Bedrock-GuardrailIdentifier", guardrailId) .putAdditionalHeader("X-Amzn-Bedrock-GuardrailVersion", guardrailVersion) // Specify additional body parameters for the guardrail .putAdditionalBodyProperty( "amazon-bedrock-guardrailConfig", JsonValue.from(Map.of("tagSuffix", JsonValue.of("xyz"))) // Allows input tagging ) .build(); HttpResponseFor<ChatCompletion> rawChatCompletionResponse = client.chat().completions().withRawResponse().create(request); final ChatCompletion chatCompletion = rawChatCompletionResponse.parse(); System.out.println(chatCompletion);