doc7 : Transformez n'importe quel document en Markdown prêt pour l'IA avec compréhension visuelle

doc7 convertit les PDF, fichiers Office, scans et diagrammes en Markdown prêt pour l'IA en utilisant votre propre modèle multimodal, éliminant les piles OCR et les frais par page.

doc7 : Transformez n'importe quel document en Markdown prêt pour l'IA avec compréhension visuelle

Si vous avez déjà essayé d'intégrer un PDF ou un document scanné dans un pipeline d'IA, vous connaissez la douleur. Les outils d'extraction traditionnels reposent sur l'OCR et des analyseurs de mise en page qui souvent déforment les tableaux, omettent les formules et manquent complètement le sens des diagrammes. doc7 adopte une approche différente : au lieu d'essayer d'analyser le document caractère par caractère, il rend chaque page sous forme d'image et laisse un modèle vision-langage (VLM) lire la page entière, en comprenant la mise en page, les relations et le contexte. Le résultat est un Markdown propre et recherchable sur lequel votre IA peut réellement raisonner.

Pourquoi la compréhension visuelle surpasse l'extraction traditionnelle

La plupart des outils de conversion document vers Markdown se répartissent en trois catégories :

  • Extraction de format et de texte (comme le chemin par défaut de MarkItDown) : Ils utilisent des analyseurs spécifiques au fichier pour extraire le texte et la structure de base. Ils fonctionnent bien pour les fichiers texte simples mais échouent sur les mises en page complexes, les pages scannées ou tout ce qui a une signification visuelle.
  • Wrappers OCR basés sur la vision (comme Zerox) : Ils convertissent les pages en images et les envoient à une API de vision, mais ils sont souvent liés à un fournisseur spécifique et nécessitent des dépendances supplémentaires comme GraphicsMagick.
  • Piles d'IA documentaire dédiées (comme MinerU ou Docling) : Ils exécutent un pipeline d'OCR, de mise en page, de tableaux et de modèles de formules. Ils sont puissants mais lourds—vous devez gérer plusieurs poids de modèles et l'infrastructure.

doc7 saute tout cela. Il rend chaque page en image et l'envoie à n'importe quel modèle multimodal compatible OpenAI que vous choisissez. Le modèle voit la page entière—texte, tableaux, graphiques, diagrammes, même les relations spatiales entre les éléments—et produit directement du Markdown. Cela signifie pas de pile OCR, pas de frais par page, et pas de verrouillage sur un service de traitement de documents.

Démarrage rapide : De zéro à Markdown en quelques minutes

Commencer est étonnamment simple. Installez doc7 avec une commande, pointez-le vers un modèle de vision local (comme celui exécuté dans LM Studio ou Ollama), et convertissez votre premier document :

# macOS ou Linux
curl -fsSL https://raw.githubusercontent.com/magicrew/doc7/main/scripts/install.sh | bash

# Windows PowerShell
irm https://raw.githubusercontent.com/magicrew/doc7/main/scripts/install.ps1 | iex

# Convertir un document
doc7 report.pdf

La première exécution découvre automatiquement les points de terminaison de modèles locaux (LM Studio et Ollama), vous permet de choisir un modèle si plusieurs sont disponibles, et vérifie la compréhension des images avant d'enregistrer votre choix. Aucune clé API n'est nécessaire pour les points de terminaison locaux.

Benchmark réel : doc7 vs. MarkItDown vs. Docling

Le projet inclut un benchmark ouvert qui montre exactement pourquoi la compréhension visuelle est importante. Ils ont pris deux PDF raster uniquement (sans couche texte) et ont vérifié 15 faits visuels vérifiables par machine. En utilisant le même modèle qwen3.5-9b via le même point de terminaison local, doc7 a récupéré 15/15 faits, tandis que MarkItDown avec son plugin OCR a obtenu 9/15, et le pipeline standard de Docling n'a réussi que 3/15.

Voici la répartition :

Système Article sur l'attention Rapport visuel Combiné Markdown brut
doc7 + qwen3.5-9b 7/7 8/8 15/15 5 293 octets
MarkItDown 0.1.6 + OCR 0.1.0 + qwen3.5-9b 3/7 6/8 9/15 13 142 octets
Docling 2.113.0 standard 1/7 2/8 3/15 2 571 445 octets
MarkItDown 0.1.6 par défaut N/A N/A N/A 0 octets

Le chemin par défaut de MarkItDown a renvoyé un fichier vide pour les deux entrées raster uniquement, c'est pourquoi il est marqué N/A. Le Markdown brut de Docling est énorme car il intègre les images de page en Base64—ce n'est pas un score de qualité, juste un diagnostic.

Le benchmark est entièrement reproductible : chaque sortie brute, empreinte SHA-256, règle de notation et résultat lisible par machine est engagé dans le dépôt. Vous pouvez l'exécuter vous-même et vérifier les résultats.

Un pipeline pour chaque format

