Amazon Web Services ブログ

スキャンしたPDFをAmazon Q Businessで利用し、生産性を向上させる

本記事は、2024年7月2日に投稿された Improve productivity when processing scanned PDFs using Amazon Q Business を翻訳したものです。翻訳は Hiroaki Hattori が担当しました。

Amazon Q Business は、生成 AI 対話アシスタントであり、企業のデータソースに格納されたデジタルコンテンツだけでなくスキャンした PDF からも、事前のテキスト抽出をせずとも直接質問に答えたり、要約を作成したり、コンテンツを生成したり、インサイトを発見することが可能になりました。

金融、保険、ヘルスケア、ライフサイエンスなど、さまざまな業界の顧客は、領収書、ヘルスケアプラン、税務申告書などのさまざまな種類のドキュメントからインサイトを得る必要がありますが、これらのドキュメントは、 PDF でスキャンし保存していることが多いです。さらにそのドキュメント形式は、半構造化または非構造化されたフォーマットになっているため、Amazon Q Business でインデックス化する前に、ドキュメントからテキストを抽出する処理が必要でした。

Amazon Q Business のスキャンした PDF のサポート開始により、Amazon Q Business が対応する AWS リージョンにおいて、AWS マネジメントコンソールや API を介し、さまざまな種類のドキュメント形式をシームレスに処理できるようになります。スキャンした PDF を含むドキュメントを、サポートされるコネクタを使用してデータソースから取り込み、インデックス化することで、企業のデータを安全に活用し、質問に回答したりコンテンツを生成できます。この機能により、Amazon Q Business とは別で対応が必要であったスキャンした PDF からテキストを抽出するための開発作業が不要となり、Amazon Q Business を使用した生成 AI アシスタントを作成する際の一連のドキュメント処理フローが改善されます。

この記事では、Amazon Q Business を使用し、スキャンした PDF ドキュメントを非同期でインデックス化、リアルタイムでクエリを実行する方法を説明します。

ソリューション概要

スキャンした PDF ドキュメントを Amazon Q Business で使うには、コンソール、AWS SDK、または AWS Command Line Interface (AWS CLI) のいずれかが利用できます。

Amazon Q Business は幅広いデータソースと統合できるデータコネクタを提供しており、最小限のセットアップと設定で生成 AI ソリューションを作成できます。詳細については、生成 AI を使用して従業員の生産性向上を支援する Amazon Q Business の一般提供開始 をご覧ください。

Amazon Q Business アプリケーションを利用する準備ができたら、コンソールまたは API を使用して、スキャンした PDF ファイルを Amazon Q Business のインデックスに直接アップロードできます。Amazon Q Business はマルチデータソースコネクタを提供しており、複数のデータリポジトリのデータを 1 つのインデックスに統合・同期することができます。この記事では、ドキュメントを使用する 2 つのシナリオを例示します。1 つは直接ドキュメントをアップロードする方法、もう 1 つは Amazon Simple Storage Service (Amazon S3) コネクタを使用する方法です。他のデータソースからドキュメントを取り込む必要がある場合は、サポートするコネクタ を参照して、追加のデータソースを接続する方法の詳細を確認してください。

ドキュメントのインデックス作成

この記事では、スキャンした PDF ドキュメントとして請求書、健康保険の概要、雇用確認書という 3 つのドキュメントといくつかのテキストドキュメントを使用します。

最初のステップは、これらのドキュメントをインデックス化することです。Amazon Q Business の直接アップロードする機能を使用してドキュメントをインデックス化するには、以下の手順を実行してください。この例では、スキャンした PDF ドキュメントをアップロードします。

  1. Amazon Q Business コンソールで、ナビゲーションペインから Applications を選択し、アプリケーションを開きます。
  2. Add data source を選択します。
  3. Upload Files  を選択します。
  4. スキャンした PDF ファイルをアップロードします。

アップロードしたファイルは Data Sources タブで確認できます。Upload Status は、Received から Processing に変わり、最終的に Indexed または Updated になります。この時点で、ファイルが Amazon Q Business のデータストアに読み込まれたことになります。次のスクリーンショットは、正常に読み込まれた PDF の例を示しています。

Indexed documents in uploaded files section.以下のステップは、Amazon Q Business で Amazon S3 コネクタを使用してドキュメントを統合・同期する方法を示しています。この例では、テキストドキュメントをインデックス化します。

  1. Amazon Q Business コンソールで、ナビゲーションペインから Applications を選択し、アプリケーションを開きます。
  2. Add data source を選択します。
  3. コネクタとして Amazon S3 を選択します。
  4. Name、VPC、security group setting、IAM ロール、 Sync mode の情報を入力します。
  5. データソースを Amazon Q Business に接続するため、Add data source を選択します。
  6. コネクタの詳細ページの Data source details セクションにおいて、Sync now を選択することで、Amazon Q Business がデータソースからのデータの同期 (クロールと取り込み) を開始できます。

