neuml/rag

🚀 Retrieval Augmented Generation (RAG) with txtai. Combine search and LLMs to find insights with your own data.

What it solves

このプロジェクトは、ユーザーフレンドリーな Streamlit アプリケーションを提供し、Retrieval Augmented Generation(RAG)を実装して、特定かつ関連するコンテキストに基づかせることで LLM の応答を事実的に正確にします。従来のベクトルベース検索と、より高度なグラフベース検索の間を簡単に切り替えることができます。

How it works

txtai フレームワーク上に構築され、ユーザークエリを以下の 2 つの主要な検索戦略で処理します。

  • Vector RAG:標準的なベクトル検索を実行し、上位 N 件の最も関連性の高いドキュメントを取得して LLM のコンテキストとして使用します。
  • Graph RAG:セマンティックグラフを使用し、グラフパスのトラバーサルまたはグラフクエリ拡張(gq: プレフィックス使用)でコンテキストを生成します。両方の手法を組み合わせて、特定のグラフパス内で検索範囲を絞ることも可能です。

ユーザーは URL、ファイルパス、または # プレフィックスを使った直接テキスト入力で、データを動的にインデックスに追加できます。

Who it’s for

開発者や AI 研究者で、さまざまな RAG 検索戦略(ベクトル vs. グラフ)をテスト・比較し、独自のナレッジベースを管理したい方に最適です。

Highlights

  • Dual Retrieval Modes:標準的な Vector RAG と Graph RAG の両方をサポート。
  • Dynamic Data Indexing:チャットインターフェースで # コマンドを使用して新しいドキュメントやテキストスニペットを直接追加可能。
  • Flexible Configuration:環境変数で LLM の選択、埋め込みデータベース、テキスト抽出バックエンド(例: Docling)などを高度に設定可能。
  • Visual Graph Representation:Graph RAG クエリは対応するグラフを表示し、コンテキスト取得の流れを可視化します。