L'une des forces de doc7 est sa couverture de formats. Que vous ayez affaire à des PDF, des documents Office, des scans, des captures d'écran, des graphiques, des formules ou des diagrammes, ils passent tous par le même pipeline de compréhension visuelle. La sortie est un seul document Markdown qui préserve :

  • Titres, paragraphes, listes, citations et code → structure Markdown native
  • Tableaux et feuilles de calcul → tableaux Markdown ou HTML avec valeurs et unités
  • Notation mathématique → LaTeX en ligne ou en bloc
  • Graphiques → étiquettes, valeurs, tendances et conclusions sous forme de texte recherchable
  • Diagrammes et flux de travail → nœuds, ordre, regroupement et relations
  • Captures d'écran et états d'application → statut visible, erreurs, contrôles et actions
  • Messages électroniques → en-têtes, corps HTML ou texte, images intégrées et inventaire des pièces jointes
  • Carnets Jupyter → cellules Markdown, code source, compteurs d'exécution, sortie texte, traces et sortie visuelle

Les formats d'entrée pris en charge incluent PDF, DOCX, PPTX, XLSX, EPUB, EML, MHTML, MSG, IPYNB, images (PNG, JPEG, GIF, WebP, BMP, TIFF, SVG), et même les formats texte/données natifs comme Markdown, CSV, JSON, XML et YAML. Les fichiers Office et OpenDocument nécessitent LibreOffice ; le rendu PDF utilise MuPDF lorsqu'il est disponible ; les formats HTML, SVG, EPUB et e-mail nécessitent Chrome, Chromium ou Edge.

Conçu autour de la CLI

L'interface en ligne de commande est le cœur de doc7. Elle fournit tout, de la conversion simple aux fonctionnalités avancées comme la sélection de pages, la reprise et le traitement par lots.

Sélection de pages et reprise

Les documents longs peuvent être traités par morceaux, et les pages échouées peuvent être réessayées sans recommencer :

# Traiter uniquement les pages 5 et 7
doc7 read report.pdf -o report-pages-5-7 --pages 5,7

# Reprendre une exécution précédente, en réessayant les pages échouées
doc7 read report.pdf -o report-doc7 --resume

Le manifeste enregistre les nombres de pages source et la sélection de pages, et les pages réussies restent inchangées octet pour octet. Si aucune page échouée ne reste, --resume valide les artefacts et reconstruit le Markdown fusionné sans appeler le modèle.

Piping et stdin

Vous pouvez envoyer le Markdown fusionné directement vers un autre outil :

doc7 read report.pdf --stdout > report.md

# Ou lire depuis stdin
cat report.pdf | doc7 read - --stdin-name report.pdf --stdout > report.md

Documents distants et répertoires

# Lire un répertoire récursivement
doc7 read ./documents -o ./knowledge

# Lire un document distant
doc7 read https://example.com/report.pdf -o ./report-doc7

Exécution en tant que service

Pour l'intégration dans des systèmes plus grands, doc7 peut s'exécuter en tant que service HTTP asynchrone :

doc7 serve --addr 127.0.0.1:8787 --data-dir ./doc7-server

Soumettez un document ou une archive ZIP :

curl -F [email protected] http://127.0.0.1:8787/v1/jobs

La réponse inclut un ID de tâche. Interrogez l'URL de statut, puis téléchargez le Markdown fusionné ou l'archive ZIP complète des artefacts :

curl http://127.0.0.1:8787/v1/jobs/<job-id>
curl -o report.md http://127.0.0.1:8787/v1/jobs/<job-id>/markdown
curl -o report-artifacts.zip http://127.0.0.1:8787/v1/jobs/<job-id>/artifacts

Vous pouvez même reprendre les pages échouées dans une tâche :

curl -X POST -H 'Content-Type: application/json' -d '{}' http://127.0.0.1:8787/v1/jobs/<job-id>/resume

La sécurité est intégrée : le service est par défaut sur localhost, nécessite un jeton porteur pour les adresses de liaison non locales, limite la taille de téléversement et isole chaque répertoire de tâche.

Utilisation à partir d'outils IA : Serveur MCP

doc7 inclut un serveur MCP avec un outil typé convert_to_markdown. Configurez votre client MCP pour lancer le binaire via stdio :

{
  "mcpServers": {
    "doc7": {
      "command": "/chemin/absolu/vers/doc7",
      "args": ["mcp"],
      "env": {
        "DOC7_BASE_URL": "http://127.0.0.1:1234/v1",
        "DOC7_MODEL": "qwen3.5-0.8b",
        "DOC7_CREDENTIAL_STORE": "env"
      }
    }
  }
}

L'outil accepte un chemin local, un répertoire, une URL HTTP(S) ou une archive ZIP et renvoie du Markdown ainsi que des métadonnées de conversion structurées.

Intégration en Go

Le package Go public expose le même moteur de conversion. Voici un exemple minimal :

package main

import (
    "context"
    "log"

    "github.com/magicrew/doc7"
)

