

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Skema permintaan lengkap
<a name="complete-request-schema"></a>

Skema permintaan hampir identik antara API Invoke (streaming dan non-streaming) dan API Converse. Ada perbedaan halus terkait dengan pengkodean muatan gambar dan video. Karena Amazon Nova Micro tidak mendukung gambar atau video sebagai input, bagian-bagian dari skema permintaan tersebut tidak berlaku untuk Amazon Nova Micro. Jika tidak, skema permintaan sama untuk semua model pemahaman Amazon Nova.

**penting**  
Periode batas waktu untuk panggilan inferensi ke Amazon Nova adalah 60 menit. Secara default, batas waktu klien AWS SDK setelah 1 menit. Kami menyarankan Anda meningkatkan periode batas waktu baca klien AWS SDK Anda menjadi setidaknya 60 menit. [Misalnya, di AWS Python botocore SDK, ubah nilai `read_timeout` bidang di botocore.config menjadi setidaknya 3600.](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#)  

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

Berikut ini adalah parameter yang diperlukan:
+ `system`— (Opsional) Prompt sistem untuk permintaan.

  Prompt sistem adalah cara untuk memberikan konteks dan instruksi ke Amazon Nova, seperti menentukan tujuan atau peran tertentu.
+ `messages`— (Diperlukan) Pesan masukan.
  + `role`— Peran percakapan berubah. Nilai yang valid adalah `user` dan `assistant`.
  + `content`— (wajib) Daftar [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)objek yang berisi konten untuk percakapan. Setiap objek berisi kunci yang menentukan jenis konten (`text`,, `image``video`, atau`audio`). Nilai objek tergantung pada jenis kunci. Jenis berikut didukung untuk kunci:
    + `text`— Memetakan ke objek yang berisi satu bidang`text`, yang nilainya adalah prompt tekstual untuk giliran percakapan. Jika giliran percakapan juga menyertakan objek `image` atau, `video` `text` objek ditafsirkan sebagai prompt teks yang menyertai gambar atau video.
    + `image`— (Tidak didukung untuk Amazon Nova Micro) Memetakan ke objek yang mewakili konten gambar dan berisi bidang berikut:
      + `format`— (wajib) Format gambar. Anda dapat menentukan format gambar berikut:
        + `jpeg`
        + `png`
        + `webp`
        + `gif`
      + `source`— (diperlukan) Data gambar. Untuk API Invoke, ini harus berupa string gambar yang dikodekan Base64. Untuk Converse API, ini harus berupa array byte.
      + `bytes`— (diperlukan) Data gambar. Untuk API Invoke, ini harus berupa string gambar yang dikodekan Base64. Untuk Converse API, ini harus berupa array byte.
    + `video`— (Tidak didukung untuk Amazon Nova Micro) Memetakan ke objek yang mewakili konten video dan berisi bidang berikut:
      + `format`— (wajib) Format video. Anda dapat menentukan salah satu nilai berikut:
        + `mkv`
        + `mov`
        + `mp4`
        + `webm`
        + `three_gp`
        + `flv`
        + `mpeg`
        + `mpg`
        + `wmv`
      + `source`— (wajib) Sumber data video. Anda dapat menentukan URI Amazon S3 atau byte file video dalam permintaan.
        + `uri`— (wajib) URI Amazon S3 dari file video. Sebagai contoh, `“s3://my-bucket/object-key”`.
        + `bucketOwner`— (opsional) ID Akun yang memiliki bucket. Gunakan ini jika Anda memanggil model dari akun terpisah.
        + `bytes`— (diperlukan) Data video. Untuk API Invoke, ini harus berupa string video yang dikodekan Base64. Untuk Converse API, ini harus berupa array byte.
    + `audio`— (hanya) Peta ke objek yang mewakili konten audio dan berisi bidang berikut:
      + `format`— (wajib) Format audio. Anda dapat menentukan salah satu nilai berikut:
        + `aac`
        + `flac`
        + `mkv`
        + `mp3`
        + `mp4`
        + `ogg`
        + `opus`
        + `wav`
      + `source`— (wajib) Sumber data audio. Anda dapat menentukan URI Amazon S3 atau byte file audio dalam permintaan.
        + `uri`— (wajib) URI Amazon S3 dari file audio. Sebagai contoh, `"s3://my-bucket/object-key"`.
        + `bucketOwner`— (opsional) ID Akun yang memiliki bucket. Gunakan ini jika Anda memanggil model dari akun terpisah.
        + `bytes`— (diperlukan) Data audio. Untuk API Invoke, ini harus berupa string audio yang disandikan Base64. Untuk Converse API, ini harus berupa array byte.
+ `inferenceConfig:`Ini adalah nilai konfigurasi inferensi yang dapat diteruskan dalam inferensi.
  + `maxTokens`— (Opsional) Jumlah maksimum token yang akan dihasilkan sebelum berhenti.

    Perhatikan bahwa model Amazon Nova mungkin berhenti menghasilkan token sebelum mencapai nilai`maxTokens`. Nilai token baru maksimum yang diizinkan adalah 5K.
  + `temperature`— (Opsional) Jumlah keacakan yang disuntikkan ke dalam respons. Nilai yang valid adalah antara 0,00001 dan 1, inklusif. Nilai default adalah 0,7.
  + `topP`— (Opsional) Gunakan pengambilan sampel nukleus.

    Amazon Nova menghitung distribusi kumulatif atas semua opsi untuk setiap token berikutnya dalam mengurangi urutan probabilitas dan memotongnya setelah mencapai probabilitas tertentu yang ditentukan oleh. `topP` Anda harus mengubah salah satu `temperature` atau`topP`, tetapi tidak keduanya. Nilai yang valid adalah antara 0 dan 1, inklusif. Nilai default-nya adalah 0.9.
  + `topK`— (Opsional) Hanya sampel dari opsi K teratas untuk setiap token berikutnya.

    Gunakan `topK` parameter untuk menghapus ekor panjang, respons probabilitas rendah. Nilai yang valid adalah antara 0 dan 128. Nilai defaultnya adalah parameter ini tidak digunakan.
**catatan**  
Saat menggunakan Converse API dengan `topK` parameter, `inferenceConfig` parameter tambahan harus disertakan dalam `additionalModelRequestFields` bidang. Lihat [Menggunakan Converse API](using-converse-api.md) contoh bagaimana parameter ini diteruskan.
  + `stopSequences`— (Opsional) Array string yang berisi urutan stop. Jika model menghasilkan salah satu string tersebut, generasi akan berhenti dan respons dikembalikan hingga saat itu.
  + `reasoningConfig`— (Hanya Amazon Nova Pro dan Amazon Nova Lite) Nilai konfigurasi penalaran yang dapat diteruskan dalam inferensi.
    + `type`— (Opsional) Apakah akan mengaktifkan atau menonaktifkan alasan. Pilihan yang valid adalah `enabled` atau `disabled`. Nilai default-nya adalah `disabled`.
    + `maxReasoningEffort`— Upaya komputasi yang digunakan dalam proses penalaran. Opsi yang valid adalah`low`,`medium`, atau`high`. Dalam streaming, saat menggunakan `low` dan `medium` pengaturan, konten penalaran akan dialirkan karena setiap token dihasilkan saat menggunakan`ConverseStream`, namun, `high` kerjanya berbeda, menerapkan pendekatan yang berbeda untuk meningkatkan kualitas sehingga menghasilkan semua konten penalaran dalam potongan akhir.
**catatan**  
Saat menggunakan Converse API dengan `reasoningConfig` parameter, parameter harus ditempatkan di `additionalModelRequestFields` lapangan. Lihat [Menggunakan Converse API](using-converse-api.md) contoh bagaimana parameter ini diteruskan.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/nova/latest/userguide/complete-request-schema.html)
+ `toolConfig`- (Opsional) objek JSON mengikuti [ToolConfig skema](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolConfiguration.html), yang berisi spesifikasi alat dan pilihan alat. Skema ini sama diikuti [oleh Converse API](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html)
  + `toolChoice`— (Opsional) Menentukan alat mana model dapat digunakan. Anda dapat memilih salah satu dari tiga opsi:
    + `auto`— Model secara otomatis memutuskan apakah akan menggunakan alat dan alat mana yang akan digunakan.
    + `any`— Model harus menggunakan setidaknya satu alat yang disediakan.
    + `tool`— Model harus menggunakan alat khusus yang diidentifikasi dengan nama.

