Smart Ingest Kit(スマートインジェストキット)
概要
smart-ingest-kitは、単純な固定チャンク長に頼らず文書の種類やレイアウトに合わせて賢く分割することを目的とした軽量なRAG向けインジェストツールキットです。Doclingを採用してPDFなどのレイアウト情報を取得し、Markdownやソースコードの構造を考慮したヒューリスティクスで最適なチャンク化を行います。実運用プラットフォームから抜き出されたロジックを元にしており、埋め込み前の前処理やメタデータ保持を重視する設計です。Pythonで実装されており、既存のベクトルDBやLLMパイプラインへ組み込みやすい点が特徴です。
リポジトリの統計情報
- スター数: 22
- フォーク数: 4
- ウォッチャー数: 22
- コミット数: 2
- ファイル数: 2
- メインの言語: Python
主な特徴
- Doclingによるレイアウト-awareなパーシングでPDFのページ構造や列を考慮
- ドキュメント種別(PDF / Markdown / Code)ごとに異なるチャンク化ヒューリスティクスを適用
- 軽量でプロダクション志向、既存RAGワークフローへ組み込みやすい設計
- メタデータ保持やセマンティック境界を尊重した分割による検索精度の向上を想定
技術的なポイント
smart-ingest-kitの中核は「単純な固定長トークン/文字数チャンクからの脱却」にあります。具体的にはDoclingを用いてPDFやレイアウト情報を抽出し、ページやカラム、見出しなどの物理的/論理的境界をもとに分割候補を生成します。Markdownでは見出しやリスト、コードブロックを優先的に区切り、一つのチャンクに混在させないように設計することで意味的な一貫性を保ちます。ソースコードは文脈を壊さないために関数やクラス単位、コメントとコードのまとまりを意識した切り方を行うヒューリスティクスが適用されます。これにより埋め込みベクトルがより高い意味論的一貫性を持ち、後段のベクトル検索での再現性と精度が向上します。
またオーバーラップや最大/最小チャンク長の調整、メタデータ(出力元ファイル名、ページ番号、見出しパスなど)の付与をデフォルトでサポートすることにより、検索結果の解釈やコンテキスト再構築が容易になります。軽量実装のため、メモリフットプリントや依存関係を抑えつつ、既存の埋め込み生成器やベクターストアに対してシンプルに繋げられることを重視しています。プロダクション由来の設計であるため、実運用で問題になりやすい文書の多様性(スキャンPDF、マルチカラム、コードドキュメント混在など)に対する現実的な対処が期待できます。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- smart-ingest-kit: dir
まとめ
文書種別とレイアウトを考慮した実運用向けの軽量RAGインジェストキット。
リポジトリ情報:
- 名前: smart-ingest-kit
- 説明: Stop using static chunk sizes. A lightweight, production-ready RAG ingestion toolkit. Uses Docling for layout-aware parsing and applies smart heuristics for optimal chunking (PDF vs Code vs MD). Extracted from a production RAG platform
- スター数: 22
- 言語: Python
- URL: https://github.com/2dogsandanerd/smart-ingest-kit
- オーナー: 2dogsandanerd
- アバター: https://avatars.githubusercontent.com/u/235518900?v=4
READMEの抜粋:
smart-ingest-kit
Stop using static chunk sizes. A lightweight, production-ready RAG ingestion toolkit. Uses Docling for layout-aware parsing and applies smart heuristics for optimal chunking (PDF vs Code vs MD). Extracted from a production RAG platform …