func main() {
    options := doc7.DefaultReadOptions()
    options.OutputDir = "report-doc7"
    options.BaseURL = "http://127.0.0.1:1234/v1"
    options.Model = "qwen3.5-4b"
    result, err := doc7.Read(context.Background(), "report.pdf", options)
    if err != nil {
        log.Fatal(err)
    }
    if result.Document != nil {
        log.Println(result.Document.MergedMarkdown)
    }
}

Vous pouvez également utiliser Convert et ConvertBatch pour des API explicites de document unique ou de répertoire uniquement.

Coût et confidentialité : Votre modèle, votre infrastructure

doc7 ne vend pas de crédits documentaires et ne facture pas par page. Vous apportez votre propre modèle multimodal—local ou privé—et traitez autant de documents que votre matériel peut en gérer. Le coût marginal d'un document supplémentaire est simplement l'électricité et le temps d'exploitation.

C'est une structure de coûts fondamentalement différente des API cloud de documents :

Option Unité de facturation typique Coût à mesure que le volume de documents augmente Emplacement des documents
doc7 + VLM quantifié local Pas de frais par page doc7 Principalement du matériel existant, de l'électricité et des opérations Infrastructure locale ou privée
AWS Textract Pages, facturées par API et fonctionnalité d'analyse L'utilisation augmente avec les pages et les fonctionnalités API cloud
Google Document AI Pages, généralement facturées par processeur et niveau de volume L'utilisation augmente avec les pages et le type de processeur API cloud
Azure Document Intelligence Pages, modèle et niveau de tarification L'utilisation augmente avec les pages et la capacité sélectionnée API cloud
Alibaba Cloud OCR Appels à la demande ou forfaits prépayés Le traitement continu consomme des appels ou des quotas API cloud
Tencent Cloud OCR Appels API via facturation prépayée ou postpayée Le traitement continu consomme des appels ou des quotas API cloud
Baidu AI Cloud OCR Appels API, quota gratuit et utilisation payante Le traitement continu consomme des appels ou des quotas API cloud

Les API cloud restent utiles lorsque vous souhaitez une capacité gérée et ne voulez pas exploiter un modèle. Mais si vous souhaitez éliminer une facture récurrente d'analyseur de documents et garder vos documents privés, doc7 est la solution.

Fonctionnalités avancées

Ancrage de texte

Pour les PDF et fichiers Office avec une couche texte intégrée, vous pouvez activer une vérification optionnelle de valeur exacte :

doc7 read report.pdf --text-grounding

Cela ne remplace pas le résultat visuel par le texte extrait. Au lieu de cela, il vérifie les nombres, codes et identifiants exacts de la couche texte intégrée et demande au modèle visuel de confirmer les corrections candidates. C'est désactivé par défaut et peut faire des demandes de modèle supplémentaires.

Repli de contexte

Si la fenêtre de contexte du modèle est trop petite pour une page, doc7 réessaie automatiquement avec une image en résolution inférieure. Vous pouvez configurer cela avec --context-fallbacks et --min-image-dimension. Si tous les replis sont épuisés, la page est marquée comme échouée plutôt que d'écrire un Markdown tronqué.

Invites personnalisées

Vous pouvez utiliser une invite de conversion spécifique au domaine sans modifier doc7 :

doc7 read ./reports --prompt-file ./prompt.md

Docker

L'image Docker inclut LibreOffice, MuPDF, Chromium et les polices CJK. Elle exécute le service HTTP en tant qu'utilisateur non root et persiste la configuration et les tâches dans des volumes nommés :

export DOC7_MODEL=qwen3.5-0.8b
export DOC7_SERVER_TOKEN=replace-me
docker compose pull
docker compose up --no-build

L'image publiée est ghcr.io/magicrew/doc7:latest et prend en charge à la fois linux/amd64 et linux/arm64.

Considérations de sécurité

doc7 exécute des moteurs de rendu locaux comme LibreOffice et Chrome avec les permissions de l'utilisateur actuel. Traitez les fichiers Office non fiables, HTML, SVG, EML, MSG, IPYNB et archives comme des entrées actives—utilisez un compte isolé ou un conteneur pour les charges de travail non fiables. Le HTML des e-mails et des carnets est assaini, les ressources distantes sont supprimées, et les images BMP/TIFF intégrées sont normalisées avant le rendu. Les clés API sont envoyées comme identifiants porteurs au point de terminaison configuré, donc vérifiez le point de terminaison avant de traiter des fichiers sensibles.

Conclusion

doc7 est une approche rafraîchissante de la conversion de documents. En exploitant la compréhension visuelle, il gère des documents complexes que les analyseurs traditionnels peinent à traiter, et ce avec un pipeline simple et unifié. Que vous construisiez un système RAG, une base de connaissances d'agent, ou que vous ayez simplement besoin de rendre vos documents recherchables, doc7 mérite un examen sérieux. Le benchmark ouvert et les résultats reproductibles vous donnent confiance en ses capacités, et la licence MIT signifie que vous pouvez l'intégrer librement.

Essayez-le sur vos propres documents et voyez la différence que fait la compréhension visuelle.

Source

magicrew/doc7 : Transformez des documents en Markdown prêt pour l'IA avec compréhension visuelle