Vous êtes sur la page 1sur 76

REPUBLIQUE TUNISIENNE
Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique

ÉCOLE SUPERIEURE PRIVÉE


DE TECHNOLOGIES & INGENIERIE

Cycle de Formation des Ingénieurs en Informatique

Rapport de Projet de Fin d’Études


Conception et Développement d'un
Chatbot Intelligent avec l'Utilisation du
NLP et des Transformers

Elaboré Par
Alaa Arboun

Encadré Par
Mme.Mariem Jedda
Mme.Sonia Gharsalli

Société

Année Universitaire : 2022/2023


Encadrant professionnel, Mme. Mariem jedda

Signature et cachet

Encadrant académique, Mme. Sonia gharsalli

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.

À mes amis et ma famille, gardiens bienveillants en dépit de la noirceur du monde,


témoins de sincérité face aux épreuves de la vie. Vous que nous avons aimés avec une profonde
authenticité, et qui demeurez fidèles à nos liens indéfectibles.

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.

En particulier, nous tenons à remercier chaleureusement Madame Mariem Jedda ,


notre encadrante professionnelle, pour sa disponibilité, ses encouragements et sa patience tout
au long de notre stage. Sa précieuse expertise et ses conseils avisés ont grandement contribué à
l’aboutissement 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.

Nos remerciements vont également à toute l’équipe d’Estiféda, notamment à Monsieur


Yousri Essoukri et Madame Faten Marweni , pour leur accueil chaleureux et leurs en-
couragements tout au long de notre collaboration.

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 .

Nous espérons que ce projet sera à la hauteur de vos attentes.

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

Liste des Figures xiii


Liste des tableaux xv
Liste des acronymes xv

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

1.1 Logo de Estiféda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


1.2 La méthodologie CRISP-DM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

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

3.1 Diagramme de cas d’utilisation général . . . . . . . . . . . . . . . . . . . . . . 36


3.2 Diagramme de classes du chatbot Kissa. . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Maquette de l’interface d’inscription de Kissa . . . . . . . . . . . . . . . . . . . 40

xiii
LISTE DES FIGURES

3.4 Maquette de l’interface de connexion de Kissa . . . . . . . . . . . . . . . . . . 41


3.5 Interaction utilisateur avec l’interface de Booky AI . . . . . . . . . . . . . . . . 41
3.6 Architecture de Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.7 Architecture Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.8 Docker-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.9 Dockerfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.10 Intégration continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.11 Logo VsCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.12 Logo Google Colab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.13 Logo Insomnia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.14 Logo Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.15 Logo Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.16 Logo huggingface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.17 Logo pyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.18 Logo TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.19 Logo Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.20 Logo JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.21 Logo PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.22 Logo Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.23 Logo Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.24 Logo Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.25 Logo GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.26 Logo Draw.io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

xiv
LISTE DES TABLEAUX

3.1 Caractéristiques du Système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

xv
INTRODUCTION GÉNÉRALE

Avec l’évolution rapide du numérique, l’incorporation de la technologie dans le processus


éducatif est devenue un élément essentiel pour favoriser et enrichir l’expérience d’apprentis-
sage. Un des aspects fondamentaux de l’éducation est l’encouragement de la créativité chez
les jeunes esprits. Toutefois, la tâche de narration, malgré son potentiel éducatif et créatif, peut
souvent sembler décourageante pour les enfants, surtout en l’absence d’une direction claire
ou d’inspiration.

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

CONTEXTE GÉNÉRAL DU PROJET

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 Présentation de l’Organisme d’Accueil : Estifeda

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.

1.1.2 À Propos d’Estifeda

Estifeda est une entreprise dédiée au développement de solutions pédagogiques interac-


tives pour l’enseignement numérique. L’organisme conçoit un éventail de solutions destinées
à toutes les parties prenantes de l’éducation, y compris les directeurs d’établissement, les
équipes pédagogiques, les enseignants, les parents et les élèves.

La figure 1.1 représente le logo de l’établissement d’accueil.

FIGURE 1.1 – Logo de Estiféda

4
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

1.1.3 Vision

La vision d’Estifeda est de favoriser le développement d’outils numériques en harmonie


avec les méthodologies d’apprentissage actives. L’entreprise aspire à devenir une référence
dans le domaine de l’éducation numérique grâce à son innovation et son impact social.

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.

1.1.6 Services d’Estifeda

En adoptant les solutions numériques d’Estifeda, vous bénéficiez de services spécifiques


tout au long de votre projet numérique, notamment :

— Formation : Estifeda garantit des formations techniques pour les partenaires, ainsi que
des formations aux techniques d’animation.

— Personnalisation : Possibilité de personnaliser les plates-formes en adoptant votre charte


graphique, votre contenu personnalisé ou un serveur spécifique tout en garantissant la
protection et la confidentialité de vos données.

— Support : L’équipe d’Estifeda se tient à disposition pour toute assistance technique et