# Sorotan struktur respons
<a name="complete-request-schema-response"></a>

Berikut ini menunjukkan elemen kunci dari struktur respons yang dikembalikan oleh non-streaming `Converse` dan `InvokeModel` fungsi. Untuk detail tentang struktur respons lengkap serta struktur permintaan dan respons untuk fungsi streaming, lihat dokumentasi API.

```
{
    "ResponseMetadata": {
        "RequestId": string,
        "HTTPStatusCode": int,
        "HTTPHeaders": {
            "date": string,
            "content-type": "application/json",
            "content-length": string,
            "connection": "keep-alive",
            "x-amzn-requestid": string
        },
        "RetryAttempts": 0
    },
    "output": {
        "message": {
            "role": "assistant",
            "content": [
                { // Optional
                    "reasoningContent": {
                        "reasoningText": {
                            "text": string
                        }
                    }
                },
                { // Optional
                    "toolUse": {
                        "toolUseId": string,
                        "name": string,
                        "input": object
                    }
                },
                { // Optional
                    "text": string
                },
                { // Optional
                    "image": {
                        "format": "png",
                        "source": {
                            "bytes": {
                                "bytes": image // Binary array (Converse API) or Base64-encoded string (Invoke API)
                            }
                        }
                    }
                }
            ]
        }
    },
    "stopReason": string, // "end_turn" | "content_filtered" | "max_tokens" | "malformed_model_output" | "malformed_tool_use" | etc.
    "usage": {
        "inputTokens": int,
        "outputTokens": int,
        "totalTokens": int
    },
    "metrics": {
        "latencyMs": int
    }
}
```

