OpenAImodel - Amazon Bedrock

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

OpenAImodel

OpenAImenawarkan model berat terbuka berikut:

  • gpt-oss-20b- Model yang lebih kecil yang dioptimalkan untuk latensi yang lebih rendah dan kasus penggunaan lokal atau khusus.

  • gpt-oss-120b- Model yang lebih besar yang dioptimalkan untuk produksi dan tujuan umum atau kasus penggunaan alasan tinggi.

Tabel berikut merangkum informasi tentang model:

Informasi gpt-oss-20b gpt-oss-120b
Tanggal rilis Agustus 5, 2025 Agustus 5, 2025
ID Model openai.gpt-oss-20b-1:0 openai.gpt-oss-120b-1:0
ID Produk N/A N/A
Modalitas input didukung Teks Teks
Modalitas output didukung Teks Teks
Jendela konteks 128.000 128.000

OpenAIModel mendukung fitur-fitur berikut:

OpenAIbadan permintaan

Untuk informasi tentang parameter di badan permintaan dan deskripsinya, lihat Membuat penyelesaian obrolan di OpenAI dokumentasi.

Gunakan kolom isi permintaan dengan cara berikut:

  • Dalam permintaan InvokeModelatau Penyelesaian OpenAI Obrolan, sertakan bidang di badan permintaan.

  • Dalam permintaan Converse, lakukan hal berikut:

    • Petakan messages sebagai berikut:

      • Untuk setiap pesan yang perannyadeveloper, tambahkan content a SystemContentBlockdalam system array.

      • Untuk setiap pesan yang perannya user atauassistant, tambahkan content ke a ContentBlockdi content bidang dan tentukan role di role bidang Pesan dalam messages array.

    • Petakan nilai untuk bidang berikut ke bidang yang sesuai di inferenceConfig objek:

      OpenAIlapangan Bidang Converse
      max_completion_tokens MaxTokens
      berhenti StopSequences
      suhu suhu
      top_p TopP
    • Sertakan bidang lain dalam additionalModelRequestFields objek.

Pertimbangan saat membangun badan permintaan
  • OpenAIModel hanya mendukung input teks dan output teks.

  • Nilai di model bidang harus cocok dengan yang ada di header. Anda dapat menghilangkan bidang ini untuk membiarkannya diisi secara otomatis dengan nilai yang sama dengan header.

  • Nilai di stream bidang harus sesuai dengan operasi API yang Anda gunakan. Anda dapat menghilangkan bidang ini untuk membiarkannya diisi secara otomatis dengan nilai yang benar.

    • Jika Anda menggunakan InvokeModel, stream nilainya harusfalse.

OpenAItubuh respon

Badan respons untuk OpenAI model sesuai dengan objek penyelesaian obrolan yang dikembalikan olehOpenAI. Untuk informasi selengkapnya tentang bidang respons, lihat Objek penyelesaian obrolan dalam OpenAI dokumentasi.

catatan

Jika Anda menggunakanInvokeModel, penalaran model, dikelilingi oleh <reasoning> tag, mendahului konten teks respons.

Contoh penggunaan OpenAI model

Bagian ini memberikan beberapa contoh cara menggunakan OpenAI model.

Sebelum mencoba contoh-contoh ini, periksa apakah Anda telah memenuhi prasyarat:

  • Otentikasi - Anda dapat mengautentikasi dengan AWS kredensi Anda atau dengan kunci Amazon Bedrock API.

    Siapkan AWS kredensi Anda atau buat kunci Amazon Bedrock API untuk mengautentikasi permintaan Anda.

    catatan

    Jika Anda menggunakan API penyelesaian OpenAI Obrolan, Anda hanya dapat melakukan autentikasi dengan kunci Amazon Bedrock API.

  • Endpoint — Temukan titik akhir yang sesuai dengan AWS Wilayah yang akan digunakan di titik akhir dan kuota Amazon Bedrock Runtime. Jika Anda menggunakan AWS SDK, Anda mungkin hanya perlu menentukan kode wilayah dan bukan seluruh titik akhir saat menyiapkan klien. Anda harus menggunakan titik akhir yang terkait dengan Wilayah yang didukung oleh model yang digunakan dalam contoh.

  • Akses model — Minta akses ke OpenAI model. Untuk informasi selengkapnya, lihat Menambah atau menghapus akses ke model foundation Amazon Bedrock.

  • (Jika contoh menggunakan SDK) Instal SDK — Setelah instalasi, atur kredenal default dan Wilayah default. AWS Jika Anda tidak menyiapkan kredensi default atau Wilayah, Anda harus secara eksplisit menentukannya dalam contoh kode yang relevan. Untuk informasi selengkapnya tentang penyedia kredensi standar, lihat AWS SDKs dan Penyedia kredensi standar Alat.

    catatan

    Jika Anda menggunakan OpenAI SDK, Anda hanya dapat mengautentikasi dengan kunci Amazon Bedrock API dan Anda harus secara eksplisit menyetel titik akhir Amazon Bedrock.

Perluas bagian untuk contoh yang ingin Anda lihat:

Untuk melihat contoh penggunaan OpenAI Create chat completion API, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

OpenAI SDK (Python)

Skrip Python berikut memanggil Create chat completion API dengan Python OpenAI SDK:

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" ) 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 using curl

Anda dapat menjalankan perintah berikut di terminal untuk memanggil Create chat completion API menggunakan curl:

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

Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

