

# ドキュメント理解
<a name="modalities-document"></a>

**注記**  
このドキュメントは Amazon Nova バージョン 1 を対象としています。Amazon Nova 2 ドキュメント理解ガイドについては、「[ドキュメントの理解](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#document-understanding)」を参照してください。

Amazon Nova のドキュメント理解機能を使用すると、プロンプトにドキュメント全体 (PDF、Word ファイル、スプレッドシートなど) を含め、そのコンテンツに関する質問やリクエストを行うことができます。Nova のマルチモーダル理解モデル (Lite、Pro、Premier) は、これらのドキュメント内のテキスト要素とビジュアル要素 (グラフやテーブルなど) の両方を解釈できます。これにより、質問応答、要約、長いレポートやスキャンされたドキュメントの分析などのユースケースに対応できるようになります。主な機能には、長いドキュメント用の非常に大きなコンテキストウィンドウ (1～200 万トークン) や、1 つのクエリで複数のドキュメントを処理する機能などがあります。

Amazon Nova は、次の 2 種類のドキュメント入力を区別します。
+ **テキストベースのドキュメントタイプ** (TXT、CSV、Markdown、HTML、DOC など): これらは主にテキストコンテンツに対して処理されます。Nova は、これらのドキュメントのテキストからの情報の理解と抽出に焦点を当てます。
+ **メディアベースのドキュメントタイプ** (PDF、DOCX など): これらのファイルには、複雑なレイアウト、画像、グラフ、または埋め込みグラフィックが含まれている場合があります。メディアベースのドキュメントの場合、Nova はビジュアル要素とテキスト要素の両方を処理します。Nova は、ビジョンベースの理解を使用して、グラフ、テーブル、図、スクリーンショットなどのビジュアルコンテンツをドキュメントのテキストとともに解釈します。

  JPEG2000 および JBIG2 は、Amazon Nova の PDF ファイルではサポートされていません。

サポートされているファイル形式には、プレーンテキストファイルと構造化テキストファイル (CSV、TXT)、スプレッドシート (XLS/XLSX)、HTML/Markdown、Word ドキュメント (DOC/DOCX)、PDF ファイルなどの一般的なドキュメントタイプがあります。ドキュメント内の画像については、標準画像形式 (PNG、JPG、GIF、WebP) は処理されますが、特定の画像エンコーディング (CYMK、SVG) を含む PDF はサポートされていません。


**ドキュメントサイズの制限と使用ガイドライン**  

| 制約 | 制限 | 
| --- | --- | 
|  ドキュメントの最大数  |  リクエストごとに最大 5 つのドキュメント (直接アップロードと Amazon S3 の両方に適用)  | 
|  テキストベースのドキュメントサイズ  |  各テキストドキュメント (.txt、.csv、.md、.html、.doc など) は 4.5 MB 以下である必要があります  | 
|  メディアベースのドキュメントサイズ  |  .pdf ファイルと .docx ファイルの場合、個別のファイルサイズ制限はありませんが、以下が適用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/nova/latest/userguide/modalities-document.html)  | 
|  サポートされていない PDF コンテンツ  |  CMYK カラープロファイルまたは SVG 画像を含む PDF はサポートされていません  | 

# API による Nova のドキュメント理解の使用
<a name="modalities-document-examples"></a>

ドキュメント QA (質問応答) または分析に Amazon Nova を使用する方法を説明するために、Python の簡略化された例を次に示します。AWS Bedrock API (Boto3 SDK 経由) を使用して、モデルが回答する質問とともに PDF ドキュメントを送信します。

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

入力ファイルが大きい場合 (25 MB の直接アップロード制限を超えている場合）、または多数のファイルがある場合は、Amazon S3 に保存して参照できます。これにより、リクエストに生のバイトが送信されなくなります。S3 を使用する場合は、Bedrock サービスにバケット/オブジェクトへのアクセス許可があることを確認します。たとえば、S3 で PDF を参照する場合、ドキュメントソースは「bytes」の代わりに「s3Location」を使用します。

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

**注記**  
ドキュメント名には、英数字、ハイフン、括弧、角括弧のみを使用できます。  
モデルが誤って指示として解釈する可能性があるため、`name` フィールドはプロンプトインジェクションに対して脆弱です。したがって、中立的な名前を指定することが推奨されます。