Markdown / converter.py
GauthierDemonchy
Premier commit propre
898ed62
Raw
History Blame Contribute Delete
1.44 kB
"""
Wrapper autour de MarkItDown pour la conversion de fichiers en Markdown.
Utilise la bibliothèque markitdown de Microsoft pour convertir
les formats supportés (PDF, DOCX, PPTX, XLSX, images, HTML, CSV, JSON, etc.).
"""
from markitdown import MarkItDown
from pathlib import Path
# Initialisation globale du convertisseur
# keep_data_uris=True → intègre les images en base64 dans le Markdown
# llm_client=None → désactive la description d'images par IA
_converter = MarkItDown(keep_data_uris=True, llm_client=None, llm_model=None)
def convert(file_path: str) -> str:
"""
Convertit un fichier en Markdown.
Args:
file_path: Chemin absolu ou relatif vers le fichier à convertir.
Returns:
Contenu Markdown généré.
Raises:
FileNotFoundError: Si le fichier n'existe pas.
ValueError: Si le format n'est pas supporté par MarkItDown.
Exception: Relaie toute exception de la bibliothèque sous-jacente.
"""
path = Path(file_path)
if not path.exists():
raise FileNotFoundError(f"Fichier introuvable : {file_path}")
if not path.is_file():
raise ValueError(f"Le chemin n'est pas un fichier : {file_path}")
try:
result = _converter.convert(str(path))
return result.text_content
except Exception as e:
raise Exception(
f"Erreur de conversion pour {path.name} : {str(e)}"
) from e