MarkItDown
Despliega MarkItDown como trabajador de conversión acotado
Diseña un trabajador con entradas locales, dependencias seleccionadas, límites de recursos y resultados duraderos, distinguiendo la integración propuesta de la biblioteca.
Qué aprenderás
- La aplicación debe gestionar cargas, colas y entrega.
- Fija entorno, extras y opciones como una sola unidad.
- Publica resultados completos después de comprobar su contenido.
Antes de empezar
- Conocimientos básicos de Python y terminal
- Un documento no sensible con contenido verificable
Utiliza la lista del capítulo para explicar y verificar esta parte de una ingesta documental.
Conclusiones clave
- La aplicación debe gestionar cargas, colas y entrega.
- Fija entorno, extras y opciones como una sola unidad.
- Publica resultados completos después de comprobar su contenido.
La biblioteca no es un servicio de trabajos
MarkItDown proporciona funciones de conversión y una CLI. Un servicio de carga con cola necesita otras decisiones: quién puede enviar archivos, dónde se guardan, cuánto puede durar una conversión y cómo recibe el resultado quien la solicitó. El trabajador descrito aquí es una propuesta de integración, no un servicio alojado incluido en el proyecto.
Separa la recepción del archivo de su conversión. Valida tamaño y tipo permitidos, asigna un identificador al trabajo y coloca la entrada donde el trabajador pueda leerla. Ejecuta con los extras elegidos y publica el Markdown después de comprobarlo. Así podrás diferenciar un fallo de carga de un fallo del analizador.
Fija el entorno y las dependencias de formatos juntos
Una imagen reproducible fija Python, la versión resuelta de MarkItDown y los extras necesarios para los formatos admitidos. Si habilitas descripciones de imágenes o un conversor en la nube, incluye también su configuración y dependencias. Instalar un extra no aprovisiona un servicio externo ni aporta credenciales.
El README también muestra cómo construir una imagen Docker desde el repositorio y suministrar la entrada por stdin. Inspecciona el Dockerfile de la revisión elegida antes de adoptar esa vía. En una cola de producción, configura los límites del contenedor y las rutas de salida escribibles en el sistema de despliegue; la CLI por sí sola no establece esos límites.
Define reintentos y publicación de resultados
Identifica una conversión mediante los bytes de origen, la versión del conversor y sus opciones. Reintentar el mismo trabajo inmutable debe crear otro registro de intento, no sustituir silenciosamente un resultado correcto por un archivo parcial. Escribe primero un artefacto provisional, compruébalo y después hazlo visible para el consumidor.
Actualizar dependencias puede cambiar el texto extraído aunque el documento no cambie. Incluye muestras representativas en la validación de versiones y conserva el entorno anterior para volver atrás. Considera también el esquema de salida y las expectativas del consumidor: cambiar una etiqueta de contenedor no deshace una ingesta ya realizada.
Pasos de implementación
- 1
Define formatos permitidos y selecciona sus extras.
- 2
Construye un trabajador aislado con entrada de solo lectura.
- 3
Inspecciona una muestra antes de publicar el resultado.
- 4
Repite la muestra antes de actualizar el entorno.
Ejemplo para copiar
from pathlib import Path
from markitdown import MarkItDown
# Rutas fijas del trabajador, no rutas arbitrarias del usuario.
result = MarkItDown(enable_plugins=False).convert_local("/input/example.docx")
if not result.markdown.strip():
raise ValueError("Conversion returned no usable text")
Path("/output/example.md").write_text(result.markdown, encoding="utf-8")Preguntas frecuentes
¿El paquete incluye mi API de cargas y mi cola?
No. Son componentes de la aplicación que lo rodea; este capítulo propone una integración.
¿Se puede reintentar cualquier fallo?
No. Distingue fallos transitorios de infraestructura, entradas no compatibles y errores persistentes de contenido, conservando cada intento.
Fuentes
- Documentación fijadaFuente verificada 2026-09-07
- Despachador centralFuente verificada 2026-09-07
- Conversor de textoFuente verificada 2026-09-07
- Exportaciones públicasFuente verificada 2026-09-07