flattendoc
Gemini API を使った PDF → Markdown 変換 + RAG チャンキングツール。
概要
- 言語: Python 3.12+
- 変換エンジン: Google Gemini API (OCR 対応)
- PDF パース: PyMuPDF
- チャンキング: unstructured[md]
- 出力: Markdown / JSONL (RAG チャンク)
主な機能
- スキャン文書の OCR (Gemini API)
- 電子 PDF のテキスト抽出
- ページグルーピング (
--part-size) - RAG 用チャンキング (デフォルト 800文字、オーバーラップ 100文字)
- バッチ処理 (キャッシュによる増分処理)
使い方
# 単一ファイル変換 (JSONL 出力)
flattendoc input.pdf
# Markdown のみ出力
flattendoc --no-unstruct input.pdf
# Markdown チャンキング
flattendoc-chunk input.md --output chunks.jsonl
バッチ処理
find ./pdfs -name "*.pdf" | script/batch_proc.sh -o ./output
設定
| 環境変数/オプション | 説明 | デフォルト |
|---|---|---|
GOOGLE_API_KEY |
Gemini API キー | (必須) |
--part-size |
ページグルーピング数 | 5 |
--model |
Gemini モデル | gemini-2.5-pro |
--no-unstruct |
RAG チャンキング無効 | false |
リポジトリ
flattendoc/