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 ! ?
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 :
Même les feuilles de calcul Excel à plusieurs onglets sont gérées facilement :
Archives ZIP ? Aucun problème! La bibliothèque analyse tous les fichiers qu'elle contient de manière récursive :
Au départ, l'extraction d'images peut ne donner aucun résultat :
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 :
Remarque : LLM ne traitera pas les PDF basés sur des images. Les PDF nécessitent un prétraitement OCR pour extraire le contenu.
Cependant, les PDF perdent leur formatage lors de l'extraction, donc les titres et le texte brut ne sont pas distingués :
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.
Fichiers audio
L'audio est transcrit avec la bibliothèque Speech_recognition, qui utilise l'API de Google.
(Microsoft, pourquoi pas Azure ici ? ?)
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."
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.
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 :
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 ! ?
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!

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

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

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.

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

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

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

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

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


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

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

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
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
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
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code
