文件 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

文件

文件的標準輸出可讓您設定感興趣的回應精細程度,以及在輸出中建立輸出格式和文字格式。以下是您可以啟用的一些輸出。

注意

BDA 可以處理 DOCX 檔案。若處理 DOCX 檔案,它們會轉換為 PDF。這表示頁碼映射不適用於 DOCX 檔案。如果選取 JSON+ 選項和頁面精細程度,則會將已轉換 PDF 的影像上傳至輸出儲存貯體。

回應精細程度

回應精細程度決定您希望從文件文字擷取中接收的回應類型。精細程度層級越高,得到的回應就越分散,頁面層級提供一起擷取的所有文字,而單字層級則提供每個單字作為個別的回應。可用的精細程度層級為:

  • 頁面層級精細程度 – 預設會啟用此選項。頁面層級精細程度會以您選擇的文字輸出格式提供文件的每個頁面。如果您正在處理 PDF,啟用此精細程度層級會偵測並傳回內嵌超連結。

  • 元素層級精細程度 (配置) – 預設會啟用此選項。以您選擇的輸出格式提供文件的文字,並分為不同的元素。例如圖片、資料表或段落等元素。這些元素會根據文件的結構,以邏輯讀取順序傳回。如果您正在處理 PDF,啟用此精細程度層級會偵測並傳回內嵌超連結。

  • 單字層級精細程度 – 提供個別單字的相關資訊,而不使用更廣泛的內容分析。提供頁面上的每個單字及其位置。

輸出設定

輸出設定會決定您下載結果的結構方式。此設定僅適用於主控台。輸出設定的選項包括:

  • JSON – 文件分析的預設輸出結構。提供 JSON 輸出檔案,其中包含組態設定的資訊。

    • 非同步 InvokeDataAutomationAsync API:非同步 API 的 JSON 輸出僅為 S3。

    • 同步 InvokeDataAutomation API:JSON 輸出可以設定為 S3 或利用 內嵌outputconfiguration。如果選取 S3,則輸出 JSON 只會移至 S3 (非內嵌)。如果未提供 S3,同步 API 輸出僅支援 JSON 內嵌。

  • JSON+files – 僅適用於非同步 InvokeDataAutomationAsync API。使用此設定可同時產生與不同輸出對應的 JSON 輸出和檔案。例如,此設定會提供一個整體文字擷取的文字檔案、一個包含結構化 Markdown 之文字的 Markdown 檔案,以及在文字中找到的每個資料表的 CSV 檔案。也會儲存文件內的圖片,以及圖形裁剪和修正後的影像。此外,如果您處理的是 DOCX 檔案,且已選取此選項,則 DOCX 檔案的轉換後 PDF 將位於輸出資料夾中。這些輸出位於您的輸出資料夾中的 standard_output/logical_doc_id/assets/

注意
  • 同步 API 不會輸出 JSON 以外的任何其他檔案。輸出 JSON 僅包含選取為標準輸出文字格式一部分的文字格式。同步 API 不會輸出圖形裁剪或修正影像。

  • Sync API 不支援 DocX。

文字格式

文字格式決定了將透過各種擷取操作提供的不同文字類型。您可以為您的文字格式選取任意數量的下列選項。

  • 純文字 – 此設定提供純文字輸出,不包含任何格式或其他 Markdown 元素。

  • 包含 Markdown 的文字 – 標準輸出的預設輸出設定。提供整合了 Markdown 元素的文字。

  • 包含 HTML 的文字 – 提供整合在回應中之 HTML 元素的文字。

  • CSV – 提供文件中資料表的 CSV 結構化輸出。這只會提供資料表的回應,而不會提供文件的其他元素。

邊界框和生成式欄位

對於文件,有兩個回應選項可根據選取的精細程度來變更其輸出。分別是邊界框和生成式欄位。選取「邊界框」將顯示您在主控台回應下拉式清單中按一下的元素或單字的視覺輪廓。這可讓您更輕鬆地追蹤回應的特定元素。邊界框以方塊四個角點的座標形式傳回到 JSON 中。

當您選取「生成式欄位」時,會產生文件摘要,包括 10 個單字和 250 個單字版本。然後,如果您選取元素作為回應精細程度,則會產生文件中偵測到每個圖片的描述性字幕。圖片包含圖表、圖形和影像等物件。

Async

本節著重於您在文件檔案上執行 API 操作 InvokeDataAutomationAsync 時收到的不同回應物件。以下我們將細分回應物件的每個區段,然後查看範例文件的完整填入回應。我們會收到的第一個區段是 metadata

"metadata":{ "logical_subdocument_id":"XXXX-XXXX-XXXX-XXXX", "semantic_modality":"DOCUMENT", "s3_bucket":"bucket", "s3_prefix":"prefix" },

上述第一個區段提供與文件相關聯的中繼資料概觀。除了 S3 資訊之外,本區段也會通知您為回應選取了哪些模態。

