Back to deblo
deblo

Générer des PDF, tableurs et diaporamas depuis un message de chat

Six outils de génération de fichiers : XLSX, PDF, PPTX, DOCX, HTML, MD. L'IA planifie la structure, génère via des bibliothèques Python, uploade sur S3 et diffuse la progression.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min deblo
EN/ FR/ ES
deblogénération-fichierspdfxlsxpptxs3openpyxl

Par Thales & Claude -- CEO & AI CTO, ZeroSuite, Inc.

Une experte-comptable à Abidjan tape : « Génère-moi un bilan pour la SARL Kouamé & Fils, exercice 2025, format SYSCOHADA. » Trente secondes plus tard, elle télécharge un classeur Excel formaté avec trois feuilles -- actif, passif et capitaux propres -- chacune avec des en-têtes de colonnes appropriés, un formatage monétaire et des sous-totaux. Elle n'a pas ouvert Excel. Elle a tapé une phrase et reçu un document professionnel.

Pourquoi du JSON structuré, pas des octets bruts

Nous avons rejeté l'approche naïve (laisser le LLM écrire du code Python) pour trois raisons : les LLM sont des générateurs de code peu fiables pour les API spécifiques aux bibliothèques, exécuter du code arbitraire généré par un LLM est un cauchemar de sécurité, et le JSON structuré est déterministe -- si le LLM produit un objet JSON valide correspondant à notre schéma, la génération de fichier réussit à 100 % du temps.

Le pipeline de génération

Six outils qui transforment le langage naturel en documents réels et téléchargeables : tableurs Excel, PDF, présentations PowerPoint, documents Word, pages HTML et fichiers Markdown. Le LLM produit une spécification de document. Le serveur produit le document.

Chaque fichier Excel de Deblo a un aspect professionnel : en-têtes bleus avec texte blanc, bordures fines, largeurs de colonnes auto-ajustées, nombres alignés à droite avec séparateurs de milliers.

Upload S3 et livraison par URL

Les fichiers générés sont uploadés vers Hetzner Object Storage, un service compatible S3 hébergé dans des centres de données européens. Nous avons choisi Hetzner plutôt qu'AWS S3 pour deux raisons : des coûts significativement plus bas et un hébergement européen conforme au RGPD.

Streaming SSE : événements de progression et livraison de fichiers

Le flux SSE de Deblo envoie des événements tool_progress pendant la génération et un événement file quand le document est prêt. Le FileDownloadCard est volontairement simple -- les utilisateurs à Abidjan sur des connexions 3G ne veulent pas de modal de prévisualisation. Ils veulent appuyer sur « Télécharger » et avoir le fichier enregistré sur leur appareil.

L'IA planifie avant de générer

L'IA produit des documents significativement meilleurs quand elle planifie la structure d'abord. Nous encodons ce comportement dans le prompt système : l'IA est instruite de décrire la structure du document avant d'appeler l'outil de génération.

Les chiffres

  • Total de fichiers générés : 847
  • Répartition par format : XLSX 62 %, PDF 24 %, DOCX 7 %, PPTX 4 %, MD 2 %, HTML 1 %
  • Temps de génération moyen : 3,8 secondes
  • Taux d'échec de génération : 1,4 % (principalement du JSON malformé du LLM)

La dominance du XLSX n'est pas surprenante. La classe professionnelle africaine fonctionne aux tableurs.


Ceci est l'article 13 de 20 dans la série « Comment nous avons construit Deblo.ai ».

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

Le Step Zero ne suffisait pas : comment valider un constructeur sans valider le runtime a fait tomber toutes les sessions vocales de Déblo l’heure où nous avons livré le streaming caméra temps réel

La phase 14 a livré Déblo Eyes — streaming caméra temps réel via LiveKit vers Gemini Live native audio. Le premier deploy a fait tomber toutes les sessions vocales en production en quatre-vingt-dix secondes parce que notre Step 0 avait validé le constructeur sans exercer le runtime. Le build log de comment Déblo a eu des yeux, ce qu’un pré-vol incomplet a coûté, et quels points de polish ont été livrés ou reportés.

33 min May 20, 2026
debloclaude-opus-4.7claude-codegemini-live +25
Thales & Claude deblo

Le tiret cadratin qui a tué la production : comment un slogan marketing dans un header HTTP a fait tomber le chat de Déblo pendant 24 heures

Deux jours avant la soumission App Store, tout le produit chat de Déblo s’est cassé silencieusement. Pas de spinner, pas de toast, aucune erreur dans l’UI — juste un silence radio. L’incident de 24 heures se résumait à un seul « é » dans la valeur d’un header HTTP qui levait une UnicodeEncodeError avant qu’aucune requête vers OpenRouter ne quitte le backend. Post-mortem d’une fausse hypothèse, d’une trace Sentry, et d’un fix de six lignes qui a débloqué le lancement.

30 min May 19, 2026
debloclaude-opus-4.7claude-codeincident +19
Thales & Claude deblo

Six heures, d’une page blanche à la review Apple — Comment nous avons soumis Déblo à l’App Store, en direct

Marche à marche en direct de la soumission de Déblo à l’App Store iOS en six heures : ce que les validateurs d’Apple ont rejeté (un superscript Unicode), ce que nous avons corrigé (un Promotional Text gaspillé sur des marques tierces), et les rouages de l’ASO iOS que presque tout le monde rate.

30 min May 13, 2026
debloclaude-opus-4.7claude-codeapp-store +16