

# 完全なリクエストスキーマ
<a name="complete-request-schema"></a>

リクエストスキーマは、Invoke API (ストリーミングと非ストリーミング) と Converse API の間でほぼ同じです。画像および動画のペイロードエンコーディングには微妙な違いがあります。Amazon Nova Micro は画像や動画を入力としてサポートしていないため、リクエストスキーマのこれらの部分は Amazon Nova Micro には適用されません。それ以外の場合、リクエストスキーマはすべての Amazon Nova の理解モデルで同じです。

**重要**  
Amazon Nova への推論呼び出しのタイムアウト期間は 60 分です。デフォルトでは、AWS SDK クライアントは 1 分後にタイムアウトします。AWS SDK クライアントの読み取りタイムアウト期間を少なくとも 60 分に増やすことをお勧めします。例えば、AWS Python botocore SDK では、[botocore.config](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#) の `read_timeout`フィールドの値を少なくとも 3600 に変更します。  

```
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
    config=Config(
        connect_timeout=3600,  # 60 minutes
        read_timeout=3600,     # 60 minutes
        retries={'max_attempts': 1}
    )
)
```

```
{
  "system": [
    {
      "text": "string"
    }
  ],
  "messages": [
    {
      "role": "user", //first turn should always be the user turn
      "content": [
        {
          "text": "string"
        },
        {
          "image": {
            "format": "jpeg" | "png" | "gif" | "webp",
            "source": {
              "bytes": image // Binary array (Converse API) or Base64-encoded string (Invoke API)
            }
          }
        },
        {
          "video": {
            "format": "mkv" | "mov" | "mp4" | "webm" | "three_gp" | "flv" | "mpeg" | "mpg" | "wmv",
            "source": {
              // Option 1: Sending a S3 location 
              "s3Location": {
                "uri": "string", // example: s3://my-bucket/object-key
                "bucketOwner": "string" // (Optional) example: "123456789012"
              },
              // Option 2: Sending file bytes 
              "bytes": video // Binary array (Converse API) or Base64-encoded string (Invoke API)
            }
          }
        },
        {
            "audio": {
                "format": "mp3" | "opus" | "wav" | "aac" | "flac" | "mp4" | "ogg" | "mkv",
                "source": {
                    // Option 1: Sending a S3 location 
                    "s3Location": {
                        "uri": "string", // example: s3://my-bucket/object-key
                        "bucketOwner": "string" // (Optional) example: "123456789012"
                    },
                    // Option 2: Sending file bytes 
                    "bytes": audio // Binary array (Converse API) or Base64-encoded string (Invoke API)
                }
            }
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "text": "string" //prefilling assistant turn
        }
      ]
    }
  ],
 "inferenceConfig":{ // all Optional, Invoke parameter names used in this example
    "maxTokens": int, // greater than 0, equal or less than 5k (default: dynamic*)
    "temperature": float, // greater than 0 and less than 1.0 (default: 0.7)
    "topP": float, // greater than 0, equal or less than 1.0 (default: 0.9)
    "topK": int, // 0 or greater (default: 50)
    "stopSequences": ["string"],
    "reasoningConfig": {
        "type": "string", //"enabled"/"disabled" (default: "disabled")
        "maxReasoningEffort": "string" // "low", "medium", "high"
    }
  },
  "toolConfig": { // all Optional
        "tools": [
            {
                "toolSpec": {
                    "name": "string", //meaningful tool name (Max char: 64)
                    "description": "string", //meaningful description of the tool
                    "inputSchema": {
                        "json": { // The JSON schema for the tool. For more information, see JSON Schema Reference
                            "type": "object",
                            "properties": {
                                "arg1": { //arguments 
                                    "type": "string", //argument data type
                                    "description": "string" //meaningful description
                                }
                            },
                            "required": [
                                "string" //args
                            ]
                        }
                    }
                }
            }
        ],
    },
    "toolChoice": { //can select one of three options
      "auto": {},
      "any": {},
      "tool": {
        "name": "string" //name of tool
      }
    }
}
```

次の内容は必須パラメータです。
+ `system` – (オプション) リクエストのシステムプロンプト。

  システムプロンプトは、特定の目標やロールの指定など、Amazon Nova にコンテキストおよび指示を与える方法です。
+ `messages` – (必須) 入力メッセージ。
  + `role` – 会話ターンのロール。有効な値は、`user` および `assistant` です。
  + `content` – (必須) 会話のコンテンツを含む [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) オブジェクトのリスト。各オブジェクトには、コンテンツのタイプ (`text`、`image`、`video`、または `audio`) を指定するキーが含まれています。オブジェクトの値は、キーのタイプによって異なります。サポートされているキーのタイプを以下に示します。
    + `text` – 会話ターンのテキストプロンプトの値が入った単一のフィールド `text` を含むオブジェクトにマッピングします。会話ターンに `image` または `video` オブジェクトも含まれている場合、`text` オブジェクトは画像または動画に付随するテキストプロンプトとして解釈されます。
    + `image` – (Amazon Nova Micro ではサポートされていません) 画像コンテンツを表し、次のフィールドを含むオブジェクトにマッピングします。
      + `format` – (必須) 画像形式。以下の画像形式を指定できます。
        + `jpeg`
        + `png`
        + `webp`
        + `gif`
      + `source` – (必須) 画像データ。Invoke API の場合、Base64 でエンコードされた画像文字列である必要があります。Converse API の場合、バイト配列である必要があります。
      + `bytes` – (必須) 画像データ。Invoke API の場合、Base64 でエンコードされた画像文字列である必要があります。Converse API の場合、バイト配列である必要があります。
    + `video` – (Amazon Nova Micro ではサポートされていません) 動画コンテンツを表し、次のフィールドを含むオブジェクトにマッピングします。
      + `format` – (必須) 動画形式。次の値を指定できます。
        + `mkv`
        + `mov`
        + `mp4`
        + `webm`
        + `three_gp`
        + `flv`
        + `mpeg`
        + `mpg`
        + `wmv`
      + `source` – (必須) 動画データのソース。リクエストで Amazon S3 URI または動画ファイルのバイトを指定できます。
        + `uri` – (必須) 動画ファイルの Amazon S3 URI。例: `“s3://my-bucket/object-key”`
        + `bucketOwner` – (オプション) バケットを所有しているアカウント ID。別のアカウントからモデルを呼び出す場合は、これを使用します。
        + `bytes` – (必須) 動画データ。Invoke API の場合、Base64 でエンコードされた動画文字列である必要があります。Converse API の場合、バイト配列である必要があります。
    + `audio` – ( のみ) 音声コンテンツを表し、次のフィールドを含むオブジェクトにマッピングします。
      + `format` – (必須) 音声形式。次の値を指定できます。
        + `aac`
        + `flac`
        + `mkv`
        + `mp3`
        + `mp4`
        + `ogg`
        + `opus`
        + `wav`
      + `source` – (必須) 音声データのソース。リクエストで Amazon S3 URI または音声ファイルのバイトを指定できます。
        + `uri` – (必須) 音声ファイルの Amazon S3 URI。例: `"s3://my-bucket/object-key"`
        + `bucketOwner` – (オプション) バケットを所有しているアカウント ID。別のアカウントからモデルを呼び出す場合は、これを使用します。
        + `bytes` – (必須) 音声データ。Invoke API の場合、Base64 でエンコードされた音声文字列である必要があります。Converse API の場合、バイト配列である必要があります。
+ `inferenceConfig:` 推論で渡すことができる推論設定値です。
  + `maxTokens` – (オプション) 停止する前に生成するトークンの最大数。

    Amazon Nova モデルは、`maxTokens` の値に達する前にトークンの生成を停止する場合があるので注意してください。許可される新しいトークンの最大値は 5K です。
  + `temperature` – (オプション) レスポンスに注入されるランダム性の量。有効な値は 0.00001 ～ 1 で、その範囲に限ります。デフォルト値は 0.7 です。
  + `topP` – (オプション) 中核サンプリングを使用します。

    Amazon Nova は、後続の各トークンのすべてのオプションに対する累積分布を確率の降順で計算し、`topP` で指定された特定の確率に達すると切り捨てます。`temperature` または `topP` のいずれかを変更する必要がありますが、両方を変更することはできません。有効な値は 0 ～ 1 で、その範囲に限ります。デフォルト値は 0.9 です。
  + `topK` – (オプション) 後続の各トークンの top K オプションによるサンプルのみ。

    `topK` パラメータを使用してロングテールの低確率レスポンスを削除します。有効な値は 0 ～ 128 です。デフォルト値は、このパラメータが使用されていないことです。
**注記**  
`topK` パラメータで Converse API を使用する際、追加の `inferenceConfig` パラメータを `additionalModelRequestFields` フィールドに含める必要があります。これらのパラメータが渡される方法の例については、「[Converse API の使用](using-converse-api.md)」を参照してください。
  + `stopSequences` – (オプション) 停止シーケンスを含む文字列の配列。モデルがこの文字列のいずれかを生成する場合、生成が停止されてその時点までのレスポンスが返されます。
  + `reasoningConfig` – (Amazon Nova Pro と Amazon Nova Lite のみ) 推論で渡すことができる推論設定値。
    + `type` – (オプション) 推論を有効または無効にするかどうか。有効なオプションは `enabled` または `disabled` です。デフォルト値は `disabled` です。
    + `maxReasoningEffort` – 推論プロセスで使用される計算労力。有効なオプションは `low`、`medium`、または `high` です。ストリーミングでは、`low` および `medium` 設定を使用する場合、推論コンテンツは `ConverseStream` の使用時に各トークンが生成されるたびにストリーミングされますが、`high` は異なる方法で動作し、品質を向上させるためにさまざまなアプローチを適用して、最終チャンク内にすべての推論コンテンツを出力します。
**注記**  
`reasoningConfig` パラメータとともに Converse API を使用する場合は、パラメータを `additionalModelRequestFields` フィールドに配置する必要があります。これらのパラメータが渡される方法の例については、「[Converse API の使用](using-converse-api.md)」を参照してください。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/nova/latest/userguide/complete-request-schema.html)
+ `toolConfig` – (オプション) ツール仕様およびツール選択を含む [ToolConfig スキーマ](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolConfiguration.html)に従う JSON オブジェクト。このスキーマは[Converse API が](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html)続くものと同じです。
  + `toolChoice` – (オプション) モデルが使用できるツールを指定します。以下の 3 つのオプションから 1 つを選択できます。
    + `auto` – モデルは、ツールを使用するかどうか、およびどのツールを使用するかを自動的に決定します。
    + `any` – モデルは、提供されたツールの少なくとも 1 つを使用する必要があります。
    + `tool` – モデルは、名前で識別される特定のツールを使用する必要があります。