Spaces:
Sleeping
Sleeping
| """ | |
| 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 |