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:
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
-
-
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.
-
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.
-
Akses model — Minta akses ke model Amazon Bedrock yang mendukung fitur ini. Untuk informasi selengkapnya, lihat Menambah atau menghapus akses ke model foundation Amazon Bedrock.
Buat penyelesaian obrolan
Lihat sumber daya berikut dalam OpenAI dokumentasi untuk detail tentang Create chat completion API:
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:
-
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.
-
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:
-
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
-
Tentukan AWS kredensional Anda atau kunci Amazon Bedrock API di header. Authorization
-
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);