liteparse について
liteparseは、PDFや変換後のOffice・画像ファイルを扱うローカル文書解析スキルです。クラウドLLMを呼び出さず、レイアウトを保ったテキストやJSONの抽出、OCR、ページ画像、バッチ処理を案内します。
主な機能
- 01レイアウトを保ったテキスト抽出
- 02バウンディングボックス付きJSON出力
- 03スキャン文書・画像のOCR
- 04ページ画像の生成
- 05ページ指定とバッチ解析
活用シーン
- 01座標情報を使うレイアウト対応RAGの構築
- 02スキャンPDFからのローカルなテキスト抽出
- 03マルチモーダルエージェント向け図表の取得
- 04文書コレクションの一括取り込み
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill liteparseインストール後、Claude Code で/liteparseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api_reference.mdchoosing_a_parser.mdcli_reference.mdocr_and_formats.mdoutput_formats.mdscripts/batch_parse_dir.py詳細
LiteParse — ローカル文書解析
概要
LiteParse は、高速なオープンソースの文書パーサー(Rust コア、Python/Node バインディング)です。境界ボックス付きのローカルでのレイアウト認識テキスト抽出に特化しています。Markdown は生成せず、クラウド LLM も呼び出しません。出力は、レイアウトを保持したプレーンテキスト、またはページごとの text_items(位置、フォントメタデータ、オプションの信頼度を含む)を持つ構造化 JSONです。
バージョンに関する注記: 例は liteparse 2.0.0(PyPI、2026 年 5 月)を対象としています。上流の V1 ブランチはレガシーです。このスキルでは V2 / main のみを説明します。
MarkItDown、pdf スキル、LlamaParse と比較したパーサーの選択については、references/choosing_a_parser.md を参照してください。
このスキルを使用する場面
次のような場合は LiteParse を使用してください。
- クラウド依存なしで、PDF や変換済みの Office/画像ファイルを高速にローカル解析する
- レイアウト認識 RAG、引用箇所の特定、図表領域の処理に使う、境界ボックス付きの空間情報を含むテキストが必要
- スキャンした PDF や画像に対する OCR が必要(同梱の Tesseract、またはユーザーが実行する HTTP OCR サーバー)
- グラフ、図、手書き文字を確認する必要があるマルチモーダルエージェント向けに、ページのスクリーンショット(PNG)が必要
- 文献フォルダー、補足資料の PDF、プロトコルライブラリを一括取り込みする
- ページの一部、またはパスワード保護された PDF を処理する
使用しない場面
| タスク | 代わりに使用 |
|---|---|
| LLM への取り込み用 Markdown(EPUB、音声、YouTube、HTML) | markitdown スキル |
| PDF の結合/分割、フォーム、透かし、回転 | pdf スキル |
| 複雑な表、手書き文字、本番環境向けクラウドパイプライン | LlamaParse(クラウド。別途登録が必要です) |
インストール
uv pip install "liteparse==2.0.0"
Python バインディングと lit CLI がインストールされます。動作を確認します。
lit --help
python -c "import liteparse; print(liteparse.__version__)"
オプションのシステムツール(PDF 以外の入力用):
- LibreOffice — Word、Excel、PowerPoint、OpenDocument、CSV/TSV
- ImageMagick — PNG、JPEG、TIFF、WebP、SVG など
インストールコマンドは references/ocr_and_formats.md に記載されています。
Node.js/TypeScript(オプション):npm i @llamaindex/liteparse — references/api_reference.md を参照してください。
クイックスタート
Python
from liteparse import LiteParse
parser = LiteParse(quiet=True)
result = parser.parse("paper.pdf")
print(result.text)
for page in result.pages:
print(f"Page {page.page_num}: {len(page.text_items)} items")
CLI
# Layout-preserved text (default)
lit parse paper.pdf
# Structured JSON with bounding boxes
lit parse paper.pdf --format json -o paper.json
# Disable OCR on text-native PDFs (faster)
lit parse paper.pdf --no-ocr
主なワークフロー
1. レイアウトを保持したテキストに解析する
文書全体のテキストをすばやく取得する場合や、座標を必要としないチャンク分割器に渡す場合に最適です。
parser = LiteParse(ocr_enabled=True, quiet=True)
result = parser.parse("document.pdf")
full_text = result.text
lit parse document.pdf -o output.txt
2. 構造化 JSON に解析する(境界ボックス)
レイアウト認識 RAG の構築、元文書の領域のハイライト表示、テキストとスクリーンショットの結合に使用します。
import json
from liteparse import LiteParse
parser = LiteParse(output_format="json", quiet=True)
result = parser.parse("document.pdf")
# Programmatic access
for page in result.pages:
for item in page.text_items:
bbox = (item.x, item.y, item.width, item.height)
# item.text, item.confidence, item.font_name, item.font_size
lit parse document.pdf --format json -o document.json
JSON フィールドの構成:references/output_formats.md。
3. 特定のページを解析する
parser = LiteParse(target_pages="1-5,10,15-20", quiet=True)
result = parser.parse("long_paper.pdf")
lit parse long_paper.pdf --target-pages "1-5,10"
4. バイト列または標準入力から解析する
アップロード、S3 からのダウンロード、リモート PDF のパイプ処理に便利です。
with open("document.pdf", "rb") as f:
result = parser.parse(f.read())
curl -sL https://example.com/report.pdf | lit parse -
5. マルチモーダルエージェント向けのページスクリーンショット
スクリーンショットは、テキスト抽出だけでは取得できない視覚情報(図、複雑な表、手書き文字)を捉えます。
from pathlib import Path
parser = LiteParse(dpi=150, quiet=True)
shots = parser.screenshot("document.pdf", page_numbers=[1, 2, 3])
out = Path("screenshots")
out.mkdir(exist_ok=True)
for s in shots:
(out / f"page_{s.page_num}.png").write_bytes(s.image_bytes)
lit screenshot document.pdf --target-pages "1,3,5" -o ./screenshots
lit screenshot document.pdf --dpi 300 -o ./screenshots
エージェントが同じページの座標とピクセル情報の両方を必要とする場合は、JSON 解析とスクリーンショットを組み合わせてください。
6. ディレクトリを一括解析する
大規模なコーパスでは、CLI(並列 OCR ワーカーを使用)または同梱のスクリプトを使用してください。
lit batch-parse ./papers ./parsed --format json --recursive
lit batch-parse ./papers ./parsed --extension .pdf --no-ocr
python scripts/batch_parse_dir.py ./papers ./parsed --format json --recursive
ネットワーク呼び出しを行わない Python の一括処理ラッパーについては、scripts/batch_parse_dir.py を参照してください。
7. OCR の設定
OCR はデフォルトで有効です。Tesseract が同梱されているため、基本的な英語 OCR に追加のインストールは不要です。
parser = LiteParse(
ocr_enabled=True,
ocr_language="eng", # Tesseract codes: fra, deu, etc.
num_workers=4, # parallel OCR (default: CPU cores - 1)
dpi=150, # higher DPI → better OCR, slower
)
lit parse scan.pdf --ocr-language fra
lit parse scan.pdf --no-ocr
lit parse scan.pdf --ocr-server-url http://localhost:8080/ocr
オフライン/エアギャップ環境: .traineddata ファイルのあるディレクトリを TESSDATA_PREFIX に設定するか、--tessdata-path を渡してください。詳細は references/ocr_and_formats.md を参照してください。
8. 暗号化された PDF
parser = LiteParse(password="secret", quiet=True)
result = parser.parse("protected.pdf")
lit parse protected.pdf --password secret
9. フレーズでテキスト項目を検索する
隣接する項目を結合し、フレーズ(セクションタイトルなど)の統合された境界ボックスを返します。
from liteparse import search_items
page = result.get_page(1)
matches = search_items(page.text_items, "Materials and Methods", case_sensitive=False)
マルチフォーマット入力
| カテゴリ | 拡張子(例) | 必要なツール |
|---|---|---|
.pdf | ネイティブ | |
| Office | .docx、.xlsx、.pptx、.doc、.odt、… | LibreOffice |
| 画像 | .png、.jpg、.tiff、.webp、.svg、… | ImageMagick |
ファイルは内部で PDF に変換された後、解析されます。変換ツールが見つからない場合、実行可能な対処方法を示すエラーが発生して解析に失敗します。依存関係をインストールしてから再試行してください。
パフォーマンスのヒント
- デジタル生成 PDF では
--no-ocrを指定します。最も大きな速度向上が得られます。 target_pages— メソッドや補足セクションのみを解析しますnum_workers— CPU コア全体で OCR をスケールしますmax_pages— 非常に大きなファイルのページ数を制限します(デフォルトは 1000)lit batch-parse—--recursiveと--extensionを指定してディレクトリ単位でジョブを実行します- OCR の品質がすでに十分な場合は、
dpiを下げます(例:100)
参照ファイル
| ファイル | 読むタイミング |
|---|---|
references/choosing_a_parser.md | LiteParse、MarkItDown、pdf、LlamaParse のどれを使うべきか不明な場合 |
references/api_reference.md | Python/TypeScript API、型、search_items を確認する場合 |
references/cli_reference.md | lit コマンドのすべてのフラグを確認する場合 |
references/output_formats.md | JSON スキーマ、バウンディングボックス、信頼度スコアを確認する場合 |
references/ocr_and_formats.md | Tesseract、HTTP OCR、LibreOffice、ImageMagick を確認する場合 |
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
| Office ファイルの処理に失敗する | LibreOffice をインストールし、soffice が PATH 上にあることを確認します(Windows:LibreOffice の program ディレクトリを追加します) |
| 画像の処理に失敗する | ImageMagick をインストールし、convert または magick が動作することを確認します |
| OCR の品質が低い | --dpi を上げる、--ocr-language を試す、または HTTP OCR サーバーを使用します |
| OCR が遅い | 不要な場合は --no-ocr を指定し、ページ数を減らすか、num_workers を増やします |
| エアギャップ環境での OCR | export TESSDATA_PREFIX=/path/to/tessdata または --tessdata-path を指定します |
バイト列で ParseError が発生する | 入力が有効な PDF バイト列であることを確認します(Office のバイト列はファイルパスと変換が必要です) |
リソース
- GitHub: https://github.com/run-llama/liteparse
- ドキュメント: https://developers.llamaindex.ai/liteparse/
- PyPI: https://pypi.org/project/liteparse/2.0.0/
- npm: https://www.npmjs.com/package/@llamaindex/liteparse
- OCR API 仕様: https://github.com/run-llama/liteparse/blob/main/OCR_API_SPEC.md
エージェントの作業手順
- 環境を確認します。 調査の問い、データベース、対象期間、採用基準を確認します。
- 入力を明確にします。 データまたはユーザーから、形式、識別子、パラメーターを確認します。結果に影響する値は推測せず、質問してください。
- まず小規模に実行します。 1つのデータベースで範囲を絞ったクエリを実行し、結果が関連しているか確認します。
- 上記の手順と参照情報を使って、タスク全体を実行します。
- 結果を検証します。 各参考文献が、解決可能な識別子を持つ実在のレコードから取得されていることを確認します。件数と検索文字列を記録します。
- 報告します。 実行した内容(バージョン、コマンド、パラメーター)、確認した内容、未解決の点を示します。
| このような場合 | 対応 |
|---|---|
| API によるレート制限、またはエラーが発生した場合 | 間隔を空けて再試行する、バッチサイズを小さくする、またはデータベースを切り替え、欠落した内容を報告します。 |
| 手順に記載されている関数、フラグ、エンドポイントがインストール済みのバージョンにない場合 | インストール済みバージョンのドキュメント(help()、--help、公式ドキュメント)を確認して対応を調整し、ユーザーに伝えます。API を決して捏造しないでください。 |
| 必須の入力、識別子、またはパラメーターが曖昧な場合 | ユーザーに質問するか、実行前に前提を明示します。 |
誠実性に関するルール
- 結果、パラメーター、識別子、引用、統計を決して捏造しないでください。実行または検証できないことがあれば、明確に伝えます。
- 取得していない論文を要約したり、記憶を頼りに引用したりしないでください。
- ここに記載されているバージョン固有の情報は古くなっている可能性があるものとして扱い、インストール済みバージョンの公式ドキュメントで確認します。
- 費用が発生する、共有 GPU やクラウドのクォータを消費する、個人データや患者データを扱う、または取り消せない操作を行う場合は、事前に確認してください。
関連するスキル
markitdown:Microsoft MarkItDown(Python API、markitdown CLI、markitdown-ocr プラグイン、markitdown-mcp サーバー)を使ってドキュメントを Markdown に変換します。対象は…llamaindex:RAG を利用する LLM アプリケーションを構築するためのデータフレームワークです。open-notebook:AI を活用した調査とドキュメント分析のための、Google NotebookLM に代わるセルフホスト可能なオープンソースの選択肢です。