Converse の使用 API - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Converse の使用 API

Converse を使用するにはAPI、 Converse または ConverseStreamオペレーションを呼び出してモデルにメッセージを送信します。を呼び出すにはConversebedrock:InvokeModel オペレーションのアクセス許可が必要です。を呼び出すにはConverseStreambedrock:InvokeModelWithResponseStream オペレーションのアクセス許可が必要です。

リクエスト

使用するモデルを指定するには、 modelIdフィールドを設定します。Amazon Bedrock がサポートIDsするモデルのリストについては、「」を参照してくださいAmazon Bedrock モデル IDs

会話は、ユーザーとモデル間の一連のメッセージです。会話を開始するには、ユーザー (ユーザーロール ) としてメッセージをモデルに送信します。モデルはアシスタント (アシスタントロール ) として機能し、メッセージで返されるレスポンスを生成します。必要に応じて、さらにユーザーロールメッセージをモデルに送信することで、会話を続行できます。会話コンテキストを維持するには、モデルから受信したアシスタントロールメッセージを後続のリクエストに必ず含めてください。

messages フィールドのモデルに渡すメッセージを指定します。これは、メッセージオブジェクトの配列にマッピングされます。各メッセージには、メッセージのコンテンツと、会話でメッセージが再生するロールが含まれます。

注記

Amazon Bedrock は、コンテンツとして提供するテキスト、イメージ、ドキュメントを保存しません。データはレスポンスの生成にのみ使用されます。Converse を使用する場合はAPI、サイズが 4.5 MB 未満の非圧縮およびデコードされたドキュメントを使用する必要があります。

メッセージのコンテンツは contentフィールドに格納され、ContentBlockオブジェクトの配列にマッピングされます。各 内でContentBlock、次のいずれかのフィールドを指定できます (どのモデルがどのモダリティをサポートしているかを確認するには、「」を参照してくださいサポートされているモデルとモデル機能)。

text

text フィールドは、プロンプトを指定する文字列にマッピングされます。text フィールドは、同じ で指定されている他のフィールドとともに解釈されますContentBlock

以下は、テキスト のみを含むcontent配列を持つメッセージオブジェクトを示していますContentBlock

{ "role": "user | assistant", "content": [ { "text": "string" } ] }
image

image フィールドは にマッピングされますImageBlock。base64 でエンコードされた raw バイトを、 bytesフィールド内のイメージに渡します。を使用する場合 AWS SDK、base64 のバイトをエンコードする必要はありません。

text フィールドを除外すると、モデルはイメージを記述します。

以下は、イメージ のみを含むcontent配列を持つメッセージオブジェクトを示していますContentBlock

{ "role": "user", "content": [ { "image": { "format": "png | jpeg | gif | webp", "source": { "bytes": "image in bytes" } } } ] }
document

document フィールドは にマッピングされますDocumentBlock。を含める場合はDocumentBlock、リクエストが次の制限に準拠していることを確認します。

  • メッセージオブジェクトの contentフィールドに、ドキュメントに関連するプロンプトを含む text フィールドを含める必要があります。

  • bytes フィールドのドキュメントに base64 でエンコードされた raw バイトを渡します。を使用する場合 AWS SDK、base64 でドキュメントバイトをエンコードする必要はありません。

  • name フィールドには、次の文字のみを含めることができます。

    • アルファベットの文字

    • 空白文字 (1 行に 1 つまで)

    • ハイフン

    • 括弧

    • 角括弧

    注記

    name このフィールドは、モデルが誤って指示として解釈する可能性があるため、プロンプトインジェクションに対して脆弱です。そのため、中立的な名前を指定することをお勧めします。

以下は、ドキュメントContentBlockと必須の付随テキスト のみを含むcontent配列を持つメッセージオブジェクトを示していますContentBlock

{ "role": "user", "content": [ { "text": "string" }, { "document": { "format": "pdf | csv | doc | docx | xls | xlsx | html | txt | md", "name": "string", "source": { "bytes": "document in bytes" } } } ] }

の他のフィールドContentBlockは、ツール用です

role フィールドでロールを指定します。ロールは次のいずれかになります。

  • user — モデルにメッセージを送信する人間。

  • アシスタント — 人間のユーザーにメッセージを送信するモデル。

注記

以下の制限は、 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 は、 inferenceConfigフィールド () で設定した推論パラメータの基本セットAPIをサポートします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 から得られるレスポンスは、呼び出すオペレーション、Converseまたは APIによって異なりますConverseStream

逆レスポンス

からのレスポンスではConverseoutput フィールド (ConverseOutput) には、モデルが生成するメッセージ (メッセージ) が含まれます。メッセージの内容は content (ContentBlock) フィールドにあり、メッセージが対応するロール (user または assistant) は roleフィールドにあります。

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レスポンスフィールドにストリームが返されます。ストリームは、次の順序で次のイベントを出力します。

  1. messageStart (MessageStartEvent)。メッセージの開始イベント。メッセージのロールが含まれます。

  2. contentBlockStart (ContentBlockStartEvent)。コンテンツブロックの開始イベント。ツールの使用のみ。

  3. contentBlockDelta (ContentBlockDeltaEvent)。コンテンツブロックデルタイベント。モデルが生成する部分テキスト、またはツール用の部分入力 JSON が含まれます。

  4. contentBlockStop (ContentBlockStopEvent)。コンテンツブロック停止イベント。

  5. messageStop (MessageStopEvent)。メッセージの停止イベント。モデルが出力の生成を停止した理由が含まれます。

  6. 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}}}