LlamaIndex を使用して Google Cloud データベースにエージェント RAG を構築する
Hamsa Buvaraghan
AI Product Manager, Google Databases
Jerry Liu
Co-Founder/CEO, LlamaIndex
※この投稿は米国時間 2024 年 12 月 5 日に、Google Cloud blog に投稿されたものの抄訳です。
AI エージェントが登場したことで、生成 AI アプリケーションの開発環境は大きく変わってきています。検索拡張生成(RAG)によって大規模言語モデル(LLM)の機能は大幅に向上し、データベースなどの外部データソースにアクセスし、それらを活用できるようになりました。これにより、LLM でより多くの情報に基づき、コンテキストに応じた回答を生成できるようになります。エージェント RAG は、情報検索の力と高度な行動計画機能を組み合わせ、飛躍的な進歩をもたらします。AI エージェントは、推論、計画、意思決定を行う複数のステップを含む複雑なタスクを終えた後に、複数のイテレーションによって目標を達成するための行動を実行できます。これにより、複雑なワークフローとプロセスを自動化する新たな可能性が開かれ、効率と生産性が向上します。
LlamaIndex は、ナレッジ主導のエージェント システムを構築するための代表的なフレームワークとして台頭してきました。このフレームワークには、高度な AI エージェントの開発を容易にする充実したツールと機能がそろっています。LlamaIndex の特筆すべき点は、一般的なユースケース向けにすぐにデプロイできる事前構築済みのエージェント アーキテクチャと、開発者が AI エージェントの動作を特定の要件に合わせて調整できるカスタマイズ可能なワークフローの両方を備えていることです。
このたび Google Cloud は、AlloyDB for PostgreSQL や Cloud SQL for PostgreSQL などの Google Cloud データベースのオープンソース インテグレーションに関して、LlamaIndex と連携することになりました。
PyPi llama-index-alloydb-pg および llama-index-cloud-sq-pg からダウンロードできるこれらの LlamaIndex インテグレーションにより、開発者は Google データベースに接続できるエージェント アプリケーションを構築できるようになります。インテグレーションに含まれるものは以下のとおりです。
開発者は、Firestore 向けに以前に公開された LlamaIndex インテグレーションにもアクセスでき、これにはベクトルストアとインデックス ストア向けのものも含まれます。
インテグレーションの利点
LlamaIndex は、エージェント RAG、レポート生成、カスタマー サポート、SQL エージェント、生産性向上アシスタントなど、さまざまな業種のユースケースを幅広くサポートしています。LlamaIndex のマルチモーダル機能は、検索拡張画像キャプションなどへと用途を広げ、多様なデータ型を統合する汎用性を発揮しています。LlamaIndex と Google Cloud データベースを利用するお客様は、こうしたユースケースを通じて、以下のような開発作業の改善を期待できます。
-
情報検索の効率化: これらのパッケージを使用することで、開発者は Google データベースを使用した情報検索アプリケーションを構築しやすくなります。また、AlloyDB と Cloud SQL のベクトルストアを活用して非構造化データを保存し、セマンティック検索を行ってモデルに豊富なコンテキストを提供できます。LlamaIndex ベクトルストアのインテグレーションにより、メタデータを効果的にフィルタし、最適なベクトル類似度戦略を選択して、カスタム ベクトル インデックスのパフォーマンスを向上させることができます。
-
複雑なドキュメントの解析: LlamaIndex の優れたドキュメント パーサーである LlamaParse は、画像、グラフ、情報量の多い表を含む複雑なドキュメント形式を、LLM が理解しやすい形式に変換します。これにより、LLM がこれらのドキュメントの内容を理解しようとした結果が明らかに向上します。
-
安全な認証と認可: Google データベースと LlamaIndex のインテグレーションでは、ベスト プラクティスである最小権限の原則に基づき、データベース接続プールが作成、認証され、データベース インスタンスへのアクセスが認可されます。
-
高速プロトタイピング: 開発者は、LlamaHub ですぐに利用できる事前構築済みのエージェントとツールのアーキテクチャを使用して、エージェント システムを迅速に構築、設定できます。
- フロー制御: 本番環境のユースケースでは、LlamaIndex Workflow により、条件付き実行のきめ細かな制御と強力な状態管理を備えた複雑なエージェント システムを柔軟に構築、デプロイできます。
レポート生成のユースケース
エージェント RAG のワークフローは、単純な質問に単純に回答する chatbot の域を超えています。エージェントは、さまざまなソースやナレッジベースからの情報を統合して、詳細なレポートを生成できます。レポート生成は多くの業種に対応しています。たとえば、法務の分野であれば調査などの事前作業を、金融サービスであれば収支報告レポートの分析を、エージェントに任せることができます。エージェントは、情報を選別して分析情報を生成するエキスパートと同等の能力を発揮します。エージェントによる推論と検索に数分かかったとしても、これらのレポートを自動化することでチームは数時間を節約できます。
LlamaIndex は、レポート生成に必要な以下の主要要素をすべて備えています。
-
出力をレポート テンプレートに整理する機能を含む構造化出力の定義
-
テキストやその他のメディアを簡単に抽出してチャンキングするインテリジェントなドキュメント解析
-
お客様のエコシステム全体にわたるナレッジベースの保存とインテグレーション
-
タスクを定義し、エージェントの推論をガイドするエージェント ワークフロー
ここからは、こうしたコンセプトの仕組みを確認し、LLM と RAG を取り扱った新しい研究論文に関する日々の最新情報を提供するレポート生成エージェントの構築方法を考えます。
1. データの準備: ドキュメントの読み込みと解析
あらゆる RAG ワークフローの鍵となるのは、ナレッジベースが十分に整備されていることです。データを保存する前に、そのデータがクリーンで有用であることを確認する必要があります。ナレッジベースのデータは、企業データなどのソースから取得できます。一流の研究論文のレポートを生成するために、Arxiv SDK を使用してオープン アクセスの無料の出版物を取得するとよいでしょう。
ここで、ArxivReader を使用して論文を読み込み、書式なしテキストに変換する代わりに、LlamaParse を使用します。LlamaParse はさまざまな論文形式、テーブル、マルチモーダル メディアに対応しており、ドキュメント解析の精度を向上させます。
ナレッジベースの有効性を高めるため、ドキュメントにメタデータを追加することをおすすめします。これによって高度なフィルタリングが可能になり、追加のツールに対応できます。詳しくは、メタデータの抽出をご覧ください。
2. ナレッジベースの作成: 検索するデータの保存
データを保存する際は、長期的な使用を想定する必要があります。LlamaIndex と Google Cloud データベースのインテグレーションにより、拡大するナレッジベースの保存と検索に対応します。
2.1. AlloyDB や Cloud SQL データベースへの安全な接続の作成
PostgreSQL インスタンスに安全に接続できる共有可能な接続プールを簡単に作成するために、AlloyDBEngine クラスを利用します。
ナレッジベースに必要なテーブルのみを作成します。テーブルを個別に作成することで、エージェントが必要とするアクセス権限のレベルが低下します。後でフィルタできる特別な「publication_date」メタデータ列を指定することもできます。
省略可: Google Cloud エンベディング モデルを設定します。ベクトル エンベディングを利用したナレッジベースでは、意味的に類似したテキストを検索できます。
2.2. ドキュメント ストア、インデックス ストア、ベクトルストアを使用して、基盤となるストレージをカスタマイズします。ベクトルストアでは、以前に作成したメタデータ フィールド「publication_date」を指定します。
2.3. 解析されたドキュメントをナレッジベースに追加し、ベクトルストア インデックスを構築します。
Summary Index などの他の LlamaIndex インデックス タイプを、データのクエリおよび結合用の追加ツールとして使用できます。
2.4. エージェントが使用するツールをインデックスから作成します。
3. プロンプト: レポートの概要の作成
レポートには、セクションと形式に関する要件が設けられている場合があります。形式に関する指示はエージェントにとっても必要なものです。以下は、レポート形式の概要例です。
4. ワークフローの定義: エージェントがたどるおおまかな手順の決定
次に、エージェントの動作をガイドするワークフローを定義します。このサンプル ワークフローでは、呼び出すツール(サマリー ツールまたはベクトル検索ツール)をエージェントが推論します。追加データが不要であるとエージェントが推論したら、調査ループを終了してレポートを生成できるようになっています。
LlamaIndex Workflow の SDK は使いやすく、どのような種類のワークフローでも構築することができます。
5. レポートの生成: エージェントの実行
ナレッジベースを設定し、エージェントを定義したので、レポートを生成するための自動化を設定できます。
説明は以上です。LLM および RAG 手法についての最近の研究をまとめたレポートが完全なかたちで生成されます。簡単であることをおわかりいただけたことと思います。
使ってみる
まとめると、LlamaIndex と Google Cloud データベースのインテグレーションにより、アプリケーション開発者はオペレーショナル データベースのデータを活用して、複雑なエージェント RAG ワークフローを簡単に構築できるようになります。このコラボレーションは、オープンで統合された革新的なデータベース プラットフォームになるという Google Cloud の長期的な取り組みを後押しするものです。LlamaIndex は広範なユーザーベースを有するため、このインテグレーションによって、開発者が最先端のナレッジ主導型 AI エージェントを作成できる可能性がさらに広がります。
ご関心をお持ちの場合は、以下のノートブック ベースのチュートリアルをご覧ください。
-
AlloyDB
-
Cloud SQL for PostgreSQL
GitHub に関するすべての情報は、github.com/googleapis/llama-index-cloud-sql-pg-python と github.com/googleapis/llama-index-alloydb-pg-python でご確認ください。
-Google データベース、AI プロダクト マネージャー Hamsa Buvaraghan
-LlamaIndex、共同設立者 / CEO Jerry Liu 氏