

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

# Dukungan multimodal untuk Amazon Nova
<a name="modalities"></a>

**catatan**  
Dokumentasi ini untuk Amazon Nova Versi 1. Untuk dokumentasi multimodal Amazon Nova 2, kunjungi pemahaman [Multimodal](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html).

Amazon Nova Understanding Models adalah model pemahaman multimodal, yang berarti mereka mendukung input multimodal seperti gambar, video, dan dokumen untuk menyimpulkan dan menjawab pertanyaan berdasarkan konten yang disediakan. Model Amazon Nova dilengkapi dengan kemampuan visi baru yang memungkinkan model untuk memahami dan menganalisis gambar, dokumen, dan video sehingga mewujudkan kasus penggunaan pemahaman multimodal.

Bagian berikut menguraikan pedoman untuk bekerja dengan gambar, dokumen, dan video di Amazon Nova. Ini termasuk strategi pra-pemrosesan yang digunakan, contoh kode, dan batasan yang relevan untuk dipertimbangkan.

**Topics**
+ [Jenis konten yang didukung berdasarkan modalitas](#modalities-content)
+ [Pemahaman gambar](modalities-image.md)
+ [Pemahaman video](modalities-video.md)
+ [Pemahaman dokumen](modalities-document.md)
+ [Penanganan kesalahan](text-error-handing.md)

## Jenis konten yang didukung berdasarkan modalitas
<a name="modalities-content"></a>

Informasi berikut merinci format file yang didukung oleh file media dan metode input yang diterima.


| Jenis File Media | Format File yang didukung | **Metode Masukan** | Strategi Penguraian | 
| --- |--- |--- |--- |
| Citra | PNG, JPG, JPEG, GIF, WEBP | Base64 Amazon S3 URI | Pemahaman Visi Gambar | 
| Dokumen Teks *(Hanya API Converse)* | CSV, XLS, XLSX, HTML, TXT, MD, DOC | Byte Amazon S3 URI | Pemahaman Tekstual dari dokumen saja. | 
| Dokumen Media *(Hanya API Converse)* | PDF, DOCX | Byte Amazon S3 URI | Teks dengan Pemahaman Gambar yang disisipkan | 
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 Amazon S3 URI | Pemahaman Visi Video | 

**catatan**  
Anda dapat menyertakan hingga lima file dari komputer Anda atau 1000 file dari Amazon S3. Setiap file harus tidak lebih dari 1 GB saat diunggah dari Amazon S3. Ukuran total file yang diunggah tidak boleh melebihi 25 MB saat mengunggah dari komputer Anda atau 2 GB saat mengunggah dari Amazon S3.

Karena 25 MB adalah batas muatan keseluruhan, pastikan Anda memperhitungkan overhead base64. Saat bekerja, ingatlah bahwa pustaka dan kerangka kerja mempertahankan memori, dan konten media yang diteruskan dapat dengan cepat bertambah. Saat menggunakan video, menentukan `s3Location` harus meringankan banyak masalah penyimpanan.

**catatan**  
Video dan dokumen besar membutuhkan waktu untuk diproses, terlepas dari metode input. Jika boto3 SDK kehabisan waktu sambil menunggu respons dari Amazon Bedrock, pastikan Anda memiliki nilai [read\$1timeout](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html) yang sesuai dan telah memutakhirkan boto3 ke setidaknya versi 1.38.

# Pemahaman gambar
<a name="modalities-image"></a>

**catatan**  
Dokumentasi ini untuk Amazon Nova Versi 1. Untuk panduan pemahaman gambar Amazon Nova 2, kunjungi [Pemahaman gambar](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#image-understanding).

Model Amazon Nova memungkinkan Anda untuk memasukkan beberapa gambar dalam muatan dengan batas muatan total 25 MB. Namun, Anda dapat menentukan URI Amazon S3 yang berisi gambar Anda untuk pemahaman gambar. Pendekatan ini memungkinkan Anda memanfaatkan model untuk gambar yang lebih besar dan lebih banyak gambar tanpa dibatasi oleh batasan muatan 25 MB. Model Amazon Nova dapat menganalisis gambar yang diteruskan dan menjawab pertanyaan, mengklasifikasikan gambar, dan meringkas gambar berdasarkan instruksi yang Anda berikan.

## Informasi ukuran gambar
<a name="modalities-image-resolution"></a>

Untuk memberikan hasil terbaik, Amazon Nova secara otomatis mengubah skala gambar input ke atas atau ke bawah tergantung pada rasio aspek dan resolusi aslinya. Untuk setiap gambar, Amazon Nova pertama-tama mengidentifikasi rasio aspek terdekat dari 1:1, 1:2, 1:3, 1:4, 1:5, 1:6, 1:7, 1:8, 1:9 2:3, 2:4 dan transposnya. Kemudian gambar diskalakan ulang sehingga setidaknya satu sisi gambar lebih besar dari 896px atau panjang sisi yang lebih pendek dari gambar asli, sambil mempertahankan rasio aspek terdekat. Ada resolusi maksimum 8.000x8.000 piksel

## Deteksi kotak pembatas
<a name="modalities-image-bounding"></a>

Model Amazon Nova Lite dan Amazon Nova Pro dilatih untuk secara tepat mendeteksi kotak pembatas dalam gambar. Kemampuan ini dapat berharga ketika tujuannya adalah untuk mendapatkan koordinat objek tertentu yang menarik. Fungsionalitas deteksi kotak pembatas dari model Amazon Nova menjadikannya kandidat yang cocok untuk tugas pentanahan gambar, sehingga memungkinkan pemahaman yang lebih baik tentang tangkapan layar. Model Amazon Nova mengeluarkan kotak pembatas pada skala [0, 1000), dan setelah koordinat ini diperoleh, mereka dapat diubah ukurannya berdasarkan dimensi gambar sebagai langkah pasca-pemrosesan.

## Konversi gambar ke token
<a name="modalities-image-tokens"></a>

Seperti yang telah dibahas sebelumnya, gambar diubah ukurannya untuk memaksimalkan ekstraksi informasi, sambil tetap mempertahankan rasio aspek. Berikut ini adalah beberapa contoh dimensi gambar sampel dan perkiraan perhitungan token.


| image\$1resolution (HxW atau WxH) | 900 x 450 | 900 x 900 | 1400 x 900 | 1,8K x 900 | 1.3Kx1.3K | 
| --- |--- |--- |--- |--- |--- |
| Perkiraan jumlah token | \$1 800 | \$11300 | \$11800 | \$12400 | \$12600 | 

Jadi misalnya, pertimbangkan contoh gambar berukuran 800x400, dan Anda ingin memperkirakan jumlah token untuk gambar ini. Berdasarkan dimensi, untuk mempertahankan rasio aspek 1:2, resolusi terdekat adalah 900x450. Oleh karena itu, perkiraan jumlah token untuk gambar ini adalah sekitar 800 token.

# Keterbatasan pemahaman gambar
<a name="modalities-image-limitations"></a>

Pahami batasan berikut untuk Amazon Nova:
+ **Pemahaman Gambar Multilingual:** Model memiliki pemahaman terbatas tentang gambar multibahasa dan bingkai video dan dapat berjuang atau berhalusinasi pada tugas serupa.
+ **Identifikasi orang**: Model Amazon Nova tidak mendukung kemampuan untuk mengidentifikasi atau memberi nama individu dalam gambar, dokumen, atau video. Model akan menolak untuk melakukan tugas-tugas seperti itu.
+ **Penalaran spasial**: Model Amazon Nova memiliki kemampuan penalaran spasial yang terbatas. Mereka mungkin berjuang dengan tugas-tugas yang membutuhkan lokalisasi atau analisis tata letak yang tepat.
+ **Teks Kecil dalam Gambar/Video**: Jika teks dalam gambar atau video terlalu kecil, pertimbangkan untuk meningkatkan ukuran relatif teks dalam gambar dengan memotong ke bagian yang relevan sambil mempertahankan konteks yang diperlukan.
+ **Menghitung**: Model Amazon Nova dapat memberikan perkiraan jumlah objek dalam gambar, tetapi mungkin tidak selalu akurat, terutama ketika berhadapan dengan sejumlah besar objek kecil.
+ **Konten yang tidak pantas**: Model Amazon Nova tidak akan memproses gambar yang tidak pantas atau eksplisit yang melanggar Kebijakan Penggunaan yang Dapat Diterima.
+ **Aplikasi perawatan kesehatan**: Karena sifat sensitif dari artefak ini, meskipun model Amazon Nova dapat memberikan analisis umum pada gambar atau video perawatan kesehatan, kami tidak menyarankan Anda menafsirkan pemindaian diagnostik yang kompleks. Respons Amazon Nova tidak boleh dianggap sebagai pengganti nasihat medis profesional.

# Contoh pemahaman gambar
<a name="modalities-image-examples"></a>

Contoh berikut menunjukkan cara mengirim prompt gambar ke Amazon Nova Model dengan [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html).

```
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Open the image you'd like to use and encode it as a Base64 string.
with open("media/sunset.png", "rb") as image_file:
    binary_data = image_file.read()
    base_64_encoded_data = base64.b64encode(binary_data)
    base64_string = base_64_encoded_data.decode("utf-8")
# Define your system prompt(s).
system_list = [    {
        "text": "You are an expert artist. When the user provides you with an image, provide 3 potential art titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "image": {
                    "format": "png",
                    "source": {
                        "bytes": image // Binary array (Converse API) or Base64-encoded string (Invoke API)
                    },
                }
            },
            {
                "text": "Provide art titles for this image."
            }
        ],
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

Untuk meneruskan file gambar besar atau beberapa file gambar, di mana muatan keseluruhan lebih besar dari 25 MB, Anda dapat menggunakan Amazon S3. Contoh berikut menunjukkan cara menggunakan Amazon S3 untuk mengunggah gambar ke Amazon Nova:

```
import boto3
import json
import base64
# Create a Bedrock Runtime client
client = boto3.client("bedrock-runtime", 
                      region_name="us-east-1", 
                     )
PRO_MODEL_ID = "us.amazon.nova-pro-v1:0"
LITE_MODEL_ID = "us.amazon.nova-lite-v1:0"
MICRO_MODEL_ID = "us.amazon.nova-micro-v1:0"
PREMIER_MODEL_ID = "us.amazon.nova-premier-v1:0"
messages = [
    {
        "role": "user",
        "content": [
            {
                "image": {
                    "format": "png",
                    "source": {
                        "s3Location": {
                            #Replace the s3 bucket URI 
                            "uri": "s3://demo-bucket/cat.png"
                            "bucketOwner" : "123456789012"
                        }
                    },
                }
            },
            {"text": "Describe the following image"},
        ],
    }
]
inf_params = {"maxTokens": 300, "topP": 0.1, "temperature": 0.3}
model_response = client.converse(
    modelId=LITE_MODEL_ID, messages=messages, inferenceConfig=inf_params
)
print("\n[Full Response]")
print(json.dumps(model_response, indent=2))
print("\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])
```

# Pemahaman video
<a name="modalities-video"></a>

**catatan**  
Dokumentasi ini untuk Amazon Nova Versi 1. Untuk panduan pemahaman video Amazon Nova 2, kunjungi [Pemahaman video](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#video-understanding).

Model Amazon Nova memungkinkan Anda memasukkan satu video ke dalam muatan, yang dapat disediakan dalam format base64 atau melalui URI Amazon S3. Saat menggunakan metode base64, ukuran muatan keseluruhan harus tetap dalam 25 MB. Namun, Anda dapat menentukan URI Amazon S3 untuk pemahaman video. Pendekatan ini memungkinkan Anda memanfaatkan model untuk video yang lebih panjang (berukuran hingga 1 GB) tanpa dibatasi oleh batasan ukuran muatan keseluruhan. Model Amazon Nova dapat menganalisis video yang diteruskan dan menjawab pertanyaan, mengklasifikasikan video, dan meringkas informasi dalam video berdasarkan instruksi yang diberikan.


| Jenis File Media | Format File yang didukung | **Metode Masukan** | 
| --- |--- |--- |
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 *Direkomendasikan untuk ukuran payload kurang dari 25 MB* | 
|  |  | Amazon S3 URI *Direkomendasikan untuk muatan yang lebih besar dari 25 MB hingga 2 GB. File individual harus berukuran 1 GB atau lebih kecil.* | 

Tidak ada perbedaan dalam jumlah token input video, terlepas dari apakah video diteruskan sebagai base64 (asalkan sesuai dengan batasan ukuran) atau melalui lokasi Amazon S3.

Perhatikan bahwa untuk format file 3GP, bidang “format” yang diteruskan dalam permintaan API harus dalam format “three\$1gp”.

Saat menggunakan Amazon S3, pastikan Anda menyetel metadata “Content-Type” ke jenis MIME yang benar untuk video.

## Informasi ukuran video
<a name="modalities-video-size"></a>

Kemampuan pemahaman video Amazon Nova mendukung Rasio Multi-Aspek. Semua video diubah ukurannya dengan distorsi (atas atau bawah, berdasarkan input) ke **672\$1 672 dimensi persegi** sebelum memasukkannya ke model. Model ini menggunakan strategi pengambilan sampel dinamis berdasarkan panjang video. Untuk Amazon Nova Lite dan Amazon Nova Pro, dengan durasi video kurang dari atau sama dengan 16 menit, laju pengambilan sampel 1 frame per detik (FPS) digunakan. Namun, untuk video yang panjangnya melebihi 16 menit, laju pengambilan sampel menurun untuk mempertahankan sampel 960 frame yang konsisten, dengan laju pengambilan sampel bingkai bervariasi. Pendekatan ini dirancang untuk memberikan pemahaman video tingkat adegan yang lebih akurat untuk video yang lebih pendek dibandingkan dengan konten video yang lebih panjang. Kami menyarankan Anda menjaga panjang video kurang dari 1 jam untuk gerakan rendah, dan kurang dari 16 menit untuk apa pun dengan gerakan lebih tinggi. Untuk Amazon Nova Premier, laju pengambilan sampel 1 FPS diterapkan hingga batas 3.200 frame.

Seharusnya tidak ada perbedaan saat menganalisis versi video 4k dan versi Full HD. Demikian pula, karena laju pengambilan sampel paling banyak 1 FPS, video 60 FPS harus berkinerja sebaik video 30 FPS. Karena batas 1 GB dalam ukuran video, menggunakan resolusi yang lebih tinggi dari yang diperlukan dan FPS tidak menguntungkan dan akan membatasi panjang video yang sesuai dengan batas ukuran tersebut. Anda mungkin ingin melakukan pra-proses video lebih dari 1 GB.

# Keterbatasan pemahaman video
<a name="modalities-video-limitations"></a>

Pahami batasan berikut untuk Amazon Nova:
+ **Pemahaman Gambar Multilingual:** Model memiliki pemahaman terbatas tentang gambar multibahasa dan bingkai video dan dapat berjuang atau berhalusinasi pada tugas serupa.
+ **Identifikasi orang**: Model Amazon Nova tidak mendukung kemampuan untuk mengidentifikasi atau memberi nama individu dalam gambar, dokumen, atau video. Model akan menolak untuk melakukan tugas-tugas seperti itu.
+ **Penalaran spasial**: Model Amazon Nova memiliki kemampuan penalaran spasial yang terbatas. Mereka mungkin berjuang dengan tugas-tugas yang membutuhkan lokalisasi atau analisis tata letak yang tepat.
+ **Teks Kecil dalam Gambar/Video**: Jika teks dalam gambar atau video terlalu kecil, pertimbangkan untuk meningkatkan ukuran relatif teks dalam gambar dengan memotong ke bagian yang relevan sambil mempertahankan konteks yang diperlukan.
+ **Menghitung**: Model Amazon Nova dapat memberikan perkiraan jumlah objek dalam gambar, tetapi mungkin tidak selalu akurat, terutama ketika berhadapan dengan sejumlah besar objek kecil.
+ **Konten yang tidak pantas**: Model Amazon Nova tidak akan memproses gambar yang tidak pantas atau eksplisit yang melanggar Kebijakan Penggunaan yang Dapat Diterima.
+ **Aplikasi perawatan kesehatan**: Karena sifat sensitif dari artefak ini, meskipun model Amazon Nova dapat memberikan analisis umum pada gambar atau video perawatan kesehatan, kami tidak menyarankan Anda menafsirkan pemindaian diagnostik yang kompleks. Respons Amazon Nova tidak boleh dianggap sebagai pengganti nasihat medis profesional.

## Token video
<a name="modalities-video-tokens"></a>

Panjang video adalah faktor utama yang memengaruhi jumlah token yang dihasilkan. Untuk menghitung perkiraan biaya, Anda harus mengalikan perkiraan jumlah token video dengan harga per token dari model tertentu yang digunakan.

Tabel berikut memberikan beberapa perkiraan pengambilan sampel bingkai dan pemanfaatan token per panjang video untuk Amazon Nova Pro, Lite, dan Micro:


| video\$1durasi | 10 detik | 30 detik | 16 mnt | 20 menit | 30 menit | 45 menit | 1 jam | 1,5 jam | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 960 | 960 | 960 | 960 | 960 | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 0,755 | 0,5 | 0,35556 | 0,14 | 0,096 | 
| Perkiraan jumlah token | 2,880 | 8.640 | 276,480 | 276,480 | 276,480 | 276,480 | 276,480 | 276,480 | 

Tabel berikut memberikan beberapa perkiraan pengambilan sampel bingkai dan pemanfaatan token per panjang video untuk Amazon Nova Premier:


| video\$1durasi | 10 detik | 30 detik | 16 mnt | 20 menit | 30 menit | 45 menit | 1 jam | 1,5 jam | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Perkiraan jumlah token | 2,880 | 8.640 | 276,480 | 345.600 | 518.400 | 777.600 |  |  | 

Tabel berikut memberikan beberapa perkiraan pengambilan sampel bingkai dan pemanfaatan token per panjang video untuk Amazon Nova Lite 1.5


| video\$1durasi | 10 detik | 30 detik | 16 mnt | 20 menit | 30 menit | 45 menit | 1 jam | 1,5 jam | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Perkiraan jumlah token | 2,880 | 8.640 | 276,480 | 345.600 | 518.400 | 777.600 |  |  | 

# Keterbatasan pemahaman video
<a name="prompting-vision-limitations"></a>

Berikut ini adalah batasan model utama, di mana akurasi dan kinerja model mungkin tidak dijamin.
+ **Satu video per permintaan:** saat ini model hanya mendukung 1 video per permintaan. Beberapa kerangka kerja dan pustaka menggunakan memori untuk melacak interaksi sebelumnya. Mungkin ada video yang ditambahkan dalam konteks sebelumnya.
+ **Tidak ada dukungan audio:** Model saat ini dilatih untuk memproses dan memahami konten video semata-mata berdasarkan informasi visual dalam video. Mereka tidak memiliki kemampuan untuk menganalisis atau memahami komponen audio apa pun yang ada dalam video.
+ **Kausalitas temporal:** Model ini memiliki pemahaman yang terbatas tentang kausalitas peristiwa di seluruh perkembangan video. Meskipun menjawab dengan baik untuk menunjuk pada pertanyaan waktu, itu tidak bekerja dengan baik pada jawaban yang tergantung pada pemahaman urutan peristiwa
+ **Pemahaman gambar multibahasa: Model memiliki pemahaman** terbatas tentang gambar multibahasa dan bingkai video. Mereka mungkin berjuang atau berhalusinasi pada tugas serupa.
+ **Identifikasi orang**: Model Amazon Nova tidak mendukung kemampuan untuk mengidentifikasi atau memberi nama individu dalam gambar, dokumen, atau video. Model akan menolak untuk melakukan tugas-tugas seperti itu.
+ **Penalaran spasial**: Model Amazon Nova memiliki kemampuan penalaran spasial yang terbatas. Mereka mungkin berjuang dengan tugas-tugas yang membutuhkan lokalisasi atau analisis tata letak yang tepat.
+ **Teks kecil dalam gambar atau video**: Jika teks dalam gambar atau video terlalu kecil, pertimbangkan untuk meningkatkan ukuran relatif teks dalam gambar dengan memotong ke bagian yang relevan sambil mempertahankan konten yang diperlukan.
+ **Menghitung**: Model Amazon Nova dapat memberikan perkiraan jumlah objek dalam gambar, tetapi mungkin tidak selalu akurat, terutama ketika berhadapan dengan sejumlah besar objek kecil.
+ **Konten yang tidak pantas**: Model Amazon Nova tidak akan memproses gambar yang tidak pantas atau eksplisit yang melanggar Kebijakan Penggunaan yang Dapat Diterima
+ **Aplikasi perawatan kesehatan**: Karena sifat sensitif dari artefak ini, meskipun model Amazon Nova dapat memberikan analisis umum pada gambar atau video perawatan kesehatan, kami tidak menyarankan Anda menafsirkan pemindaian diagnostik yang kompleks. Tanggapan Amazon Nova tidak boleh dianggap sebagai pengganti nasihat medis profesional.

# Contoh pemahaman video
<a name="modalities-video-examples"></a>

Contoh berikut menunjukkan cara mengirim prompt video ke Amazon Nova Model dengan [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html).

```
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Open the image you'd like to use and encode it as a Base64 string.
with open("media/cooking-quesadilla.mp4", "rb") as video_file:
    binary_data = video_file.read()
    base_64_encoded_data = base64.b64encode(binary_data)
    base64_string = base_64_encoded_data.decode("utf-8")
# Define your system prompt(s).
system_list= [
    {
        "text": "You are an expert media analyst. When the user provides you with a video, provide 3 potential video titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "video": {
                    "format": "mp4",
                    "source": {
                        "bytes": video // Binary array (Converse API) or Base64-encoded string (Invoke API)
                    },
                }
            },
            {
                "text": "Provide video titles for this clip."
            },
        ],
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

Contoh berikut menunjukkan cara mengirim video menggunakan lokasi Amazon S3 ke Amazon Nova dengan. [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)

```
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Define your system prompt(s).
system_list = [
    {
        "text": "You are an expert media analyst. When the user provides you with a video, provide 3 potential video titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "video": {
                    "format": "mp4",
                    "source": {
                        "s3Location": {
                            "uri": "s3://my_bucket/my_video.mp4", 
                            "bucketOwner": "111122223333"
                        }
                    }
                }
            },
            {
                "text": "Provide video titles for this clip."
            }
        ]
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

# Pemahaman dokumen
<a name="modalities-document"></a>

**catatan**  
Dokumentasi ini untuk Amazon Nova Versi 1. Untuk panduan pemahaman dokumen Amazon Nova 2, kunjungi [Pemahaman dokumen](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#document-understanding).

Kemampuan pemahaman dokumen Amazon Nova memungkinkan Anda untuk memasukkan seluruh dokumen (PDFs, file Word, spreadsheet, dll.) Dalam prompt Anda dan mengajukan pertanyaan atau permintaan tentang konten mereka. Model pemahaman multimodal Nova (Lite, Pro, Premier) dapat menafsirkan teks dan elemen visual (seperti bagan atau tabel) dalam dokumen-dokumen ini. Ini memungkinkan kasus penggunaan seperti menjawab pertanyaan, meringkas, dan analisis laporan panjang atau dokumen yang dipindai. Fitur utama termasuk jendela konteks yang sangat besar (1-2M token) untuk dokumen panjang dan kemampuan untuk menangani beberapa dokumen dalam satu kueri. 

Amazon Nova membedakan antara dua jenis input dokumen:
+ **Jenis dokumen berbasis teks** (misalnya TXT, CSV, Markdown, HTML, DOC): Ini diproses terutama untuk konten tekstualnya. Nova akan fokus pada pemahaman dan penggalian informasi dari teks dalam dokumen-dokumen ini. 
+ **Jenis dokumen berbasis media** (misalnya PDF, DOCX): File-file ini mungkin berisi tata letak kompleks, gambar, bagan, atau grafik tertanam. Untuk dokumen berbasis media, Nova memproses elemen visual dan tekstual. Nova menggunakan pemahaman berbasis visi untuk menafsirkan konten visual — seperti bagan, tabel, diagram, atau tangkapan layar — di samping teks dokumen.

  JPEG2000 dan JBIG2 tidak didukung dalam file PDF di Amazon Nova.

Format file yang didukung mencakup jenis dokumen umum: teks biasa dan file teks terstruktur (CSV, TXT), spreadsheet (XLS/XLSX), HTML/Markdown, Word documents (DOC/DOCX), dan file PDF. Untuk gambar dalam dokumen, format gambar standar (PNG, JPG, GIF, WebP) ditangani, meskipun PDFs mengandung pengkodean gambar tertentu (CYMK, SVG) tidak didukung. 


**Batas Ukuran Dokumen dan Pedoman Penggunaan**  

| Kendala | Kuota | 
| --- | --- | 
|  Jumlah dokumen maksimum  |  Hingga 5 dokumen per permintaan (berlaku untuk upload langsung dan Amazon S3)  | 
|  Ukuran dokumen berbasis teks  |  Setiap dokumen teks (mis., .txt, .csv, .md, .html, .doc) harus ≤ 4,5 MB  | 
|  Ukuran dokumen berbasis media  |  Untuk file.pdf dan.docx, tidak ada batasan ukuran file individual, tetapi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/nova/latest/userguide/modalities-document.html)  | 
|  Konten PDF yang tidak didukung  |  PDFs yang berisi profil warna CMYK atau gambar SVG tidak didukung  | 

# Menggunakan Pemahaman Dokumen Nova melalui API
<a name="modalities-document-examples"></a>

Untuk mengilustrasikan cara menggunakan Amazon Nova untuk dokumen QA (Question-Answering) atau analisis, berikut adalah contoh sederhana dalam Python. Kami akan menggunakan API AWS Bedrock (melalui Boto3 SDK) untuk mengirim dokumen PDF bersama dengan pertanyaan untuk dijawab model.

```
            
import base64
import base64
import json
import boto3

# Initialize Bedrock runtime client (adjust region as needed)
client = boto3.client("bedrock-runtime", region_name="us-east-1")

MODEL_ID = "us.amazon.nova-lite-v1:5"  # using Nova Lite model in this example

# Read the document file (PDF) in binary mode
with open("my_document.pdf", "rb") as file:
    doc_bytes = file.read()

# Construct the conversation messages with document + question
messages = [
    {
        "role": "user",
        "content": [
            {
                "document": {
                    "format": "pdf",
                    "name": "Document1",  # neutral name for the document
                    "source": {
                        "bytes": doc_bytes  # embedding the PDF content directly
                    }
                }
            },
            {
                "text": "Here is a question about the document: ... (your question) ... ?"
            }
        ]
    }
]

# Set inference parameters (optional)
inf_params = {"maxTokens": 4000, "topP": 0.1, "temperature": 0.3}

# Invoke the model
response = client.converse(modelId=MODEL_ID, messages=messages, inferenceConfig=inf_params)

# Extract and print the answer
answer_text = response["output"]["message"]["content"][0]["text"]
print(answer_text)
```

Jika file input Anda besar (melebihi batas unggah langsung 25 MB) atau Anda memiliki banyak file, Anda dapat menyimpannya di Amazon S3 dan mereferensikannya. Ini menghindari pengiriman byte mentah melalui permintaan. Saat menggunakan S3, pastikan layanan Bedrock memiliki izin untuk mengakses ember/objek. Misalnya, untuk mereferensikan PDF di S3, sumber dokumen Anda akan menggunakan “S3location” alih-alih “byte”, seperti:

```
messages = [
    {
        "role": "user",
        "content": [
            {
                "document": {
                    "format": "pdf",
                    "name": "Report2023",
                    "source": {
                        "s3Location": {
                            "uri": "s3://your-bucket/path/to/document1.pdf",
                            "bucketOwner": "123456789012"
                        }
                    }
                }
            },
            {
                "text": "Summarize the key findings from the Q3 2023 report."
            }
        ]
    }
]
```

**catatan**  
Nama dokumen hanya dapat mencakup karakter alfanumerik, tanda hubung, tanda kurung, dan tanda kurung siku.  
`name`Bidang ini rentan terhadap suntikan cepat, karena model mungkin secara tidak sengaja menafsirkannya sebagai instruksi. Oleh karena itu, kami menyarankan Anda menentukan nama netral.

# Penanganan kesalahan
<a name="text-error-handing"></a>

Cara kesalahan dikomunikasikan kembali ke klien bervariasi tergantung pada jenis kesalahan yang terjadi. Di bagian ini, kami hanya fokus pada kondisi kesalahan yang unik untuk model Amazon Nova. Tiga jenis kesalahan utama yang ingin Anda tangani dalam kode aplikasi Anda adalah kesalahan **validasi input**, kesalahan defleksi **input AI (RAI) yang bertanggung jawab, dan kesalahan defleksi keluaran **RAI****.

**Validasi masukan:** Kesalahan validasi input terjadi saat Anda menggunakan nilai yang tidak didukung untuk parameter input. Misalnya, out-of-bounds nilai untuk suhu, atau format input yang salah`image`. Semua kesalahan validasi input dinyatakan sebagai **ValidationException**yang berisi string pesan yang menjelaskan penyebab masalah.

Kesalahan **defleksi input RAI** terjadi ketika salah satu nilai teks input atau gambar ditentukan untuk melanggar kebijakan AI Bertanggung Jawab. AWS Kesalahan ini dinyatakan sebagai **ValidationException**dengan salah satu pesan berikut:
+ **Masukan pesan validasi teks**: “Permintaan ini telah diblokir oleh filter konten kami. Harap sesuaikan prompt teks Anda untuk mengirimkan permintaan baru.
+ **Masukan pesan validasi gambar**: “Permintaan ini telah diblokir oleh filter konten kami. Harap sesuaikan gambar masukan Anda untuk mengirimkan permintaan baru.”
+ **Masukan pesan validasi Video**: “Permintaan ini telah diblokir oleh filter konten kami. Harap sesuaikan video masukan Anda untuk mengirimkan permintaan baru.”

Kesalahan defleksi keluaran RAI terjadi ketika output dihasilkan tetapi ditentukan tidak selaras dengan kebijakan AI yang Bertanggung Jawab. AWS Ketika ini terjadi, pengecualian tidak digunakan. Sebagai gantinya, respons yang berhasil dikembalikan, dan strukturnya berisi `error` bidang yang merupakan string dengan salah satu nilai berikut:
+ Pesan validasi **teks keluaran**: “Teks yang dihasilkan telah diblokir oleh filter konten kami.”