Aller au contenu

Question Hub & Vision

Quand Claude Code (ou Codex, ou Gemini) a besoin de vous poser une question a choix multiples — “Quel framework utiliser ? React, Vue, ou Svelte ?” — il ne peut pas le faire dans un terminal de facon ergonomique. Le Question Hub affiche cette question dans Telegram avec des boutons interactifs, supporte la multi-selection et la pagination, et renvoie la reponse au CLI.

En complement, le systeme Vision OCR analyse les photos envoyees dans Telegram : carte de visite, facture, capture d’ecran, note manuscrite — chaque type de document est traite avec une extraction specialisee.

SystemeNodesDeclenchementRole
Question Hub~35 (parent + callback)Webhook CLIQuestions interactives Telegram
Vision OCR14Sub-workflow (photo)Extraction de documents

ProblemeSans ces workflowsAvec ces workflows
Questions CLI illisiblesListe numerotee dans le terminalBoutons Telegram avec emojis
Multi-select impossibleTaper les numeros un par unToggle ✅ et confirmation
Photos inutilisablesPhoto = fichier binaire, pas d’infoExtraction structuree par type
OCR generiqueMeme traitement pour toutFacture ≠ carte de visite ≠ screenshot

Le Vision OCR classifie chaque photo avant de l’extraire :

TypeChamps extraits
business_cardNom, fonction, entreprise, email, telephone
invoiceFournisseur, numero, lignes, total, date
screenshotTexte visible, interface identifiee
handwritten_noteTranscription, confiance, langue
general_documentTexte brut structure
not_document(Pas un document — photo, paysage, etc.)

1. Reception — Le CLI envoie un webhook avec les options, le type de question (single/multi-select), et un timeout (300s par defaut).

2. Formatage — N8N construit un clavier inline adapte au nombre d’options. Si plus de 4 options, la pagination s’active automatiquement (4 options par page avec fleches ◀️ ▶️).

3. Interaction — L’utilisateur clique sur les options. En multi-select, chaque clic toggle le ✅ et met a jour le keyboard en temps reel (via editMessageReplyMarkup). Les selections sont persistees dans une Data Table pour survivre aux changements de page.

4. Confirmation — Un bouton [Confirmer] valide les choix. La reponse est renvoyee au CLI via le callback.

5. Texte libre — Un bouton [Autre] optionnel active le mode ForceReply de Telegram pour saisir une reponse libre.

Tout se passe dans un seul message Telegram — pas de spam de messages pour chaque interaction.

1. Classification — Gemini Flash analyse l’image en base64 et retourne un type de document avec un score de confiance.

2. Extraction specialisee — Selon le type detecte, un prompt specifique est envoye a Gemini Vision. Chaque branche extrait des champs differents :

Photo reçue

Gemini Flash · Classification

business_card → nom, email, tél, entreprise

invoice → fournisseur, numéro, lignes, total

screenshot → texte, interface

handwritten_note → transcription, confiance

general_document → texte structuré

not_document → ignorer

3. Normalisation — La reponse est formatee en HTML sanitise pour Telegram avec un contrat uniforme : {status, docType, extracted, text}.

Le systeme de profils permet de configurer differents personnages IA avec des connaissances et outils specifiques. Chaque profil est un fichier YAML dans /workspace/profiles/ qui definit :

  • Un prompt systeme specialise
  • Une base de connaissances (fichiers Markdown injectes dans le contexte)
  • Une liste d’outils MCP autorises (semantique plafond)
  • Des outils necessitant approbation Telegram

Deux profils sont deployes : error-analyst (analyse DLQ, 5 outils lecture) et n8n-admin (administration workflows, 5 lecture + 2 ecriture avec confirmation).


LimiteImpactMitigation
Timeout 5 minQuestion expirée si pas de reponseSuffisant pour usage interactif
4 options/pageBeaucoup de pages si 20+ optionsPagination avec conservation des selections
OCR depend de GeminiPas de fallback localModele rapide et fiable en pratique

Si besoin d’OCR plus precis :

  • Ajouter des modeles specialises (Tesseract pour les polices standard)
  • Post-traitement des factures avec validation des totaux
  • Integration directe avec la comptabilite Odoo

Si usage multi-utilisateur :

  • Mapper les sessions CLI par utilisateur Telegram
  • File d’attente si plusieurs questions simultanees

  • AI Stack — CLI Ollama et Gemini Vision