Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

docling

PDF・DOCX・PPTX・HTML・画像など15種類以上のフォーマットに対応したDoclingドキュメントパーサーです。テキスト抽出、Markdown/HTML/JSON形式への変換、RAGパイプライン向けチャンク分割、ファイルの一括処理が必要な場面で使用します。`DocumentConverter`・`convert`・`convert_all`・`export_to_markdown`・`HierarchicalChunker`・`HybridChunker`・`ConversionResult`の利用時にトリガーされます。

description の原文を見る

Docling document parser for PDF, DOCX, PPTX, HTML, images, and 15+ formats. Use when parsing documents, extracting text, converting to Markdown/HTML/JSON, chunking for RAG pipelines, or batch processing files. Triggers on DocumentConverter, convert, convert_all, export_to_markdown, HierarchicalChunker, HybridChunker, ConversionResult.

SKILL.md 本文

Docling ドキュメントパーサー

Docling は、PDF、Word ドキュメント、PowerPoint、画像、その他のフォーマットを高度なレイアウト理解を備えた構造化データに変換するドキュメント解析ライブラリです。

クイックスタート

基本的なドキュメント変換:

from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"  # URL, Path, or BytesIO
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())

コアコンセプト

DocumentConverter

ドキュメント変換のメインエントリーポイント。様々な入力フォーマットと変換オプションをサポートしています。

from docling.document_converter import DocumentConverter
from docling.datamodel.base_models import InputFormat
from docling.document_converter import PdfFormatOption
from docling.datamodel.pipeline_options import PdfPipelineOptions

# 基本的なコンバーター(すべてのフォーマット有効)
converter = DocumentConverter()

# フォーマット制限
converter = DocumentConverter(
    allowed_formats=[InputFormat.PDF, InputFormat.DOCX]
)

# カスタムパイプラインオプション
pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.do_table_structure = True

converter = DocumentConverter(
    format_options={
        InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)
    }
)

ConversionResult

すべての変換操作は以下を含む ConversionResult を返します:

  • document: パースされた DoclingDocument
  • status: ConversionStatus.SUCCESSPARTIAL_SUCCESS、または FAILURE
  • errors: 変換中に発生したエラーのリスト
  • input: ソースドキュメントの情報
from docling.datamodel.base_models import ConversionStatus

result = converter.convert("document.pdf")

if result.status == ConversionStatus.SUCCESS:
    markdown = result.document.export_to_markdown()
    html = result.document.export_to_html()
    data = result.document.export_to_dict()

サポートされているフォーマット

入力フォーマット

  • ドキュメント: PDF、DOCX、PPTX、XLSX
  • マークアップ: HTML、Markdown、AsciiDoc
  • データ: CSV、JSON(Docling フォーマット)
  • 画像: PNG、JPEG、TIFF、BMP、WEBP
  • オーディオ: WAV、MP3
  • ビデオテキスト: WebVTT
  • スキーマ固有: USPTO XML、JATS XML、METS-GBS

出力フォーマット

  • Markdown: export_to_markdown() または save_as_markdown()
  • HTML: export_to_html() または save_as_html()
  • JSON: export_to_dict() または save_as_json()(注:export_to_json() メソッドはありません)
  • テキスト: export_to_text() または export_to_markdown(strict_text=True) または save_as_markdown(strict_text=True)
  • DocTags: export_to_doctags() または save_as_doctags()

一般的なパターン

単一ファイルの変換

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("document.pdf")

# 異なるフォーマットにエクスポート
markdown = result.document.export_to_markdown()
html = result.document.export_to_html()
json_data = result.document.export_to_dict()

# または直接ファイルに保存
result.document.save_as_markdown("output.md")
result.document.save_as_html("output.html")
result.document.save_as_json("output.json")

バッチ処理

convert_all() の詳細については references/batch.md を参照してください。

URL 変換

converter = DocumentConverter()
result = converter.convert("https://example.com/document.pdf")

バイナリストリーム変換

from io import BytesIO
from docling.datamodel.base_models import DocumentStream

with open("document.pdf", "rb") as f:
    buf = BytesIO(f.read())

source = DocumentStream(name="document.pdf", stream=buf)
result = converter.convert(source)

フォーマット固有のオプション

from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import PdfPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption

# PDF 固有のオプションを設定
pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options.lang = ["en", "es"]
pipeline_options.do_table_structure = True
pipeline_options.generate_page_images = True

converter = DocumentConverter(
    format_options={
        InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)
    }
)

リソースの制限

converter = DocumentConverter()

# ファイルサイズ(バイト)とページ数を制限
result = converter.convert(
    "large_document.pdf",
    max_file_size=20_971_520,  # 20 MB
    max_num_pages=100
)

ドキュメント分割

RAG 統合については references/chunking.md を参照してください。

DoclingDocument 構造

DoclingDocument はパース済みコンテンツを表す Pydantic モデルです:

# ドキュメント構造へのアクセス
doc = result.document

# コンテンツアイテム(リスト)
doc.texts         # TextItem インスタンス(段落、見出しなど)
doc.tables        # TableItem インスタンス
doc.pictures      # PictureItem インスタンス
doc.key_value_items  # キーバリューペア

# 構造(ツリーノード)
doc.body          # メインコンテンツ階層
doc.furniture     # ヘッダー、フッター、ページ番号
doc.groups        # リスト、章、セクション

# 読み順ですべての要素を反復処理
for item, level in doc.iterate_items():
    print(f"{'  ' * level}{item.label}: {item.text[:50]}")