Berikut ini adalah elemen respons utama:
+ `output`— (Wajib) Berisi pesan respons model.
  + `message`— (Diperlukan) Pesan respons asisten.
    + `content`— (Wajib) Sebuah array dari satu atau lebih blok konten yang dapat mencakup:
      + `reasoningContent`— (Opsional) Dikembalikan jika penalaran diaktifkan. Berisi teks penalaran, yang akan selalu menjadi `[REDACTED]` respons.
      + `toolUse`— (Opsional) Dikembalikan jika alat dipanggil. Berisi alat menggunakan ID, nama, dan argumen masukan.
      + `text`— (Opsional) Dikembalikan jika model merespons dengan konten teks.
      + `image`— (Opsional, hanya) Dikembalikan jika model menghasilkan gambar. Format akan selalu PNG untuk gambar yang dihasilkan oleh.
+ `stopReason`— (Wajib) Nilai enum yang menunjukkan mengapa model berhenti menghasilkan output. Nilai yang didukung meliputi:
  + `end_turn`— Akhir logis dari giliran tercapai.
  + `max_tokens`— Output mencapai `maxTokens` batas yang ditetapkan oleh pengguna atau batas token keluaran maksimum model sendiri.
  + `content_filtered`- Output model melanggar kebijakan AI yang Bertanggung AWS Jawab.
  + `malformed_model_output`— Model menghasilkan output yang tidak valid.
  + `malformed_tool_use`— Model menghasilkan output yang tidak valid`toolUse`.
  + `service_unavailable`— Salah satu layanan alat bawaan tidak dapat dijangkau.
  + `invalid_query`— Kueri yang dikirim model ke alat Web Grounding bawaan tidak valid.
  + `max_tool_invocations`— Menunjukkan alat bawaan dipanggil tetapi tidak menghasilkan hasil yang valid, bahkan setelah beberapa kali mencoba ulang.
+ `usage`— (Diperlukan) Informasi penggunaan Token termasuk token input, token keluaran, dan token total.
+ `metrics`— (Diperlukan) Metrik kinerja termasuk latensi inferensi total dalam milidetik.