Communitygithub.com

OpenTechIL/markitdown-for-ai

MarkItDownは、様々なドキュメント形式をMarkdownに変換するPythonツールです。このDockerイメージは、すぐに使えるポータブルで使いやすいコンテナ化バージョンを提供します。

markitdown-for-ai とは?

このスキルは、`markitdown-for-ai` Dockerイメージを使用して、DOCX、PDF、PPTX、XLSX、HTMLなどのドキュメントをMarkdownに変換します。ローカルにPythonをインストールする必要はなく、DockerまたはPodman上で完全に動作するため、環境を汚染せずにすぐに使い始められます。主なユースケースは、AIエージェントがユーザーからアップロードされたドキュメントを読み取ったり要約したりする際の前処理です。このスキルは、標準入力からのパイプ処理や、ローカルファイルをマウントしての変換をサポートしており、変換結果を変数にキャプチャしてそのまま利用できます。対応フォーマットはPDF、Word(DOCX)、PowerPoint(PPTX)、Excel(XLSX)、HTMLです。Dockerが利用できない環境では自動的にPodmanにフォールバックするため、Linuxサーバーやルートレスコンテナ環境でもシームレスに動作します。RAGパイプラインやバッチ処理、契約書の分析など、様々な自動化シナリオに活用できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add OpenTechIL/markitdown-for-ai

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ドキュメントからMarkdownへの変換

markitdown-for-ai Dockerイメージを使用して、ドキュメントをMarkdownに変換します。ローカルにPythonをインストールする必要はありません。すべてDocker上で動作します。

前提条件

⚠️ このスキルを使用するには、システムにDockerまたはPodmanがインストールされ、利用可能である必要があります。このスキルを使用する前に、Docker DesktopまたはPodmanが実行されていることを確認してください。

クイックコマンド

このスキルはデフォルトでDockerを使用します。Dockerが利用できない場合は、自動的にPodmanを試します。

標準入力からのパイプ:

# まずDockerを試す
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < file.pdf

# Dockerが利用できない場合はPodmanを使用:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < file.pdf

ローカルファイルから(カレントディレクトリをマウント):

# まずDockerを試す
docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest file.docx

# Dockerが利用できない場合はPodmanを使用:
podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest file.docx

出力をファイルに保存:

# まずDockerを試す
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < input.pptx > output.md

# Dockerが利用できない場合はPodmanを使用:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < input.pptx > output.md

catからのパイプ:

# まずDockerを試す
cat file.xlsx | docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest

# Dockerが利用できない場合はPodmanを使用:
cat file.xlsx | podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest

対応フォーマット

フォーマット拡張子
PDF.pdf
Word.docx
PowerPoint.pptx
Excel.xlsx
HTML.html

イメージのプル(初回のみ)

docker pull ghcr.io/opentechil/markitdown-for-ai:latest

エージェントのワークフロー

ユーザーが読み取りまたは分析用のドキュメントファイルを提供した場合:

  1. Dockerが利用可能か確認 — 利用不可の場合はPodmanを試す(スキルが自動的にフォールバック)
  2. 上記の変換コマンドを実行
  3. 標準出力をMarkdownコンテンツとしてキャプチャ
  4. Markdownを直接読み取り、処理 — 一時ファイルは不要

例 — ユーザーが「このPDFを要約して」とリクエスト:

# マークダウンをシェル変数にキャプチャするか、次のステップに直接パイプ
docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf

# Dockerが失敗した場合、Podmanを試す:
podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf

このスキルを使用すべき場合

このスキルは、ドキュメントからコンテンツを抽出または処理する必要がある場合に使用します。以下は一般的なシナリオです。

ドキュメント変換と抽出

  • DOCXファイルの読み取り: 「このWord文書を読んで」「docxからテキストを抽出して」

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest document.docx
    
    # またはDockerが利用できない場合はPodman:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest document.docx
    
  • PDFファイルの読み取り: 「PDFをマークダウンに変換して」「PDFの内容を抽出して」

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf
    
    # またはPodman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < report.pdf
    
  • PowerPointの処理: 「pptxからスライドを抽出して」「プレゼンテーションを変換して」

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest slides.pptx
    
    # またはPodman:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest slides.pptx
    
  • Excelデータの抽出: 「スプレッドシートを読んで」「xlsxをマークダウンに変換して」

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < data.xlsx
    
    # またはPodman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < data.xlsx
    
  • HTMLのスクレイピング: 「Webページをマークダウンに変換して」「記事の内容を抽出して」

    docker run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest page.html
    
    # またはPodman:
    podman run --rm -v "$(pwd):/data" -w /data ghcr.io/opentechil/markitdown-for-ai:latest page.html
    

