

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

# Converse API を使用する場合
<a name="conversation-inference-call"></a>

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

**Topics**
+ [[リクエスト]](#conversation-inference-call-request)
+ [[応答]](#conversation-inference-call-response)

**注記**  
制限は、InvokeModel、InvokeModelWithResponseStream、Converse、ConverseStream の各オペレーションに適用されます。詳細については、[「API の制限](inference-api-restrictions.md)」を参照してください。

## [リクエスト]
<a name="conversation-inference-call-request"></a>

[Amazon Bedrock ランタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt)で [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) リクエストを行うときは、次のフィールドを含めることができます。
+ **modelId** – 推論に使用するリソースを指定できるヘッダー内の必須パラメータ。
+ 次のフィールドでは、プロンプトをカスタマイズできます。
  + **messages** – プロンプトの内容とロールを指定するために使用します。
  + **system** – モデルの指示またはコンテキストを定義するシステムプロンプトを指定するために使用します。
  + **inferenceConfig** – すべてのモデルに共通の推論パラメータを指定するために使用します。推論パラメータはレスポンスの生成に影響を与えます。
  + **additionalModelRequestFields** – 推論を実行するモデルに固有の推論パラメータを指定するために使用します。
  + **promptVariables** – (プロンプト管理のプロンプトを使用する場合) このフィールドを使用して、入力するプロンプト内の変数と入力する値を定義します。
+ 次のフィールドでは、レスポンスが返される方法をカスタマイズできます。
  + **guardrailConfig** – このフィールドを使用して、プロンプト全体に適用するガードレールを含めます。
  + **toolConfig** – このフィールドを使用して、モデルがレスポンスを生成するのに役立つツールを含めます。
  + **additionalModelResponseFieldPaths** – このフィールドを使用して、JSON ポインタオブジェクトとして返すフィールドを指定します。
  + **serviceTier** – このフィールドを使用して、特定のリクエストのサービス層を指定します。
+ **requestMetadata** – このフィールドを使用して、呼び出しログを使用するときにフィルタリングできるメタデータを含めます。

**注記**  
`Converse` または `ConverseStream` でプロンプト管理プロンプトを使用する場合、次の制限が適用されます。  
`additionalModelRequestFields`、`inferenceConfig`、`system`、`toolConfig` フィールドを含めることはできません。
`messages` フィールドを含めると、プロンプトで定義されたメッセージの後にメッセージが追加されます。
`guardrailConfig` フィールドを含めると、プロンプト全体にガードレールが適用されます。[ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) フィールドに `guardContent` ブロックを含めると、ガードレールはそれらのブロックにのみ適用されます。

セクションを展開すると、`Converse` リクエスト本文のフィールドの詳細を確認できます。

### messages
<a name="converse-messages"></a>

`messages` フィールドは [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトの配列であり、それぞれがユーザーとモデル間のメッセージを定義します。`Message` オブジェクトには、以下のフィールドが含まれています。
+ **role** – メッセージの送信元が `user` (モデルに送信されたプロンプト) か `assistant` (モデルレスポンス) かを定義します。
+ **content** – プロンプト内のコンテンツを定義します。
**注記**  
Amazon Bedrock は、ユーザーがコンテンツとして提供したテキスト、画像、ドキュメントを保存しません。データはレスポンスの生成にのみ使用されます。

会話コンテキストを維持するには、後続の `Converse` リクエストに会話のすべてのメッセージを含め、`role` フィールドを使用して、メッセージがユーザーからのものであるかモデルからのものであるかを指定します。

`content` フィールドは [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) オブジェクトの配列にマッピングされます。各 [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) 内で、次のいずれかのフィールドを指定できます (どのモデルがどのブロックをサポートしているかを確認するには、[モデルを一目で](model-cards.md)確認できます）。

------
#### [ text ]

`text` フィールドは、プロンプトを指定する文字列にマッピングされます。`text` フィールドは、同じ [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) で指定された他のフィールドとともに解釈されます。

以下は、テキスト [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) のみを含む `content` 配列を持つ [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "text": "string"
        }
    ]
}
```

------
#### [ image ]

`image` フィールドは [ImageBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ImageBlock.html) にマッピングされます。base64 でエンコードされた raw バイトを、`bytes` フィールド内の画像に渡します。 AWS SDK を使用する場合、base64 のバイトをエンコードする必要はありません。

`text` フィールドを除外すると、モデルは画像を記述します。

以下は、画像 [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) のみを含む `content` 配列を持つサンプル [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "image": {
                "format": "png",
                "source": {
                    "bytes": "image in bytes"
                }
            }
        }
    ]
}
```

リクエスト本文でバイトを直接渡す代わりに、Amazon S3 URI を指定することもできます。以下は、Amazon S3 URI を通過するソースを含むコンテンツ配列を持つサンプル `Message` オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "image": {
                "format": "png",
                "source": {
                    "s3Location": {
                        "uri": "s3://amzn-s3-demo-bucket/myImage",
                        "bucketOwner": "111122223333"
                    }
                }
            }
        }
    ]
}
```

------
#### [ document ]

`document` フィールドは [DocumentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_DocumentBlock.html) にマッピングされます。`DocumentBlock` を含める場合は、リクエストが次の制限に準拠していることを確認します。
+ [メッセージ](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html)オブジェクトの `content` フィールドに、ドキュメントに関連するプロンプトを含む `text` フィールドを含める必要があります。
+ base64 でエンコードされた raw バイトを、`bytes` フィールド内のドキュメントに渡します。 AWS SDK を使用する場合、base64 のドキュメントのバイトをエンコードする必要はありません。
+ `name` フィールドには以下の文字のみ含めることができます。
  + アルファベットの文字
  + 空白文字 (連続した空白文字は使用不可)
  + ハイフン
  + 括弧
  + 角括弧
**注記**  
モデルが誤って指示として解釈する可能性があるため、`name` フィールドはプロンプトインジェクションに対して脆弱です。したがって、中立的な名前を指定することが推奨されます。

ドキュメントを使用する場合、`citations` タグを有効にできます。これにより、API コールのレスポンスでドキュメント固有の引用が提供されます。詳細については、「[DocumentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_DocumentBlock.html)」 API を参照してください。

以下は、ドキュメント [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) と必須の付随テキスト [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) のみを含む `content` 配列を持つサンプル [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "text": "string"
        },
        {
            "document": {
                "format": "pdf",
                "name": "MyDocument",
                "source": {
                    "bytes": "document in bytes"
                }
            }
        }
    ]
}
```

