Was ist MarkItDown?
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! ?
Was macht MarkItDown so beliebt?
MarkItDown bietet robuste Unterstützung für eine Vielzahl von Dateitypen, wie zum Beispiel:
- Office-Formate: Word, PowerPoint, Excel
- Mediendateien: Bilder (mit EXIF-Daten und Beschreibungen), Audio (mit Transkriptionsunterstützung)
- Web- und Datenformate: HTML, JSON, XML, CSV
- Archive: ZIP-Dateien
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.
Erste Schritte mit MarkItDown
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:
Einschränkungen
MarkItDown ist nicht ohne Einschränkungen:
- PDF-Dateien ohne OCR können nicht verarbeitet werden.
- Formatierung ist beim Extrahieren aus PDF-Dateien nicht verfügbar.
Dennoch ist es als Open-Source-Projekt in hohem Maße anpassbar. Entwickler können die Funktionalität aufgrund der sauberen Codebasis problemlos erweitern.
So funktioniert MarkItDown
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.
Dateikonvertierungs-Workflows
Office-Dokumente
Office-Dateien werden mithilfe von Bibliotheken wie Mammoth, Pandas oder PPTX in HTML umgewandelt und dann mit BeautifulSoup in Markdown konvertiert.
Audiodateien
Audio wird mit der Speech_recognition-Bibliothek transkribiert, die die API von Google nutzt.
(Microsoft, warum nicht Azure hier? ?)
Bilder
Bei der Bildverarbeitung wird eine Bildunterschrift über eine LLM-Eingabeaufforderung generiert:
„Schreiben Sie eine detaillierte Beschreibung für dieses Bild.“
PDFs
PDFs werden von der pdfminer-Bibliothek verarbeitet, es fehlt jedoch die integrierte OCR. Sie müssen PDFs für die Textextraktion vorverarbeiten.
Bereitstellung von MarkItDown als API
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()) # ...
Kostenloses Hosten der API
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!

PythonarraysSupportvariousoperationen: 1) SlicicingExtractsSubsets, 2) Anhang/Erweiterungen, 3) Einfügen von PlaceSelementsatspezifischePositionen, 4) Entfernen von Delettel, 5) Sortieren/ReversingChangesorder und 6) compredewlistenwlists basierte basierte, basierte Zonexistin

NumpyarraysaresessentialForApplicationsRequeeFoughnumericalComputations und Datamanipulation

UseanArray.ArrayoveralistinpythonwhendealingwithhomogenousData, Performance-CriticalCode, OrInterfacingwithCcode.1) HomogenousData: ArraysSavemoryWithtypedElements.2) Performance-CriticalCode: ArraySaveMoryWithtypedElements.2) Performance-CriticalCode: ArraysFerbetterPerPterPerProrMtorChorescomeChormericalcoricalomancomeChormericalicalomentorMentumscritorcorements.3) Interf

Nein, NOTALLLISTOPERATIONSARESURDEDBYARAYS UNDVICEVERSA.1) ArraysDonotsupportdynamicoperationslikeAppendorinStResizing, die impactSperformance.2) listsDonotguaranteConstantTimeComplexityfordirectAccesslikearraysDo.

ToaccesselementSinapythonlist, verwenden Indexing, Negativindexing, Slicing, Oriteration.1) IndexingStartsat0.2) NegativeIndexingAccessses aus der THEend.3) SlicingExtractSporions.4) itererationSforloopsorenumerate.AlwaySChEckLegthtoavoidIndexerror.

Arraysinpython, besondersvianumpy, arecrucialInScientificComputingFortheirefficience undvertilität.1) Sie haben festgelegt, dass die Fornerikerne, Datenanalyse und Machinelarning.2) Numpy'SimplementationIncensuresFasteroperationsdanpythonlisten.3) Araysensableableableableableableableableableableableableableableableableableableableableableableableableableable

Sie können verschiedene Python -Versionen mithilfe von Pyenv, Venv und Anaconda verwalten. 1) Verwalten Sie PYENV, um mehrere Python -Versionen zu verwalten: Installieren Sie PyEnv, setzen Sie globale und lokale Versionen. 2) Verwenden Sie VenV, um eine virtuelle Umgebung zu erstellen, um Projektabhängigkeiten zu isolieren. 3) Verwenden Sie Anaconda, um Python -Versionen in Ihrem Datenwissenschaftsprojekt zu verwalten. 4) Halten Sie das System Python für Aufgaben auf Systemebene. Durch diese Tools und Strategien können Sie verschiedene Versionen von Python effektiv verwalten, um den reibungslosen Betrieb des Projekts zu gewährleisten.

NumpyarrayShaveseveraladVantagesOverStandardPythonArrays: 1) SiearemuchfasterDuetoc-basiert, 2) sie istaremoremory-effizient, insbesondere mit mit LaShlargedatasets und 3) sie können sich mit vektorisierten Funktionsformathematical und Statistical opertical opertical opertical operticaloperation, Making


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
