翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
以下を使用 Converse API
を使用するには Converse APIでは、 Converse
または ConverseStream
オペレーションを呼び出してモデルにメッセージを送信します。Converse
を呼び出すには、bedrock:InvokeModel
オペレーションを呼び出す許可も必要です。ConverseStream
を呼び出すには、bedrock:InvokeModelWithResponseStream
オペレーションを呼び出す許可も必要です。
リクエスト
使用するモデルを選択するには、modelId
フィールドを設定します。Amazon Bedrock がサポートIDsするモデルのリストについては、「」を参照してくださいAmazon Bedrock でサポートされている基盤モデル。
会話は、ユーザーとモデル間でやり取りされる一連のメッセージです。ユーザー (ユーザーロール) は、メッセージをモデルに送信して会話を開始します。モデルはアシスタント (アシスタントロール) として機能し、メッセージとして返すレスポンスを生成します。必要に応じて、さらにユーザーロールメッセージをモデルに送信することで、会話を続行できます。会話コンテキストを維持するには、モデルから受信したアシスタントロールメッセージを後続のリクエストに必ず含めてください。
messages
フィールドのモデルに渡すメッセージを指定します。これは、メッセージオブジェクトの配列にマッピングされます。各メッセージには、メッセージのコンテンツと、会話でメッセージが再生するロールが含まれます。
注記
Amazon Bedrock は、ユーザーがコンテンツとして提供したテキスト、画像、ドキュメントを保存しません。データはレスポンスの生成にのみ使用されます。を使用する場合 Converse APIでは、サイズが 4.5 MB 未満の非圧縮およびデコードされたドキュメントを使用する必要があります。
メッセージのコンテンツは、 ContentBlock オブジェクトの配列にマッピングされる content
フィールドに追加します。各 内でContentBlock、次のいずれかのフィールドを指定できます (どのモデルがどのモダリティをサポートしているかを確認するには、「」を参照してくださいサポートされているモデルとモデルの機能)。
ContentBlock
の他のフィールドは、ツール用です。
role
フィールドで、ロールを指定します。ロールは、以下のいずれかにすることができます。
-
ユーザー — モデルにメッセージを送信する人間。
-
アシスタント — 人間のユーザーにメッセージを返すモデル。
注記
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. " } ]
オプションで、使用しているモデルに応じて、 system
または tools
フィールドにキャッシュチェックポイントを追加してプロンプトキャッシュを使用することもできます。詳細については、「モデル推論を高速化するためのプロンプトキャッシュ」を参照してください。
注記
Amazon Bedrock プロンプトキャッシュは、現在、一部のお客様にのみご利用いただけます。プレビューへの参加の詳細については、「Amazon Bedrock プロンプトキャッシュ
推論パラメータ
- Converse API は、 inferenceConfig
フィールド () で設定した推論パラメータの基本セットをサポートしますInferenceConfiguration。推論パラメータの基本セットは次のとおりです。
maxTokens – 生成されたレスポンスで許可されるトークンの最大数。
stopSequences – 停止シーケンスのリスト。停止シーケンスは、モデルがレスポンスの生成を停止する一連の文字です。
temperature – モデルがレスポンスの生成中に確率の高いオプションを選択する可能性。
topP — モデルが次のトークンについて考慮する最も可能性の高い候補のパーセンテージ。
詳細については、「推論パラメータでレスポンスの生成に影響を与える」を参照してください。
次の例では、temperature
推論パラメータJSONを設定します。
{"temperature": 0.5}
使用しているモデルに追加の推論パラメータがある場合は、 additionalModelRequestFields
フィールドJSONで として指定することで、それらのパラメータを設定できます。次の例はtop_k
、 を設定する方法JSONを示しています。これは で利用できます。Anthropic Claude はモデルですが、メッセージ の基本推論パラメータではありませんAPI。
{"top_k": 200}
次の例に示すように、additionalModelResponseFieldPaths
フィールドで追加のモデルパラメータのパスを指定できます。
[ "/stop_sequence" ]
は、 フィールドでリクエストした追加のadditionalModelResponseFields
フィールドAPIを返します。
レスポンス
から取得したレスポンス Converse API は、呼び出すオペレーション、Converse
または によって異なりますConverseStream
。
会話レスポンス
からのレスポンスではConverse
、 output
フィールド (ConverseOutput) に、モデルが生成するメッセージ (メッセージ) が含まれます。メッセージの内容は content
(ContentBlock) フィールドにあり、メッセージが対応するロール (user
または assistant
) は role
フィールドにあります。
プロンプトキャッシュを使用した場合は、使用フィールドで、 cacheReadInputTokensCount
と は、キャッシュから読み取られ、キャッシュに書き込まれたトークンの合計数をそれぞれcacheWriteInputTokensCount
指定します。
metrics
フィールド (ConverseMetrics) には、呼び出しのメトリクスが含まれます。モデルがコンテンツの生成を停止した理由を確認するには、stopReason
フィールドを確認します。usage
フィールド () を確認することで、リクエストでモデルに渡されたトークンと、レスポンスで生成されたトークンに関する情報を取得できますTokenUsage。リクエストで追加のレスポンスフィールドを指定した場合、 はそれらを additionalModelResponseFields
フィールドJSONで としてAPI返します。
次の例は、リクエスト で説明されているプロンプトを渡す際の 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)。 コンテンツブロックの差分イベント。モデルが生成する部分テキスト、またはツール用の部分入力 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}}}