--- title: Question Hub & Vision url: https://blog.guigpap.com/fr/workflows/question-hub/ url_md: https://blog.guigpap.com/fr/workflows/question-hub.md category: tooling date: '2026-03-28' maturite: production techno: - n8n - telegram - claude application: - ai - knowledge - operations --- # Question Hub & Vision > Interface Telegram interactive pour les questions Claude Code et extraction intelligente de documents photographies ## 1. Quoi ? — Definition et contexte 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. > **Note - Interactive Questions** > > Quand un CLI IA pose une question, il envoie un webhook a N8N avec les options. N8N formate un message Telegram avec des boutons inline. L'utilisateur clique, et la reponse est renvoyee au CLI qui continue son travail. ### Deux systemes complementaires | Systeme | Nodes | Declenchement | Role | |---------|-------|---------------|------| | **Question Hub** | ~35 (parent + callback) | Webhook CLI | Questions interactives Telegram | | **Vision OCR** | 14 | Sub-workflow (photo) | Extraction de documents | --- ## 2. Pourquoi ? — Enjeux et motivations ### Problemes resolus | Probleme | Sans ces workflows | Avec ces workflows | |----------|--------------------|--------------------| | **Questions CLI illisibles** | Liste numerotee dans le terminal | Boutons Telegram avec emojis | | **Multi-select impossible** | Taper les numeros un par un | Toggle ✅ et confirmation | | **Photos inutilisables** | Photo = fichier binaire, pas d'info | Extraction structuree par type | | **OCR generique** | Meme traitement pour tout | Facture ≠ carte de visite ≠ screenshot | ### Six types de documents reconnus Le Vision OCR classifie chaque photo avant de l'extraire : | Type | Champs extraits | |------|----------------| | **business_card** | Nom, fonction, entreprise, email, telephone | | **invoice** | Fournisseur, numero, lignes, total, date | | **screenshot** | Texte visible, interface identifiee | | **handwritten_note** | Transcription, confiance, langue | | **general_document** | Texte brut structure | | **not_document** | (Pas un document — photo, paysage, etc.) | > **Tip - Carte de visite → Odoo** > > Les cartes de visite extraites peuvent etre envoyees directement dans Odoo comme contact via le workflow d'ingestion de contacts. --- ## 3. Comment ? — Mise en oeuvre technique ### Question Hub : le parcours d'une question **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. ### Vision OCR : le parcours d'une photo **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 : ```mermaid flowchart TD Photo["Photo reçue"] Class["Gemini Flash · Classification"] BC["business_card → nom, email, tél, entreprise"] INV["invoice → fournisseur, numéro, lignes, total"] SC["screenshot → texte, interface"] HW["handwritten_note → transcription, confiance"] Gen["general_document → texte structuré"] NotDoc["not_document → ignorer"] Photo --> Class --> BC Class --> INV Class --> SC Class --> HW Class --> Gen Class --> NotDoc ``` **3. Normalisation** — La reponse est formatee en HTML sanitise pour Telegram avec un contrat uniforme : `{status, docType, extracted, text}`. ### Profils CLI Ollama 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). --- ## 4. Et si ? — Perspectives et limites ### Limites actuelles | Limite | Impact | Mitigation | |--------|--------|------------| | **Timeout 5 min** | Question expirée si pas de reponse | Suffisant pour usage interactif | | **4 options/page** | Beaucoup de pages si 20+ options | Pagination avec conservation des selections | | **OCR depend de Gemini** | Pas de fallback local | Modele rapide et fiable en pratique | ### Scenarios d'evolution **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 --- ## Pages liees ### Workflows - [Telegram Orchestrator](/fr/workflows/telegram-orchestrator/) — Routage des photos et callbacks - [Voice Transcription](/fr/workflows/voice-transcription/) — Autre modalite d'entree ### Infrastructure - [AI Stack](/fr/infrastructure/ai-stack/) — CLI Ollama et Gemini Vision ## Metadonnees agent - Cet article est issu du blog GuiGPaP Lab. - Contexte global du blog: https://blog.guigpap.com/llms.txt - Contact auteur: https://odoo.guigpap.com/mon-cv - Licence: CC-BY-SA 4.0