accompagnement nécessaire, assurant un suivi tout au long de votre engagement pour
garantir le bon déroulement de votre expérience.

1.1.7 Solutions Proposées

Estifeda propose un ensemble de solutions pour l’éducation numérique.

5
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

Une plateforme de digita- Une plateforme d’animation


lisation de l’administration pédagogique et de création
des établissements scolaires. d’exercices, d’évaluation et
TopSkool offre des fonctionna- de suivi des élèves. MonProf
lités avancées pour simplifier permet aux enseignants de
la gestion des établissements créer du contenu pédagogique
scolaires, des élèves et du interactif.
personnel.

Une plateforme d’animation


Kissa est une plateforme
pédagogique dédiée aux
destinée aux établissements
écoles, collèges et lycées.
scolaires pour créer leurs
IntelliGo offre des outils pour
propres bibliothèques numé-
l’enseignement et la gestion
riques. Elle favorise l’accès
de classe.
à une variété de ressources
éducatives.

KlubKissa est un club en ligne destiné aux en-


fants de 9 à 14 ans pour la lecture et la création
d’histoires numériques. Les jeunes apprenants
peuvent explorer leur créativité.

1.1.8 Estifeda et l’IA

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.

1.2 Présentation du projet


Cette partie est composée de trois sous-sections. Dans la première sous-section, nous ex-
pliquons le contexte et l’objectif du projet. Ensuite, nous détaillons notre problématique. Dans
la dernière sous-section, nous présentons notre solution proposée.

1.2.1 Contexte générale

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.

1.2.2 Motivation et Problématique

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.

1.2.3 Solution proposée

Pour résoudre cette problématique, le projet propose de développer un ChatBot capable


de guider un enfant tout au long du processus de création d’une histoire numérique. Le Chat-
Bot doit être en mesure d’engager des conversations naturelles en français et de poser des
questions stimulantes pour encourager la créativité de l’enfant. De plus, il doit fournir des
éléments narratifs pour aider à organiser le récit de manière efficace. Le ChatBot doit être

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.

1.3 Méthodologie du travail


La méthodologie de travail pour un projet Machine Learning est un sujet très vaste car
plusieurs méthodologies existent. Néanmoins, pour notre projet, nous utiliserons la métho-
dologie Cross Industry Standard Process for Data Mining (CRISP-DM)[1] où les étapes sont
résumées dans la Figure 1.2 qui est la plus utilisée dans le cadre des projets de Machine Lear-
ning. CRISP-DM a été proposée par IBM. Elle se décline en six étapes à savoir :

FIGURE 1.2 – La méthodologie CRISP-DM.

1.3.1 Compréhension du problème métier

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

1.3.2 Compréhension des données

Nous collectons et examinons les conversations, dialogues, et les interactions préalables


entre l’assistant et les enfants. Nous analysons les données existantes pour comprendre com-
ment les enfants s’expriment, les thèmes fréquents, et les réponses de l’assistant. Nous identi-
fions les caractéristiques spécifiques des données qui seront importantes pour l’entraînement
de notre modèle.

1.3.3 Préparation des Données

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

Nous sélectionnons et configurons un modèle de langage pré-entraîné, tel que GPT-2,


adapté à la génération de textes. Nous finetunons le modèle avec l’ensemble de données pré-
paré, en utilisant des techniques d’apprentissage automatique pour que notre ChatBot puisse
suggérer des éléments narratifs. Nous établissons un pipeline de traitement pour l’interaction
avec le modèle, y compris l’extraction de réponses pertinentes.

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

CHATBOT INTELLIGENT PROPOSÉ

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).

2.1 Les Fondements des Chatbots avec NLP

2.1.1 Les Chatbots


Les chatbots, ou robots conversationnels, sont des pro-
grammes informatiques conçus pour interagir avec
les utilisateurs de manière conversationnelle. Dans le
contexte de notre projet au sein de l’entreprise Estiféda,
les chatbots sont des assistants virtuels spécialement
conçus pour guider les enfants tout au long du proces-
sus de création d’histoires numériques. Leur utilité ré-
side dans leur capacité à engager des conversations na-
FIGURE 2.1 – chatbot
turelles, poser des questions pertinentes, et offrir des
suggestions pour stimuler la créativité des enfants.

2.1.2 Traitement du Langage Naturel (NLP)

• Un sous-domaine de l’Intelligence Artificielle (IA).

• Permet aux ordinateurs de comprendre le langage


humain.

• Aide à extraire des informations à partir de don-


nées non structurées.

• Intègre des techniques statistiques, des modèles


d’apprentissage machine et des modèles d’ap-
prentissage profond
FIGURE 2.2 – nlp

12
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

2.1.3 Évolution des Chatbots avec NLP

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.

2.1.4 Applications du NLP dans les Chatbots

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.

— Flux conversationnel : Contrairement à une simple requête-réponse, un chatbot doit


maintenir le contexte d’une conversation, gérant ainsi des échanges prolongés avec l’uti-
lisateur.

