翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Converse API を使用するには、 Converse
または ConverseStream
オペレーションを呼び出してモデルにメッセージを送信します。Converse
を呼び出すには、bedrock:InvokeModel
オペレーションを呼び出す許可も必要です。ConverseStream
を呼び出すには、bedrock:InvokeModelWithResponseStream
オペレーションを呼び出す許可も必要です。
リクエスト
Amazon Bedrock ランタイムエンドポイントで Converse リクエストを行うときは、次のフィールドを含めることができます。
-
modelId – 推論に使用するリソースを指定できる ヘッダーの必須パラメータ。
-
次のフィールドでは、プロンプトをカスタマイズできます。
-
messages – プロンプトの内容とロールを指定するために使用します。
-
system – モデルの指示またはコンテキストを定義するシステムプロンプトを指定するために使用します。
-
inferenceConfig – すべてのモデルに共通の推論パラメータを指定するために使用します。推論パラメータはレスポンスの生成に影響します。
-
additionalmodelRequestFields – 推論を実行するモデルに固有の推論パラメータを指定するために使用します。
-
promptVariables – (プロンプト管理のプロンプトを使用する場合) このフィールドを使用して、入力するプロンプト内の変数と、入力する値を定義します。
-
-
以下のフィールドでは、レスポンスの返される方法をカスタマイズできます。
-
guardrailConfig – このフィールドを使用して、プロンプト全体に適用するガードレールを含めます。
-
toolConfig – このフィールドを使用して、モデルがレスポンスを生成するのに役立つツールを含めます。
-
additionalModelResponseFieldPaths – このフィールドを使用して、JSON ポインタオブジェクトとして返すフィールドを指定します。
-
-
requestMetadata – このフィールドを使用して、呼び出しログを使用するときにフィルタリングできるメタデータを含めます。
注記
Converse
または でプロンプト管理プロンプトを使用する場合、次の制限が適用されますConverseStream
。
-
additionalModelRequestFields
、inferenceConfig
、、system
またはtoolConfig
フィールドを含めることはできません。 -
messages
フィールドを含めると、プロンプトで定義されたメッセージの後にメッセージが追加されます。 -
guardrailConfig
フィールドを含めると、ガードレールがプロンプト全体に適用されます。ContentBlock フィールドにguardContent
ブロックを含めると、ガードレールはそれらのブロックにのみ適用されます。
セクションを展開して、Converse
リクエスト本文のフィールドの詳細を確認します。
messages
フィールドは Message オブジェクトの配列で、それぞれがユーザーとモデル間のメッセージを定義します。Message
オブジェクトには、次のフィールドが含まれます。
-
ロール – メッセージが
user
(モデルに送信されたプロンプト) またはassistant
(モデルレスポンス) のどちらからのものであるかを定義します。 -
content – プロンプト内のコンテンツを定義します。
注記
Amazon Bedrock は、ユーザーがコンテンツとして提供したテキスト、画像、ドキュメントを保存しません。データはレスポンスの生成にのみ使用されます。
会話コンテキストを維持するには、後続のConverse
リクエストに会話内のすべてのメッセージを含め、 role
フィールドを使用して、メッセージがユーザーからのメッセージかモデルからのメッセージかを指定します。
content
フィールドは ContentBlock オブジェクトの配列にマッピングされます。各 ContentBlock 内で、次のいずれかのフィールドを指定できます (どのモデルがどのモダリティをサポートしているかを確認するには、「サポートされているモデルとモデルの機能」を参照)。
注記
content
フィールドには以下の制限が適用されます。
-
最大 20 個の画像を含めることができます。各画像のサイズ、高さ、幅は、それぞれ 3.75 MB、8,000 px、8,000 px 以下にする必要があります。
-
最大 5 つのドキュメントを含めることができます。各ドキュメントのサイズは 4.5 MB 以下にする必要があります。
-
role
がuser
の場合、画像とドキュメントのみを含めることができます。
次の messages
例では、ユーザーはポップの曲を 3 曲含むリストを要求し、モデルは曲のリストを生成します。
[
{
"role": "user",
"content": [
{
"text": "Create a list of 3 pop songs."
}
]
},
{
"role": "assistant",
"content": [
{
"text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"As It Was\" by Harry Styles\n2. \"Easy On Me\" by Adele\n3. \"Unholy\" by Sam Smith and Kim Petras"
}
]
}
]
システムプロンプトは、会話中に実行するタスク、または採用するペルソナに関する指示やコンテキストをモデルに提供するプロンプトの一種です。次の例に示すように、system
(SystemContentBlock) フィールドでリクエストのシステムプロンプトのリストを指定できます。
[
{
"text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. "
}
]
Converse API は、 inferenceConfig
フィールド (InferenceConfiguration) で設定した推論パラメータの基本セットをサポートします。推論パラメータの基本セットは次のとおりです。
maxTokens – 生成されたレスポンスで許可するトークンの最大数。
stopSequences – ストップシーケンスのリスト。停止シーケンスは、モデルがレスポンスの生成を停止する一連の文字です。
temperature – モデルがレスポンスの生成中に確率の高いオプションを選択する可能性。
topP — モデルが次のトークンについて考慮する最も可能性の高い候補のパーセンテージ。
詳細については、「推論パラメータでレスポンスの生成に影響を与える」を参照してください。
次の JSON の例では、temperature
推論パラメータを設定します。
{"temperature": 0.5}
使用しているモデルに追加の推論パラメータがある場合は、additionalModelRequestFields
フィールドに JSON として指定することで、これらのパラメータを設定できます。次の JSON の例は、top_k
を設定する方法を示しています。これは Anthropic Claude モデルで使用できますが、メッセージ API のベース推論パラメータではありません。
{"top_k": 200}
推論を実行するリソースmodelId
として のプロンプト管理からプロンプトを指定する場合は、このフィールドを使用してプロンプト変数に実際の値を入力します。promptVariables
フィールドは、変数を置き換えるプロンプトと値で定義された変数に対応するキーを持つ JSON オブジェクトにマッピングされます。
例えば、 というプロンプトがあるとしますMake me a
。プロンプトの ID は {{genre}}
playlist consisting of the following number of songs: {{number}}
.PROMPT12345
で、バージョンは です1
。次のConverse
リクエストを送信して変数を置き換えることができます。
POST /model/arn:aws:bedrock:us-east-1:111122223333:prompt/PROMPT12345:1/converse HTTP/1.1
Content-type: application/json
{
"promptVariables": {
"genre" : "pop",
"number": 3
}
}
このフィールドを含めることで、Amazon Bedrock ガードレールで作成したガードレールを適用できます。会話内の特定のメッセージにガードレールを適用するには、メッセージを GuardrailConverseContentBlock に含めます。リクエスト本文GuardrailConverseContentBlock
に を含めない場合、ガードレールは messages
フィールドのすべてのメッセージに適用されます。例については、Converse API にガードレールを含める を参照してください。
このフィールドでは、モデルがレスポンスを生成するのに役立つツールを定義できます。詳細については、「ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる」を参照してください。
次の例に示すように、additionalModelResponseFieldPaths
フィールドで追加のモデルパラメータのパスを指定できます。
[ "/stop_sequence" ]
API は、additionalModelResponseFields
フィールドでリクエストした追加のフィールドを返します。
このフィールドは JSON オブジェクトにマッピングされます。このオブジェクト内でマッピングするメタデータキーと値を指定できます。リクエストメタデータを使用して、モデル呼び出しログをフィルタリングできます。
オプションでキャッシュチェックポイントを system
または tools
フィールドに追加して、使用しているモデルに応じてプロンプトキャッシュを使用することもできます。詳細については、「モデル推論を高速化するためのプロンプトキャッシュ」を参照してください。
注記
Amazon Bedrock プロンプトキャッシュは、現在、一部のお客様にのみご利用いただけます。プレビューへの参加の詳細については、「Amazon Bedrock プロンプトキャッシュ
レスポンス
Converse API から受け取るレスポンスは、呼び出すオペレーション、Converse
または によって異なりますConverseStream
。
会話レスポンス
Converse
からのレスポンスでは、output
フィールド (ConverseOutput) には、モデルが生成するメッセージ (Message) が含まれます。メッセージの内容は content
(ContentBlock) フィールドにあり、メッセージが対応するロール (user
または assistant
) は role
フィールドにあります。
プロンプトキャッシュを使用した場合は、使用フィールドで、 cacheReadInputTokensCount
と は、キャッシュから読み取られ、キャッシュに書き込まれたトークンの合計数をそれぞれcacheWriteInputTokensCount
指定します。
metrics
フィールド (ConverseMetrics) には、呼び出しのメトリクスが含まれます。モデルがコンテンツの生成を停止した理由を確認するには、stopReason
フィールドを確認します。usage
フィールド (TokenUsage) を確認することで、リクエストでモデルに渡されたトークンと、レスポンスで生成されたトークンに関する情報を取得できます。リクエストで追加のレスポンスフィールドを指定した場合、API は additionalModelResponseFields
フィールドに JSON として返します。
次の例は、リクエスト で説明されているプロンプトを渡す際の Converse
からのレスポンスを示しています。
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"Wannabe\" by Spice Girls\n2. \"Bitter Sweet Symphony\" by The Verve \n3. \"Don't Look Back in Anger\" by Oasis"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 125,
"outputTokens": 60,
"totalTokens": 185
},
"metrics": {
"latencyMs": 1175
}
}
ConverseStream レスポンス
モデルからレスポンスをストリーミングするために ConverseStream
を呼び出すと、stream
レスポンスフィールドにストリームが返されます。ストリームは、以下の順序で次のイベントを出力します。
-
messageStart
(MessageStartEvent)。メッセージの開始イベント。メッセージのロールが含まれます。 -
contentBlockStart
(ContentBlockStartEvent)。コンテンツブロックの開始イベント。ツールの使用のみ。 -
contentBlockDelta
(ContentBlockDeltaEvent)。コンテンツブロックのデルタイベント。次のいずれかが含まれます。-
text
– モデルが生成する部分テキスト。 -
reasoningContent
– レスポンスを生成するためにモデルによって実行される部分的な推論。後続のConverse
リクエストで以前のすべてのメッセージに加えてsignature
、返された を送信する必要があります。メッセージのいずれかが変更されると、レスポンスはエラーをスローします。 -
toolUse
– ツール用の部分入力 JSON オブジェクト。
-
-
contentBlockStop
(ContentBlockStopEvent)。コンテンツブロックの停止イベント。 -
messageStop
(MessageStopEvent)。メッセージの停止イベント。モデルが出力の生成を停止した理由が含まれます。 -
metadata
(ConverseStreamMetadataEvent)。リクエストのメタデータ。メタデータには、usage
(TokenUsage) のトークン使用量とmetrics
(ConverseStreamMetadataEvent) の呼び出しのメトリクスが含まれます。
ConverseStream は、完全なコンテンツブロックを ContentBlockStartEvent
イベント、1 つ以上の ContentBlockDeltaEvent
イベント、および ContentBlockStopEvent
イベントとしてストリーミングします。contentBlockIndex
フィールドをインデックスとして使用して、コンテンツブロックを構成するイベントを関連付けます。
次の例は、ConverseStream
からのレスポンスの一部です。
{'messageStart': {'role': 'assistant'}}
{'contentBlockDelta': {'delta': {'text': ''}, 'contentBlockIndex': 0}}
{'contentBlockDelta': {'delta': {'text': ' Title'}, 'contentBlockIndex': 0}}
{'contentBlockDelta': {'delta': {'text': ':'}, 'contentBlockIndex': 0}}
.
.
.
{'contentBlockDelta': {'delta': {'text': ' The'}, 'contentBlockIndex': 0}}
{'messageStop': {'stopReason': 'max_tokens'}}
{'metadata': {'usage': {'inputTokens': 47, 'outputTokens': 20, 'totalTokens': 67}, 'metrics': {'latencyMs': 100.0}}}