L'IA en production : pourquoi c'est plus complexe que prévu
Ces blocages apparaissent dès qu'on sort du notebook Jupyter pour livrer une vraie feature utilisateur.
Architecture IA en production : ce que j'ai livré
Mon expérience IA est ancrée dans un seul projet — mais complet, en production, et vérifiable : beforbuild.com. L'agent conversationnel de la plateforme est utilisé quotidiennement par des promoteurs immobiliers pour analyser leurs documents de projet.
Le pipeline complet : les documents sont OCRisés via Tesseract.js dans un Cloudflare Workflow (tâche durable), découpés en chunks avec métadonnées enrichies (h1/h2/phase/document_name), embeddés via l'API Mistral (1024 dimensions), et stockés dans pgvector. Lors de chaque message, les 6 chunks les plus proches sont récupérés par similarité cosinus et injectés dans le prompt.
L'agent utilise le tool-use Mistral (function calling) pour appeler des outils métier — calculs budgétaires, recherche d'informations foncières, résumés de documents. La boucle agentique itère jusqu'à 4 fois avant de produire la réponse finale. Tout streame en SSE bout en bout : Worker IA → Supabase Realtime → React via TanStack Query.
Détail du pipeline IA en production
Chaque composant est en production sur beforbuild.com — pas une architecture théorique.
Le pipeline RAG démarre à l'upload d'un document. Un Cloudflare Workflow orchestre les étapes longues sans risque de timeout : extraction du ZIP, OCR Tesseract.js page par page, chunking en segments de 500 tokens avec chevauchement, enrichissement des métadonnées (titre h1/h2, phase projet, nom du document), appel API Mistral pour les embeddings 1024-dim, insertion dans pgvector.
- Chunking avec métadonnées riches — le contexte injecté dans le LLM est précis et traçable
- Embeddings Mistral
mistral-embed— 1024 dimensions, stockés dans pgvector avec index IVFFlat - Recherche cosinus
vector <=> query— 6 chunks les plus proches, filtrés par organisation - RLS sur les vecteurs — un utilisateur ne peut jamais accéder aux embeddings d'une autre organisation
L'agent va au-delà d'un simple RAG : il peut appeler des outils métier — calculer un ratio financier, chercher une adresse via l'API BAN, récupérer un résumé de document — avant de produire sa réponse. La boucle itère jusqu'à 4 fois (appel d'outil → résultat → décision de l'agent) puis stream la réponse finale.
- Mistral function calling avec schéma JSON strict pour chaque outil
- Session token opaque en KV Cloudflare (15 min TTL) — le client ne voit jamais l'historique brut
- Historique 6 messages pour la cohérence conversationnelle sans exploser le contexte
- Gestion propre des erreurs d'outil — l'agent retente ou s'adapte sans bloquer
Le streaming SSE (Server-Sent Events) permet d'afficher les tokens au fur et à mesure qu'ils sont générés — comme sur ChatGPT. L'architecture : le Worker IA streame les tokens de Mistral vers Supabase Realtime via un channel dédié, React écoute ce channel avec TanStack Query et met à jour le DOM token par token.
- Worker IA reçoit le stream Mistral et le redirige vers Supabase Realtime (channel par session)
- React subscribe au channel Realtime — premiers tokens affichés en moins d'une seconde
- TanStack Query gère la mise à jour incrémentale du DOM sans re-render complet
- Cleanup automatique du channel à la fin du stream — pas de fuite de connexion
Comment je livre un pipeline IA en production
Tarifs — Freelance IA · Pipeline RAG
Questions fréquentes — Développeur freelance IA · RAG
Votre pipeline IA mérite d'aller en production.
RAG sur vos documents, agent conversationnel, streaming SSE — 30 minutes pour évaluer votre cas d'usage et vous proposer une architecture concrète. Remote France, disponible immédiatement.
Ou écrire directement : [email protected]