Convertir des PDF en Markdown par lots
Vous avez un dossier de rapports, d'articles ou de factures ? Convertissez-les tous avec l'API REST : une petite tâche par fichier, parcourue sur votre ensemble, avec des reprises idempotentes pour qu'une réexécution ne duplique jamais le travail.
Un lot, c'est de nombreuses petites tâches
L'API convertit un PDF par tâche : créer, interroger, télécharger. Pour en convertir beaucoup, vous exécutez ce flux une fois par fichier dans une boucle, avec deux ajouts qui rendent un lot fiable. Une Idempotency-Key par fichier signifie qu'une réexécution après une panne reprend là où elle s'était arrêtée au lieu de refaire le travail terminé. Une petite limite de concurrence maintient plusieurs conversions en vol sans saturer l'API. Cette même forme s'adapte de dix fichiers à des milliers.
Convertir un dossier entier
Une boucle shell minimale sur chaque PDF d'un répertoire. Remplacez votre clé.
API="https://pdf2md.dev/api/v2"
AUTH="Authorization: Bearer p2m_your_key"
for pdf in *.pdf; do
# le nom du fichier comme Idempotency-Key : une réexécution réutilise la même tâche
JID=$(curl -fsS -X POST "$API/jobs" -H "$AUTH" \
-H "Idempotency-Key: $pdf" -F file=@"$pdf" | jq -r .job_id)
until [ "$(curl -fsS "$API/jobs/$JID" -H "$AUTH" | jq -r .status)" = "ready" ]; do
sleep 3
done
curl -fsS "$API/jobs/$JID/download" -H "$AUTH" -o "${pdf%.pdf}.md"
echo "converti $pdf"
done
Cette version est séquentielle par souci de clarté. Pour un volume réel, convertissez plusieurs fichiers à la fois avec un pool de workers et passez de l'interrogation aux webhooks, afin d'être averti à mesure que chaque tâche se termine.
D'un dossier à un pipeline
Concurrence
Convertissez plusieurs fichiers à la fois avec un pool de workers borné. Commencez avec environ cinq en vol et ajustez à votre offre.
Reprises idempotentes
Une clé stable par fichier (nom ou hachage du contenu) rend une réexécution sûre, ainsi un lot à moitié terminé reprend proprement.
Webhooks
Pour des milliers de fichiers, laissez les webhooks vous indiquer quand chaque tâche est prête au lieu de les interroger toutes.
Gérer les échecs au sein d'un lot
Lors d'une exécution réelle, quelques fichiers seront protégés par mot de passe, corrompus ou tout simplement trop volumineux. L'objectif est de laisser le lot se terminer et de vous indiquer ce qui a été ignoré, sans s'arrêter au premier fichier défectueux.
Ignorez et journalisez, ne vous arrêtez pas
Quand une tâche revient avec status: error, enregistrez le nom du fichier et son error_code dans un journal et continuez. À la fin, vous disposez d'un ensemble propre de fichiers Markdown ainsi que d'une courte liste de ceux qui demandent attention, au lieu d'un lot mort à mi-chemin.
Reprenez en toute sécurité
Comme chaque create utilise le nom du fichier (ou un hachage du contenu) comme Idempotency-Key, réexécuter tout le lot est sûr : les fichiers terminés renvoient leur tâche existante, et seuls ceux qui ont échoué ou n'ont pas été traités font du travail réel. Une tâche nocturne peut réexécuter le même dossier sans tout refaire.
Deux détails de plus gardent les exécutions volumineuses bien rangées. Écrivez chaque résultat à côté de sa source (report.pdf devient report.md) pour que la correspondance soit évidente, et vérifiez l'indicateur truncated sur chaque tâche, car un document très long peut revenir sous forme de résultat partiel ayant atteint le budget de temps. Sur l'offre gratuite, les limites d'emplacements et de taille sont plus basses, donc un gros lot est une bonne raison de passer à une offre payante, qui augmente la concurrence, la taille de fichier et le quota mensuel de pages.
Vous alimentez une base de connaissances ?
Un lot de PDF devient un dossier de Markdown propre, prêt à être découpé et incorporé. Consultez le guide RAG pour transformer cette sortie en contexte récupérable.
Questions fréquentes
Comment convertir de nombreux PDF d'un coup ?
Exécutez le flux de création, d'interrogation et de téléchargement par fichier dans une boucle. Utilisez une Idempotency-Key par fichier afin qu'une réexécution ne duplique pas le travail, et une petite limite de concurrence pour ménager l'API.
Existe-t-il un unique endpoint en masse ?
La conversion se fait par tâche, donc un lot représente de nombreuses tâches. La même boucle s'adapte de quelques fichiers à des milliers ; ajoutez de la concurrence et des webhooks pour les exécutions volumineuses.
Comment éviter de reconvertir des fichiers lors d'une reprise ?
Passez une Idempotency-Key stable à la création, par exemple le nom du fichier ou un hachage du contenu. La même clé renvoie la même tâche au lieu de lancer une conversion en double.
Combien puis-je en exécuter en parallèle ?
Commencez avec un petit pool, par exemple cinq, et ajustez. L'offre gratuite a des limites d'emplacements plus basses ; les offres payantes augmentent les emplacements et le débit.
Puis-je utiliser des webhooks au lieu d'interroger chaque tâche ?
Oui. Pour les lots volumineux, les webhooks vous avertissent à mesure que chaque tâche se termine, ce qui s'adapte mieux que d'interroger des milliers de tâches. Consultez le hub pour développeurs.