recherche
Maisondéveloppement back-endTutoriel PythonPlongez en profondeur dans Microsoft MarkItDown

Qu'est-ce que MarkItDown ?

MarkItDown est un package Python développé par Microsoft, conçu pour convertir une variété de formats de fichiers en Markdown.

Depuis ses débuts, la bibliothèque a gagné en popularité, gagnant plus de 25 000 étoiles GitHub en seulement deux semaines ! ?

Deep Dive into Microsoft MarkItDown

Qu'est-ce qui rend MarkItDown si populaire ?

MarkItDown offre une prise en charge robuste pour un large éventail de types de fichiers, tels que :

  • Formats bureautiques : Word, PowerPoint, Excel
  • Fichiers multimédia : images (avec données EXIF ​​et descriptions), audio (avec prise en charge de la transcription)
  • Formats Web et données : HTML, JSON, XML, CSV
  • Archives : fichiers ZIP

Sa capacité à gérer non seulement des formats standards comme Word, mais également des données multimodales le distingue. Par exemple, il utilise l'OCR et la reconnaissance vocale pour extraire le contenu des images et des fichiers audio.

La possibilité de convertir n'importe quoi en Markdown fait de MarkItDown un outil puissant pour la formation LLM. En traitant des documents spécifiques à un domaine, il fournit un contexte riche pour générer des réponses plus précises et pertinentes dans les applications basées sur LLM.

Premiers pas avec MarkItDown

L'utilisation de MarkItDown est incroyablement simple : seules 4 lignes de code sont nécessaires :

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

Voici quelques cas d'utilisation de MarkItDown.

La conversion d'un document Word génère un Markdown propre et précis :

Deep Dive into Microsoft MarkItDown

Même les feuilles de calcul Excel à plusieurs onglets sont gérées facilement :

Deep Dive into Microsoft MarkItDown

Archives ZIP ? Aucun problème! La bibliothèque analyse tous les fichiers qu'elle contient de manière récursive :

Deep Dive into Microsoft MarkItDown

Au départ, l'extraction d'images peut ne donner aucun résultat :

Deep Dive into Microsoft MarkItDown

C'est parce que MarkItDown s'appuie sur un LLM pour générer des descriptions d'images. En intégrant un client LLM, vous pouvez activer cette fonctionnalité :

from openai import OpenAI

client = OpenAI(api_key="i-am-not-an-api-key")

md = MarkItDown(llm_client=client, llm_model="gpt-4o")

Une fois la configuration en place, les fichiers image peuvent être traités avec succès :

Deep Dive into Microsoft MarkItDown

Remarque : LLM ne traitera pas les PDF basés sur des images. Les PDF nécessitent un prétraitement OCR pour extraire le contenu.

Deep Dive into Microsoft MarkItDown

Cependant, les PDF perdent leur formatage lors de l'extraction, donc les titres et le texte brut ne sont pas distingués :

Deep Dive into Microsoft MarkItDown

Limites

MarkItDown n'est pas sans limites :

  • Les fichiers PDF sans OCR ne peuvent pas être traités.
  • Le formatage n'est pas disponible lors de l'extraction à partir de fichiers PDF.

Néanmoins, en tant que projet open source, il est hautement personnalisable. Les développeurs peuvent facilement étendre ses fonctionnalités grâce à sa base de code propre.

Comment fonctionne MarkItDown

L'architecture de MarkItDown est simple et modulaire.

Il possède une classe DocumentConverter, qui définit une méthode générique convert() :

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

Les convertisseurs individuels héritent de cette classe de base et sont enregistrés dynamiquement :

from openai import OpenAI

client = OpenAI(api_key="i-am-not-an-api-key")

md = MarkItDown(llm_client=client, llm_model="gpt-4o")

Cette approche modulaire facilite l'ajout de la prise en charge de nouveaux types de fichiers.

Flux de travail de conversion de fichiers

Documents de bureau

Les fichiers Office sont transformés en HTML à l'aide de bibliothèques comme mammoth, pandas ou pptx, puis convertis en Markdown avec BeautifulSoup.

Deep Dive into Microsoft MarkItDown

Fichiers audio

L'audio est transcrit avec la bibliothèque Speech_recognition, qui utilise l'API de Google.

(Microsoft, pourquoi pas Azure ici ? ?)

Deep Dive into Microsoft MarkItDown

Images

Le traitement d'image consiste à générer une légende via une invite LLM :
"Écrivez une description détaillée de cette image."

Deep Dive into Microsoft MarkItDown

PDF

Les PDF sont gérés par la bibliothèque pdfminer mais ne disposent pas d'OCR intégré. Vous devez prétraiter les PDF pour l'extraction de texte.

