Heim >Backend-Entwicklung >Python-Tutorial >Tauchen Sie tief in Microsoft MarkItDown ein
MarkItDown ist ein von Microsoft entwickeltes Python-Paket, das zum Konvertieren einer Vielzahl von Dateiformaten in Markdown entwickelt wurde.
Seit ihrem Debüt ist die Popularität der Bibliothek sprunghaft angestiegen und hat innerhalb von nur zwei Wochen über 25.000 GitHub-Sterne gewonnen! ?
MarkItDown bietet robuste Unterstützung für eine Vielzahl von Dateitypen, wie zum Beispiel:
Es zeichnet sich durch seine Fähigkeit aus, nicht nur Standardformate wie Word, sondern auch multimodale Daten zu verarbeiten. Es nutzt beispielsweise OCR und Spracherkennung, um Inhalte aus Bildern und Audiodateien zu extrahieren.
Die Möglichkeit, alles in Markdown umzuwandeln, macht MarkItDown zu einem leistungsstarken Tool für das LLM-Training. Durch die Verarbeitung domänenspezifischer Dokumente bietet es umfassenden Kontext für die Generierung genauerer und relevanterer Antworten in LLM-basierten Anwendungen.
Die Verwendung von MarkItDown ist unglaublich einfach – es werden nur 4 Zeilen Code benötigt:
from markitdown import MarkItDown md = MarkItDown() result = md.convert("test.xlsx") print(result.text_content)
Hier sind einige Anwendungsfälle von MarkItDown.
Das Konvertieren eines Word-Dokuments generiert einen sauberen und genauen Markdown:
Selbst Excel-Tabellen mit mehreren Registerkarten werden problemlos gehandhabt:
ZIP-Archive? Kein Problem! Die Bibliothek analysiert alle darin enthaltenen Dateien rekursiv:
Anfangs führt die Bildextraktion möglicherweise zu keinen Ergebnissen:
Das liegt daran, dass MarkItDown zur Generierung von Bildbeschreibungen auf ein LLM angewiesen ist. Durch die Integration eines LLM-Clients können Sie diese Funktion aktivieren:
from openai import OpenAI client = OpenAI(api_key="i-am-not-an-api-key") md = MarkItDown(llm_client=client, llm_model="gpt-4o")
Mit der vorhandenen Konfiguration können Bilddateien erfolgreich verarbeitet werden:
Hinweis: LLM kann keine bildbasierten PDFs verarbeiten. PDFs benötigen eine OCR-Vorverarbeitung, um Inhalte zu extrahieren.
PDFs verlieren jedoch beim Extrahieren ihre Formatierung, daher wird nicht zwischen Überschriften und reinem Text unterschieden:
MarkItDown ist nicht ohne Einschränkungen:
Dennoch ist es als Open-Source-Projekt in hohem Maße anpassbar. Entwickler können die Funktionalität aufgrund der sauberen Codebasis problemlos erweitern.
Die Architektur von MarkItDown ist unkompliziert und modular.
Es verfügt über eine DocumentConverter-Klasse, die eine generische Convert()-Methode definiert:
from markitdown import MarkItDown md = MarkItDown() result = md.convert("test.xlsx") print(result.text_content)
Einzelne Konverter erben von dieser Basisklasse und werden dynamisch registriert:
from openai import OpenAI client = OpenAI(api_key="i-am-not-an-api-key") md = MarkItDown(llm_client=client, llm_model="gpt-4o")
Dieser modulare Ansatz macht es einfach, Unterstützung für neue Dateitypen hinzuzufügen.
Office-Dateien werden mithilfe von Bibliotheken wie Mammoth, Pandas oder PPTX in HTML umgewandelt und dann mit BeautifulSoup in Markdown konvertiert.
Audio wird mit der Speech_recognition-Bibliothek transkribiert, die die API von Google nutzt.
(Microsoft, warum nicht Azure hier? ?)
Bei der Bildverarbeitung wird eine Bildunterschrift über eine LLM-Eingabeaufforderung generiert:
„Schreiben Sie eine detaillierte Beschreibung für dieses Bild.“
PDFs werden von der pdfminer-Bibliothek verarbeitet, es fehlt jedoch die integrierte OCR. Sie müssen PDFs für die Textextraktion vorverarbeiten.
MarkItDown kann lokal ausgeführt werden, aber das Hosten als API eröffnet zusätzliche Flexibilität und erleichtert die Integration in Workflows wie Zapier und n8n.
Hier ist ein einfaches Beispiel für die MarkItDown-API mit FastAPI:
class DocumentConverter: """Base class for all document converters.""" def convert( self, local_path: str, **kwargs: Any ) -> Union[None, DocumentConverterResult]: raise NotImplementedError()
So rufen Sie die API auf:
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()) # ...
Das Hosten von Python-APIs kann schwierig sein. Herkömmliche Dienste wie AWS EC2 oder DigitalOcean erfordern die Anmietung eines gesamten Servers, was immer kostspielig ist.
Aber jetzt können Sie Leapcell verwenden.
Es handelt sich um eine Plattform, die die Python-Codebasis serverlos hosten kann – sie berechnet nur pro API-Aufruf, mit einer großzügigen kostenlosen Nutzung.
Verbinden Sie einfach Ihr GitHub-Repository, definieren Sie Build- und Startbefehle, und schon kann es losgehen:
Jetzt verfügen Sie über eine MarkItDown-API, die in der Cloud gehostet wird, bereit für die Integration in Ihren Workflow ist und, was am wichtigsten ist, nur dann aufgeladen wird, wenn sie wirklich aufgerufen wird.
Beginnen Sie noch heute mit dem Aufbau Ihrer eigenen MarkItDown-API auf Leapcell! ?
Das obige ist der detaillierte Inhalt vonTauchen Sie tief in Microsoft MarkItDown ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!