— Personnalisation : Les techniques avancées de NLP permettent aux chatbots de s’adap-


ter aux préférences et besoins spécifiques des utilisateurs, offrant une expérience utili-
sateur plus riche.

— Intégrations multimodales : Les chatbots modernes peuvent également interagir à tra-


vers différents médias, tels que le texte, la voix ou même les images, nécessitant une
connaissance approfondie du NLP et d’autres domaines connexes.

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.

2.2 Collecte et Prétraitement des Données


La richesse d’un modèle NLP repose principalement sur la qualité et la quantité des don-
nées à sa disposition. Un modèle, aussi sophistiqué soit-il, ne saurait exceller sans un jeu de
données robuste et bien préparé.

2.2.1 Sources des Données

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 :

— Conversations entre assistants et enfants : Ces interactions fournissent une fenêtre


inestimable sur la manière dont les enfants s’expriment, leurs préoccupations, leurs in-
terrogations, et la façon dont les assistants y répondent. Ce type de données est essentiel
pour former un chatbot à comprendre et à interagir de manière naturelle avec un jeune
public.

— 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É

2.2.2 Prétraitement de Texte (Text Preprocessing)

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 :

a. Conversion en Minuscules : Convertissez le texte en minuscules pour assurer une cohé-


rence.

b. Suppression des Ponctuations : Supprimez ou remplacez les signes de ponctuation, ou


traitez-les comme des mots individuels pour garantir la propreté des données.

c. Tokenisation : Divisez le texte en tokens (mots, phrases) pour une analyse plus fine et
précise.

2.2.3 Représentation de Texte (Text Representation)

6. Création de l’Ensemble d’Entraînement : Utilisez le texte de l’enfant comme entrée


et le texte de l’assistant comme sortie à prédire. Créez un ensemble d’entraînement où les
sorties sont les mêmes que les entrées, mais décalées d’un token. Cela permettra au modèle
de prédire la réponse de l’assistant en fonction du contexte de la conversation.
7. Vectorisation du Texte : Passez vos textes prétraités par une couche de vectorisation de
texte pour les convertir en vecteurs numériques. Cette étape implique également le principe
du "word embedding," qui consiste à représenter chaque mot du texte par un vecteur numé-
rique, permettant ainsi au modèle de comprendre la signification sémantique des mots.
8. Préparation de l’Ensemble d’Entraînement : Divisez l’ensemble de données en un en-
semble d’entraînement et un ensemble de validation pour évaluer les performances du mo-

15
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

dèle.

2.3 Transfer Learning en NLP pour le Développement de Chat-


Bots
L’ambition de ce projet est de concevoir un ChatBot qui guide les enfants dans la rédaction
d’histoires captivantes. Pour cela, nous envisageons d’exploiter la technique de finetuning sur
des modèles NLP tels que GPT-2. Cette méthode s’appuie sur le potentiel du Transfer Learning
en NLP adapté à notre contexte spécifique.

2.3.1 Transfer Learning en NLP

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

— Économie de temps et de moyens : Le recours à des modèles déjà formés permet de


gagner en efficacité.

— 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.

2.3.3 Application spécifique aux chatbots pour 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

— Garantir une adaptation pertinente à l’audience jeune.

— Prévenir et rectifier les éventuels biais.

16
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

2.3.5 Comparaison avec l’apprentissage supervisé traditionnel

Contrairement au Transfer Learning, l’apprentissage supervisé traditionnel repart de zéro


pour chaque nouvelle tâche, offrant un contrôle total mais nécessitant davantage de ressources.
La Figure 2.3 illustre ce contraste, montrant comment le Transfer Learning peut offrir des
avantages en termes d’efficacité et de ressources par rapport à l’approche traditionnelle.

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

2.4.1 Contexte et Importance des Transformers

La linguistique computationnelle a connu un tournant majeur avec l’avènement des Trans-


formers. En 2017, Vaswani et son équipe ont introduit cette architecture dans leur travail pion-
nier, "Attention Is All You Need" [2]. Ce papier a signalé le début d’une ère nouvelle dans le
domaine du Traitement Automatique du Langage Naturel (NLP), transformant profondément
notre manière de concevoir les modèles NLP.

FIGURE 2.4 – Illustration issue du papier original sur les 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.

2.4.2 Les Limitations des RNNs et l’Émergence des Transformers

Les RNN étaient auparavant la norme pour traiter les séquences, comme l’illustre la Fi-
gure 2.5.

FIGURE 2.5 – Illustration d’un RNN.

Néanmoins, ils souffraient d’inconvénients majeurs. En traitant de longues phrases, ils


tendaient à perdre des informations provenant des premiers éléments de la séquence. De plus,

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.

FIGURE 2.6 – Illustration d’un LSTM.

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.

2.4.3 La Révolution des Transformers

Contrairement aux architectures précédentes, les Transformers reposent uniquement sur


des mécanismes d’attention, sans aucune récurrence, d’où leur dénomination. Ils offrent des
vitesses d’entraînement supérieures grâce à leur potentiel de parallélisation.
Mais qu’entend-on exactement par "attention" ? Fondamentalement, l’attention permet
au modèle de mettre en évidence les éléments clés d’une entrée, qu’il s’agisse d’une phrase
ou d’une autre forme de données. La Figure 2.7 donne une visualisation de ce mécanisme.

FIGURE 2.7 – Illustration du mécanisme d’attention.

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É

2.4.4 Architecture Générale des Transformers

L’architecture des Transformers, présentée à la Figure 2.8, est fondée sur le mécanisme
d’attention.

FIGURE 2.8 – Architecture générale des Transformers

Le Transformer se compose de deux éléments fondamentaux :

— L’Encodeur : Il possède une sous-couche d’auto-attention responsable de l’analyse des


dépendances intra-phrases, et une couche de feed-forward pour le traitement neuronal.

— Le Décodeur : Il contient deux sous-couches d’auto-attention, suivies d’une couche


feed-forward, pour la prédiction des séquences.

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.

Input je veux crée une histoire

Embeddings
FIGURE 2.9 – Représentation des mots par des vecteurs.

En raison de la non-récurrence des Transformers, il est crucial d’ajouter des encodages


positionnels aux vecteurs incrustés. Ceci permet au modèle de reconnaître l’ordre des mots
dans la séquence, comme le démontre la Figure 2.10.

Input je veux crée une histoire

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.

2.4.5 Améliorations Apportées aux Transformers

L’architecture des Transformers présente deux caractéristiques distinctives qui améliorent


significativement ses performances : les couches de normalisation et les résidus (ou dévia-
tions).

2.4.5.1 Couches de Normalisation

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É

ser et d’accélérer la convergence du modèle. Les Transformers utilisent la "normalisation de


couche", qui est une variante de la normalisation par lots plus traditionnelle.

FIGURE 2.11 – Comparaison entre la normalisation de couche et la normalisation par lots

2.4.5.2 Connexions Résiduelles (Déviation)

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.

FIGURE 2.12 – Illustration des connexions résiduelles dans l’architecture Transformer

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..

2.4.6 Concepts Clés des Transformers

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.

FIGURE 2.13 – Encodage de position et 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É

2.4.6.1 Encodages de Position

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.

2.4.6.2 L’Attention Multi-Tête

L’attention multi-tête est une innovation centrale du modèle Transformer. Contrairement


à une attention traditionnelle qui génère un seul ensemble de poids, cette technique cal-
cule simultanément plusieurs ensembles, chacun étant qualifié de « tête ». L’avantage est que
chaque tête peut identifier différents aspects d’une séquence d’entrée, offrant ainsi une vision
plus complète des relations entre les mots.
Les avantages de cette approche pour le traitement automatique du langage (NLP) sont
nombreux :

— 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.

— Représentations approfondies : L’utilisation de multiples têtes conduit à des embed-


dings de mots plus sophistiqués.

24
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

— Robustesse et généralisation : Le modèle, en embrassant plusieurs perspectives, est


plus résilient et adaptable.

2.4.6.3 Processus de l’Attention Multi-Tête avec Scaled Dot-Product Attention

Le fonctionnement de l’attention multi-tête repose sur une variante de l’attention appelée


« Scaled Dot-Product Attention ».

FIGURE 2.14 – (À gauche) Attention par produit scalaire normalisé, (À droite) Attention multi-
tête combinant plusieurs couches d’auto-attention en parallèle.

Comme illustré à la Figure 2.14, le processus opère en plusieurs étapes :

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.

3. Fonction Softmax : Les scores sont convertis en poids d’attention.

4. Aggrégation : Les vecteurs de valeur sont pondérés par les poids d’attention pour géné-
rer le vecteur de sortie.

Mathématiquement, pour une tête :

QK T
Attention(Q, K,V ) = softmax ( √ )V
dk
avec :

— Q, K, et V représentant respectivement les matrices des requêtes, clés, et valeurs.

25
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

— dk la dimension des clés.

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. .

2.4.6.4 Importance des Transformers dans la Génération de Texte

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.

Les Transformers permettent au modèle de comprendre le contexte global de la conversa-


tion avec l’enfant. Ils analysent les réponses de l’enfant et génèrent ensuite des questions et des
éléments narratifs pertinents pour faciliter le processus de création de l’histoire. La flexibilité
offerte par les Transformers est cruciale pour adapter le modèle à une grande variété de sujets
et d’interactions, créant ainsi une expérience de conversation stimulante et personnalisée.

2.5 Modélisation et Fine-Tuning du Modèle


Après avoir exploré en profondeur le prétraitement des données et l’architecture du mo-
dèle Transformers, ce chapitre se concentre sur la modélisation spécifique utilisée pour ce
projet.

2.5.1 Choix du Modèle GPT-2 et sa Pertinence pour ce Projet

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É

Pour ce projet, GPT-2 est particulièrement pertinent pour plusieurs raisons :

— Génération de texte : Le modèle est capable de générer du texte de manière fluide et


naturelle, ce qui est idéal pour la création d’histoires.

— 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.

— Contextualisation : GPT-2 prend en compte le contexte lors de la génération de texte,


ce qui est crucial pour maintenir la cohérence dans une histoire.

2.5.2 Étapes du Fine-Tuning sur le Dataset Collecté

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.

2. Division des données : Le dataset est divisé en ensembles d’entraînement, de validation


et de test.

3. Chargement du modèle pré-formé : Le modèle GPT-2 pré-formé est chargé.

4. Entraînement : Le modèle est entraîné sur l’ensemble d’entraînement avec régularisa-


tion pour éviter le surapprentissage.

5. Évaluation : Après l’entraînement, le modèle est évalué sur l’ensemble de validation


pour s’assurer qu’il fonctionne comme prévu.

6. Ajustements : En fonction des résultats de l’évaluation, des ajustements sont apportés,


et le modèle est ré-entraîné si nécessaire.

2.5.3 Hyperparamètres et Techniques d’Optimisation

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.

D’autres techniques d’optimisation comprennent l’utilisation de la normalisation des lots,


la régularisation L2 et la méthode d’optimisation comme Adam.
L’ajustement de ces hyperparamètres est généralement effectué en utilisant une recherche
par grille ou une recherche aléatoire pour trouver la combinaison qui donne les meilleurs ré-
sultats sur l’ensemble de validation.
En résumé, les Transformers, notamment GPT-2, jouent un rôle fondamental dans notre
projet de développement d’un ChatBot destiné à guider les enfants dans la création d’his-
toires. Le processus de fine-tuning de GPT-2 sur un ensemble de données spécifiquement
collecté pour cette tâche est essentiel pour personnaliser le modèle. De plus, l’ajustement mi-
nutieux des hyperparamètres et l’utilisation de techniques d’apprentissage sont cruciaux pour
garantir des résultats optimaux dans la génération de texte.

2.6 Mesures d’Évaluation de Notre Modèle

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é.

2.6.2 Métriques Quantitatives

2.6.2.1 Taux de Réponse Correcte (TRC)

Cette métrique évalue le pourcentage de réponses appropriées du ChatBot par rapport à


une série de questions test.

Nombre de réponses correctes


T RC= × 100%
Nombre total de questions test

2.6.2.2 Temps de Réponse

Il mesure le délai entre la pose d’une question et la réception de la réponse du ChatBot.


Un temps de réponse rapide est idéal pour une interaction fluide.

28
CHAPITRE 2. CHATBOT INTELLIGENT PROPOSÉ

2.6.2.3 Bleu Score (BLEU)

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.

Nombre de tokens uniques


Diversité =
Nombre total de tokens

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 )

2.6.3 Métriques Qualitatives

2.6.3.1 Satisfaction Utilisateur

Après avoir interagi avec le ChatBot, les enfants évaluent la conversation sur une échelle
de 1 à 10.

2.6.3.2 Pertinence des Questions

É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.

3.1 Spécification des Besoins


L’identification précise des besoins et des acteurs impliqués est fondamentale pour la réus-
site du projet. Cela nous permet de créer un chatbot qui répond aux attentes des utilisateurs
tout en respectant les contraintes techniques.

3.1.1 Besoins Fonctionnels

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-

tionnels qui sous-tendent ces fonctionnalités, assurant la sécurité, la performance et l’acces-


sibilité du ChatBot à un large éventail d’utilisateurs.

3.1.2 Besoins Non Fonctionnels

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.

— Filtrage de Contenu : Pour maintenir un environnement sécurisé, Kissa intégrera des


systèmes de filtrage de contenu afin d’éviter l’exposition à des contenus inappropriés.

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.

Accessibilité et Facilité d’Utilisation :

— Compatibilité Multiplateforme : Kissa doit fonctionner sur une variété d’appareils et de


plateformes pour être accessible au plus grand nombre.

— 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é.

3.1.3 Identification des Acteurs

La réussite du ChatBot Kissa dépend non seulement de sa conception et de ses fonctionna-


lités, mais aussi de l’interaction entre les différents acteurs qui l’utiliseront ou seront affectés
par lui. L’identification claire de ces acteurs est essentielle pour assurer une intégration har-
monieuse du ChatBot dans son environnement cible. Voici les principaux acteurs identifiés :
Enfants Utilisateurs :

— Description : Utilisateurs primaires, âgés de 5 à 12 ans, utilisent Kissa pour stimuler créa-
tivité et apprentissage.

— Besoins et Attentes : Recherchent une expérience ludique, éducative et facile d’accès,


avec un haut niveau de sécurité.

Parents ou Tuteurs :

— Description : Supervisent et régulent l’utilisation de Kissa par les enfants.

— Besoins et Attentes : Exigent un environnement sécurisé pour leurs enfants et des outils
de contrôle parental.

Éducateurs et Professionnels de l’Enfance :

— Description : Utilisent Kissa comme support pédagogique pour enrichir l’expérience


éducative.

— Besoins et Attentes : Souhaitent intégrer le ChatBot comme ressource d’apprentissage


interactif.

34
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

Développeurs et Mainteneurs du Système :

— Description : Responsables de la création, de la maintenance et de l’amélioration conti-


nue de Kissa.

— Besoins et Attentes : Visent à développer un ChatBot évolutif, technologiquement à jour


et facile à entretenir.

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.

3.2 Étude Analytique


Dans cette section, nous analysons les interactions entre les utilisateurs et le chatbot à tra-
vers des diagrammes de cas d’utilisation, suivi d’une étude approfondie de la structure interne
du chatbot via des diagrammes de classe.

L’étude analytique nous permet de visualiser et de comprendre les interactions et la struc-


ture du chatbot, deux aspects cruciaux pour son développement.

3.2.1 Diagramme de Cas d’Utilisation

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

FIGURE 3.1 – Diagramme de cas d’utilisation général

Cas d’Utilisation pour Enfants Utilisateurs


Les enfants utilisateurs sont en mesure de :

— Authentifier : Se connecter en toute sécurité pour accéder à une expérience personna-


lisée.

— 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é.

Cas d’Utilisation pour les Administrateurs


Les administrateurs peuvent :

— Authentifier : Accéder au système pour effectuer des tâches de supervision et de ges-


tion.

36
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

— Gérer le ChatBot : Ajuster les paramètres du ChatBot afin d’optimiser les interactions
utilisateur.

— Suivre les Performances : Analyser les interactions utilisateur et l’efficacité du ChatBot


en se basant sur les données collectées.

3.2.2 Diagramme de Classes

Le système décrit est un environnement interactif conçu pour faciliter le processus de


création littéraire des utilisateurs grâce à l’assistance d’un chatbot. Ce dernier joue le rôle
d’animateur pour inspirer et structurer les idées des utilisateurs qui souhaitent écrire une his-
toire. Le diagramme ci-dessous 3.2 illustre la structure orientée objet de ce système et décrit
les relations entre les différentes entités.

FIGURE 3.2 – Diagramme de classes du chatbot Kissa.

Description des Classes

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

— Méthodes : Permet à l’utilisateur de s’inscrire (inscription()) et de se connecter (connexion())


au système.

— 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

— Méthodes : Permet de suivre les réponses du ChatBot (suivreReponses()), de gérer les


exceptions ou les erreurs (gererExceptions()), et de gérer les aspects opérationnels du
ChatBot (gestionChatBot()).

— Relation avec Histoire : Un administrateur a la capacité de surveiller ou de suivre toutes


les histoires créées (relation “surveiller” avec multiplicité “1”), ce qui indique qu’il y a
toujours une surveillance un-à-un sur les activités liées aux histoires.

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).

— Méthodes : Permet à l’utilisateur de créer (creerHistoire()) et de modifier (modifierHistoire())


son histoire.

— 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).

— Méthodes : Facilite la pose de questions par l’utilisateur (poserQuestion()) et la récep-


tion de réponses du ChatBot (recevoirReponse()).

— 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

— Attributs : Identifiant unique (id), timestamp de début (dateHeureDebut), timestamp


de fin (dateHeureFin), et l’identifiant de l’histoire associée (idHistoire).

— Méthodes : de démarrer (demarrerSession()) et de terminer (terminerSession())


une session d’écriture, offrant à l’utilisateur un espace de travail dédié pour la rédaction
de son histoire avec l’assistance du ChatBot.

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

3.3 Conception de l’Interface Utilisateur de Kissa


L’interface utilisateur (UI) de Kissa est essentielle pour fournir une expérience utilisateur
captivante et intuitive, particulièrement adaptée à notre jeune audience. Notre approche vise
à simplifier l’interaction avec le ChatBot et à améliorer la navigabilité à travers l’application.

3.3.1 Principes de Conception

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.

3.3.2 Interfaces Critiques

3.3.2.1 Maquette d’Inscription et de Connexion

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.

FIGURE 3.3 – Maquette de l’interface d’inscription de Kissa

40
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

FIGURE 3.4 – Maquette de l’interface de connexion de Kissa

3.3.2.2 Interface 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.

FIGURE 3.5 – Interaction utilisateur avec l’interface de Booky AI

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 Architecture Backend avec Django

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.

3.4.2 Architecture MVT de Django

L’architecture MVT est une variante du patron de conception MVC (Model-View-Controller).


Dans Django :

— 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.

— Template : Définit comment les données sont présentées. Il s’agit essentiellement de la


partie front-end et de la présentation.

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

FIGURE 3.6 – Architecture de Django

3.4.3 Pourquoi Django ?

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.

3.4.4 Modèle de données

— User : Extendant AbstractUser, il enrichit la gestion des utilisateurs.

