MarkItDown は Microsoft によって開発された Python パッケージで、さまざまなファイル形式を Markdown に変換するように設計されています。
デビュー以来、このライブラリの人気は急上昇し、わずか 2 週間で 25,000 を超える GitHub スターを獲得しました。 ?
MarkItDown は、次のような幅広いファイル タイプを強力にサポートします。
Word のような標準形式だけでなく、マルチモーダル データも処理できる機能が際立っています。たとえば、OCR と音声認識を使用して、画像や音声ファイルからコンテンツを抽出します。
MarkItDown は、あらゆるものを Markdown に変換できるため、LLM トレーニング用の強力なツールになります。ドメイン固有のドキュメントを処理することで、LLM を利用したアプリケーションでより正確で関連性の高い応答を生成するための豊富なコンテキストが提供されます。
MarkItDown の使用は非常に簡単です。必要なコードは 4 行のみです。
from markitdown import MarkItDown md = MarkItDown() result = md.convert("test.xlsx") print(result.text_content)
MarkItDown の使用例をいくつか示します。
Word ドキュメントを変換すると、クリーンで正確な Markdown が生成されます。
複数タブの Excel スプレッドシートも簡単に処理できます:
ZIP アーカイブ?問題ない!ライブラリは、その中のすべてのファイルを再帰的に解析します:
最初は、画像抽出で結果が得られない可能性があります:
これは、MarkItDown が LLM に依存して画像の説明を生成するためです。 LLM クライアントを統合することで、この機能を有効にできます:
from openai import OpenAI client = OpenAI(api_key="i-am-not-an-api-key") md = MarkItDown(llm_client=client, llm_model="gpt-4o")
設定を適切に行うと、画像ファイルを正常に処理できます。
注: LLM は画像ベースの PDF を処理しません。 PDF はコンテンツを抽出するために OCR 前処理が必要です。
ただし、PDF は抽出時に書式設定が失われるため、見出しとプレーン テキストは区別されません。
MarkItDown には制限がないわけではありません:
それでも、オープンソース プロジェクトなので、高度にカスタマイズ可能です。開発者は、クリーンなコードベースのため、機能を簡単に拡張できます。
MarkItDown のアーキテクチャは簡単でモジュール式です。
これには、汎用の Convert() メソッドを定義する DocumentConverter クラスがあります。
from markitdown import MarkItDown md = MarkItDown() result = md.convert("test.xlsx") print(result.text_content)
個々のコンバータはこの基本クラスを継承し、動的に登録されます。
from openai import OpenAI client = OpenAI(api_key="i-am-not-an-api-key") md = MarkItDown(llm_client=client, llm_model="gpt-4o")
このモジュール式アプローチにより、新しいファイル タイプのサポートを簡単に追加できます。
Office ファイルは、mammoth、pandas、pptx などのライブラリを使用して HTML に変換され、BeautifulSoup を使用して Markdown に変換されます。
音声は、Google の API を利用する speech_recognition ライブラリを使用して書き起こされます。
(Microsoft さん、なぜ Azure ではないのですか??)
画像処理には、LLM プロンプトを介したキャプションの生成が含まれます:
「この画像の詳しい説明を書いてください。」
PDF は pdfminer ライブラリによって処理されますが、OCR が組み込まれていません。テキスト抽出のために PDF を前処理する必要があります。
MarkItDown はローカルで実行できますが、API としてホストすると柔軟性がさらに高まり、Zapier や n8n などのワークフローに簡単に統合できます。
FastAPI を使用した MarkItDown API の簡単な例を次に示します。
class DocumentConverter: """Base class for all document converters.""" def convert( self, local_path: str, **kwargs: Any ) -> Union[None, DocumentConverterResult]: raise NotImplementedError()
API を呼び出すには:
self.register_page_converter(PlainTextConverter()) self.register_page_converter(HtmlConverter()) self.register_page_converter(DocxConverter()) self.register_page_converter(XlsxConverter()) self.register_page_converter(Mp3Converter()) self.register_page_converter(ImageConverter()) # ...
Python API のホスティングは難しい場合があります。 AWS EC2 や DigitalOcean などの従来のサービスではサーバー全体をレンタルする必要があり、常にコストがかかります。
しかし、今では Leapcell を使用できるようになりました。
これは、サーバーレスな方法で Python コードベースをホストできるプラットフォームです。料金は API 呼び出しごとにのみ発生し、無料枠の使用量が豊富です。
GitHub リポジトリに接続し、ビルドと開始コマンドを定義するだけで準備完了です。
これで、クラウドでホストされ、ワークフローに統合する準備ができた MarkItDown API が完成しました。そして最も重要なことは、実際に呼び出された場合にのみ課金されることです。
Leapcell で独自の MarkItDown API の構築を今すぐ始めましょう! ?
以上がMicrosoft MarkItDown の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。