Bot Gestionnaire de
Commandes & Devis Automatisé
Réalisé par :
Snihji Younes
Gourane Achraf Abdlghafour
Saadallah Mouhssine
Faouzi Sami
Encadré par :
Pr .MAACH Abdellah
Année Universitaire 2025-2026
Résumé
Ce rapport présente la conception et le développement d'un assistant virtuel intelligent
dédié au secteur du commerce en ligne. L'objectif principal de ce projet est
d'automatiser l'accompagnement des utilisateurs durant leur parcours d'achat,
d'optimiser l'expérience client, et de fiabiliser les processus de vente sans intervention
humaine.
Face aux limites des chatbots scénarisés traditionnels et aux risques d'"hallucinations"
(inventions de données) inhérents aux modèles de langage classiques, nous avons opté
pour une architecture logicielle avancée de type "Multi-Agents". Orchestré par le
framework LangGraph et propulsé par le modèle de langage Llama 3.3 via
l'infrastructure ultra-rapide de Groq, le système est conçu comme un pipeline
décisionnel où un superviseur central route les requêtes de l'utilisateur vers des agents
spécialisés.
L'assistant est ainsi capable de comprendre les intentions en langage naturel (par saisie
textuelle ou par commande vocale), d'interroger une base de données de manière
autonome pour vérifier les prix et la disponibilité des stocks en temps réel, et
d'appliquer des règles métiers strictes (gestion et refus des ruptures de stock). Enfin, le
système intègre un module d'automatisation documentaire permettant de générer
simultanément un devis PDF pour le client et un bon de commande pour le marchand .
Table of Contents
Résumé................................................................................................................................................2
1. Introduction et Contexte Général............................................................................................................4
1.1. Le besoin dans le commerce en ligne...............................................................................................4
1.2. Objectif principal du projet...............................................................................................................4
1.3. La solution technologique apportée.................................................................................................4
2. Technologies et Outils Utilisés.................................................................................................................5
2.1. Orchestration et Intelligence Artificielle...........................................................................................5
2.2. Gestion des Données et Backend.....................................................................................................5
2.3. Automatisation Métier et Interface Client........................................................................................6
3. Architecture du Système.........................................................................................................................6
3.1. Le Pipeline de Traitement des Requêtes...........................................................................................6
3.2. Le Cœur Décisionnel : Le Superviseur (LangGraph)..........................................................................7
3.3. Les Agents Spécialisés et l'Exécution d'Outils (Tool Calling).............................................................7
3.4. Sécurité et Prompt Engineering........................................................................................................7
4. Implémentation et Cas d'Usage...............................................................................................................8
4.1. Accueil et requêtes simples..............................................................................................................8
4.2. Interrogation du catalogue et extraction des prix............................................................................8
4.3. Sécurisation métier : Gestion des ruptures de stock........................................................................9
4.4. Automatisation de la facturation et génération documentaire......................................................10
4.5. Interface utilisateur et accessibilité vocale.....................................................................................11
4.6. Intégrité des Transactions et Blocage des Commandes Hors Stock................................................11
5. Conclusion et Perspectives....................................................................................................................12
5.1. Bilan du Projet................................................................................................................................12
5.2. Perspectives d'Évolution et Déploiement.......................................................................................13
1. Introduction et Contexte Général
1.1. Le besoin dans le commerce en ligne
Aujourd'hui, le secteur du e-commerce nécessite une assistance client réactive et
personnalisée. Les consommateurs souhaitent être accompagnés et conseillés de
manière fluide tout au long de leur parcours d'achat, de la recherche d'un produit
jusqu'à la facturation. Pour les marchands, l'enjeu majeur est d'automatiser ces
interactions tout en garantissant une synchronisation parfaite avec l'état réel de leur
magasin (prix exacts, gestion stricte des stocks et création des documents comptables).
1.2. Objectif principal du projet
Ce projet s'inscrit directement dans cette dynamique et vise à répondre à un besoin
d'automatisation commerciale précis. L'objectif tel que défini par le cahier des charges
est le suivant : "Développement d'un chatbot intelligent qui assiste les clients dans
leur processus d'achat en ligne. Le bot guide les clients à travers le catalogue produits,
vérifie la disponibilité en stock et les prix en temps réel, puis génère automatiquement
un devis personnalisé pour le client et un bon de commande correspondant pour le
marchand."
1.3. La solution technologique apportée
Pour réaliser cet objectif avec rigueur, nous avons développé une application basée sur
une architecture logicielle "Multi-Agents" intelligente. Ce système ne se contente pas de
dialoguer ; il agit comme un véritable pont entre l'utilisateur et le système d'information
de l'entreprise. L'assistant est capable de :
Comprendre les requêtes des clients de manière naturelle (par écrit ou par
commande vocale).
Interroger la base de données de la boutique de façon autonome pour extraire
les informations fiables et bloquer les ventes en cas de rupture de stock.
Orchestrer la génération simultanée des documents commerciaux finaux au
format PDF (le devis et le bon de commande) pour conclure le processus d'achat
de manière professionnelle.
2. Technologies et Outils Utilisés
Pour répondre aux exigences de performance, de modularité et de fiabilité du projet,
l'architecture a été pensée de manière découplée, en combinant des outils de pointe en
Intelligence Artificielle avec des technologies web et bases de données classiques.
2.1. Orchestration et Intelligence Artificielle
LangGraph & LangChain : Ces frameworks ont été choisis
pour structurer l'application non pas comme un simple
script linéaire, mais comme un graphe d'états cyclique.
LangGraph permet de créer une véritable architecture
"Multi-Agents", où un Superviseur route intelligemment les
requêtes vers des Agents spécialisés (Agent SQL, Agent
Facturation). Cela garantit la séparation des responsabilités
et empêche l'IA de se disperser.
Modèle Llama 3.3 via l'infrastructure Groq : Le choix s'est porté sur le modèle
open-source Llama 3.3 (70 milliards de paramètres) pour ses excellentes
capacités de raisonnement et de compréhension du langage naturel. Son
déploiement via l'API de Groq est un choix stratégique :
l'infrastructure matérielle de Groq (basée sur des LPU -
Language Processing Units) offre une latence d'inférence
extrêmement faible, permettant au chatbot de répondre
en temps réel, une condition indispensable pour l'expérience e-commerce.
2.2. Gestion des Données et Backend
SQLite : Utilisé comme Système de Gestion de Base
de Données Relationnelle (SGBDR) léger. SQLite
simule parfaitement le système d'information du
magasin (tables T_Produits et T_Stocks) tout en
s'intégrant nativement avec Python, sans nécessiter de serveur lourd pour la
phase de développement et de démonstration.
Python & Flask : Le backend a été développé en Python pour sa compatibilité
native avec l'écosystème IA. Le micro-
framework Flask a été utilisé pour exposer le
graphe LangGraph via une API REST légère
(route /api/chat), assurant le lien de
communication asynchrone entre l'interface
client et le cerveau IA.
2.3. Automatisation Métier et Interface Client
ReportLab (Python) : Cette bibliothèque a été sélectionnée pour la génération
dynamique des PDF (Devis et Bons de commande).
Contrairement à l'IA qui est probabiliste, ReportLab
offre une approche déterministe, garantissant que les
documents commerciaux sont générés avec une mise en
page stricte, des calculs de TVA exacts et un formatage professionnel.
HTML/CSS/JS et Web Speech API : L'interface utilisateur a été conçue pour être
épurée et réactive. L'innovation majeure côté Front-End est l'intégration de la
Web Speech API native des navigateurs. Ce choix
d'architecture (Edge Computing) permet de déporter la
reconnaissance vocale (Speech-to-Text) directement sur
la machine du client, évitant ainsi de surcharger le
serveur Flask avec des flux audio lourds tout en offrant
une accessibilité maximale.
3. Architecture du Système
Cette section détaille le fonctionnement interne de l'application. Afin de garantir des réponses
fiables et connectées au système d'information, l'architecture a été construite autour du
paradigme de "Graphe Multi-Agents" (Agentic Workflow). Ce modèle permet au système de
planifier, d'exécuter des outils externes et d'évaluer ses actions avant de formuler une réponse
finale à l'utilisateur.
3.1. Le Pipeline de Traitement des Requêtes
Le cycle de vie d'une requête utilisateur suit un flux (pipeline) strictement défini :
1. Acquisition : L'utilisateur saisit sa demande via l'interface web (texte ou transcription
vocale via la Web Speech API).
2. Transmission : Le message est envoyé au serveur backend Flask via une requête HTTP
POST.
3. Pré-filtrage : Le backend effectue une première analyse. Les requêtes basiques
(salutations de courtoisie) sont traitées localement pour optimiser les temps de réponse
et préserver les quotas de l'API. Les requêtes complexes sont transmises au graphe
décisionnel.
3.2. Le Cœur Décisionnel : Le Superviseur (LangGraph)
Au centre de l'architecture se trouve le Superviseur. Contrairement à un chatbot classique qui
tente de générer la réponse immédiatement, le rôle du Superviseur est purement analytique et
directionnel (Routage sémantique). Il évalue l'intention de l'utilisateur : s'il détecte une
intention de recherche d'information sur le catalogue ou les prix, il délègue la tâche à l'Agent
SQL. S'il détecte une volonté de finaliser l'achat ou d'obtenir un devis, il oriente le flux vers
l'Agent Facturation.
3.3. Les Agents Spécialisés et l'Exécution d'Outils (Tool Calling)
Une fois la tâche déléguée, les agents spécialisés entrent en action. Ces agents fonctionnent
grâce au mécanisme de Tool Calling : le modèle IA (Llama 3.3) ne génère pas de texte final, mais
génère du code compréhensible par Python pour déclencher des scripts locaux.
L'Agent SQL (Catalogue et Stocks) : Cet agent possède l'outil de connexion à la base de
données SQLite. Il convertit la demande en langage naturel en une requête SQL précise
(ex: SELECT avec des JOIN). Il croise systématiquement la table des produits avec la table
des stocks pour s'assurer que les prix sont exacts et que la quantité disponible est
supérieure à zéro.
L'Agent Facturation (Génération PDF) : Cet agent possède l'outil métier lié à la
bibliothèque ReportLab. Lorsqu'une vente est validée, il extrait les entités nommées de
la conversation (nom du client, liste des produits, prix validés) et déclenche la fonction
Python qui va physiquement dessiner et sauvegarder le Devis (pour le client) et le Bon
de Commande (pour le marchand) dans le dossier du serveur.
3.4. Sécurité et Prompt Engineering
Pour pallier la nature probabiliste de l'Intelligence Artificielle et éviter toute "hallucination", le
système est verrouillé par un Prompt Engineering strict (System Messages). Chaque agent reçoit
une "antisèche" de son environnement contenant :
Le schéma exact de la base de données (pour éviter les erreurs de syntaxe SQL).
Des règles métiers impératives : interdiction absolue d'inventer un prix, obligation de
refuser la vente d'un produit dont le stock est à zéro (en proposant des alternatives), et
obligation de demander explicitement le nom du client avant de générer tout document
comptable. Ces contraintes garantissent un comportement déterministe et sécurisé,
indispensable pour un déploiement commercial.
4. Implémentation et Cas d'Usage
Cette section présente les résultats de l'implémentation à travers différents scénarios
d'utilisation réels. Ces tests de validation démontrent la capacité du système à gérer
l'intégralité du parcours d'achat, de la prise de contact initiale jusqu'à l'émission des documents
commerciaux.
4.1. Accueil et requêtes simples
Le chatbot est capable de traiter les interactions basiques de courtoisie de manière
instantanée, offrant ainsi une expérience utilisateur fluide et naturelle dès la première
connexion sur la plateforme.
4.2. Interrogation du catalogue et extraction des prix
Lorsqu'un utilisateur recherche un produit spécifique, le Superviseur achemine la demande vers
l'Agent SQL. Ce dernier interroge la table T_Produits, extrait les informations exactes et formule
une réponse commerciale structurée, incluant la devise locale (Dirham marocain).
4.3. Sécurisation métier : Gestion des ruptures de stock
Ce scénario constitue un test aux limites (Edge Case) démontrant la fiabilité du système.
Lorsqu'une demande cible un produit dont la quantité dans la table T_Stocks est égale à zéro, le
système applique ses règles métiers : il bloque catégoriquement la proposition de vente,
informe le client de la rupture de stock, et propose des modèles alternatifs de la même
catégorie.
4.4. Automatisation de la facturation et génération documentaire
Dès que l'intention d'achat est validée, le flux est redirigé vers l'Agent Facturation. Le système
effectue une vérification des prérequis (récupération du nom du client), puis exécute le script
Python basé sur ReportLab. L'outil génère de manière asynchrone deux documents distincts et
formatés : le Devis pour l'acheteur et le
Bon de Commande pour le traitement
interne.
facturation :
4.5. Interface utilisateur et accessibilité vocale
L'interface Front-End intègre une fonctionnalité avancée de commande vocale s'appuyant sur
l'API Web Speech du navigateur. L'utilisateur a la possibilité de dicter ses requêtes via son
microphone, illustrant la volonté de fournir une plateforme inclusive et conforme aux standards
modernes d'accessibilité dans le commerce électronique.
4.6. Intégrité des Transactions et Blocage des Commandes Hors Stock
Dans un système e-commerce robuste, la simple présence d'un article dans le catalogue ne
justifie pas la possibilité de le commander. C'est pourquoi l'architecture intègre un mécanisme
de contrôle strict en temps réel.
Lorsqu'un client exprime l'intention d'acheter un produit, l'Agent SQL effectue
systématiquement une vérification croisée entre la table des produits et celle des stocks. Si un
produit est identifié comme étant en « rupture de stock » (quantité égale à zéro), le système
bloque unilatéralement le processus d'achat. Même si l'utilisateur insiste ou tente de forcer la
création d'un devis, l'assistant refusera la transaction et bloquera l'accès à l'Agent de
Facturation. Ce garde-fou est essentiel : il garantit la cohérence du système d'information, évite
la création de commandes invalides pour le marchand, et protège le client contre de fausses
promesses de vente.
5. Conclusion et Perspectives
5.1. Bilan du Projet
La réalisation de cet assistant virtuel e-commerce constitue une démonstration probante de
l'intégration réussie de l'Intelligence Artificielle au cœur d'un système d'information métier. Le
projet a permis de répondre avec succès à l'intégralité du cahier des charges : le chatbot est
capable d'accueillir le client (texte et voix), d'interroger la base de données en temps réel, de
sécuriser les transactions en bloquant les produits en rupture de stock, et de finaliser la vente
par la génération automatisée des documents comptables.
L'adoption d'une architecture Multi-Agents (LangGraph) couplée à un LLM hébergé sur une
infrastructure à très faible latence (Llama 3.3 via Groq) a prouvé qu'il est possible de concilier la
fluidité du langage naturel avec la rigueur déterministe imposée par le commerce en ligne. Les
problématiques d'hallucinations ont été maîtrisées grâce à un système de routage strict et à
l'exécution de scripts Python isolés (Tool Calling).
5.2. Perspectives d'Évolution et Déploiement
Bien que le système actuel soit pleinement fonctionnel, plusieurs évolutions techniques
pourraient être envisagées pour transformer cette preuve de concept (POC) en une application
de niveau entreprise :
Interface d'Administration (Back-Office) : Développer un panel de gestion web sécurisé
permettant au marchand de mettre à jour son catalogue et de réapprovisionner ses
stocks sans avoir à intervenir directement sur la base de données SQLite.
Migration vers une architecture Microservices : Séparer le moteur IA, la base de
données (vers PostgreSQL) et l'interface utilisateur pour permettre une scalabilité
indépendante de chaque brique.