Skip to content

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/