高度な機能

OCR 設定

from docling.datamodel.pipeline_options import (
    PdfPipelineOptions,
    EasyOcrOptions,
    TesseractOcrOptions,
    TesseractCliOcrOptions,
    OcrMacOptions,
    RapidOcrOptions
)

# EasyOCR(デフォルト)
pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options = EasyOcrOptions(lang=["en", "de"])

# Tesseract
pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options = TesseractOcrOptions(lang=["eng", "deu"])

# RapidOCR
pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options = RapidOcrOptions()

テーブル抽出オプション

from docling.datamodel.pipeline_options import (
    PdfPipelineOptions,
    TableFormerMode
)

pipeline_options = PdfPipelineOptions()
pipeline_options.do_table_structure = True

# セルマッチングを使用(PDF セルにマッピング)
pipeline_options.table_structure_options.do_cell_matching = True

# または予測セルを使用
pipeline_options.table_structure_options.do_cell_matching = False

# 精度モードを選択
pipeline_options.table_structure_options.mode = TableFormerMode.ACCURATE

ページ画像

pipeline_options = PdfPipelineOptions()
pipeline_options.generate_page_images = True  # HTML エクスポート画像に必要

# 埋め込み画像でエクスポート
result.document.save_as_html(
    "output.html",
    image_mode=ImageRefMode.EMBEDDED
)

エラーハンドリング

from docling.datamodel.base_models import ConversionStatus

result = converter.convert("document.pdf")

if result.status == ConversionStatus.SUCCESS:
    print("Conversion successful")
elif result.status == ConversionStatus.PARTIAL_SUCCESS:
    print("Partial conversion:")
    for error in result.errors:
        print(f"  {error.error_message}")
else:  # FAILURE
    print("Conversion failed:")
    for error in result.errors:
        print(f"  {error.error_message}")

バッチ処理でのエラーハンドリング:

# エラー時も処理を継続
results = converter.convert_all(
    ["doc1.pdf", "doc2.pdf", "doc3.pdf"],
    raises_on_error=False
)

for result in results:
    if result.status == ConversionStatus.SUCCESS:
        result.document.save_as_markdown(f"{result.input.file.stem}.md")
    else:
        print(f"Failed: {result.input.file}")

ゲート

出力を完全なものとして扱う、またはダウンストリーム(RAG、評価、ストレージ)に供給する前に:

  1. convert() から result を取得するか、references/batch.md のバッチシーケンスに従います。
  2. パス: result.statusConversionStatus.SUCCESS である、または PARTIAL_SUCCESS result.errors を読み取り、タスク用の部分出力を明示的に受け入れている、または FAILURE を処理している(意図しない限り、失敗時にエクスポート/分割なし)。
  3. その後のみ export_to_*save_as_*、または references/chunking.md のチャンカーを呼び出します。

convert_all の場合: 各入力が結果にマップされ、各 result.status が出力を書き込む前に分類されるときにパスします(references/batch.md を参照)。

CLI 使用法

# 基本的な変換
docling document.pdf

# 特定の出力に変換
docling --to markdown document.pdf

# カスタムモデルパスを使用
docling --artifacts-path /path/to/models document.pdf

# VLM パイプラインを使用
docling --pipeline vlm --vlm-model granite_docling document.pdf

リファレンスドキュメント

  • Parsing Options - DocumentConverter 初期化、フォーマット固有のオプション、OCR 設定
  • Batch Processing - convert_all()、エラーハンドリング、並行処理パターン
  • Chunking - HierarchicalChunker、HybridChunker、RAG 統合
  • Output Formats - export_to_markdown()、export_to_html()、export_to_dict()、ドキュメント構造

キー型

  • DocumentConverter: メイン変換クラス
  • ConversionResult: ドキュメントと状態を含む変換結果
  • DoclingDocument: 統一ドキュメント表現(Pydantic モデル)
  • InputFormat: サポート入力フォーマットの列挙型
  • ConversionStatus: SUCCESS、PARTIAL_SUCCESS、FAILURE
  • PdfPipelineOptions: PDF パイプラインの設定
  • ImageRefMode: EMBEDDED、REFERENCED、PLACEHOLDER

統合例

LangChain

from docling.document_converter import DocumentConverter
from langchain_text_splitters import MarkdownTextSplitter

converter = DocumentConverter()
result = converter.convert("document.pdf")
markdown = result.document.export_to_markdown()

splitter = MarkdownTextSplitter(chunk_size=1000)
chunks = splitter.split_text(markdown)

LlamaIndex

from docling.document_converter import DocumentConverter
from docling.chunking import HybridChunker
from llama_index.core import Document

converter = DocumentConverter()
result = converter.convert("document.pdf")

chunker = HybridChunker()
chunks = list(chunker.chunk(result.document))

documents = [
    Document(text=chunk.text, metadata=chunk.meta.export_json_dict())
    for chunk in chunks
]

注記

  • Docling は同期 API を使用しています(ネイティブ非同期サポートなし)
  • モデルは初回使用時に自動的にダウンロードされます(事前フェッチ可能)
  • エアギャップ環境でのローカル実行をサポート
  • OCR とテーブル検出の GPU アクセラレーションをサポート
  • デフォルトモデルは CPU で実行; GPU は設定が必要

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
existential-birds
リポジトリ
existential-birds/beagle
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/existential-birds/beagle / ライセンス: Apache-2.0

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: existential-birds · existential-birds/beagle · ライセンス: Apache-2.0