KruxAI/ragbuilder

A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setup for your data

RagBuilder とは?

RagBuilder は、あらゆるドキュメントコレクションに対して**本番環境対応の検索拡張生成(RAG)**パイプラインを自動的に構築するのに役立つ Python ライブラリです。ベイズ最適化を使用して RAG ハイパーパラメータ(チャンクサイズ、チャンキング戦略、リトリーバータイプ、リランカー、LLM など)の空間を探索し、テストセットで各構成を評価して、最も性能の高い設定を返します。

コア機能

機能 仕組み(README に記載の通り)
ハイパーパラメータチューニング ベイズ最適化を使用して、チャンキング、ベクターストア、リトリーバー、リランカー、LLM 設定の多くの組み合わせを試します。
事前定義テンプレート 「最先端」の RAG テンプレート(例:グラフリトリーバー、コンテキストチャンカー)が同梱されており、すぐに使用できます。
テストデータ 合成テストセットを生成するか、評価用の独自のクエリ/回答を提供できます。
コンポーネントアクセス 最適化後、基盤となるベクターストア、リトリーバー、ジェネレーターオブジェクトを直接取得できます。
API デプロイ builder.serve() を 1 回呼び出すだけで、ローカル HTTP API(POST /query)が起動します。
プロジェクト永続化 パイプラインはディスクに保存(builder.save())し、後で再ロード(RAGBuilder.load())できます。

典型的なワークフロー(クイックスタート例)

from ragbuilder import RAGBuilder

# 1️⃣ データをロード(URL、PDF など)し、デフォルト設定を使用
builder = RAGBuilder.from_source_with_defaults(
    input_source='https://lilianweng.github.io/posts/2023-06-23-agent/'
)

# 2️⃣ 最適化を実行(デフォルトの試行回数)
results = builder.optimize()

# 3️⃣ 完成したパイプラインにクエリを実行
answer = results.invoke("What is HNSW?")
print(answer)

# 4️⃣ 短い最適化レポートを表示
print(results.summary())

同じパターンは、カスタムモデル、カスタムチャンカー、またはカスタムテストデータセットでも機能します。

カスタマイズポイント

  • データ取り込み – ドキュメントローダー(pymupdf、unstructured、web など)、チャンカー(文字、セマンティック、トークンベースなど)、埋め込みモデルを選択します。
  • 検索 – ベクター類似度、BM25、マルチクエリ、グラフベースの検索を組み合わせ、重みを割り当てます。
  • リランキング – リストされたリランカーのいずれかをプラグインします(BGE、mxbai、Cohere、Jina、FlashRank、RankLLM、ColBERT など)。
  • 生成 – 1 つ以上の LLM 設定(OpenAI、Azure OpenAI など)と最適化設定(試行回数など)を提供します。
  • 評価 – 組み込みの Ragas 評価を使用するか、カスタム評価クラスを提供します。

これらはすべて、小さな Pydantic スタイルの設定オブジェクト(DataIngestOptionsConfig、RetrievalOptionsConfig、GenerationOptionsConfig)で表現されます。

インストールと環境

  • Python 3.10+ が必要です。
  • 分離された仮想環境(uv venv ragbuilder)を作成することをお勧めします。
  • uv pip install ragbuilder でインストールします(またはドキュメントにリンクされている他の方法)。
  • .env ファイルに必要な API キーを設定します – 最低限 OPENAI_API_KEY が必要です。Mistral、Cohere、Azure OpenAI、Neo4j のオプションキーもサポートされています。

デプロイとセキュリティに関する注意事項

  • 組み込みの UI と API はデフォルトで 127.0.0.1 にバインドされます。リモートアクセスには API トークン(RAGBUILDER_API_TOKEN)と TLS 終端が必要です。
  • コンテナ化されたセットアップ用に Docker Compose が提供されています(グラフベースの検索用の Neo4j を含む)。
  • 基本的なテレメトリが Cloudflare コレクターに送信されます。ENABLE_ANALYTICS=false で無効にできます。

プロジェクトステータス

このリポジトリは積極的にメンテナンスされていません – 参考用として引き続き利用可能ですが、新しい問題やプルリクエストへの対応は保証されません。


TL;DR – RagBuilder は、RAG パイプラインの設計、最適化、デプロイを自動化する Python ツールキットであり、チャンキング、検索、リランキング、LLM 設定の最適な組み合わせを検索している間、データに集中できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト