Académique Documents
Professionnel Documents
Culture Documents
Rapportpfe Chatbot Kissa AlaaArboun
Rapportpfe Chatbot Kissa AlaaArboun
REPUBLIQUE TUNISIENNE
Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique
Elaboré Par
Alaa Arboun
Encadré Par
Mme.Mariem Jedda
Mme.Sonia Gharsalli
Société
Signature et cachet
Signature
DÉDICACE
À ma chère Maman Mabrouka , ta lumière et ton amour ont été mon soutien in-
faillible depuis le début de ce voyage. Ta dévotion, tes sacrifices et tes encouragements m’ont
porté jusqu’au bout. Je te dédie cette réussite, reconnaissant à jamais l’amour et le soutien d’une
mère extraordinaire.
À mon père Sallem , qui a toujours su m’apporter de la joie, même à travers les choses les
plus simples. Avec la beauté de son âme modeste, il a toujours été mon soutien, mon inspiration,
et ma lumière guide.
À mes chers frères et sœurs, vous qui êtes mon soutien infaillible, colonnes solides
qui ne fléchissent point. Par votre présence, ma détermination se fortifie et ma volonté s’enracine
avec puissance.
Que ce projet soit dédié à chacun de vous, unis dans une symbiose éternelle.
Alaa Arboun
iv
REMERCIEMENTS
Tout d’abord, nous tenons à exprimer notre profonde gratitude envers Allah pour nous
avoir accordé la force et la détermination nécessaires pour mener à bien ce travail.
Avant de présenter notre travail, nous souhaitons exprimer notre sincère reconnaissance en-
vers toutes les personnes qui ont contribué à la réalisation de ce projet.
Nous tenons également à exprimer notre profonde gratitude envers Madame Sonia Ghar-
salli , notre encadrante académique, pour ses conseils éclairés, son dévouement et son soutien
tout au long de la réalisation de notre projet ainsi que dans la rédaction de ce rapport de fin
d’études.
Enfin, nous souhaitons exprimer notre gratitude envers tous nos professeurs académiques
pour leurs efforts inlassables tout au long de notre parcours d’études à l’Université Tek-up .
v
Résumé
Ce rapport est la synthèse de notre travail réalisé au sein de l’entreprise Estiféda dans le
cadre de mon projet de fin d’études.Le projet vise à concevoir un ChatBot pour la plateforme
Kissa, dédiée à la création d’histoires numériques. Il répond au besoin des enfants qui ren-
contrent des difficultés pour écrire, trouver l’inspiration, et structurer leurs idées, ce qui peut
inhiber leur créativité. Lorsqu’accompagnés par des animateurs, leur créativité s’épanouit
grâce à l’assistance dans la structuration de leurs pensées. Le ChatBot est conçu pour jouer le
rôle d’un animateur virtuel, posant des questions pertinentes et offrant des suggestions pour
encourager les enfants à créer des histoires de manière autonome.
L’objectif principal du projet est de développer un ChatBot capable d’accompagner les en-
fants tout au long de la création d’histoires numériques. Il doit engager des conversations na-
turelles en français, poser des questions stimulantes pour encourager la créativité, et fournir
des éléments narratifs pour aider à organiser les récits de manière efficace.
Pour cela, nous avons adopté une approche centrée sur l’utilisation de modèles avancés
de traitement du langage naturel (NLP). En utilisant les tech- nologies Django et Angular, nous
avons créé une interface qui nous a per- mis de déployer ces modèles de manière efficace et
optimisée
Mots clés : Traitement du Langage Naturel,Django, Angular,Postgresql, Deep Learning, In-
telligence Artificielle.
vi
Abstract
This report is a summary of our work conducted within the Estiféda company as part of
my final year project. The project aims to design a ChatBot for the Kissa platform, dedicated to
digital storytelling. It addresses the needs of children who often struggle with writing, finding
inspiration, and structuring their ideas, which can hinder their creativity. When guided by ins-
tructors, their creativity flourishes as they receive assistance in organizing their thoughts. The
ChatBot is designed to serve as a virtual instructor, posing relevant questions and providing
suggestions to empower children to create stories independently.
The main objective of the project is to develop a ChatBot capable of guiding children throu-
ghout the process of creating digital stories. It should engage in natural conversations in French,
ask stimulating questions to boost creativity, and offer narrative elements to effectively struc-
ture stories.
To achieve this, we adopted an approach centered around the use of advanced natural lan-
guage processing (NLP) models. By utilizing Django and Angular technologies, we created an
interface that enabled us to deploy these models efficiently and effectively.
Mots clés : Natural Language Processing, Django, Angular, Postgresql, Deep Learning, Ar-
tificial Intelligence. k.
vii
TABLE DES MATIÈRES
Introduction générale 1
Chapitre 1: Contexte général du projet 3
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Présentation de l’Organisme d’Accueil : Estifeda . . . . . . . . . . . . . . . . . . 4
1.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 À Propos d’Estifeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.5 Engagements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.6 Services d’Estifeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.7 Solutions Proposées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.8 Estifeda et l’IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Contexte générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Motivation et Problématique . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Méthodologie du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
viii
1.3.1 Compréhension du problème métier . . . . . . . . . . . . . . . . . . . 8
1.3.2 Compréhension des données . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.3 Préparation des Données . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.4 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.5 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.6 Déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapitre 2: Chatbot intelligent proposé 11
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Les Fondements des Chatbots avec NLP . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Les Chatbots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Traitement du Langage Naturel (NLP) . . . . . . . . . . . . . . . . . . . 12
2.1.3 Évolution des Chatbots avec NLP . . . . . . . . . . . . . . . . . . . . . 13
2.1.4 Applications du NLP dans les Chatbots . . . . . . . . . . . . . . . . . . 13
2.2 Collecte et Prétraitement des Données . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Sources des Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Prétraitement de Texte (Text Preprocessing) . . . . . . . . . . . . . . . 15
2.2.3 Représentation de Texte (Text Representation) . . . . . . . . . . . . . . 15
2.3 Transfer Learning en NLP pour le Développement de ChatBots . . . . . . . . . 16
2.3.1 Transfer Learning en NLP . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Application spécifique aux chatbots pour enfants . . . . . . . . . . . . 16
2.3.4 Défis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5 Comparaison avec l’apprentissage supervisé traditionnel . . . . . . . . 17
2.4 Transformers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Contexte et Importance des Transformers . . . . . . . . . . . . . . . . . 18
2.4.2 Les Limitations des RNNs et l’Émergence des Transformers . . . . . . . 18
2.4.3 La Révolution des Transformers . . . . . . . . . . . . . . . . . . . . . . 19
2.4.4 Architecture Générale des Transformers . . . . . . . . . . . . . . . . . . 20
2.4.5 Améliorations Apportées aux Transformers . . . . . . . . . . . . . . . . 21
2.4.5.1 Couches de Normalisation . . . . . . . . . . . . . . . . . . . . 21
2.4.5.2 Connexions Résiduelles (Déviation) . . . . . . . . . . . . . . 22
2.4.5.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.6 Concepts Clés des Transformers . . . . . . . . . . . . . . . . . . . . . . 23
ix
2.4.6.1 Encodages de Position . . . . . . . . . . . . . . . . . . . . . . 24
2.4.6.2 L’Attention Multi-Tête . . . . . . . . . . . . . . . . . . . . . . 24
2.4.6.3 Processus de l’Attention Multi-Tête avec Scaled Dot-Product
Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.6.4 Importance des Transformers dans la Génération de Texte . . 26
2.5 Modélisation et Fine-Tuning du Modèle . . . . . . . . . . . . . . . . . . . . . . 26
2.5.1 Choix du Modèle GPT-2 et sa Pertinence pour ce Projet . . . . . . . . . 26
2.5.2 Étapes du Fine-Tuning sur le Dataset Collecté . . . . . . . . . . . . . . 27
2.5.3 Hyperparamètres et Techniques d’Optimisation . . . . . . . . . . . . . 27
2.6 Mesures d’Évaluation de Notre Modèle . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2 Métriques Quantitatives . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2.1 Taux de Réponse Correcte (TRC) . . . . . . . . . . . . . . . . 28
2.6.2.2 Temps de Réponse . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2.3 Bleu Score (BLEU) . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2.4 ROUGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2.5 METEOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2.6 Perplexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.3 Métriques Qualitatives . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.3.1 Satisfaction Utilisateur . . . . . . . . . . . . . . . . . . . . . . 29
2.6.3.2 Pertinence des Questions . . . . . . . . . . . . . . . . . . . . 29
2.6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Chapitre 3: Déploiement du ChatBot 31
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1 Spécification des Besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.1 Besoins Fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.2 Besoins Non Fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.3 Identification des Acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Étude Analytique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Diagramme de Cas d’Utilisation . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Diagramme de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Conception de l’Interface Utilisateur de Kissa . . . . . . . . . . . . . . . . . . . 40
3.3.1 Principes de Conception . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.2 Interfaces Critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
x
3.3.2.1 Maquette d’Inscription et de Connexion . . . . . . . . . . . . 40
3.3.2.2 Interface du ChatBot . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4 Architecture Backend avec Django . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.2 Architecture MVT de Django . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.3 Pourquoi Django ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.4 Modèle de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.5 Interaction avec le modèle fine-tuned . . . . . . . . . . . . . . . . . . . 43
3.5 Interface Utilisateur avec Angular . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.1 Introduction à Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.2 Raison du choix d’Angular pour la partie frontend . . . . . . . . . . . . 44
3.5.3 Explication optimale et détaillée de leur architecture . . . . . . . . . . . 44
3.5.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6 Mise en Production du ChatBot . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.1 Introduction au Déploiement . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2 Utilisation de Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2.1 Backend avec Docker . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2.2 Frontend avec Docker . . . . . . . . . . . . . . . . . . . . . . 47
3.6.3 Intégration avec Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.3.1 Pipeline Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.4 Intégration Continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.4.1 Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.4.2 Gitlab-ci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6.5 Diagrammes de Processus . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.2.1 Éditeur de code . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.2.2 Client API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.7.2.3 Frameworks et Technologies de développement . . . . . . . . 52
3.7.2.4 Langages de programmation . . . . . . . . . . . . . . . . . . 53
3.7.2.5 Base de donnée . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.7.2.6 Outils DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . 54
xi
3.7.2.7 Outils de modélisation . . . . . . . . . . . . . . . . . . . . . . 55
3.7.3 Conclusion sur le Déploiement . . . . . . . . . . . . . . . . . . . . . . . 56
Conclusion générale 57
Références 59
xii
LISTE DES FIGURES
2.1 chatbot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 nlp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Contraste entre Transfer Learning en NLP et l’Apprentissage Supervisé Tradi-
tionnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Illustration issue du papier original sur les Transformers. . . . . . . . . . . . . . 18
2.5 Illustration d’un RNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Illustration d’un LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7 Illustration du mécanisme d’attention. . . . . . . . . . . . . . . . . . . . . . . . 19
2.8 Architecture générale des Transformers . . . . . . . . . . . . . . . . . . . . . . 20
2.9 Représentation des mots par des vecteurs. . . . . . . . . . . . . . . . . . . . . . 21
2.10 Représentation des mots avec embeddings et positional encoding. . . . . . . . 21
2.11 Comparaison entre la normalisation de couche et la normalisation par lots . . 22
2.12 Illustration des connexions résiduelles dans l’architecture Transformer . . . . . 22
2.13 Encodage de position et attention multi-têtes. . . . . . . . . . . . . . . . . . . 23
2.14 (À gauche) Attention par produit scalaire normalisé, (À droite) Attention multi-
tête combinant plusieurs couches d’auto-attention en parallèle. . . . . . . . . . 25
xiii
LISTE DES FIGURES
xiv
LISTE DES TABLEAUX
xv
INTRODUCTION GÉNÉRALE
C’est dans ce contexte que mon stage au sein de la startup Estiféda, centré sur le développe-
ment du ChatBot Kissa, trouve son importance. Kissa est une plateforme dédiée à la création
d’histoires numériques. Elle vise à aider les enfants à transcender les obstacles communs as-
sociés à la narration, en offrant un assistant virtuel qui, tel un animateur, guide l’enfant dans
l’articulation de ses idées et dans la construction d’un récit structuré.
L’ambition de ce projet est de concevoir un ChatBot capable d’engager une interaction na-
turelle et stimulante avec les jeunes utilisateurs, tout en leur suggérant des éléments narratifs
pertinents. Ce guide virtuel devra être facilement accessible depuis les différentes interfaces
de Kissa, que ce soit sur le web, mobile ou Windows. De plus, afin de répondre aux besoins
spécifiques de notre audience cible, le bot sera principalement en français, complété par une
interface d’administration sophistiquée pour une gestion optimale.
Ce rapport qui est la synthèse du travail réalisé dans le cadre de ce projet est réparti en trois
chapitres illustrant la démarche de notre travail. Le premier chapitre présente l’organisme
d’accueil, le cadre général du projet, la problématique posée par le projet, la solution proposée
et la méthodologie adoptée pour la réalisation de notre projet.Le second chapitre se concentre
1
Introduction générale
sur notre solution. Le troisième chapitre détaille le déploiement du ChatBot, expliquant l’ar-
chitecture backend avec Django, l’interface frontend en Angular, la mise en production via
Docker et Jenkins, et l’intégration continue.
2
CHAPITRE 1
3
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
Introduction
Le travail de mon projet de fin d’études est réalisé au sein de l’entreprise Estiféda. L’objectif
de mon projet est de proposer un chatbot intelligent pour la création d’histoires numériques
pour les enfants à travers les techniques de Machine Learning et du Deep Learning.
Ce chapitre est composé de trois section principales. Dans la première section, nous pré-
sentons le cadre général de l’organisme d’accueil, leurs domaines d’expertises et leurs clients.
Dans la deuxième section, nous avons détaillé la présentation générale de sujet, probléma-
tique, étude de l’existant et critique, la solution proposée ainsi que les méthodologies appli-
quées lors de la conduite de ce stage de la science des données.
1.1.1 Introduction
Dans cette section, nous présentons l’organisme Estifeda qui a offert l’opportunité de dé-
velopper le ChatBot destiné à guider les enfants dans la création d’histoires interactives. Esti-
feda, l’Estrade de l’Innovation en Formation et Éducation Active, est spécialisée dans le déve-
loppement de solutions innovantes pour l’enseignement numérique.
4
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
1.1.3 Vision
1.1.4 Mission
La mission d’Estifeda est d’accompagner les acteurs de l’éducation tout au long du pro-
cessus éducatif et de faciliter la transition vers l’enseignement numérique.
1.1.5 Engagements
Estifeda s’engage à révéler le potentiel des apprenants, à impliquer les parents dans la sco-
larité de leurs enfants et à simplifier la vie des directions d’établissement et des enseignants.
— Formation : Estifeda garantit des formations techniques pour les partenaires, ainsi que
des formations aux techniques d’animation.
5
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
De nos jours, l’Intelligence Artificielle (IA) joue un rôle essentiel dans les solutions déve-
loppées pour l’éducation numérique. C’est dans ce contexte qu’Estifeda alimente le ChatBot
conçu pour guider les enfants tout au long de la création d’histoires interactives. L’IA permet
au ChatBot d’engager des conversations naturelles avec les enfants et de suggérer des élé-
6
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
ments narratifs pour les aider à organiser leurs récits de manière efficace.
Les enfants qui utilisent la plateforme Kissa pour créer des histoires numériques sont sou-
vent confrontés à des obstacles tels que le manque de compétences en écriture, le manque
d’inspiration et la difficulté à structurer leurs idées. Lorsqu’ils sont accompagnés par des ani-
mateurs, leur créativité est décuplée car ces animateurs les aident à organiser leurs pensées et
à développer leurs idées. Le projet vise à résoudre ce problème en développant un ChatBot ca-
pable de remplir le rôle de l’animateur, en posant des questions pertinentes et en fournissant
des suggestions pour aider les enfants à créer des histoires de manière autonome.
Comment exploiter la technologie des ChatBots pour stimuler la créativité des enfants
dans le domaine numérique ? Les enfants, souvent en difficulté avec les subtilités de l’écri-
ture ou en manque d’inspiration et de structure d’idées, se retrouvent souvent découragés.
Notre constat, basé sur l’accompagnement d’un animateur lors des stages, démontre que la
créativité de l’enfant s’amplifie principalement grâce à l’aide apportée par l’animateur pour
structurer ses idées et encourager le développement de ses pensées.
7
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
accessible depuis diverses plateformes, dont Kissa Web, Kissa Mobile et Kissa Windows. Une
interface d’administration sera également mise en place pour configurer l’arbre d’expertise
du ChatBot. De plus, le système doit disposer d’une page de suivi des réponses et de gestion
des exceptions. Chaque session est liée à une histoire, et les résultats de ces sessions seront
enregistrés pour permettre la construction d’une MindMap de l’histoire.
Nous comprenons en profondeur l’objectif de notre ChatBot, qui consiste à guider les en-
fants dans la création d’histoires. Nous identifions les besoins spécifiques des enfants et les
types de questions ou de suggestions qui seront pertinents et stimulants. Nous définissons
clairement nos objectifs et nos critères de succès pour le ChatBot.
8
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
Nous nettoyons et structurons les données pour qu’elles soient adaptées à l’entraînement
de notre modèle de langage. Nous séparons les dialogues en entrées (paroles de l’enfant) et
sorties (réponses de l’assistant) pour créer un ensemble d’entraînement. Nous effectuons des
opérations de prétraitement sur les textes, notamment la conversion en minuscules, la sup-
pression de la ponctuation, et la tokenisation.
1.3.4 Modélisation
1.3.5 Évaluation
Nous évaluons les performances de notre ChatBot en utilisant des métriques appropriées,
telles que la pertinence des réponses, la fluidité de la conversation, et la stimulation de la
créativité des enfants. Nous obtenons des retours d’enfants réels pour valider l’efficacité de
notre ChatBot. Nous révisons et ajustons le modèle et l’ensemble de données si nécessaire
pour améliorer les performances.
1.3.6 Déploiement
Nous mettons en place une infrastructure pour déployer notre ChatBot sur un serveur, en
utilisant des outils tels que Django pour le backend et Angular pour le frontend. Nous inté-
9
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
grons un pipeline de déploiement continu (CI/CD) avec GitLab, Docker et Jenkins pour auto-
matiser les mises à jour et les déploiements. Nous assurons que notre ChatBot soit accessible
aux enfants de manière sécurisée et fiable.
Ces étapes adaptées au CRISP-DM nous aident à conceptualiser et à gérer notre projet
de manière méthodique, en gardant à l’esprit notre objectif de développer un ChatBot pour
guider les enfants dans la création d’histoires.
1.4 Conclusion
Dans ce chapitre, nous avons présenté l’organisme d’accueil de notre stage de fin d’études,
défini la problématique et la solution envisagée, et expliqué la méthodologie adoptée pour
mener à bien ce projet. Le chapitre suivant se concentrera sur la présentation détaillée de
notre assistant intelligent.
10
CHAPITRE 2
11
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Introduction
Dans le précédent chapitre, nous avons présenté une vue d’ensemble de notre projet, ex-
pliquant le contexte général, la problématique que nous cherchons à résoudre, ainsi que notre
méthodologie. Dans ce chapitre, nous plongerons plus profondément dans la compréhension
des chatbots dotés de capacités de Traitement Automatique du Langage Naturel (NLP).
12
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Les chatbots ont parcouru un long chemin depuis leurs débuts. Initialement, ils étaient
principalement basés sur une programmation préétablie, limitant leur capacité à interagir de
manière naturelle. Cependant, avec les avancées dans le domaine de l’intelligence artificielle,
les chatbots ont évolué vers des systèmes plus sophistiqués, intégrant des modèles NLP et
des techniques d’apprentissage automatique. Ainsi, les chatbots sont passés de simples au-
tomates à des entités capables d’interagir de manière conversationnelle, adaptant leurs ré-
ponses en fonction des conversations en cours.
Les chatbots, ces agents conversationnels automatisés, sont l’une des applications les plus
populaires et pertinentes du NLP. Voici pourquoi :
— Compréhension : Un chatbot doit comprendre les requêtes des utilisateurs, qui sont
souvent exprimées en langage naturel et peuvent varier en structure et en formulation.
— Réponse : Une fois la requête comprise, le chatbot doit être capable de générer une ré-
ponse pertinente, ce qui nécessite souvent une certaine capacité de génération de lan-
gage.
En conclusion, les chatbots utilisant le NLP représentent une avancée significative dans
le domaine de l’interaction homme-machine. Ils offrent des possibilités nouvelles et passion-
nantes pour accompagner les enfants dans la création d’histoires numériques en favorisant la
créativité et la structuration de leurs idées. Dans ce rapport, nous détaillerons comment notre
projet au sein d’Estiféda a exploité ces avancées technologiques pour développer un chatbot
13
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
novateur visant à transformer la façon dont les enfants abordent l’écriture et l’expression de
leurs idées.
Cette brève rétrospective met en lumière le chemin parcouru par les chatbots utilisant
le NLP, passant de simples exécutants de commandes à des compagnons conversationnels
intelligents et polyvalents. Cependant, ce n’est que le début de notre voyage.
La section suivante explorera en détail la collecte et le prétraitement des données, des
étapes essentielles pour alimenter notre chatbot en devenir. Nous plongerons également dans
le monde du Transfer Learning en NLP, une étape cruciale pour le développement d’un chat-
bot interactif pour enfants.
Les sources de données choisies pour former un modèle NLP revêtent une importance
capitale. Dans le contexte de notre chatbot orienté vers les enfants, nous avons opté pour les
sources suivantes :
— Sessions de conversation en temps réel : Organiser des sessions en direct entre des ani-
mateurs et des enfants à travers une application de chat renforce la diversité et la spon-
tanéité du jeu de données. Cela introduit également des éléments de langage actuels et
des tendances de conversation qui pourraient échapper à des interactions scriptées ou
historiques.
14
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Le prétraitement des données est une étape cruciale pour garantir la qualité et la perti-
nence des informations avec lesquelles le modèle sera entraîné. Voici les étapes clés du pré-
traitement :
1. Collecte des Données : Rassemblez les conversations et dialogues entre l’assistant et
l’enfant pour créer un ensemble de données.
2. Restructuration des Dialogues : Reconfigurez chaque dialogue pour qu’il contienne
une entrée (contexte) et une réponse (la réponse de l’assistant). Cette étape permet de bien
délimiter les échanges.
3. Nettoyage des Données : Assurez-vous que le texte extrait est propre en supprimant les
caractères spéciaux, les espaces inutiles et les sauts de ligne.
4. Séparation des Dialogues : Séparez les dialogues en un dialogue entre l’enfant et l’as-
sistant. Indiquez le locuteur pour chaque ligne.
5. Prétraitement des Textes :
c. Tokenisation : Divisez le texte en tokens (mots, phrases) pour une analyse plus fine et
précise.
15
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
dèle.
Cette approche consiste à personnaliser des modèles préalablement entraînés sur d’énormes
volumes de données pour des missions ciblées en NLP. Elle a l’avantage de diminuer le temps
et les moyens indispensables pour élaborer un ChatBot performant.
2.3.2 Avantages
— Moins de données spécifiques requises : La base solide des modèles pré-entraînés ré-
duit le besoin de données propres au projet.
— Polyvalence : Des modèles comme BERT, GPT-2, et GPT-3 ont été ajustés pour de mul-
tiples applications en NLP, y compris les chatbots destinés aux enfants.
Notre ChatBot s’appuie sur un modèle général, affiné à l’aide de données enfantines, pour
stimuler la création d’histoires.
2.3.4 Défis
16
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
FIGURE 2.3 – Contraste entre Transfer Learning en NLP et l’Apprentissage Supervisé Tradition-
nel.
En conclusion, le Transfer Learning en NLP est fondamental pour élaborer un ChatBot inter-
actif dédié aux enfants. Il optimise le temps, accroît la performance, et allège la nécessité de
données sur mesure. Le choix entre Transfer Learning et apprentissage supervisé traditionnel
dépend des objectifs du projet et des préoccupations éthiques.
.
17
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
2.4 Transformers
Historiquement, des architectures telles que les LSTM et les GRU ont dominé le paysage
du NLP, traitant les séquences de manière linéaire. Ces méthodes rencontraient toutefois des
limitations en matière de parallélisation et de gestion des dépendances à longue distance.
Les Transformers ont surmonté ces obstacles grâce à un mécanisme d’attention multi-têtes
innovant.
Les RNN étaient auparavant la norme pour traiter les séquences, comme l’illustre la Fi-
gure 2.5.
18
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
leur nature récurrente empêchait une parallélisation efficace. Les LSTM ont tenté d’aborder
ces problèmes, comme le montre la Figure 2.6.
Bien que les LSTM aient offert une meilleure capacité de mémorisation sur de longues
distances, leur complexité a entraîné des durées d’entraînement prolongées. Les Transformers
ont apporté une réponse à ces limitations.
Dans cette visualisation, la clarté d’une case indique l’intensité de l’attention du modèle
pour le mot correspondant. Il est intéressant de noter que l’attention n’est pas nécessairement
séquentielle, reflétant la flexibilité du mécanisme.
19
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
L’architecture des Transformers, présentée à la Figure 2.8, est fondée sur le mécanisme
d’attention.
Une particularité essentielle des Transformers est leur aptitude à traiter simultanément
tous les mots d’une phrase. Dans l’encodeur, la sous-couche d’auto-attention réalise des com-
paraisons pair-à-pair entre mots, créant ainsi des relations contextuelles. Puis, dans la couche
feed-forward, chaque mot est traité isolément..
.
20
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Lors de l’alimentation du modèle, chaque mot est d’abord "incrusté" pour être représenté
par un vecteur, comme démontré à la Figure 2.9.
Embeddings
FIGURE 2.9 – Représentation des mots par des vecteurs.
Embeddings
+ + + + +
Positional Encoding
= = = = =
Input to Encoder
FIGURE 2.10 – Représentation des mots avec embeddings et positional encoding.
En fin de processus, la sortie du décodeur passe par une couche linéaire puis une couche
softmax. Le résultat est un vecteur dont la taille est équivalente au vocabulaire. Chaque élé-
ment de ce vecteur représente la probabilité que le mot associé soit le suivant dans la sé-
quence.
Entre les sous-couches d’auto-attention et les réseaux neuronaux feed-forward, des couches
de normalisation sont intercalées, comme illustré dans la Figure 2.11. Leur rôle est de stabili-
21
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Les flèches observées autour des sous-couches dans le schéma de l’architecture, illustrées
à la Figure 2.12, indiquent les connexions résiduelles. Elles permettent de transmettre direc-
tement certaines informations à la couche suivante, en contournant les sous-couches. Ces
connexions évitent la perte d’informations cruciales et favorisent le transfert d’informations
essentielles à travers le réseau. Ces informations contournées sont ensuite combinées et nor-
malisées avec la sortie de la sous-couche.
22
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
2.4.5.3 Conclusion
L’architecture des Transformers consolide des concepts bien établis, tels que les transfor-
mations linéaires, les couches softmax, les embeddings et les réseaux neuronaux feed-forward.
Néanmoins, l’introduction des encodages de position et de l’attention multi-têtes distingue
véritablement cette architecture, et c’est ces innovations qui sont à l’origine de la révolution
des Transformers dans le domaine du TAL..
L’architecture des Transformers intègre des notions bien établies en traitement automa-
tique des langues. Cependant, c’est l’introduction de deux idées novatrices qui distingue vé-
ritablement cette architecture : l’encodage de position et l’attention multi-têtes.
La Figure 2.13 présente une illustration de ces concepts clés. Approfondissons ces méca-
nismes.
23
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Contrairement aux RNNs, les Transformers ne traitent pas les séquences de manière sé-
quentielle. Ainsi, pour prendre en compte la position des mots dans une séquence, l’encodage
de position est introduit.
L’encodage de position est obtenu en ajoutant aux embeddings des mots des valeurs spé-
cifiques reflétant la position du mot. Ces valeurs sont générées via des fonctions trigonomé-
triques, à savoir le sinus et le cosinus, assurant une représentation distincte pour chaque po-
sition.
Les formules pour calculer l’encodage de position sont :
pos
PE(pos, 2i)= sin ( 2i )
10000 d_model
pos
PE(pos, 2i 1)= cos ( 2i )
10000 d_model
Où pos est la position du mot, i l’indice de la dimension dans l’encodage, et dmodel la di-
mension totale de l’embedding. Les dimensions paires (2i) emploient le sinus, tandis que les
dimensions impaires (2i 1) font appel au cosinus. Après leur calcul, ces encodages sont di-
rectement ajoutés aux embeddings, permettant au modèle de considérer la position des mots
lors du traitement.
— Dépendances variées : Les multiples têtes peuvent découvrir différentes formes de re-
lations, qu’elles soient syntaxiques, sémantiques ou autres.
— Relations à longue distance : Le modèle est capable de reconnaître les liaisons perti-
nentes entre des mots éloignés au sein d’une séquence.
24
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
FIGURE 2.14 – (À gauche) Attention par produit scalaire normalisé, (À droite) Attention multi-
tête combinant plusieurs couches d’auto-attention en parallèle.
1. Projection : Chaque mot est transformé en trois vecteurs distincts : requête, clé, et va-
leur. Des matrices de projection propres à chaque tête sont utilisées.
2. Scores d’attention : Calculés par produit scalaire entre les vecteurs requêtes et clés, ces
scores sont ensuite normalisés.
4. Aggrégation : Les vecteurs de valeur sont pondérés par les poids d’attention pour géné-
rer le vecteur de sortie.
QK T
Attention(Q, K,V ) = softmax ( √ )V
dk
avec :
25
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
En somme, l’attention multi-tête confère aux Transformers une puissance d’analyse sans
précédent, permettant de capter des dépendances complexes au sein des séquences. Cette
innovation a grandement renforcé la performance des modèles NLP.
En combinant ces deux concepts novateurs, les Transformers ont révolutionné le domaine
du traitement automatique du langage naturel, ouvrant la voie à des avancées majeures dans
des tâches telles que la traduction automatique, la génération de texte et bien d’autres. .
Les Transformers sont des architectures de réseaux neuronaux qui ont révolutionné le do-
maine du traitement automatique du langage naturel (NLP) en raison de leur capacité à cap-
turer les dépendances complexes entre les mots dans un texte. Cette capacité à modéliser ef-
ficacement les relations contextuelles entre les mots est d’une importance capitale pour notre
projet. Notre objectif est de développer un ChatBot capable d’engager des conversations na-
turelles avec des enfants et de les guider dans la création d’histoires captivantes.
OpenAI a introduit GPT-2 comme une avancée majeure dans le domaine du traitement du
langage naturel. Ce modèle, basé sur l’architecture des transformers, est pré-formé sur une
vaste quantité de texte, ce qui lui permet de générer des textes cohérents et contextuellement
pertinents.
26
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
— Adaptabilité : Grâce au fine-tuning, GPT-2 peut être adapté à des tâches spécifiques, ce
qui le rend parfait pour guider les enfants dans la création d’histoires.
Le fine-tuning de GPT-2 sur le dataset spécifique au projet suit les étapes suivantes :
1. Préparation des données : Les données sont nettoyées et formatées pour être compa-
tibles avec GPT-2.
Les hyperparamètres jouent un rôle crucial dans l’entraînement des modèles de deep lear-
ning. Pour GPT-2, les hyperparamètres clés incluent le taux d’apprentissage, la taille du batch,
le facteur de décroissance, etc.
Taux d’apprentissage : C’est le pas avec lequel le modèle s’ajuste en réponse à l’erreur qu’il a
fait pendant l’entraînement. Un taux trop élevé peut causer une convergence instable,
tandis qu’un taux trop bas peut rendre l’entraînement très lent.
Taille du batch : Elle détermine le nombre d’exemples d’entraînement utilisés dans une mise
à jour de l’entraînement. Une taille de batch plus grande peut accélérer l’entraînement,
mais elle nécessite également plus de mémoire.
27
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
Facteur de décroissance : Il est utilisé pour réduire le taux d’apprentissage au fil du temps,
ce qui peut aider à améliorer la performance du modèle à long terme.
2.6.1 Introduction
L’évaluation d’un modèle est aussi cruciale que sa conception et son entraînement. Pour
notre ChatBot, il est vital de mesurer la pertinence des réponses et la qualité du texte généré.
28
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
BLEU (Bilingual Evaluation Understudy) mesure la concordance des phrases générées par
rapport à des phrases de référence.
N
longueur du texte généré
BLEU= min (1, ) × ∏ Précision des n-grammes(1/N)
longueur du texte de référence n1
2.6.2.4 ROUGE
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) évalue la qualité des résumés.
ROUGE-N se réfère à la concordance des n-grammes entre le contenu généré et un contenu
de référence.
2.6.2.5 METEOR
METEOR (Metric for Evaluation of Translation with Explicit ORdering) prend en compte
la précision, le rappel, la synonymie, la morphologie, et la structure des phrases. Sa formule
est plus complexe, considérant plusieurs composants tels que la précision des unigrammes,
le rappel des unigrammes, et les synonymes.
2.6.2.6 Perplexité
La perplexité évalue comment les probabilités prédites pour le texte généré se comparent
à un ensemble de test.
1 N
Perplexité =2− N ∑i1 log2 p(xi )
Après avoir interagi avec le ChatBot, les enfants évaluent la conversation sur une échelle
de 1 à 10.
Évalue comment les questions posées par le ChatBot stimulent l’enfant et contribuent à
l’élaboration de l’histoire.
29
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ
2.6.4 Conclusion
Une évaluation complète du ChatBot et des modèles génératifs est vitale. En combinant
des métriques quantitatives et qualitatives, nous obtenons un panorama complet des perfor-
mances, permettant des ajustements pour améliorer le système.
30
CHAPITRE 3
DÉPLOIEMENT DU CHATBOT
31
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Introduction
Après avoir exploré les fondements des chatbots et les techniques avancées utilisées pour
créer un chatbot intelligent dans le chapitre précédent, nous aborderons dans ce chapitre un
aspect tout aussi crucial : le déploiement du chatbot. En effet, concevoir un chatbot est une
chose, mais s’assurer qu’il est accessible et utilisable en temps réel pour les utilisateurs en est
une autre.
Le déploiement est l’étape qui rend notre solution tangible et exploitable. Il s’agit de trans-
former notre prototype en une application pleinement fonctionnelle, disponible à tous et à
tout moment. Dans ce chapitre, nous examinerons les composantes essentielles de l’archi-
tecture backend, les choix technologiques retenus, ainsi que la conception de l’interface uti-
lisateur pour offrir une expérience utilisateur fluide et intuitive.
Nous décrivons ici les fonctionnalités essentielles que notre chatbot doit posséder pour
répondre efficacement aux attentes de son public cible. Ces fonctionnalités sont déterminées
suite à une étude préliminaire des défis et des attentes des utilisateurs. .
Les fonctionnalités clés de Kissa sont conçues pour créer un environnement interactif et
captivant, favorisant l’apprentissage et la créativité chez les enfants. Elles incluent :
1. Dialogues Interactifs et Adaptatifs : Kissa sera capable de mener des dialogues inter-
actifs en utilisant un langage simple et compréhensible pour les enfants. Le ChatBot
adaptera ses réponses en fonction de l’âge et des préférences de l’utilisateur, rendant
chaque interaction unique et personnalisée.
2. Assistance à la Narration : Kissa aidera les enfants à construire leurs histoires en po-
sant des questions ouvertes, en suggérant des idées de trame narrative et en offrant des
options pour développer des personnages et des scénarios. Cette fonctionnalité vise à
32
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
éveiller l’imagination des enfants et à les guider dans la création de récits cohérents et
captivants.
3. Suggestions Créatives : Le ChatBot proposera des activités créatives telles que des jeux
de rôle, des devinettes ou des énigmes, adaptées à l’âge et aux intérêts des enfants. Ces
activités stimuleront leur pensée créative et les encourageront à explorer de nouvelles
idées.
4. Outils de Structuration de Pensées : Kissa intégrera des outils pour aider les enfants
à organiser leurs idées. Par exemple, le ChatBot pourra proposer des structures de base
pour une histoire, aider à classer les idées par ordre d’importance ou à établir des liens
entre différents concepts.
En mettant en œuvre ces fonctionnalités, Kissa vise non seulement à offrir une expérience
amusante et engageante pour les enfants, mais également à soutenir leur développement cog-
nitif et créatif. Cette approche centrée sur l’utilisateur garantit que le ChatBot est plus qu’un
simple outil de divertissement ; il devient un compagnon interactif qui contribue à l’épanouis-
sement éducatif de l’enfant. Dans la section suivante, nous explorerons les besoins non fonc-
Les besoins non fonctionnels sont essentiels à la réussite de Kissa. Ils établissent les stan-
dards de qualité et de performance pour assurer une expérience utilisateur sécurisée, fiable
et accessible. Voici les principales exigences non fonctionnelles pour notre ChatBot :
Sécurité et Confidentialité :
— Protection des Données Personnelles : Kissa doit se conformer aux normes de confi-
dentialité et de protection des données, en particulier lors du traitement d’informations
sensibles telles que celles des enfants. Des mesures telles que le cryptage des données
et des politiques rigoureuses de gestion des données doivent être en place.
Performance et Disponibilité :
— Réactivité : Il est crucial que le ChatBot réponde rapidement aux requêtes pour garder
les enfants engagés.
33
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Haute Disponibilité : Pour assurer une expérience utilisateur constante, Kissa doit s’ap-
puyer sur une infrastructure fiable et résiliente afin de garantir une disponibilité conti-
nue.
— Interface Utilisateur Intuitive : L’interface doit être facile à utiliser et adaptée aux enfants,
avec des graphismes attrayants et une navigation simple.
Ces exigences non fonctionnelles sont fondamentales pour garantir que Kissa ne soit pas
seulement opérationnel, mais aussi sécurisé, fiable et facilement accessible à tous les enfants,
contribuant ainsi à une expérience utilisateur de haute qualité.
— Description : Utilisateurs primaires, âgés de 5 à 12 ans, utilisent Kissa pour stimuler créa-
tivité et apprentissage.
Parents ou Tuteurs :
— Besoins et Attentes : Exigent un environnement sécurisé pour leurs enfants et des outils
de contrôle parental.
34
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
En cernant les besoins spécifiques de ces acteurs, nous nous assurons que Kissa réponde
efficacement à leurs attentes, renforçant ainsi sa valeur ajoutée pour chaque utilisateur et par-
tie prenante.
Le diagramme de cas d’utilisation ci-dessous illustre les interactions principales entre les
utilisateurs et le système Kissa. Chaque cas d’utilisation décrit une fonctionnalité spécifique
que l’acteur peut exécuter en interaction avec le système, soulignant le caractère interactif de
ce dernier.
35
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Créer des Histoires : Commencer une nouvelle histoire dans un environnement lu-
dique et interactif.
— Solliciter des Suggestions : Demander des idées pour enrichir leur récit.
— Structurer le Récit : Obtenir de l’aide pour organiser de manière cohérente les éléments
de l’histoire.
— Dialoguer : Engager des conversations naturelles qui visent à stimuler leur créativité.
36
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Gérer le ChatBot : Ajuster les paramètres du ChatBot afin d’optimiser les interactions
utilisateur.
Classe Utilisateur
— Attributs : Identifiant unique (id), nom (nom), adresse e-mail (email), mot de passe
pour l’accès sécurisé (mot_de_passe), et rôle dans le système (role).
37
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Relation avec le ChatBot : Un utilisateur peut avoir plusieurs interactions avec le Chat-
Bot (relation “interagir” avec multiplicité “*”), ce qui dénote la capacité du ChatBot à
gérer les conversations avec de nombreux utilisateurs simultanément.
Classe Administrateur
Classe Histoire
— Attributs : Identifiant unique de l’histoire (id), titre (titre), contenu de l’histoire (contenu),
et identifiant de l’utilisateur qui a créé l’histoire (idUtilisateur).
— Relation avec Utilisateur : Un utilisateur peut créer et posséder plusieurs histoires (re-
lation “créer et posséder” avec multiplicité “*”).
Classe ChatBot
— Attributs : Identifiant unique (id), nom (nom), et identifiant de la session courante (idSession).
— Relations :
— Crée et gère les sessions (relation “crée” et “gère” avec multiplicité “*”), impliquant
que chaque session est une instance unique d’interaction avec l’utilisateur.
— Peut être lié à de nombreuses sessions différentes, reflétant sa capacité à gérer de
multiples fils de discussion en parallèle.
38
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Classe Session
Fonctionnement du Système
Le système fonctionne de manière interactive. Lorsqu’un utilisateur décide de créer une
nouvelle histoire, il lance une session avec le ChatBot. La discussion qui s’ensuit entre l’uti-
lisateur et le ChatBot permet de stimuler l’inspiration et d’organiser les idées de l’utilisateur
grâce à des questions et suggestions ciblées.
Rôle du ChatBot
Le ChatBot agit en tant qu’animateur et assistant virtuel, fournissant des pistes de réflexion
et de créativité pour aider l’utilisateur dans le processus de création littéraire. Il peut poser des
questions pour approfondir les éléments de l’histoire ou offrir des conseils structurés sur la
narration.
Espace de Rédaction
Pendant la session, l’utilisateur a accès à un espace où il peut écrire et structurer son his-
toire. Ce cadre intègre les interactions avec le ChatBot et l’écriture de l’histoire, créant un en-
vironnement synergique pour l’élaboration du récit.
Administration et Surveillance
Les administrateurs ont la possibilité de suivre les sessions et les interactions entre les uti-
lisateurs et le ChatBot, assurant ainsi le bon fonctionnement du système et la qualité de l’as-
sistance fournie.
Cette description fournit une vue d’ensemble de l’architecture et de la dynamique du sys-
tème de création littéraire interactif, soulignant la manière dont les différentes composantes
s’intègrent pour offrir une expérience utilisateur enrichissante et productive.
39
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Nous adhérons à des principes de conception axés sur l’ergonomie enfantine et les be-
soins psychopédagogiques, en choisissant des couleurs, des formes, et une typographie adap-
tées. L’objectif est de créer une interface auto-explicative, visuellement claire, cohérente et
accueillante.
Les interfaces d’inscription et de connexion sont conçues pour être directes et sécurisées,
offrant une entrée sans obstacle à l’écosystème Kissa, comme montré dans les Figures 3.3 et
3.4.
40
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
L’interface du ChatBot, illustrée dans la Figure 3.5, est élaborée pour offrir une interaction
naturelle et engageante, caractérisée par un design doux et des fonctionnalités conversation-
nelles intuitives.
41
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
3.3.3 Conclusion
La conception de l’UI de Kissa est le résultat d’un processus itératif visant à engager notre
jeune public dans un voyage d’apprentissage à la fois ludique et éducatif. L’interface du Chat-
Bot est un point central de cette expérience, offrant une interaction simplifiée et enrichissante.
La qualité de l’UI est donc déterminante dans la réussite de notre engagement éducatif.
3.4.1 Introduction
Django est un framework web open-source écrit en Python. Il vise à simplifier la création,
le développement et la maintenance d’applications web en fournissant une structure haute-
niveau pour une architecture model-view-template (MVT). Conçu pour faciliter les applica-
tions web complexes, Django gère tout, de l’authentification des utilisateurs aux opérations
de base de données, en passant par le routage des requêtes.
— Modèle (Model) : Représente la structure de la base de données, y compris les tables, les
relations, et les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer).
— Vue (View) : Contrôle la logique métier et détermine quelle donnée est présentée à l’uti-
lisateur. Dans d’autres frameworks, cela peut être confondu avec le contrôleur.
La figure 3.6 illustre l’architecture de Django, mettant en évidence les relations entre le Modèle,
la Vue et le Template.
42
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Django, un framework web Python, a été choisi pour sa robustesse, sa sécurité, et sa flexi-
bilité. Voici les avantages pertinents pour notre projet :
— Modularité : Sa nature MVT facilite une séparation claire des composantes, optimisant
la gestion des utilisateurs, histoires, sessions et interactions chatbot.
— ORM intégré : Il facilite la liaison avec la base de données, rendant les relations entre
entités intuitives sans requêtes SQL manuelles.
— Support d’API : Grâce à DRF (Django Rest Framework), le déploiement d’API REST est
simplifié, assurant une liaison fluide avec le frontend et le modèle fine-tuned.
— Scalabilité : L’ajout de fonctionnalités est réalisé sans perturbation des modules exis-
tants.
— Message : Capture les interactions chat avec un flag est_de_bot pour déterminer l’ori-
gine.
La synergie entre Django et le modèle fine-tuned est orchestrée par la bibliothèque Trans-
formers de Hugging Face. À la réception d’un message via l’API, une routine dédiée est sollici-
tée pour générer une réponse adéquate en suivant ces étapes :
43
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Cette stratégie assure une symbiose entre le modèle fine-tuned et le backend, garantissant
une réactivité optimale. L’adoption d’API offre également une flexibilité pour d’éventuelles
évolutions futures.
L’élection d’Angular n’est pas arbitraire ; elle repose sur sa capacité à créer des applications
web dynamiques et réactives. Angular offre une plateforme unifiée pour le développement
efficace d’interfaces utilisateurs qui sont non seulement intuitives mais également optimisées
pour une performance supérieure. L’architecture modulaire d’Angular permet une scalabilité
aisée, ce qui est crucial pour adapter notre ChatBot aux besoins croissants des utilisateurs.
Angular utilise une architecture basée sur des composants, offrant une séparation claire
entre la logique de présentation et la logique métier. Chaque composant est une unité indé-
pendante avec ses propres vues, comportements et styles, rendant l’application globale plus
facile à maintenir et à évoluer. La liaison bidirectionnelle des données assure que le modèle et
la vue sont toujours synchronisés, offrant ainsi une expérience utilisateur cohérente. La Figure
3.7 illustre l’architecture typique d’Angular.
44
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Modules
Angular est construit autour du concept de modularité. Chaque application Angular est
composée de modules, qui sont des conteneurs qui encapsulent les fonctionnalités de
votre application de manière organisée et efficace. Le module racine, souvent appelé
AppModule, initialise l’application et combine tous les autres modules et composants.
— Composants
Chaque module est composé de composants. Un composant gère une partie de la vue de
l’application. Il contient une classe, qui gère la logique et les données, et un template, qui
détermine la structure et le style de la vue. Chaque composant est une unité autonome
qui peut interagir avec d’autres composants.
— Routing
Le système de routage d’Angular permet de naviguer entre différentes vues et compo-
sants. Il gère la navigation dans l’application, y compris l’historique du navigateur, les
URL et le chargement paresseux des modules.
— Templates
Les templates définissent la structure HTML et la manière dont les données sont affi-
chées. Ils peuvent inclure des liaisons de données, des directives et des expressions pour
45
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
— Directives
Les directives sont des instructions qui modifient le comportement ou l’apparence des
éléments du DOM. Il existe des directives intégrées, et vous pouvez également créer des
directives personnalisées selon les besoins de votre application.
— Data Binding
L’un des avantages d’Angular est sa capacité à réaliser la liaison bidirectionnelle des don-
nées. Cela signifie que toute modification des données dans le modèle se reflète auto-
matiquement dans la vue, et vice versa. Cela réduit la nécessité de code supplémentaire
pour synchroniser le modèle et la vue.
— Pipes
Les pipes sont utilisés pour transformer les données avant qu’elles ne soient affichées.
Angular propose des pipes intégrés pour des tâches courantes telles que la mise en forme
des dates, des devises, ou des textes, et permet également de créer des pipes personna-
lisés.
— Formulaires
Angular offre deux approches pour gérer les formulaires : les formulaires réactifs et les
formulaires basés sur des templates. Ces deux approches facilitent la validation, le suivi
des modifications, et la soumission des formulaires.
3.5.4 Résumé
En somme, l’architecture d’Angular est conçue pour offrir une plateforme solide, structu-
rée, et modulaire pour créer des applications web interactives et performantes. Chaque élé-
ment, de la modularité à la liaison des données, vise à améliorer l’efficacité, la productivité
et la maintenabilité, garantissant que les développeurs peuvent créer, tester, et déployer des
applications de manière rapide et efficace.
46
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Nous discuterons ici des stratégies et des outils utilisés pour déployer et mettre à l’échelle
notre chatbot, soulignant l’efficacité de Docker et Jenkins dans l’automatisation et l’optimisa-
tion de ces processus.
Le frontend Angular a suivi un processus similaire. Nous avons utilisé une image nginx
légère pour déployer l’application frontend. Le conteneur encapsule l’ensemble du frontend,
garantissant ainsi un déploiement rapide et uniforme. comme le montre la Figure 3.9.
47
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Les pipelines Jenkins ont été configurés pour automatiser la construction des images Do-
cker et leur déploiement dans l’environnement de production. Ce processus automatisé as-
sure que l’application est constamment mise à jour et testée, garantissant la livraison continue
de fonctionnalités et de correctifs de qualité.
Nous expliquons dans cette partie le concept de l’intégration continue, ainsi que l’outil
technique que nous avons opté pour notre solution.
3.6.4.1 Concept
L’intégration continue (CI) est une pratique de développement où les développeurs pro-
cèdent à une intégration périodique du code dans un répertoire partagé. Chaque intégration
peut ensuite être vérifiée par une construction automatisée et des tests automatisés. Bien que
les tests automatisés ne fassent pas absolument partie de l’intégration continue, ils sont gé-
néralement implicites.
L’un des principaux avantages d’une intégration régulière est que vous pouvez détecter
rapidement les erreurs et les localiser plus facilement. Comme chaque changement introduit
48
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
est généralement de faible ampleur, il est possible de repérer rapidement le changement spé-
cifique qui a introduit un défaut.
Ces dernières années, l’intégration continue est devenue une bonne pratique pour le déve-
loppement de logiciels et est gérée par un ensemble de principes clés. Parmi ceux-ci figurent
le contrôle des révisions, l’automatisation de la construction et les tests automatisés [3].
3.6.4.2 Gitlab-ci
GitLab CI/CD est un outil intégré à GitLab pour le développement de logiciels à travers les
méthodologies continues : Intégration continue (CI), Livraison continue (CD), Déploiement
continu (CD).
L’intégration continue fonctionne en poussant de petits morceaux de code vers la base de
code de votre application hébergée dans un dépôt Git, et à chaque push, exécute un pipeline
de scripts pour construire, tester et valider les changements de code avant de les fusionner
dans la branche principale.
La livraison et le déploiement continus consistent en une étape supplémentaire de CI, en
déployant votre application en production à chaque poussée vers la branche par défaut du
dépôt.
Ces méthodologies vous permettent de détecter les bugs et les erreurs au début du cycle
de développement, en garantissant que tout le code déployé en production est conforme aux
normes de code que vous avez établies pour votre application.
GitLab peut également détecter, construire, tester, déployer et surveiller automatiquement
vos applications en utilisant Auto DevOps. comme démontré dans la Figure 3.10.
49
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Pour visualiser ces processus, nous pouvons utiliser des diagrammes de flux de travail qui
illustrent chaque étape du déploiement et de la mise à l’échelle. Ces diagrammes devraient
mettre en évidence comment le code est push, testé, conteneurisé et déployé de manière au-
tomatisée.
Le portatif que nous avons utilisé pour réaliser ce projet présente les caractéristiques sui-
vantes :
Après avoir cité les caractéristiques du matériel, nous passons maintenant à l’environne-
ment logiciel.
• Visual Studio Code ( VSCode ) : Éditeur de code source autonome qui s’exécute sur
Windows, macOS et Linux. Il convient aux développeurs avec des extensions pour prendre
en charge à peu près n’importe quel langage de programmation. La figure 3.11 montre
le logo de VsCode.
50
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
• Insomnia : est une application de bureau open source qui facilite l’interaction avec la
conception, le débogage et le test des API. Insomnia associe une interface conviviale à
des fonctionnalités avancées telles que des aides à l’authentification, la génération de
code et des variables d’environnement.
51
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
• Django : Django est un framework web open source écrit en Python. Il est reconnu pour
sa simplicité, sa robustesse et sa capacité à accélérer le développement d’applications
web. La figure montre le logo de Django.
• Angular : Angular est une plateforme de développement d’applications web open source
développée par Google. Il est largement utilisé pour créer des applications web dyna-
miques et interactives. La figure montre le logo d’Angular.
• Hugging Face : Hugging Face Transformers est une bibliothèque open source qui fournit
des implémentations pré-entraînées de modèles d’apprentissage automatique, y com-
pris des modèles pour le traitement du langage naturel. Il est reconnu pour sa facilité
d’utilisation et sa compatibilité avec PyTorch et TensorFlow. La figure 3.16 montre le
logo de Hugging Face.
52
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
53
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
• Docker : Est une plateforme open source qui permet d’automatiser le déploiement d’ap-
plications dans des conteneurs logiciels. L’avantage de Docker est qu’il permet d’iso-
ler les applications dans des conteneurs, ce qui facilite leur déploiement, leur mise à
l’échelle et leur gestion. La figure 3.22 montre le logo de Docker.
• Jenkins : Est un serveur d’automatisation open source qui facilite l’intégration continue
et la livraison continue (CI/CD) pour les équipes de développement. Il offre une inter-
face simple pour automatiser toutes sortes de tâches liées à la construction, au test et à
la livraison de logiciels. La figure 3.23 montre le logo de Jenkins.
54
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
• Git : Est un système de contrôle de version distribué gratuit et open source conçu pour
tout gérer, des petits aux très grands projets, avec rapidité et efficacité. La figure 3.24
montre le logo de Git.
• Gitlab : Est un répértoire GIT web-based. Il permet de planifier des projets et de gérer
le code source, l’approche DevOps CI/CD, et la sécurité . En plus, il permet aux équipes
de collaborer et de développer de meilleurs logiciels. La figure 3.25 montre le logo de
GitLab.
• Draw.io : Est une application web de création de diagrammes et de schémas, offrant des
fonctionnalités pour concevoir des organigrammes, des diagrammes de flux, des cartes
mentales et bien d’autres. La Figure 3.26 montre le logo de Draw.io.
55
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
Le tandem Docker-Jenkins a rendu notre déploiement agile, efficace et fiable. Leur intégra-
tion a assuré un processus automatisé qui réduit les erreurs humaines, améliore la rapidité de
déploiement et assure la cohérence opérationnelle à travers divers environnements.
Dans la section suivante, nous discuterons des stratégies de mise à l’échelle et comment
nous avons optimisé notre application pour gérer un trafic utilisateur élevé tout en mainte-
nant des performances optimales.
56
CONCLUSION GÉNÉRALE ET
PERSPECTIVES
57
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT
pourrait amener le ChatBot à des niveaux encore plus élevés en termes de pertinence et de
stimulation pour les jeunes utilisateurs.
Pour l’entreprise Estiféda, ce projet sert également de tremplin pour explorer d’autres do-
maines d’application de l’IA dans l’éducation et le développement personnel. C’est une preuve
de la puissance de la technologie lorsqu’elle est utilisée de manière réfléchie pour renforcer la
créativité et l’apprentissage.
58
RÉFÉRENCES
[1] Crisp-dm - cross industry standard process for data mining. https://www.ibm.com/
docs/fr/spss-modeler/saas?topic=dm-crisp-help-overview, Year. Accessed : 10-
avril-2023.
59
RÉFÉRENCES
[11] Unlock the secrets of data collection for your own fine-tuned chatgpt. https://
generativeai.pub/unlock-the-secrets-of-data-collection-for-your-own-finetuned-cha
Consulté le [8-mai-2023].
60