リクエスト本文でバイトを直接渡す代わりに、Amazon S3 URI を指定することもできます。以下は、Amazon S3 URI を通過するソースを含むコンテンツ配列を持つサンプル `Message` オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "text": "string"
        },
        {
            "document": {
                "format": "pdf",
                "name": "MyDocument",
                "source": {
                    "s3Location": {
                      "uri": "s3://amzn-s3-demo-bucket/myDocument",
                      "bucketOwner": "111122223333"
                    }
                }
            }
        }
    ]
}
```

------
#### [ video ]

`video` フィールドは [VideoBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_VideoBlock.html) オブジェクトにマッピングされます。base64 でエンコードされた `bytes` フィールド内の raw バイトを渡します。 AWS SDK を使用する場合、base64 でバイトをエンコードする必要はありません。

`text` フィールドを含めない場合、モデルは動画を記述します。

以下は、画像 [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) のみを含む `content` 配列を持つサンプル [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "video": {
                "format": "mp4",
                "source": {
                    "bytes": "video in bytes"
                }
            }
        }
    ]
}
```

リクエスト本文でバイトを直接渡す代わりに、Amazon S3 URI を指定することもできます。以下は、Amazon S3 URI を通過するソースを含むコンテンツ配列を持つサンプル `Message` オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "video": {
                "format": "mp4",
                "source": {
                    "s3Location": {
                        "uri": "s3://amzn-s3-demo-bucket/myVideo",
                        "bucketOwner": "111122223333"
                    }
                }
            }
        }
    ]
}
```

**注記**  
引き受けたロールには、Amazon S3 URI に対する `s3:GetObject` アクセス許可が必要です。`bucketOwner` フィールドはオプションですが、リクエストを行うアカウントが Amazon S3 URI が見つかるバケットを所有していない場合は、指定する必要があります。詳細については、「[Amazon S3 バケットへのアクセスを設定する](s3-bucket-access.md)」を参照してください。

------
#### [ cachePoint ]

`cachePoint` フィールドを使用してプロンプトキャッシュを利用することで、キャッシュチェックポイントをメッセージ内のブロックとして付随するプロンプトとともに追加できます。プロンプトキャッシュは、会話のコンテキストのキャッシュを開始してコストとレイテンシーを節約できる機能です。詳細については、「[モデル推論を高速化するためのプロンプトキャッシュ](prompt-caching.md)」を参照してください。

以下は、ドキュメント [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) と付随する必須のテキスト [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) を含む `content` 配列を持つ [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトの例と、ドキュメントとテキストの両方の内容をキャッシュに追加する **cachePoint** を示しています。

```
{
    "role": "user",
    "content": [
        {
            "text": "string"
        },
        {
            "document": {
                "format": "pdf",
                "name": "string",
                "source": {
                    "bytes": "document in bytes"
                }
            }
        },
        {
            "cachePoint": {
                "type": "default"
            }
        }
    ]
}
```

------
#### [ guardContent ]

`guardContent` フィールドは [GuardrailConverseContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailConverseContentBlock.html) オブジェクトにマッピングされます。このフィールドを使用して、`guardrailConfig` フィールドで定義されたガードレールによって評価される入力をターゲットにできます。このフィールドを指定しない場合、ガードレールはリクエスト本文内のすべてのメッセージを評価します。`GuardBlock` では、次のタイプのコンテンツを渡すことができます。
+ **text** – 以下は、テキスト [GuardrailConverseContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailConverseContentBlock.html) のみを含む `content` 配列を持つ [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトの例を示しています。

  ```
  {
      "role": "user",
      "content": [
          {
              "text": "Tell me what stocks to buy.",
              "qualifiers": [
                  "guard_content"
              ]
          }
      ]
  }
  ```

  評価するテキストを定義し、[コンテキストグラウンディング](guardrails-contextual-grounding-check.md)に使用する修飾子を含めます。
+ **image** – 以下は、画像 [GuardrailConverseContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailConverseContentBlock.html) のみを含む `content` 配列を持つ [Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) オブジェクトの例を示しています。

  ```
  {
      "role": "user",
      "content": [
          {
              "format": "png",
              "source": {
                  "bytes": "image in bytes"
              }
          }
      ]
  }
  ```

  画像の形式を指定し、画像をバイト単位で定義します。

ガードレールの使用方法の詳細については、「[Amazon Bedrock ガードレールを使用して有害なコンテンツを検出してフィルタリングする](guardrails.md)」を参照してください。

------
#### [ reasoningContent ]

`reasoningContent` フィールドは [ReasoningContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html) にマッピングされます。このブロックには、付随する `ContentBlock` でレスポンスを生成するためにモデルが実行した推論に関するコンテンツが含まれています。

以下は、`ReasoningContentBlock` とそれに付随するテキスト `ContentBlock` のみを含む `content` 配列を持つ `Message` オブジェクトを示しています。

```
{
    "role": "user",
    "content": [
        {
            "text": "string"
        },
        {
            "reasoningContent": {
                "reasoningText": {
                    "text": "string",
                    "signature": "string"
                }
                "redactedContent": "base64-encoded binary data object"
            }
        }
    ]
}
```

`ReasoningContentBlock` には、`reasoningText` フィールド内に付随するコンテンツを生成するために使用する推論と、`redactedContent` フィールドの信頼と安全の理由でモデルプロバイダーが暗号化した推論内のコンテンツが含まれます。

`reasoningText` フィールド内で、`text` フィールドは推論を記述します。`signature` フィールドは会話内のすべてのメッセージのハッシュであり、モデルで使用される推論の改ざんに対するセーフガードです。署名と以前のすべてのメッセージを後続の `Converse` リクエストに含める必要があります。メッセージのいずれかが変更されると、レスポンスはエラーをスローします。

------
#### [ toolUse ]

モデルが使用するツールに関する情報が含まれています。詳細については、「[ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる](tool-use.md)」を参照してください。

------
#### [ toolResult ]

ツールを使用するモデルの結果に関する情報が含まれます。詳細については、「[ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる](tool-use.md)」を参照してください。

------

次の `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
<a name="converse-system"></a>

