マルチモーダルRAGアプリ構築:Bedrock Data AutomationとKnowledge Bases

組織は、文書、画像、音声ファイル、ビデオファイルなど、さまざまな形式で存在する大量の非構造化データを処理する必要があります。 従来、これらの異なる形式のデータから意味のある洞察を抽出するには、複雑な処理パイプラインと多大な開発作業が必要でした。 しかし、生成AI技術は、これらのさまざまなドキュメント形式のデータを自動的に処理、分析し、洞察を抽出する強力な機能を提供することで、この状況を大きく変えようとしています。手作業を大幅に削減すると同時に、精度とスケーラビリティを向上させます。

Amazon Bedrock Data AutomationとAmazon Bedrock Knowledge Basesを使用すると、強力なマルチモーダルRAGアプリケーションを簡単に構築できます。これらを組み合わせることで、組織はマルチモーダルコンテンツ内の情報を効率的に処理、整理、検索できるようになり、非構造化データを管理および利用する方法が変革されます。

この記事では、Amazon Bedrock Data Automationを使用してマルチモーダルコンテンツを処理し、抽出された情報をAmazon Bedrock Knowledge Basesに保存し、RAGベースの質問応答インターフェイスを通じて自然言語クエリを可能にするフルスタックアプリケーションの構築について説明します。

活用事例

Amazon Bedrock Data AutomationとAmazon Bedrock Knowledge Basesの統合は、さまざまな業界で大量の非構造化データを処理するための強力なソリューションを提供します。

  • 医療分野では、医療機関は、医療フォーム、診断画像、診察時の録音など、大量の患者記録を処理する必要があります。Amazon Bedrock Data Automationは、これらの情報を自動的に抽出して構造化し、Amazon Bedrock Knowledge Basesを使用すると、医療従事者は、「患者の最終血圧はいくつでしたか?」または「糖尿病患者の治療歴を表示」などの自然言語クエリを使用できます。
  • 金融機関は、融資申請から財務諸表まで、毎日何千ものドキュメントを処理しています。Amazon Bedrock Data Automationは、主要な財務指標とコンプライアンス情報を抽出し、Amazon Bedrock Knowledge Basesを使用すると、アナリストは「最新の四半期報告書で言及されているリスク要因は何ですか?」または「信用スコアの高いすべての融資申請を表示」などの質問をすることができます。
  • 法律事務所は、裁判所の文書、証拠写真、証人供述など、大量の訴訟関連文書を処理する必要があります。Amazon Bedrock Data Automationは、これらのさまざまなソースを処理でき、Amazon Bedrock Knowledge Basesを使用すると、弁護士は「3月15日の事件について、どのような証拠が提出されましたか?」または「被告について言及しているすべての証人供述を見つける」などのクエリを実行できます。
  • メディア企業は、この統合を使用して、インテリジェントなコンテキスト広告配信を実現できます。Amazon Bedrock Data Automationは、ビデオコンテンツ、字幕、音声処理を通じて、シーンのコンテキスト、会話、感情を理解すると同時に、広告アセットと広告キャンペーンの要件を分析します。その後、Amazon Bedrock Knowledge Basesを使用すると、「スポーツ用品の広告が含まれるアクティブな野外シーンを見つける」または「旅行業界について議論している旅行広告セグメントを特定する」など、広告を適切なコンテンツの瞬間に一致させるための複雑なクエリを実行できます。このインテリジェントなコンテキストマッチングは、ブランドの安全性を維持しながら、より関連性が高く効果的な広告配信を提供します。

これらの例は、Amazon Bedrock Data Automationの抽出機能とAmazon Bedrock Knowledge Basesの自然言語クエリを組み合わせることで、組織がどのように非構造化データと対話する方法を変えることができるかを示しています。

ソリューション概要

この包括的なソリューションは、文書、画像、音声ファイル、ビデオファイルなどのマルチモーダルコンテンツを処理および分析するAmazon Bedrockの高度な機能を示しています。これは、Amazon Bedrock Data Automation、Amazon Bedrock Knowledge Bases、およびAmazon Bedrockを通じて利用できる基盤モデルという3つの主要コンポーネントを通じて実現されます。ユーザーは、自動処理と分析のために、オーディオファイル、画像、ビデオ、PDFなどのさまざまなタイプのコンテンツをアップロードできます。

コンテンツをアップロードすると、Amazon Bedrock Data Automationは、標準またはカスタムのブループリントを使用してコンテンツを処理し、価値のある洞察を抽出します。抽出された情報は、JSON形式でAmazon Simple Storage Service (Amazon S3)バケットに保存され、ジョブのステータスはAmazon EventBridgeを介して追跡され、Amazon DynamoDBに保存されます。このソリューションは、抽出されたJSONのカスタム解析を実行して、ナレッジベースと互換性のあるドキュメントを作成し、Amazon Bedrock Knowledge Basesに保存してインデックスを作成します。

直感的なユーザーインターフェイスを通じて、このソリューションは、アップロードされたコンテンツとその抽出された情報を同時に表示します。ユーザーは、Amazon Bedrockの基盤モデルによって提供される、検索拡張生成(RAG)に基づいた質問応答システムを通じて、処理されたデータと対話できます。この統合されたアプローチにより、組織は、AWS Cloud Development Kit (AWS CDK)を使用してデプロイされた強力でスケーラブルなインフラストラクチャを使用しながら、さまざまなコンテンツ形式の情報を効率的に処理、分析し、洞察を得ることができます。

アーキテクチャ

以下のアーキテクチャ図は、ソリューションのフローを示しています。

  1. ユーザーは、Amazon Cognitoを介して認証されたフロントエンドアプリケーションと対話します。
  2. APIリクエストは、Amazon API GatewayとAWS Lambda関数によって処理されます。
  3. 処理のために、ファイルがS3バケットにアップロードされます。
  4. Amazon Bedrock Data Automationは、ファイルを処理し、情報を抽出します。
  5. EventBridgeは、ジョブのステータスを管理し、後処理をトリガーします。
  6. ジョブのステータスはDynamoDBに保存され、処理されたコンテンツはAmazon S3に保存されます。
  7. Lambda関数は、処理されたコンテンツを解析し、Amazon Bedrock Knowledge Basesでインデックスを作成します。
  8. RAGベースの質問応答システムは、Amazon Bedrockの基盤モデルを使用してユーザーのクエリに答えます。

前提条件

バックエンド

バックエンドには、次の前提条件が必要です。

  • AWSアカウント。
  • Python 3.11以降。
  • Docker。
  • GitHub(コードリポジトリを使用する場合)。
  • AWS CDK。詳細と前提条件については、AWS CDKの開始方法を参照してください。
  • Amazon Bedrockで基盤モデルへのアクセスを有効にする。
    • AnthropicのClaude 3.5 Sonnet v2.0
    • Amazon Nova Pro v1.0
    • AnthropicのClaude 3.7 Sonnet v1.0

フロントエンド

フロントエンドには、次の前提条件が必要です。

  • Node/npm: v18.12.1
  • デプロイされたバックエンド。
  • 少なくとも1人のユーザーが、対応するAmazon Cognitoユーザープールに追加されていること(認証されたAPI呼び出しに必要)。

必要なものはすべて、オープンソースコードとしてGitHubリポジトリで提供されています。

デプロイガイド

このサンプルアプリケーションコードベースは、次の主要なフォルダに編成されています。