MongoDB Atlas Vector Search、Superduper.io、LLM を統合することで、高度な PDF 検索機能を実現し、業務とクレーム処理を効率化します。
ユースケース: Gen AI
製品: MongoDB Atlas、MongoDB Atlas Vector Search
パートナー: Superduper.io, FastAPI
ソリューション概要
保険会社はデータ処理に大きく依存しています。投資の意思決定や請求の処理のために、膨大な量の、ほとんどが構造化されていないデータを活用します。引受人および請求査定人は、通常、PDF 形式のガイドライン、契約書、レポートの多数のページを精査する必要があります。すべての情報を手動で検索して確認するのは時間がかかり、誤ったリスク推定など、コストのかかる間違いにつながりやすくなります。
検索拡張生成(RAG) アプリケーションは、保険会社にとって革新的な存在であり、非構造化データの活用を可能にすると同時に、アクセシビリティと柔軟性を高めます。これらは、一般的でありながら検索が困難な PDF に対して特に有用です。RAG により、PDF の検索はより効率的かつ正確になります。今では、ユーザーが自然言語で質問を入力するだけで、アプリケーションが社内データを精査し、回答を提示し、ドキュメントの内容を要約し、情報の出典として見つかったページや段落を含めて示してくれます。
このGitHub リポジトリには、MongoDB、Superduper、LLM を組み合わせた PDF 検索アプリケーションの構築方法について、詳細な手順がステップごとに記載されています。このソリューションのユースケースは、特定の案件を担当する保険査定人や引受査定人に焦点を当てています。特定のカスタマーに関連するガイドラインのPDFを分析することで、事故発生時の損害額や、契約更新時の新しい保険料を算出するのに役立ちます。アプリケーションは質問に回答し、ドキュメントの該当箇所を表示します。
Atlas Vector Search と LLM を組み合わせて RAG アプリを構築することで、保険会社の収益に直接的な影響を与えることができます当社のセマンティック検索ツールをお試しいただくには、『Atlas Vector Search クイックスタート』をご覧ください。
リファレンスアーキテクチャ
MongoDB と Superduper を組み合わせることで、情報検索システムを簡単に構築できます。プロセスは以下のステップで構成されます。
ユーザーは、検索対象となる PDF ファイルを追加します。
スクリプトが PDF をスキャンし、チャンクを作成してベクトル化します(図 1 を参照)。チャンク間の遷移データが失われないようにするため、スクリプトはスライディング ウィンドウ方式を使用して重複するチャンクを生成します。
ベクトルとチャンクのメタデータは MongoDB に保存され、Vector Search インデックスが作成されます(図 2 を参照)。
PDF はクエリ可能な状態になっています。ユーザーがカスタマーを選択して質問を入力すると、システムは回答を返し、情報が見つかったページと段落を表示し、該当箇所を赤枠でハイライト表示します(図 2 を参照)。
図 1。Superduper.io でオーケストレーションされた PDF のチャンク化、埋め込み作成、ストレージ
各カスタマーには、居住国に基づいてアカウントに関連付けられたガイドラインの PDF が用意されています。ユーザーがカスタマーを選択して質問を入力すると、システムはその特定のドキュメントに対してのみベクトル検索クエリを実行し、関係のないドキュメントは自動的に除外します。これは、インデックスと検索クエリに含まれるプレフィルター フィールドによって可能になります(以下のコード スニペットを参照)。
Atlas Vector Search は、MongoDB の新しい専用アーキテクチャである Search Nodes も活用しており、特定のワークロード ニーズに応じた最適なリソース配分を可能にします。Search Nodes は、Atlas Search および Vector Search のワークロード向けに専用のインフラを提供し、データベースとは独立して検索ニーズに応じたコンピューティング リソースの最適化とスケーリングを可能にします。Search Nodes は、ワークロードの分離、高い可用性、そしてリソース使用の最適化をより効果的に実現します。
図 2。Superduper.io によってオーケストレーションされた PDF クエリフロー
{ "fields": [ { "numDimensions": 1536, "path": "_outputs.elements.text-embedding.0", "similarity": "cosine", "type": "vector" }, { "path": "_outputs.elements.chunk.0.source_elements.metadata.filename", "type": "filter" } ] }
vector_query = [ { "$vectorSearch": { 'index': INDEX_NAME, 'path': "_outputs.elements.text-embedding.0", 'queryVector': query_embedding, 'numCandidates': vector_search_top_k, 'limit': vector_search_top_k, 'filter': {'_outputs.elements.chunk.0.source_elements.metadata.filename': filename} } }, { "$project": { "_outputs.elements.text-embedding.0": 0, "score": { "$meta": "vectorSearchScore" } } } ]
Superduper.io
Superduper.io は、柔軟かつスケーラブルなカスタム エンタープライズ向け AI ソリューションを実現するために、主要なデータベースと直接または横断的に AI モデルやワークフローを統合できる、オープンソースの Python フレームワークです。これにより開発者は、既存のインフラとデータを活用しながら、好みのツールを使って AI を構築・デプロイ・管理できるようになり、データの移行や重複を排除できます。
Superduper.io を使用すると、開発者は以下のことが可能です。
AI をデータベースに直接組み込むことで、データ パイプラインが不要になり、エンジニアリング工数、プロダクションまでの時間、計算リソースを最小限に抑えることができます。
任意のデータ タイプに対して、任意の AI モデルや API を用いた AI ワークフローを実装できます。
APIからホスティングに切り替え、独自のインフラストラクチャ上でモデルを微調整することで、データを保護します。
埋め込みモデルから他の API プロバイダーに切り替えることもできます。また、HuggingFace やその他のプラットフォームでモデルをホストすることも可能です。
Superduper.io は、MongoDB を使ったベクトル検索、埋め込み生成、マルチモーダル検索、RAG、転移学習などを含む、開発者がすぐに使い始められる多様なサンプル ユースケースやノートブックを提供しています。このソリューションのデモは、Superduper.io によって以前開発されたアプリを基に構成されています。
ソリューションのビルド
この Github リポジトリの手順に従って、ソリューションを構築してください。このソリューションは、以下の 2 つのステップで構成されています。
初期化スクリプトはPDFをチャンクに分割し、それをベクトル埋め込みに変換します。
クエリ実行のステップでは、ユーザーがドキュメントに対して問い合わせを行うことができます。
キーポイント
埋め込みはさまざまなモデルとデプロイ方法を使用できます。データをサーバー内に保持する必要がある場合は、モデルをローカルにデプロイすることができます。それ以外の場合は、このチュートリアルで説明されているように、API を呼び出してベクトル埋め込みを取得することができます。Voyage AI やオープンソースのモデルを使用できます。システムを構築する際には、プライバシーおよびセキュリティの要件を考慮してください。
Superduper は AI モデルとワークフローを統合します。Superduper は、Vector Search や LLM と連携するためのシンプルで標準的なインターフェースを提供するフレームワークです。
作成者
Luca Napoli、業界ソリューション、MongoDB
Clarence Ondieki、ソリューション アーキテクト、MongoDB
Pedro Bearerh、MongoDB 業界ソリューション担当