システムプロンプトは、会話中に実行するタスク、または採用するペルソナに関する指示やコンテキストをモデルに提供するプロンプトの一種です。次の例に示すように、`system` ([SystemContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_SystemContentBlock.html)) フィールドでリクエストのシステムプロンプトのリストを指定できます。

```
[
    {
        "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. "
    }
]
```

### inferenceConfig
<a name="converse-inference"></a>

Converse API は、`inferenceConfig` フィールド ([InferenceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InferenceConfiguration.html)) で設定した推論パラメータの基本セットをサポートします。推論パラメータの基本セットは次のとおりです。
+ **maxTokens** – 生成されたレスポンスで許可するトークンの最大数。
+ **stopSequences** – ストップシーケンスのリスト。停止シーケンスは、モデルがレスポンスの生成を停止する一連の文字です。
+ **temperature** – モデルがレスポンスの生成中に確率の高いオプションを選択する可能性。
+ **topP** — モデルが次のトークンについて考慮する最も可能性の高い候補のパーセンテージ。

詳細については、「[推論パラメータでレスポンスの生成に影響を与える](inference-parameters.md)」を参照してください。

次の JSON の例では、`temperature` 推論パラメータを設定します。

```
{"temperature": 0.5}
```

### additionalModelRequestFields
<a name="converse-additional-model-request-fields"></a>

