Microsoft MarkItDown の詳細

Linda Hamilton
リリース: 2024-12-26 16:14:20
オリジナル
295 人が閲覧しました

マークイットダウンとは何ですか?

MarkItDown は Microsoft によって開発された Python パッケージで、さまざまなファイル形式を Markdown に変換するように設計されています。

デビュー以来、このライブラリの人気は急上昇し、わずか 2 週間で 25,000 を超える GitHub スターを獲得しました。 ?

Deep Dive into Microsoft MarkItDown

MarkItDown の人気の理由は何ですか?

MarkItDown は、次のような幅広いファイル タイプを強力にサポートします。

  • Office 形式: Word、PowerPoint、Excel
  • メディア ファイル: 画像 (EXIF データと説明付き)、オーディオ (文字起こしサポート付き)
  • Web およびデータ形式: HTML、JSON、XML、CSV
  • アーカイブ: ZIP ファイル

Word のような標準形式だけでなく、マルチモーダル データも処理できる機能が際立っています。たとえば、OCR と音声認識を使用して、画像や音声ファイルからコンテンツを抽出します。

MarkItDown は、あらゆるものを Markdown に変換できるため、LLM トレーニング用の強力なツールになります。ドメイン固有のドキュメントを処理することで、LLM を利用したアプリケーションでより正確で関連性の高い応答を生成するための豊富なコンテキストが提供されます。

MarkItDown の使用を開始する

MarkItDown の使用は非常に簡単です。必要なコードは 4 行のみです。

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)
ログイン後にコピー
ログイン後にコピー

MarkItDown の使用例をいくつか示します。

Word ドキュメントを変換すると、クリーンで正確な Markdown が生成されます。

Deep Dive into Microsoft MarkItDown

複数タブの Excel スプレッドシートも簡単に処理できます:

Deep Dive into Microsoft MarkItDown

ZIP アーカイブ?問題ない!ライブラリは、その中のすべてのファイルを再帰的に解析します:

Deep Dive into Microsoft MarkItDown

最初は、画像抽出で結果が得られない可能性があります:

Deep Dive into Microsoft MarkItDown

これは、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")
ログイン後にコピー
ログイン後にコピー

設定を適切に行うと、画像ファイルを正常に処理できます。

Deep Dive into Microsoft MarkItDown

注: LLM は画像ベースの PDF を処理しません。 PDF はコンテンツを抽出するために OCR 前処理が必要です。

Deep Dive into Microsoft MarkItDown

ただし、PDF は抽出時に書式設定が失われるため、見出しとプレーン テキストは区別されません。

Deep Dive into Microsoft MarkItDown

制限事項

MarkItDown には制限がないわけではありません:

  • OCR なしの PDF ファイルは処理できません。
  • 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 に変換されます。

Deep Dive into Microsoft MarkItDown

音声ファイル

音声は、Google の API を利用する speech_recognition ライブラリを使用して書き起こされます。

(Microsoft さん、なぜ Azure ではないのですか??)

Deep Dive into Microsoft MarkItDown

画像

画像処理には、LLM プロンプトを介したキャプションの生成が含まれます:
「この画像の詳しい説明を書いてください。」

Deep Dive into Microsoft MarkItDown

PDF

PDF は pdfminer ライブラリによって処理されますが、OCR が組み込まれていません。テキスト抽出のために PDF を前処理する必要があります。

Deep Dive into Microsoft MarkItDown

MarkItDown を API としてデプロイする

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())
# ...
ログイン後にコピー

API を無料でホストする

Python API のホスティングは難しい場合があります。 AWS EC2 や DigitalOcean などの従来のサービスではサーバー全体をレンタルする必要があり、常にコストがかかります。

しかし、今では Leapcell を使用できるようになりました。

これは、サーバーレスな方法で Python コードベースをホストできるプラットフォームです。料金は API 呼び出しごとにのみ発生し、無料枠の使用量が豊富です。

GitHub リポジトリに接続し、ビルドと開始コマンドを定義するだけで準備完了です。

Deep Dive into Microsoft MarkItDown

これで、クラウドでホストされ、ワー​​クフローに統合する準備ができた MarkItDown API が完成しました。そして最も重要なことは、実際に呼び出された場合にのみ課金されることです。


Leapcell で独自の MarkItDown API の構築を今すぐ始めましょう! ?

Deep Dive into Microsoft MarkItDown

以上がMicrosoft MarkItDown の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート