rag-chunk — MarkdownをRAG向けに分割・評価するCLIツール
概要
rag-chunkは、MarkdownファイルをRAG(Retrieval-Augmented Generation)用に整形・分割し、検索時の回収性能(リコール)に基づく評価まで行えるコマンドラインツールです。Markdownの不要なメタやコードブロック等をクリーンにし、固定長、スライディングウィンドウ、段落単位という3つのチャンク方式を選択してテキストを切り出せます。評価はテスト用JSONに基づくリコール計測をサポートし、結果はテーブル・JSON・CSVで出力可能。小規模なコーパス整備やRAGパイプラインの前処理に向いています。
リポジトリの統計情報
- スター数: 5
- フォーク数: 0
- ウォッチャー数: 5
- コミット数: 4
- ファイル数: 8
- メインの言語: Python
主な特徴
- Markdownの解析とクリーニング(不要なメタや装飾の除去)
- 3種類のチャンク戦略:固定サイズ、スライディングウィンドウ、段落ベース
- リコール評価を行うためのテストJSON対応と評価出力(表/JSON/CSV)
- 実用的なサンプルコーパスとPyPI配布で即導入可能
技術的なポイント
rag-chunkは「ドキュメント前処理 → チャンク生成 → 検証」というRAG準備ワークフローに焦点を当てています。Markdown解析では見出しやコードブロック、注釈などRAGに不要なノイズを取り除くための正規化処理が行われ、テキストの一貫性を保ちます。チャンク手法は用途によって使い分けられます:固定サイズは埋め込み長やトークン制限を意識した分割に、スライディングウィンドウは切断による情報欠落を避けつつ類似箇所の冗長性を与えるため検索精度向上に、段落ベースは意味的な単位を保ちつつ自然な文脈での検索を可能にします。評価は“リコール”を軸にしており、テストJSONに定義した正解文書やクエリに対する回収率を算出することで、チャンク設定の差異が検索性能に与える影響を定量的に比較できます。CLIは表形式、JSON、CSVという出力モードを持ち、後段の埋め込み生成やベクターDB構築、可視化ツールへの連携が容易です。軽量なPython実装のため、小~中規模コーパスを対象に迅速な実験サイクルを回せます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- example.md: file
- examples: dir
- pyproject.toml: file
…他 3 ファイル
(補足)examplesディレクトリには実践的なMarkdownコーパスや評価用JSONが含まれており、コマンドをすぐ試せる構成です。pyproject.tomlによりパッケージ化・配布が簡易になっており、PyPIからpipでのインストールが可能です。
使いどころと運用上の注意
- 小規模から中規模のドキュメントセットをRAG用途に整備する際、初期のデータ整形とチャンク戦略の検証に最適です。
- スライディングウィンドウは検索精度を上げやすい反面、チャンク数が増えコスト(ストレージ・検索時間)が増大します。固定サイズはコスト制御に優れるが文脈分断が起きやすい点に留意してください。
- 残された課題としては、言語依存のクリーニング(日本語特有の句読点や改行規則)やトークナイザとの整合、埋め込み生成のための前処理連携(正規化・正規表現でのノイズ除去等)があります。これらはプロジェクト側で拡張可能です。
まとめ
RAG向けドキュメント前処理とチャンク戦略を手早く試せる実用的なCLIツールです。
リポジトリ情報:
- 名前: rag-chunk
- 説明: 説明なし
- スター数: 5
- 言語: Python
- URL: https://github.com/messkan/rag-chunk
- オーナー: messkan
- アバター: https://avatars.githubusercontent.com/u/40677488?v=4
READMEの抜粋:
rag-chunk
CLI tool to parse, chunk, and evaluate Markdown documents for Retrieval-Augmented Generation (RAG) preparation.
🎉 First Public Release
Available on PyPI: https://pypi.org/project/rag-chunk/
Features
- ✅ Parse and clean Markdown files
- ✅ Three chunking strategies: fixed-size, sliding-window, paragraph
- ✅ Recall-based evaluation with test JSON files
- ✅ CLI with table/JSON/CSV output formats
- ✅ Realistic example corpus included
Installation
pip install rag-ch...