ドキュメントから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 | |
| Word | .docx |
| PowerPoint | .pptx |
| Excel | .xlsx |
| HTML | .html |
イメージのプル(初回のみ)
docker pull ghcr.io/opentechil/markitdown-for-ai:latest
エージェントのワークフロー
ユーザーが読み取りまたは分析用のドキュメントファイルを提供した場合:
- Dockerが利用可能か確認 — 利用不可の場合はPodmanを試す(スキルが自動的にフォールバック)
- 上記の変換コマンドを実行
- 標準出力をMarkdownコンテンツとしてキャプチャ
- 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
お好みのランタイムで一度プルすれば、両方からローカルにイメージにアクセスできるようになります。