PRJ-001 · CONVERSATIONAL AI
Un chatbot 3-tiers qui répond sur catalogue réel.
Chaque requête est routée par un orchestrateur (« Decider ») selon confiance, entités détectées et contexte Redis (TTL 1 h) : la FAQ sémantique absorbe le simple, le NLP traite le véhicule, le RAG génère sur mesure. Résultat : 90 %+ de résolution en tests d'intégration.
TIER 1 — ~60 % DU TRAFIC
FAQ sémantique
paraphrase-multilingual-MiniLM-L12-v2, cosinus, seuil 0,70. Livraison, retours, garantie, paiement.
< 100 ms
TIER 2 — ~30 % DU TRAFIC
Intention + entités
Classifieur à patterns + extraction (marque, modèle, motorisation, pièce). Clarifie si incomplet.
< 500 ms
TIER 3 — ~10 % DU TRAFIC
RAG + LLM local
Index FAISS 265 k+ (batch 32, L2, IndexFlatIP) → Qwen-3.5:9B via Ollama, streaming Socket.IO.
0 € API · RGPD
PythonFlaskFAISSSentence-BERTQwen / OllamaRedisSocket.IO
ESSAYEZ LE DECIDEUR ↓
simulation
Simulation pédagogique du routage — le vrai système tourne chez DriveOnly.
02Évaluation & limites
PRJ-001 · protocole — tests d'intégration sur requêtes réelles
Le taux de 90 %+ mesure la part des requêtes de test ayant reçu une réponse jugée correcte, lors des tests d'intégration, sur des requêtes clients réelles en français.
- Seuil cosinus 0,70 (Tier 1) ; intentions regex + fallback LLM contre les faux positifs (Tier 2).
- Arbitrage RAG vs fine-tuning par matrice coût / latence / fraîcheur du catalogue.
- 3 notebooks Jupyter documentent la méthodologie de validation.
- Limites connues : pas encore de fine-tuning supervisé (cadré, sur logs réels) ; requêtes en français ; qualité liée au catalogue.
Détail chiffré par handler et taille d'échantillon : notebooks et rapport de stage, sur demande.
03Data & ETL : 265 000 lignes domptées
PRJ-002 · Python · Requests · BeautifulSoup · SQL/MySQL · LLM
Avant l'IA, la donnée : scraping de 3 fournisseurs européens (R.-U., Allemagne, Pologne) avec proxies rotatifs et respect des robots.txt, puis normalisation massive — dédoublonnage, extraction marque/modèle/motorisation/type de pièce par regex + SQL, et tags LLM (Qwen) pour les noms composés complexes.
- 265 000+ entrées nettoyées, normalisées, importées (pipeline CSV réparé au passage)
- 200+ produits fantômes purgés ; ps_search_index (1,35 Go) et ps_product_lang (1,8 Go) audités et reconstruits
- ETL adapté en cours de route quand un fournisseur a remplacé toutes ses références
04Perf web : mesurée, pas promise
PRJ-002 · Lighthouse · Screaming Frog · Search Console · crawler Python maison
| Métrique | Avant | Après | Gain |
| LCP | 5,8 s | 2,4 s | −59 % |
| PageSpeed mobile | 32 | 48 | +50 % |
| PageSpeed desktop | 58 | 72 | +24 % |
| FID | 180 ms | 95 ms | −47 % |
| CLS | 0,25 | 0,08 | −68 % |
Actions : WebP + fallback, Gzip, lazy loading, defer/async, minification, cache HTTP différencié (30 j / 7 j / ETag), profondeur DOM réduite, modules PrestaShop inutiles désactivés.
06Bugs critiques : 100 % résolus
PRJ-002 · PrestaShop · AngarTheme · multishop
- Images « NOT AVAILABLE » : 12 % du catalogue → 0 % (permissions, régénération miniatures)
- Boucle de redirection infinie (ERR_TOO_MANY_REDIRECTS) : ps_shop_url corrigé en multishop
- Module Google Pay débogué ; responsive mobile AngarTheme réparé (breakpoints, prix/images)
07Chiffres du terrain
Tests d'intégration & audits — 2026
08Leçons du terrain
Carnet — ce que la prod m'a appris
- Tester sur données réelles, pas sur exemples construits : les faux positifs regex (suivi vs livraison) ne sortent qu'en tests d'intégration.
- Choisir RAG vs fine-tuning avec une matrice coût / latence / fraîcheur — pas à l'instinct.
- Parler business aux non-techniciens : conversion, SEO, expérience client — pas F1-score.
- Itérer vite : semaines courtes, chiffres affichés, ETL repris en cours de route sans casser la prod.
09Code & rapport
Open source · GitHub
Chatbot complet + ETL + index FAISS, documentés et versionnés. Rapport de stage de 70 pages et 3 notebooks Jupyter de validation disponibles sur demande.