おすすめの社内資料を提示してくれるようなRAG搭載AIエージェントを作ってみた

はじめに

従来、社内資料はSharePoint等に格納されており、キーワード検索して、お目当ての資料を探すというのが通例でした。キーワード検索の場合、単語レベルの検索となるため、内容を精査する手間もあり、時間がかかりました。昨今、ChatGPTを中心とする生成AIが普及されて、資料検索も自然言語で行えるようになり、探す手間がかなり削減されました。生成AIの検索拡張生成:RAG(Retrieval-Augmented Generation)という技術を利用することで、学習していない社内資料の情報も含めて検索結果として出力できるようになったためです。本記事では、RAGを搭載したAIエージェントを用いて、サンプル資料を自然言語で検索するデモをご紹介します。

データ

経済産業省の委託調査報告書10本
https://www.meti.go.jp/topic/data/e90622aj.html

方法

Google Colab上で LangChain・LangGraph・Chroma を組み合わせてRAGエージェントを構築(GPTモデル:GPT-4o)。ユーザの質問をもとに、Chroma(ベクトルDB)を検索し、LLMが回答を生成するワークフローを設計。※報告書10本をベクトルDBに事前に格納して実現させる

全体アーキテクチャ

次の①~⑥のステップを踏んで、独自資料の検索を実現します。
①プロンプト:ユーザの資料検索したい旨が記載されたプロンプト
②検索:ベクトルDBに格納された資料を検索します
③検索結果:②で検索した結果を返します
④プロンプト:③の検索結果をプロンプトに含めてLLMに投げます
⑤回答:④のプロンプトに応じた回答をLLMが返します
⑥回答:⑤で得た回答を加工してユーザに返します

LangGraph のワークフロー構成

LangGraph では、以下の3つのノードでエージェントの思考プロセスを実現しています
・selection_node:ユーザー質問に基づくロール選択(今回は公的報告書分析エキスパート/類似案件探索エキスパート/提案・案件設計支援エキスパートを選択するように設定)
・answering_node:ベクトルDB資料検索+役割に応じた回答生成
・check_node:LLMによる自己品質チェック(NGなら再考)

結果

--- ユーザーからの質問 ---
近年の物流状況を調査するにあたり、参考資料が欲しいです。提示してください。

--- ワークフロー実行結果 ---
選定されたロール: 公的報告書分析エキスパート
品質チェック結果: 問題なし
品質チェック理由: この回答は、ユーザーの質問に対して適切な参考資料を提示しており、内容も具体的で詳細です。以下の点から、回答の品質は高いと判断できます。

1. **具体的な資料の提示**: 回答は、具体的な報告書のタイトル、発行年、発行者を明示しており、ユーザーが資料を探す際に役立ちます。

2. **内容の概要**: 提示された報告書の内容概要が含まれており、ユーザーがその資料を利用する価値を判断するのに役立ちます。

3. **関連性の高い情報**: 物流業界の現状や課題に関する情報が含まれており、ユーザーの調査目的に合致しています。

4. **有用性の説明**: 報告書がどのように役立つかについても説明されており、ユーザーにとっての有用性が明確です。

以上の理由から、この回答はユーザーの質問に対して適切であり、問題はないと判断しました。

--- 最終回答 ---
近年の物流状況を調査するための参考資料として、以下の公的報告書をお勧めします。

1. **「物流市場における競争環境や労働環境等に関する調査」**(発行年: 2021)
   - 発行者: 経済産業省 商務・サービスグループ 物流企画室
   - 内容概要: この報告書は、物流市場における競争環境や労働環境の現状を分析しています。特に、EC化の進展に伴う物流量の増加と、それに対するトラックドライバーの人手不足の深刻さを指摘しています。また、トラック輸送市場の過当競争や低賃金が人手不足を助長していること、さらに小ロット多頻度配送の進展による積載効率の低下についても詳述されています。

この報告書は、物流業界の現状や課題を理解するための重要な資料となります。特に、トラック輸送における効率化の課題や、労働環境の改善に向けた取り組みの方向性を知る上で有用です。

物流関連の良さげな資料を提示してくれました。

--- ユーザーからの質問 ---
エネルギー事業の新規PJ提案書作成のため、類似案件資料を提示してください

--- ワークフロー実行結果 ---
選定されたロール: 類似案件探索エキスパート
品質チェック結果: 問題なし
品質チェック理由: この回答は、ユーザーの質問に対して適切で有用な情報を提供しています。以下の理由から、回答の品質は問題ないと判断されます。

1. **関連性のある情報提供**:
   - ユーザーの質問に対して、エネルギー事業の新規プロジェクト提案書作成に役立つ具体的な資料を提示しています。
   - 提示された資料は、エネルギー事業における脱炭素化の取り組みや政策支援の方向性を理解するために有用です。

2. **詳細な説明**:
   - 各資料について、特徴、成功要因、課題を具体的に説明しており、ユーザーが資料の内容を理解しやすくなっています。

3. **実用的なアドバイス**:
   - 提案書作成において、提示された資料を参考にすることで、成功要因や課題を考慮した戦略を立案できるとアドバイスしています。

4. **構造化された情報**:
   - 情報が整理されており、ユーザーが必要な情報を容易に見つけられるようになっています。

以上の点から、この回答はユーザーのニーズに応えるものであり、品質に問題はないと判断されます。

--- 最終回答 ---
エネルギー事業の新規プロジェクト提案書作成に役立つ類似案件の資料として、以下の公的報告書を参照することをお勧めします。

1. **資料 1 - 脱炭素化が産業活動へ与える影響に関する分析・調査支援事業調査報告 (2022年)**
   - **特徴**: 欧州のエネルギー多消費産業(鉄鋼、化学、セメント、製紙など)における脱炭素化戦略と課題を調査し、日本の動向と比較しています。
   - **成功要因**: 政府の厳しい目標に対する産業界の支援要求に応じた政策(脱炭素技術の開発・実装のための資金支援、再エネ・水素・CO2のインフラ構築など)が挙げられます。
   - **課題**: 脱炭素と産業競争力の両立が難しく、実現性のある明確な戦略が描けていない点が指摘されています。

2. **資料 4 - 日本の脱炭素化への道筋 (2022年)**
   - **特徴**: 日本の2030年から2050年にかけての脱炭素化目標を実現するためのコスト効率的な経路をシナリオ分析しています。
   - **成功要因**: 2030年まではコスト優位な脱炭素化技術の導入が可能であることが示されています。
   - **課題**: 2050年に向けては水素やCCSなどコスト高な技術の導入が必要で、全体のコストが増大する見込みです。

これらの報告書は、エネルギー事業における脱炭素化の取り組みや政策支援の方向性を理解する上で有用です。新規プロジェクト提案書の作成において、これらの事例を参考にすることで、成功要因や課題を考慮した戦略を立案することができるでしょう。

良さげな資料をいくつか提示してくれることがわかります。従来のキーワード検索と比べ、手間がかからず、精度も高いです。

おわりに

RAGを活用することで従来の資料探索にかける時間を大幅に削減できることがわかりました。今回のようにPDFをベクトルDBに格納できれば、今まで検索できなかった紙媒体の資料もPDF化すれば検索できるようになるので、より精度の高い調査ができるようになりそうですね!