使用しているモデルに追加の推論パラメータがある場合は、`additionalModelRequestFields` フィールドに JSON として指定することで、これらのパラメータを設定できます。次の JSON の例は、`top_k` を設定する方法を示しています。これは Anthropic Claude モデルで使用できますが、メッセージ API のベース推論パラメータではありません。

```
{"top_k": 200}
```

### promptVariables
<a name="converse-prompt-variables"></a>

推論を実行するリソースとして `modelId` の[プロンプト管理](prompt-management.md)からプロンプトを指定する場合は、このフィールドを使用してプロンプト変数に実際の値を入力します。`promptVariables` フィールドは、プロンプトで定義された変数に対応するキーと、変数を置き換える値を持つ JSON オブジェクトにマップされます。

例えば **Make me a *\$1\$1genre\$1\$1* playlist consisting of the following number of songs: *\$1\$1number\$1\$1*.** というプロンプトがあるとします。プロンプトの ID は `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": {
         "text": "pop"
      },
      "number": {
         "text": "3"
      }
   }
}
```

### guardrailConfig
<a name="converse-guardrail"></a>

このフィールドを含めることで、[Amazon Bedrock ガードレール](guardrails.md)で作成したガードレールを適用できます。会話内の特定のメッセージにガードレールを適用するには、[GuardrailConverseContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailConverseContentBlock.html) にメッセージを含めます。リクエスト本文に `GuardrailConverseContentBlock` を含めない場合、ガードレールは `messages` フィールド内のすべてのメッセージに適用されます。例については、[Converse API にガードレールを含める](guardrails-use-converse-api.md)を参照してください。

### toolConfig
<a name="converse-tool"></a>

このフィールドでは、モデルがレスポンスを生成するのに役立つツールを定義できます。詳細については、「[ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる](tool-use.md)」を参照してください。

### additionalModelResponseFieldPaths
<a name="converse-additional-model-response-field-paths"></a>

次の例に示すように、`additionalModelResponseFieldPaths` フィールドで追加のモデルパラメータのパスを指定できます。

```
[ "/stop_sequence" ]
```

API は、`additionalModelResponseFields` フィールドでリクエストした追加のフィールドを返します。

### requestMetadata
<a name="converse-request-metadata"></a>

このフィールドは JSON オブジェクトにマッピングされます。このオブジェクト内でマッピングするメタデータキーと値を指定できます。リクエストメタデータを使用して、モデル呼び出しログをフィルタリングできます。

### serviceTier
<a name="inference-service-tiers"></a>

このフィールドは JSON オブジェクトにマッピングされます。特定のリクエストのサービス層を指定できます。

次の例は、 `serviceTier`構造を示しています。