AIと自動化のユースケース

  • ドキュメントの要約: 「このPDF/レポート/ドキュメントを要約して」— まずマークダウンに変換し、抽出されたコンテンツを要約に使用します

    content=$(docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf)
    
    # Dockerが失敗した場合、Podmanを試す:
    content=$(podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf)
    
    # その後、$content を要約プロンプトに渡す
    
  • 契約書/契約条件の分析: 「このPDFから主要な条件を抽出して」「契約書を読んで」

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < contract.pdf
    
    # またはPodman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < contract.pdf
    
  • アップロードされたファイルの処理: ユーザーが分析用にドキュメントをアップロードした場合 — 最初に変換し、その後マークダウン上で推論します

  • バッチドキュメント処理: ループ内で複数のファイルを変換し、インデックス作成や分析を行います

    for f in *.pdf; do
      docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < "$f" > "${f%.pdf}.md"
      # 必要に応じてPodmanも試す:
      # podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < "$f" > "${f%.pdf}.md"
    done
    
  • RAG/埋め込みパイプライン: 「ベクトルストレージ用にドキュメントを準備して」— ドキュメントをマークダウンに変換し、チャンク分割と埋め込みを行います

    docker run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf | text-embeddings-cli embed
    
    # またはPodman:
    podman run --rm -i ghcr.io/opentechil/markitdown-for-ai:latest < document.pdf | text-embeddings-cli embed
    

例

ユーザーリクエストアクション
「このPDFを読んで」PDFをマークダウンに変換し、内容を表示
「このWord文書には何が書いてある?」DOCXをマークダウンに変換し、要約
「このExcelファイルからテーブルを抽出して」XLSXを変換 — テーブルはマークダウン形式で保持
「このWebページをマークダウンに変換して」HTMLをマークダウンに変換
「プレゼンテーションを要約して」PPTXスライドをマークダウンに変換

よくある間違い

間違い修正
{owner} プレースホルダーの使用ghcr.io/opentechil/markitdown-for-ai:latest を使用
標準入力用の -i フラグの付け忘れパイプするときは常に -i を追加
誤ったパスのマウント$(pwd) と -w /data を一緒に使用
Dockerがマウントなしで相対パスを見つけることを期待-v "$(pwd):/data" でマウント

Docker vs Podman

このスキルはDockerとPodmanの両方をサポートしています。環境に応じて選択してください。

Dockerを使用する場合

  • 開発ワークステーション - macOS/Windows上のDocker Desktop
  • プロダクションサーバー - Docker Engineを使用するLinuxシステム
  • ほとんどのユースケース - 完全な機能パリティ、セットアップが容易

Podmanを使用する場合

  • ルートレスコンテナ - セキュリティと分離が向上
  • DockerのないLinuxサーバー - デーモン不要
  • クラウドネイティブ環境 - Kubernetesおよびコンテナオーケストレーションと連携
  • セキュリティコンプライアンス - ルート権限なしで実行

適切なコマンドの選択

上記の例では、DockerとPodmanの両方のコマンドを提供しています。このスキルでは、まずDockerを試すことを推奨します。もし「command not found」などの実行エラーで失敗した場合は、代わりにPodmanコマンドを使用してください。

DockerとPodmanは同じイメージ(ghcr.io/opentechil/markitdown-for-ai:latest)を共有しているため、docker と podman の部分以外はコマンドは同一です。

利用可能なランタイムの確認

インストールされているコンテナランタイムを確認する:

# Dockerの確認
docker --version

# Podmanの確認
podman --version

Dockerが利用できない場合、Podmanを直接の代替として使用できます。

イメージのプル(初回セットアップ)

DockerとPodmanは同じレジストリを共有するため、プルコマンドは同一です:

docker pull ghcr.io/opentechil/markitdown-for-ai:latest
podman pull ghcr.io/opentechil/markitdown-for-ai:latest

お好みのランタイムで一度プルすれば、両方からローカルにイメージにアクセスできるようになります。

関連スキル