"document":{ "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "description":"document text", "summary":"summary text", "statistics":{ "element_count":5, "table_count":1, "figure_count":1, "word_count":1000, "line_count":32 } },

上述區段提供文件層級精細程度資訊。描述和摘要區段是根據文件產生的欄位。表示區段以各種格式樣式提供文件的實際內容。最後,統計資料包含文件實際內容的資訊,例如有多少語意元素、有多少圖片、單字、行等。

這是資料表實體的資訊。對於 InvokeDataAutomationAsync (非同步) 請求,除了位置資訊、文字、資料表和讀取順序的不同格式之外,它們還特別在 S3 儲存貯體中傳回資料表的 csv 資訊和裁切影像。CSV 資訊會顯示不同的標頭、頁尾和標題。影像將路由至 InvokeDataAutomationAsync 請求中設定字首的 s3 儲存貯體。對於 InvokeDataAutomation (同步) 請求,不支援 S3 儲存貯體中資料表的 csv 和裁剪映像。

當您處理 PDF 時,回應的統計資料區段也會包含 hyperlinks_count,告訴您文件中有多少超連結。

{ "id":"entity_id", "type":"TEXT", "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "reading_order":2, "page_indices":[ 0 ], "locations":[ { "page_index":0, "bounding_box":{ "left":0.0, "top":0.0, "width":0.05, "height":0.5 } } ], "sub_type":"TITLE/SECTION_TITLE/HEADER/FOOTER/PARAGRAPH/LIST/PAGE_NUMBER" },

這是用於文件中文字的實體,由回應中的 TYPE 行表示。同樣地,表示法會以不同的格式顯示文字。reading_order 顯示讀者在邏輯上看到文字的順序。這是根據相關聯索引鍵和值的語意排序。例如,它會依讀取順序將段落標題與其對應的段落建立關聯。page_indices 告訴您文字所在的頁面。接下來是位置資訊,如果回應中啟用了文字邊界框,則會提供文字邊界框。最後是實體子類型。這個子類型提供有關偵測到的文字類型的更詳細資訊。如需子類型的完整清單,請參閱《API 參考》。

{ "id":"entity_id", "type":"TABLE", "representation":{ "html":"table.../table", "markdown":"| header | ...", "text":"header \t header", "csv":"header, header, header\n..." }, "csv_s3_uri":"s3://", "headers":[ "date", "amount", "description", "total" ], "reading_order":3, "title":"Title of the table", "footers":[ "the footers of the table" ], "crop_images":[ "s3://bucket/prefix.png", "s3://bucket/prefix.png" ], "page_indices":[ 0, 1 ], "locations":[ { "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } }, { "page_index":1, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } ], "sub_type":"TITLE/SECTION_TITLE/HEADER/FOOTER/PARAGRAPH/LIST/PAGE_NUMBER" },

這是資料表實體的資訊。除了位置資訊、不同格式的文字、資料表和讀取順序之外,它們還會特別傳回 S3 儲存貯體中資料表的 csv 資訊和裁剪影像。CSV 資訊會顯示不同的標頭、頁尾和標題。影像將路由至 InvokeDataAutomation 請求中設定字首的 s3 儲存貯體。

{ "id":"entity_id", "type":"FIGURE", "summary":"", "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "crop_images":[ "s3://bucket/prefix.png", "s3://bucket/prefix.png" ], "locations":[ { "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } ], "sub_type":"CHART", "title":"figure title", "rai_flag":"APPROVED/REDACTED/REJECTED", "reading_order":1, "page_indices":[ 0 ] } ,

這是用於文件圖形和圖表等圖片的實體。與資料表類似,這些圖片將被裁切,並將影像傳送到字首設定的 s3 儲存貯體。此外,您還會收到標題文字的 sub_type 和圖片標題回應,以及圖形類型的指示。

"pages":[ { "id":"page_id", "page_index":0, "detected_page_number":1, "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "statistics":{ "element_count":5, "table_count":1, "figure_count":1, "word_count":1000, "line_count":32 }, "asset_metadata":{ "rectified_image":"s3://bucket/prefix.png", "rectified_image_width_pixels":1700, "rectified_image_height_pixels":2200 } } ],

我們透過標準輸出擷取的最後一個實體是「頁面」。頁面與文字實體相同,但還包含頁碼 (若在頁面上偵測到頁碼)。

"text_lines":[ { "id":"line_id", "text":"line text", "reading_order":1, "page_index":0, "locations":{ "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } } ],
"text_words":[ { "id":"word_id", "text":"word text", "line_id":"line_id", "reading_order":1, "page_index":0, "locations":{ "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } } ]

最後兩個元素適用於個別文字部分。單字層級精細程度會傳回每個單字的回應,而預設輸出只會報告文字行。

Sync

本節著重於在文件檔案上執行 API 操作 InvokeDataAutomation 時收到的不同回應物件。以下我們將細分回應物件的每個區段,然後查看範例文件的完整填入回應。我們會收到的第一個區段是 metadata

"metadata": { "logical_subdocument_id": "1", "semantic_modality": "DOCUMENT", "number_of_pages": X, "start_page_index": "1", "end_page_index": X, "file_type": "PDF" },

上述第一個區段提供與文件相關聯的中繼資料概觀。由於同步 InvokeDataAutomation API 目前不支援文件分割,因此 logical_subdocument_id 一律等於 1。

"document":{ "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "description":"document text", "summary":"summary text", "statistics":{ "element_count":5, "table_count":1, "figure_count":1, "word_count":1000, "line_count":32 } },

上述區段提供文件層級精細程度資訊。描述和摘要區段是根據文件產生的欄位。表示區段以各種格式樣式提供文件的實際內容。最後,統計資料包含文件實際內容的資訊,例如有多少語意元素、有多少圖片、單字、行等。

注意:與非同步 InvokeDataAutomationAsync 請求不同,同步 InvokeDataAutomation 請求不支援傳回 S3 儲存貯體中資料表的 csv 資訊和裁切影像。

{ "id":"entity_id", "type":"TEXT", "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "reading_order":2, "page_indices":[ 0 ], "locations":[ { "page_index":0, "bounding_box":{ "left":0.0, "top":0.0, "width":0.05, "height":0.5 } } ], "sub_type":"TITLE/SECTION_TITLE/HEADER/FOOTER/PARAGRAPH/LIST/PAGE_NUMBER" },

這是用於文件中文字的實體,由回應中的 TYPE 行表示。同樣地, 表示法會以不同的格式顯示文字。 reading_order 會顯示讀取器在邏輯上看到文字的時間。這是根據相關聯索引鍵和值的語意排序。例如,它會依讀取順序將段落標題與其個別段落建立關聯。page_indices 會告訴您文字所在的頁面。接下來是位置資訊,如果回應中啟用了文字邊界框,則會提供文字邊界框。最後是實體子類型。這個子類型提供有關偵測到的文字類型的更詳細資訊。如需子類型的完整清單,請參閱《API 參考》。

{ "id": "entity_id", "type": "TABLE", "representation": { "html": "table.../table", "markdown": "| header | ...", "text": "header \t header", "csv": "header, header, header\n..." }, "headers": ["date", "amount", "description", "total"], "reading_order": 3, "title": "Title of the table", "footers": ["the footers of the table"], "page_indices": [0, 1], "locations": [{ "page_index": 0, "bounding_box": { "left": 0, "top": 0, "width": 1, "height": 1 } }, { "page_index": 1, "bounding_box": { "left": 0, "top": 0, "width": 1, "height": 1 } }] },

這是資料表實體的資訊。CSV 資訊會顯示不同的標頭、頁尾和標題。

{ "id": "entity_id", "type": "FIGURE", "summary": "", "representation": { "text": "document text", "html": "document title document content", "markdown": "# text" }, "locations": [ { "page_index": 0, "bounding_box": { "left": 0, "top": 0, "width": 1, "height": 1 } } ], "sub_type": "CHART", "title": "figure title", "reading_order": 1, "page_indices": [ 0 ] }, ​

這是用於文件圖形和圖表等圖片的實體。您會收到標題文字的 sub_type 和圖形標題回應,以及其圖形類型的指示。

"pages":[ "pages":[ { "id":"page_id", "page_index":0, "detected_page_number":1, "representation":{ "text":"document text", "html":"document title document content", "markdown":"# text" }, "statistics":{ "element_count":5, "table_count":1, "figure_count":1, "word_count":1000, "line_count":32 }, "asset_metadata":{ "rectified_image":"s3://bucket/prefix.png", "rectified_image_width_pixels":1700, "rectified_image_height_pixels":2200 } } ],

我們透過標準輸出擷取的最後一個實體是「頁面」。頁面與文字實體相同,但還包含頁碼 (若在頁面上偵測到頁碼)。

"text_lines":[ { "id":"line_id", "text":"line text", "reading_order":1, "page_index":0, "locations":{ "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } } ],
"text_words":[ { "id":"word_id", "text":"word text", "line_id":"line_id", "reading_order":1, "page_index":0, "locations":{ "page_index":0, "bounding_box":{ "left":0, "top":0, "width":1, "height":1 } } } ]

最後兩個元素適用於個別文字部分。單字層級精細程度會傳回每個單字的回應,而預設輸出只會報告文字行。

其他檔案格式中繼資料 JSON

當您從其他檔案格式旗標收到其他檔案時,您會收到任何擷取之修正影像的 JSON 檔案。BDA 使用單應性變換來把旋轉的影像調整到 90 度。JSON 的範例如下:

"asset_metadata": { "rectified_image": "s3://bucket/prefix.png", "rectified_image_width_pixels": 1700, "rectified_image_height_pixels": 2200, "corners": [ [ 0.006980135689736235, -0.061692718505859376 ], [ 1.10847711439684, 0.00673927116394043 ], [ 0.994479346419327, 1.050548828125 ], [ -0.11249661383904497, 0.9942819010416667 ] ] }

邊角代表偵測到的影像邊角,用來形成文件的單應性矩陣。此單應性矩陣用於在保持影像其他屬性不變的情況下旋轉影像。