Python
import boto3 import json # Initialize the Bedrock Runtime client client = boto3.client('bedrock-runtime') # Model ID model_id = 'openai.gpt-oss-20b-1:0' # Create the request body native_request = { "model": model_id, # You can omit this field "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?" } ], "max_completion_tokens": 150, "temperature": 0.7, "top_p": 0.9, "stream": False # You can omit this field } # Make the InvokeModel request response = client.invoke_model( modelId=model_id, body=json.dumps(native_request) ) # Parse and print the message for each choice in the chat completion response_body = json.loads(response['body'].read().decode('utf-8')) for choice in response_body['choices']: print(choice['message']['content'])

Saat Anda menggunakan API Converse terpadu, Anda perlu memetakan bidang OpenAI Buat penyelesaian obrolan ke bidang yang sesuai di badan permintaan Converse.

Misalnya, bandingkan badan permintaan penyelesaian obrolan berikut dengan badan permintaan Converse yang sesuai:

Create chat completion request body
{ "model": "openai.gpt-oss-20b-1:0", "messages": [ { "role": "developer", "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?" } ], "max_completion_tokens": 150, "temperature": 0.7 }
Converse request body
{ "messages": [ { "role": "user", "content": [ { "text": "Hello! How can I help you today?" } ] }, { "role": "user", "content": [ { "text": "What is the weather like today?" } ] } ], "system": [ { "text": "You are a helpful assistant." } ], "inferenceConfig": { "maxTokens": 150, "temperature": 0.7 } }

Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

Python
# Use the Conversation API to send a text message to Anthropic Claude. import boto3 from botocore.exceptions import ClientError # Initialize the Bedrock Runtime client client = boto3.client("bedrock-runtime") # Set the model ID model_id = "openai.gpt-oss-20b-1:0" # Set up messages and system message messages = [ { "role": "assistant", "content": [ { "text": "Hello! How can I help you today?" } ] }, { "role": "user", "content": [ { "text": "What is the weather like today?" } ] } ] system = [ { "text": "You are a helpful assistant." } ] try: # Send the message to the model, using a basic inference configuration. response = client.converse( modelId=model_id, messages=messages, system=system, inferenceConfig={ "maxTokens": 150, "temperature": 0.7, "topP": 0.9 }, ) # Extract and print the response text. for content_block in response["output"]["message"]["content"]: print(content_block) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1)

Terapkan pagar pembatas saat menjalankan pemanggilan model dengan menentukan ID pagar pembatas, versi, dan apakah akan mengaktifkan jejak pagar pembatas di header permintaan pemanggilan model atau tidak.

Pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

Python
import boto3 from botocore.exceptions import ClientError import json # Initiate the Amazon Bedrock Runtime client bedrock_runtime = boto3.client("bedrock-runtime") # Model ID model_id = "openai.gpt-oss-20b-1:0" # Replace with actual values from your guardrail guardrail_id = "GR12345" guardrail_version = "DRAFT" # Create the request body native_request = { "model": model_id, # You can omit this field "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?" } ], "max_completion_tokens": 150, "temperature": 0.7, "top_p": 0.9, "stream": False # You can omit this field } try: response = bedrock_runtime.invoke_model( modelId=model_id, body=json.dumps(native_request), guardrailIdentifier=guardrail_id, guardrailVersion=guardrail_version, trace='ENABLED', ) response_body = json.loads(response.get('body').read()) print("Received response from InvokeModel API (Request Id: {})".format(response['ResponseMetadata']['RequestId'])) print(json.dumps(response_body, indent=2)) except ClientError as err: print("RequestId = " + err.response['ResponseMetadata']['RequestId']) raise err

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);

Inferensi Batch memungkinkan Anda menjalankan inferensi model secara asinkron dengan beberapa prompt. Untuk menjalankan inferensi batch dengan OpenAI model, Anda melakukan hal berikut:

  1. Buat file JSONL dan isi dengan setidaknya jumlah minimum objek JSON, masing-masing dipisahkan oleh baris baru. Setiap modelInput objek harus sesuai dengan format badan permintaan penyelesaian obrolan OpenAI buat. Berikut ini menunjukkan contoh dari dua baris pertama dari file JSONL yang berisi badan permintaan untuk. OpenAI

    { "recordId": "RECORD1", "modelInput": { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Can you generate a question with a factual answer?" } ], "max_completion_tokens": 1000 } } { "recordId": "RECORD2", "modelInput": { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "What is the weather like today?" } ], "max_completion_tokens": 1000 } } ...
    catatan

    modelBidang ini opsional karena layanan inferensi batch akan menyisipkannya untuk Anda berdasarkan header jika Anda menghilangkannya.

    Periksa apakah file JSONL Anda sesuai dengan kuota inferensi batch seperti yang diuraikan dalam. Format dan unggah data inferensi batch Anda

  2. Unggah file ke bucket Amazon S3.

  3. Kirim CreateModelInvocationJobpermintaan dengan titik akhir bidang kontrol Amazon Bedrock dengan bucket S3 dari langkah sebelumnya yang ditentukan di inputDataConfig bidang dan OpenAI model yang ditentukan di bidang. modelId

Untuk contoh end-to-end kode, lihatContoh kode untuk inferensi batch. Ganti dengan konfigurasi yang tepat untuk OpenAI model.