同期ジョブが完了すると、データソースを利用できるようになります。次のスクリーンショットは、5 つのドキュメント (スキャンされた PDF、デジタル PDF、テキストファイル) がすべて正常にインデックス化されたことを示しています。

Amazon S3 connector

次のスクリーンショットは、直接アップロードしたドキュメントと、Amazon S3 コネクタを通して取り込まれたドキュメントという2 つのデータソースに関する情報を示しています。

Amazon Q Business data sources.

それでは、Amazon Q Business を使って、データソースに対してクエリを実行してみましょう。

スキャンされた PDF の情報量が多く、非構造化であるドキュメントに対するクエリ

スキャンした PDF ドキュメントが情報量が多く、構造化されていないとします。Amazon Q Business は、非常に情報が込み入ったテキストであってもドキュメントを認識し情報を抽出します。この例では、先ほどインデックス化した複数ページの健康保険プラン概要の PDF を使用します。次のスクリーンショットは、その 1 ページを示しています。

Health plan summary document.

これは健康保険プラン概要の一例です。

Amazon Q Business Web UI では、「What is the annual total out-of-pocket maximum, mentioned in the health plan summary?(健康保険概要プランに記載されている年間自己負担上限総額はいくらですか?)」と質問しています。

Amazon Q Business はインデックス化されたドキュメントを検索し、関連する情報を検索して回答を生成し、その情報のソースを引用します。次のスクリーンショットにサンプル出力を示します。

Amazon Q Business output

スキャンした PDF が構造化されており、表形式であるドキュメントに対するクエリ

ドキュメントには表形式の構造化データが要素として含まれる場合もあります。Amazon Q Business はスキャンした PDF から構造化データを自動的に特定、抽出し、ユーザーからの質問に正しく回答することができます。次の例では、事前にインデックス化した請求書 の PDF を使用しており、スクリーンショットはその PDFの 1 ページを示しています。

Invoice

これは請求書の一例です。

Amazon Q Business Web UI では、「How much were the headphones charged in the invoice?(請求書でヘッドフォンの請求金額はいくらでしたか?)」と質問しています。

Amazon Q Business はインデックス化されたドキュメントを検索し、情報源となるドキュメントを参照して答えを取得します。次のスクリーンショットは、Amazon Q Business が請求書から課金情報を抽出した回答例を示しています。

Amazon Q Business output

半構造化されたフォームに対するクエリ

ドキュメントには、キーと値のペアといったフォーム形式で半構造化データが含まれている可能性があります。Amazon Q Business では、クエリに関係する特定の項目や属性を取り出すことにより、これらのデータに関連するクエリに正しく回答することができます。次の例では雇用確認書の PDF を使用しており、スクリーンショットは、そのドキュメント例です。

雇用確認サンプル

これは雇用確認フォームの一例です。

Amazon Q Business Web UI では、「What is the applicant’s date of employment in the employment verification form?(雇用確認書にある求職者の雇用開始日はいつですか?)」と質問します。Amazon Q Business はインデックス化された雇用確認書を検索し、ソースドキュメントを参照しながら回答します。

Amazon Q Business output

AWS CLI を使用したドキュメントのインデックス作成

このセクションでは、AWS CLI を使用して、S3 バケットに格納されている構造化ドキュメントと非構造化ドキュメントを Amazon Q Business インデックスに取り込む方法を説明します。ドキュメントの詳細情報 (ステータスやインデックス作成中のエラーなど) をより早く取得できます。もし、PDF ファイルやその他のサポートされているファイル形式でインデックス化したドキュメントを保持する既存の Amazon Q Business ユーザ であり、スキャンしたドキュメントを再インデックス化したい場合は、以下の手順を実行してください。

  1. それぞれのドキュメントのステータスを確認することで、ステータスが "DOCUMENT_FAILED_TO_INDEX" のような失敗したドキュメントを絞り込むことが出来ます。また、次のエラーメッセージに基づいてドキュメントを絞り込むことも可能です。"errorMessage": "Document cannot be indexed since it contains no text to index and search on. Document must contain some text."

新しいユーザーでまだドキュメントをインデックスしていない場合は、このステップを省略できます。

以下は、ListDocuments API を使用して、あるステータスのドキュメントとそのエラーメッセージを絞り込む例です:

aws qbusiness list-documents --region <region> \
--application-id <application-id> \
--index-id <index-id> \
--query "documentDetailList[?status=='DOCUMENT_FAILED_TO_INDEX'].{DocumentId:documentId, ErrorMessage:error.errorMessage}" \
--output json