```
"serviceTier": {
  "type": "reserved" | "priority" | "default" | "flex"
}
```

料金やパフォーマンス特性など、サービス階層の詳細については、「」を参照してください[パフォーマンスとコストを最適化するためのサービス階層](service-tiers-inference.md)。

オプションでキャッシュチェックポイントを `system` または `tools` フィールドに追加して、使用しているモデルに応じてプロンプトキャッシュを使用することもできます。詳細については、「[モデル推論を高速化するためのプロンプトキャッシュ](prompt-caching.md)」を参照してください。

## [応答]
<a name="conversation-inference-call-response"></a>

Converse API から得られるレスポンスは、呼び出すオペレーション、`Converse`、または `ConverseStream` によって異なります。

**Topics**
+ [会話レスポンス](#conversation-inference-call-response-converse)
+ [ConverseStream レスポンス](#conversation-inference-call-response-converse-stream)

### 会話レスポンス
<a name="conversation-inference-call-response-converse"></a>

`Converse` からのレスポンスでは、`output` フィールド ([ConverseOutput](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseOutput.html)) には、モデルが生成するメッセージ ([Message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html)) が含まれます。メッセージの内容は `content` ([ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)) フィールドにあり、メッセージが対応するロール (`user` または `assistant`) は `role` フィールドにあります。

[プロンプトキャッシュ](prompt-caching.md)を使用した場合は、使用量フィールドの `cacheReadInputTokensCount` と`cacheWriteInputTokensCount` はキャッシュから読み取られたトークンの合計数とキャッシュに書き込まれたトークンの合計数をそれぞれ示します。

[サービス階層](#inference-service-tiers)を使用した場合、レスポンスフィールドで、 `service tier`はリクエストに使用されたサービス階層を示します。

`metrics` フィールド ([ConverseMetrics](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseMetrics.html)) には、呼び出しのメトリクスが含まれます。モデルがコンテンツの生成を停止した理由を確認するには、`stopReason` フィールドを確認します。`usage` フィールド ([TokenUsage](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_TokenUsage.html)) を確認することで、リクエストでモデルに渡されたトークンと、レスポンスで生成されたトークンに関する情報を取得できます。リクエストで追加のレスポンスフィールドを指定した場合、API は `additionalModelResponseFields` フィールドに JSON として返します。

次の例は、[[リクエスト]](#conversation-inference-call-request) で説明されているプロンプトを渡す際の `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 レスポンス
<a name="conversation-inference-call-response-converse-stream"></a>

モデルからレスポンスをストリーミングするために `ConverseStream` を呼び出すと、`stream` レスポンスフィールドにストリームが返されます。ストリームは、以下の順序で次のイベントを出力します。

1. `messageStart` ([MessageStartEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_MessageStartEvent.html))。メッセージの開始イベント。メッセージのロールが含まれます。

1. `contentBlockStart` ([ContentBlockStartEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlockStartEvent.html))。コンテンツブロックの開始イベント。ツールの使用のみ。

1. `contentBlockDelta` ([ContentBlockDeltaEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlockDeltaEvent.html))。コンテンツブロックのデルタイベント。次のいずれかが含まれます。
   + `text` – モデルが生成する部分的なテキスト。
   + `reasoningContent` – レスポンスを生成するためにモデルが実行する部分的な推論。後続の `Converse` リクエストで、以前のすべてのメッセージに加えて、返された `signature` を送信する必要があります。メッセージのいずれかが変更されると、レスポンスはエラーをスローします。
   + `toolUse` – ツール使用のための部分的な入力 JSON オブジェクト。

1. `contentBlockStop` ([ContentBlockStopEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlockStopEvent.html))。コンテンツブロックの停止イベント。

1. `messageStop` ([MessageStopEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_MessageStopEvent.html))。メッセージの停止イベント。モデルが出力の生成を停止した理由が含まれます。

1. `metadata` ([ConverseStreamMetadataEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStreamMetadataEvent.html))。リクエストのメタデータ。メタデータには、`usage` ([TokenUsage](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_TokenUsage.html)) のトークン使用量と `metrics` ([ConverseStreamMetadataEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStreamMetadataEvent.html)) の呼び出しのメトリクスが含まれます。

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}}}
```