翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OpenAI Chat Completions API を使用してモデルを呼び出す
Amazon Bedrock モデルでOpenAI Create chat completion API を使用してモデル推論を実行できます。
以下の方法で Create chat completion API を呼び出すことができます。
詳細情報については、トピックを選択してください。
OpenAI Chat Completions API でサポートされているモデルとリージョン
Create chat completion API は、Amazon Bedrock とこれらのモデルをサポートする AWS リージョンでサポートされているすべての OpenAI モデルで使用できます。サポートされているモデルとリージョンの詳細については、「Amazon Bedrock でサポートされている基盤モデル」を参照してください。
Chat Completions API を使用するための前提条件
Chat Completions API を使用するための前提条件を確認するには、任意の方法のタブを選択し、そのステップに従います。
- OpenAI SDK
-
- HTTP request
-
-
認証 – AWS 認証情報または Amazon Bedrock API キーを使用して認証できます。
AWS 認証情報を設定するか、Amazon Bedrock API キーを生成してリクエストを認証します。
-
エンドポイント – Amazon Bedrock ランタイムエンドポイントとクォータで使用する AWS リージョンに対応するエンドポイントを見つけます。AWS SDK を使用する場合、クライアントの設定時にはエンドポイント全体ではなく、リージョンコードのみを指定する必要がある場合があります。
チャット完了を作成する
Create chat completion API の詳細については、OpenAI ドキュメントの以下のリソースを参照してください。
Amazon Bedrock では現在、他のOpenAI Chat completion API オペレーションがサポートされていません。
OpenAI Create chat completion API の使用方法を確認するには、任意の方法のタブを選択し、そのステップに従ってください。
- OpenAI SDK (Python)
-
OpenAI SDK でチャット完了を作成するには、次の手順を実行します。
-
OpenAI SDK をインポートし、次のフィールドを使用してクライアントを設定します。
-
base_url – 次の形式のように、Amazon Bedrock ランタイムエンドポイントのプレフィックスを /openai/v1 に付けます。
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key – Amazon Bedrock API キーを指定します。
-
default_headers – ヘッダーを含める必要がある場合は、キーと値のペアとしてこのオブジェクトに含めることができます。または、特定の API コールを行うときに extra_headers でヘッダーを指定することもできます。
-
クライアントで chat.completions.create() メソッドを使用し、リクエスト本文で少なくとも model と messages を指定します。
次の例では、us-west-2 で Create chat completion API を呼び出します。$AWS_BEARER_TOKEN_BEDROCK を実際の API キーに置き換えます。
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
-
直接 HTTP リクエストを使用してチャット完了を作成するには、次の手順を実行します。
-
次の形式で、Amazon Bedrock ランタイムエンドポイントのプレフィックスを /openai/v1/chat/completions に付け加えて URL を指定します。
https://${bedrock-runtime-endpoint}/openai/v1/chat/completions
-
Authorization ヘッダーに AWS 認証情報または Amazon Bedrock API キーを指定します。
-
リクエスト本文で、リクエスト本文に少なくとも model と messages を指定します。
次の例では、us-west-2 で curl を使用して Create chat completion API を呼び出します。$AWS_BEARER_TOKEN_BEDROCK を実際の API キーに置き換えます。
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!"
}
]
}'
チャット完了にガードレールを含める
モデルの入力とレスポンスに保護対策を追加するには、モデル呼び出しを実行するとき、次の追加のパラメータをリクエスト本文にフィールドとして含めることによりガードレールを適用します。
Amazon Bedrock ガードレールのこれらのパラメータの詳細については、「ガードレールをテストする」を参照してください。
OpenAI chat completion を使用したガードレールの使用例を確認するには、任意の方法のタブを選択し、そのステップに従ってください。
- 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);