— Administrateur : Spécifique aux administrateurs, relié à User.

— Message : Capture les interactions chat avec un flag est_de_bot pour déterminer l’ori-
gine.

— Histoire : Archive les récits des utilisateurs.

— Session : Lie une Histoire à ses métadonnées.

3.4.5 Interaction avec le modèle fine-tuned

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

— Tokenisation : L’input est traité par le tokenizer GPT-2.

— Génération : La réponse est générée à partir des tokens.

— Detokenisation : Conversion de la réponse en texte clair.

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.

3.5 Interface Utilisateur avec Angular

3.5.1 Introduction à Angular

Dans la phase de conception de l’interface utilisateur, Angular se distingue comme un


choix optimal en raison de sa flexibilité, de sa réactivité et de sa nature orientée composant.
Angular est un framework populaire développé et maintenu par Google, largement adopté
pour sa facilité d’intégration, ses performances optimisées et son support communautaire
robuste.

3.5.2 Raison du choix d’Angular pour la partie frontend

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.

3.5.3 Explication optimale et détaillée de leur architecture

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

FIGURE 3.7 – Architecture Angular

— 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.

— Services et Injection de Dépendance


Les services sont utilisés pour séparer la logique métier des composants. Ils assurent que
les composants restent légers et focalisés uniquement sur la présentation. L’injection de
dépendance est un design pattern dans lequel un objet reçoit ses dépendances plutôt
que de les créer lui-même, ce qui facilite le test et la maintenance.

— 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

rendre l’affichage dynamique et réactif.

— 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

3.6 Mise en Production du ChatBot

3.6.1 Introduction au Déploiement

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.

3.6.2 Utilisation de Docker

Docker a été instrumental dans la conteneurisation de notre application, garantissant la


cohérence opérationnelle à travers divers environnements. La conteneurisation avec Docker
garantit que l’application fonctionne de manière identique sur toutes les plates-formes, éli-
minant ainsi les problèmes classiques tels que "cela fonctionne sur mon ordinateur".

3.6.2.1 Backend avec Docker

Le backend de l’application, écrit en Django, a été encapsulé dans un conteneur Docker.


Nous avons utilisé une image Python officielle comme base, et l’application entière, avec toutes
ses dépendances, a été emballée dans un conteneur. Cela a facilité un déploiement rapide et
fiable.Ceci est illustré dans la Figure 3.8.

FIGURE 3.8 – Docker-file

3.6.2.2 Frontend avec Docker

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

FIGURE 3.9 – Dockerfile

3.6.3 Intégration avec Jenkins

Jenkins a facilité l’automatisation du processus de déploiement. Grâce à des pipelines bien


structurés, chaque mise à jour du code a déclenché un processus automatisé de construction,
de test et de déploiement.

3.6.3.1 Pipeline Jenkins

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é.

3.6.4 Intégration Continue

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.

FIGURE 3.10 – Intégration continue

49
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

3.6.5 Diagrammes de Processus

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.

3.7 Environnement de travail


Dans cette section, nous vous présentons notre environnement de travail logiciel et maté-
riel durant ce stage.

3.7.1 Environnement matériel

Le portatif que nous avons utilisé pour réaliser ce projet présente les caractéristiques sui-
vantes :

TABLEAU 3.1 – Caractéristiques du Système


Édition Windows Processeur Mémoire RAM Nom de l’ordina-
teur
Windows 10 Profes- Intel(R) Core(TM) 20,0 Go DESKTOP-LVJ00V7
sionnel i7-1065G7 CPU @
1.30GHz

3.7.2 Environnement logiciel

Après avoir cité les caractéristiques du matériel, nous passons maintenant à l’environne-
ment logiciel.

3.7.2.1 Éditeur de code

• 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

FIGURE 3.11 – Logo VsCode

• Google Colab, ou Google Colaboratory : Est un environnement de notebook Jupyter


hébergé qui ne nécessite aucune configuration pour utiliser et fonctionne entièrement
dans le cloud.Il peut être utilisé pour écrire et exécuter du code, principalement en Py-
thon, et est largement utilisé pour des travaux liés à l’apprentissage automatique, l’ana-
lyse de données et l’éducation. Vous pouvez exécuter des scripts, visualiser des données,
partager vos résultats, et même accéder à des ressources matérielles puissantes (comme
les GPU et TPU de Google) gratuitement. La figure 3.12 montre le logo de Google Colab.

FIGURE 3.12 – Logo Google Colab

3.7.2.2 Client API

• 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.

FIGURE 3.13 – Logo Insomnia

51
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

3.7.2.3 Frameworks et Technologies de développement

• 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.

FIGURE 3.14 – Logo 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.

FIGURE 3.15 – Logo 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.

FIGURE 3.16 – Logo huggingface

• PyTorch : est une bibliothèque open source d’apprentissage automatique développée


par Facebook. Il est particulièrement apprécié pour sa flexibilité et sa capacité à tra-
vailler efficacement avec des réseaux de neurones. La figure 3.17 montre le logo de Py-
Torch.

52
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

FIGURE 3.17 – Logo pyTorch

• TensorFlow : Est une plateforme open-source dédiée à l’apprentissage profond (deep


learning) qui permet de construire et d’entraîner des réseaux neuronaux. La figure 3.18
montre le logo de TensorFlow.

FIGURE 3.18 – Logo TensorFlow

3.7.2.4 Langages de programmation

• Python 3 : Est la dernière version majeure du langage de programmation Python, carac-


térisé par sa syntaxe claire et lisible qui favorise la productivité des développeurs. Il est
utilisé pour une grande variété d’applications, y compris le développement web, l’ana-
lyse de données, l’apprentissage automatique, l’automatisation, et bien plus encore. La
figure 3.19 montre le logo de Python.

FIGURE 3.19 – Logo Python

• JavaScript : Est un langage de programmation de haut niveau, interprété, et principa-


lement connu comme le langage de script pour les pages Web. Il permet d’ajouter des
fonctionnalités interactives aux sites Web et est également utilisé côté serveur, notam-
ment avec NodeJs. La figure 3.20 montre le logo de JavaScript.

53
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

FIGURE 3.20 – Logo JavaScript

3.7.2.5 Base de donnée

• PostgreSQL : est un système de gestion de base de données relationnelle open source,


puissant et largement utilisé. Il est apprécié pour sa robustesse, sa sécurité, sa flexibilité
et sa capacité à gérer des charges de travail complexes. La figure 3.21 montre le logo de
PostgreSQL.

FIGURE 3.21 – Logo PostgreSQL

3.7.2.6 Outils DevOps

• 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.

FIGURE 3.22 – Logo 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

FIGURE 3.23 – Logo Jenkins

• 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.

FIGURE 3.24 – Logo 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.

FIGURE 3.25 – Logo GitLab

3.7.2.7 Outils de modélisation

• 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.

FIGURE 3.26 – Logo Draw.io

55
CHAPITRE 3. DÉPLOIEMENT DU CHATBOT

3.7.3 Conclusion sur le Déploiement

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

Au terme de ce rapport, nous avons pu mettre en évidence l’importance du développe-


ment d’un ChatBot sophistiqué pour la plateforme Kissa, une initiative de la startup Estiféda.
Face aux défis auxquels sont confrontés les enfants en matière de narration, la plateforme vise
à enrichir leur expérience créative en éliminant les obstacles communs liés à l’inspiration, à
la structure et à la direction claire. Le ChatBot Kissa, basé sur des techniques avancées de trai-
tement du langage naturel, s’est avéré être un outil inestimable pour encourager l’autonomie
et la créativité chez les enfants en les aidant à structurer et articuler leurs idées.

Le rapport a souligné l’approche méthodologique suivie, en commençant par la compré-


hension du problème, la collecte de données, la modélisation et le déploiement. Grâce à l’uti-
lisation de technologies modernes comme Django, Angular et les modèles basés sur Transfor-
mers, la solution a été déployée de manière efficace et optimisée. L’intégration continue avec
GitLab, Docker et Jenkins garantit également que le ChatBot reste robuste et peut être mis à
jour ou amélioré en fonction des besoins futurs.

Le projet, bien qu’abouti, présente des possibilités de développement futures. En se ba-


sant sur les retours des utilisateurs, il serait pertinent d’envisager l’intégration d’autres langues
pour rendre le ChatBot Kissa encore plus accessible à un public international. De plus, une
exploration plus approfondie des capacités d’IA, comme le Machine Learning émotionnel,
pourrait permettre d’adapter dynamiquement le contenu en fonction de l’humeur ou des ré-
actions de l’enfant. Enfin, une collaboration avec des éducateurs et des experts en narration

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.

[2] Attention is all you need. https://arxiv.org/abs/1706.03762, 2017. [Accès le 25-


avril-2023].

[3] Continuous integration. https://www.atlassian.com/fr/continuous-delivery/


continuous-integration, 2023. Accédé le : [votre date d’accès ici, par exemple : 23
juillet 2023].

[4] Site web estiféda. https://estifeda.com/, 2023. [Accès le 1-mars-2023].

[5] Kissa - digital storytelling platform. https://klubkissa.com/. Consulté le [1-avril-


2023].

[6] The illustrated transformer. https://jalammar.github.io/


illustrated-transformer/. Consulté le [date de consultation].

[7] Natural language processing. https://learning.oreilly.com/library/view/


natural-language-processing/9781098136789/, Année de publication.

[8] Full-stack django development. https://learning.oreilly.com/library/view/


full-stack-django/9781803242972/, February 2023.

[9] Transformers for natural language processing. https://learning.oreilly.com/


library/view/transformers-for-natural/9781803247335/, May 2022.

[10] Real python. https://realpython.com/. Consulté le [3-juin-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

Vous aimerez peut-être aussi