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 設定の最適な組み合わせを検索している間、データに集中できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト