RAGを組みたいのに、ベクトルDB・埋め込み・検索・生成を別々のライブラリでつなぐのは面倒です。RAGLiteは、その工程を1つのPythonツールキットにまとめたOSSです。
この記事では、RAGLiteが解決する課題と、DuckDB・PostgreSQLを使った実装の要点を整理します。
この記事でわかること
- RAGLiteが何を担うツールか
- DuckDB・PostgreSQLでのハイブリッド検索の仕組み
- LiteLLMやllama-cpp-pythonとの連携方法
- LangChainなど既存スタックとの違い
RAGLiteとは
RAGLiteは、ベルギーのAIコンサルティング企業Superlinearが開発するPython向けRAGツールキットです。Retrieval-Augmented Generation(RAG)は、外部文書を検索してLLMの回答根拠にする手法を指します。
pip install ragliteで導入でき、最新版はv1.1.1(2026年5月18日リリース)です。GitHubでは1,100超のスターを獲得しており、MPL-2.0ライセンスで公開されています。
なぜRAG実装が難しくなるのか
RAGパイプラインは、文書取り込み、チャンク分割、埋め込み、検索、再ランキング、回答生成の6段階に分かれます。それぞれ別ライブラリを選ぶと、設定ファイルと依存関係が増え、ローカル検証のたびに環境構築が必要になります。
専用ベクトルDBを立てる方法もありますが、小規模な検証や個人開発では運用コストが重くなりがちです。RAGLiteは、検索基盤をDuckDBかPostgreSQLに寄せることで、この複雑さを下げます。
RAGLiteが担う機能
RAGLiteは取り込みから回答生成までを1パッケージで扱います。主な機能は次のとおりです。
データベースと検索
DuckDBをデフォルトに、PostgreSQLも選べます。DuckDBでは全文検索(FTS)とベクトル検索(VSS)、PostgreSQLではtsvectorとpgvectorを組み合わせ、キーワード検索とベクトル検索のハイブリッド検索をDBネイティブ機能で実行します。
LLM・埋め込みの選択
LiteLLM経由でOpenAIやAnthropicなどのAPIモデルを指定できます。ローカル実行にはllama-cpp-python形式の識別子(例: llama-cpp-python/unsloth/Qwen3-8B-GGUF/*Q4_K_M.gguf@8192)も使えます。macOSではMetal、Linux・WindowsではCUDAによる高速化にも対応しています。
チャンク処理の品質
late chunking(遅延チャンキング)とコンテキスト付き見出しにより、チャンク単位の埋め込み精度を上げます。文書はセマンティックチャンキングで分割され、PDFはMarkdownへ変換してからDBへ格納されます。
検索の高度化
再ランキングにはrerankersライブラリを使い、デフォルトは多言語対応のFlashRankです。v1.1.1ではメタデータフィルタ、セルフクエリ(LLMが検索条件を自動生成)、エージェント型RAG(反復的なサブエージェント検索)も追加されています。
周辺連携
MCP(Model Context Protocol)サーバーを内蔵し、Claude Desktopからナレッジベース検索ツールを呼び出せます。raglite[chainlit]を入れると、Web・Slack・Teams向けのチャットUIも立ち上げられます。
基本的な使い方
まずRAGLiteConfigでDB接続先、LLM、埋め込みモデルを指定します。
from raglite import RAGLiteConfig
my_config = RAGLiteConfig(
db_url="duckdb:///raglite.db",
llm="gpt-4o-mini",
embedder="text-embedding-3-large",
)
文書はDocument.from_path()やDocument.from_text()で登録し、insert_documents()で取り込みます。検索はhybrid_search()、回答生成はrag()で実行できます。
適応型RAGモードでは、LLMが質問内容を見て検索の要否を判断します。検索クエリの生成からハイブリッド検索・再ランキングまでを自動で回し、根拠文書をコンテキストに載せて回答をストリーミングします。
手動制御が必要な場合は、検索・再ランキング・コンテキスト付与の各関数を個別に呼び出すプログラマブルRAGも選べます。
料金
RAGLite本体は無料のオープンソースです。利用料が発生するのは、OpenAIなど外部LLM APIを使う場合や、クラウド上のPostgreSQLを借りる場合に限られます。DuckDBをローカルファイルで動かし、llama-cpp-pythonでモデルを実行すれば、API課金なしの構成も組めます。
LangChainなどとの違い
RAGLiteのREADMEは、PyTorchやLangChainへの依存を避けた軽量設計を明示しています。LangChainは汎用オーケストレーション向けで、検索基盤や埋め込みは利用者が別途選びます。RAGLiteはRAG専用に機能を絞り、DB・検索・チャンク処理・生成を最初から一体化しています。
PineconeやWeaviateのような専用ベクトルDBと比べると、RAGLiteは既存のSQL系DBに検索を寄せる点が特徴です。小規模な社内文書検索からPostgreSQL本番環境への移行まで、同じAPIで段階的に拡張しやすい構成です。
導入を検討する読者像
RAGLiteは、RAGの仕組みをコードで理解しながら最短で動かしたいPython開発者に向いています。late chunkingやハイブリッド検索を試したい場合、専用ベクトルDBを新規に立てずに検証を始めたい場合にも適しています。
一方、LangGraphベースの複雑なマルチエージェント設計や、既存のLangChain資産をそのまま流用したい場合は、RAGLite単体ではなく併用・比較検討の対象になります。まずはDuckDBと無料枠のAPIで動かし、精度要件に応じて再ランキングやクエリアダプタ(評価データから最適な埋め込み変換を学習する機能)を足す進め方が現実的です。