Deep Dive into Microsoft MarkItDown

Déployer MarkItDown en tant qu'API

MarkItDown peut s'exécuter localement, mais l'héberger en tant qu'API offre une flexibilité supplémentaire, ce qui facilite son intégration dans des flux de travail comme Zapier et n8n.

Voici un exemple simple d'API MarkItDown utilisant FastAPI :

class DocumentConverter:
    """Base class for all document converters."""

    def convert(
        self, local_path: str, **kwargs: Any
    ) -> Union[None, DocumentConverterResult]:
        raise NotImplementedError()

Pour appeler l'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())
# ...

Hébergement de l'API sans frais

L'hébergement des API Python peut être délicat. Les services traditionnels comme AWS EC2 ou DigitalOcean nécessitent la location d'un serveur entier, ce qui est toujours coûteux.

Mais maintenant, vous pouvez utiliser Leapcell.

C'est une plate-forme qui peut héberger la base de code Python sans serveur - elle ne facture que par appel d'API, avec une utilisation généreuse de niveau gratuit.

Connectez simplement votre référentiel GitHub, définissez les commandes de build et de démarrage, et vous êtes prêt :

Deep Dive into Microsoft MarkItDown

Vous disposez désormais d'une API MarkItDown hébergée dans le cloud, prête à être intégrée dans votre flux de travail et, plus important encore, qui ne facture que lorsqu'elle est réellement appelée.


Commencez à créer votre propre API MarkItDown sur Leapcell dès aujourd'hui ! ?

Deep Dive into Microsoft MarkItDown

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Quels types de données peuvent être stockés dans un tableau Python?Quels types de données peuvent être stockés dans un tableau Python?Apr 27, 2025 am 12:11 AM

PythonlistScanstoreanyDatatype, ArrayModulearRaySstoreOneType, et NumpyArraysArnumericalComptations.1) ListesaSaSatilebutlessmemory-Efficient.2) NumpyArraySareMory-EfficientForHomoGeneousData.3)

Que se passe-t-il si vous essayez de stocker une valeur du mauvais type de données dans un tableau Python?Que se passe-t-il si vous essayez de stocker une valeur du mauvais type de données dans un tableau Python?Apr 27, 2025 am 12:10 AM

Lorsque vous vous assumez de la valeur de la valeur de la datyypie de la datyylethonarray.

Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux?Quelle partie fait partie de la bibliothèque standard Python: listes ou tableaux?Apr 27, 2025 am 12:03 AM

PythonlistSaReparmentofthestandardLibrary, tandis que les coloccules de colocède, tandis que les colocculations pour la base de la Parlementaire, des coloments de forage polyvalent, tandis que la fonctionnalité de la fonctionnalité nettement adressée.

Que devez-vous vérifier si le script s'exécute avec la mauvaise version Python?Que devez-vous vérifier si le script s'exécute avec la mauvaise version Python?Apr 27, 2025 am 12:01 AM

TheScriptSrunning withthewrongpythonversionDuetOincorrectDefaultInterpretersettings.tofixThis: 1) vérifiez laefaultpythonversionusingpython - Versionorpython3 - Version.2)

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Python?Apr 26, 2025 am 12:22 AM

PythonarRaySSupportVariousOperations: 1) SpecingExtractsSubSets, 2) A SPENDANT / EXPENSEDADDDSELLESS, 3) INSERtingPlaceSelelementsAtSpecific Positions, 4) RemovingdeleteSelements, 5) Sorting / ReversingChangeSes

Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Dans quels types d'applications les tableaux Numpy sont-ils couramment utilisés?Apr 26, 2025 am 12:13 AM

NumpyArraysAressentialFor Applications est en train de réaliser des objets de manière numérique et une datamanipulation.

Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Quand choisiriez-vous d'utiliser un tableau sur une liste dans Python?Apr 26, 2025 am 12:12 AM

Useanarray.arrayoveralistinpythonwendealing withhomogeneousdata, performance-criticalcode, orinterfacingwithccode.1) homogeneousdata: ArraySaveMemorywithTypelements.2) performance-criticalcode

Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Toutes les opérations de liste sont-elles prises en charge par des tableaux, et vice versa? Pourquoi ou pourquoi pas?Apr 26, 2025 am 12:05 AM

Non, NotallListOperationsResaSupportedByArrays, andviceVersa.1) ArraysDonotsUpportDynamicOperationsLIKEAPENDORINSERSERTWithoutresizing, qui oblige la performance.2) Listes de la glate-enconteConStanttimecomplexityfordirectAccessLikEArraysDo.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code