次のスクリーンショットは、AWS CLI の出力を示しており、エラーメッセージとともに失敗したドキュメントの一覧が表示されています。

List of failed documents

今度はドキュメントをバッチ処理します。Amazon Q Business では、Amazon Q Business インデックスに 1 つまたは複数のドキュメントを追加できます。

  1. BatchPutDocument API を使用して、S3 バケットに格納されている複数のスキャンされたドキュメントをインデックスに取り込みます。
    aws qbusiness batch-put-document --region <region> \
    --documents '[{ "id":"s3://<your-bucket-path>/<scanned-pdf-document1>","content":{"s3":{"bucket":"<your-bucket> ","key":"<scanned-pdf-document1>"}}}, { "id":"s3://<your-bucket-path>/<scanned-pdf-document2>","content":{"s3":{"bucket":" <your-bucket>","key":"<scanned-pdf-document2>"}}}]' \ 
    --application-id <application-id> \
    --index-id <index-id> \
    --endpoint-url <application-endpoint-url> \
    --role-arn <role-arn> \
    --no-verify-ssl

次のスクリーンショットは、AWS CLI の出力を示しています。失敗したドキュメントのリストが空になっていることがわかります。

List of failed documents

  1. 最後に、ListDocuments API を再度使用して、すべてのドキュメントが正しくインデックス化されたかを確認してください:
    aws qbusiness list-documents --region <region> \
    --application-id <application-id> \
    --index-id <index-id> \
    --endpoint-url <application-endpoint-url> \
    --no-verify-ssl

次のスクリーンショットは、ドキュメントがデータソースでインデックス化されていることを示しています。

List of indexed documents

クリーンアップ

新しい Amazon Q Business アプリケーションを作成した後、それ以上使用する予定がない場合は、アプリケーションから割り当てられたユーザーを削除し、サブスクリプションを解除してアプリケーションを削除することで、AWS アカウントに追加コストが発生するのを防ぎます。また、インデックス化されたデータソースをこれ以上使用する必要がない場合は、Managing Amazon Q Business data sources を参照し、インデックス化されたデータソースを削除する手順をご確認ください。

まとめ

この投稿では、Amazon Q Business でスキャンされた PDF ドキュメントのタイプがサポートされていることを示しました。これによって、生成 AI と Amazon Q Business を使用して、スキャンした PDF を含むサポートするドキュメント形式に対して、同期、インデックス作成、クエリを実施する手順を確認しました。また、Amazon Q Business の Web UI と AWS CLI を使用して、構造化、非構造化、または半構造化の、マルチモーダル化されたスキャン済みドキュメントに対するクエリの例を示しました。

この機能の詳細については、Amazon Q Business でサポートされるドキュメントの形式 を参照してください。今すぐ Amazon Q Business コンソール で試してみましょう! 詳細については、Amazon Q BusinessAmazon Q Business ユーザーガイド を参照してください。フィードバックは Amazon Q の AWS re:Post または通常の AWS サポート連絡先からお送りいただけます。

著者について

Sonali Sahu は、AWS で 生成 AI スペシャリストソリューションアーキテクトチームをリードしています。彼女は著者、思想家、そして情熱的な技術者です。彼女の注力領域は AI と ML であり、世界中の AI と ML の会議やミートアップで頻繁に講演しています。彼女は技術と技術業界の両方で幅広く深い経験を持っており、医療、金融、保険などの業界の専門知識を持っています。

Chinmayee Rane は、AWS で生成 AI スペシャリストソリューションアーキテクトです。彼女は応用数学と機械学習に情熱を注いでいます。彼女は、AWS 顧客向けのインテリジェントドキュメント処理と Generative AI ソリューションの設計に注力しています。仕事以外では、サルサとバチャータダンスを楽しんでいます。

Himesh Kumar は、経験豊かなシニアソフトウェアエンジニアで、現在 AWS のAmazon Q Business に在籍しています。生成 AI および ML 分野の分散システムの構築に情熱を注いでいます。スケーラブルで効率的なシステムを開発し、高い可用性、パフォーマンス、信頼性を確保するのが得意分野です。技術的な能力に加えて、継続的な学習に努め、AI および機械学習における技術の最前線にいることを目指しています。

Qing Wei は、AWS の Amazon Q Business チームのシニアソフトウェア開発者であり、AWS テクノロジーを使用して最新のアプリケーションを構築することに注力しています。彼は、機械学習のホスティングと推論に関連するトピックについて、コミュニティ主導の学習と技術の共有に興味があります。現在は、RAG データ取り込みのためのサーバーレスおよびイベント駆動のアーキテクチャの構築に焦点を当てています。