Aller au contenu
Dimitri Robiere PerrietD. R. PerrietCaen, FR — --:--:--FR · EN

Chatbot de personnages de jeux vidéo avec l’API OpenAI

○ Archivé
Client
MyDigitalSchool
Rôle
Développeur full-stack
Durée
6 mois
Année
2023
Stack
Node.js · Express · MySQL · React · Tailwind CSS · API OpenAI · JWT · Mocha
Chatbot de personnages de jeux vidéo avec l’API OpenAI — illustration
Fig. 01 — Chatbot de personnages de jeux vidéo avec l’API OpenAI, illustration
(00) — En bref

Application web React et Node.js où l’on crée des personnages de jeux vidéo pour converser avec eux : l’API OpenAI répond dans la peau du personnage choisi.

(01)

Contexte

Ce chatbot de personnages de jeux vidéo est né début 2023, au moment où l’API OpenAI devenait accessible, dans le cadre d’un module de conception (UML et base de données). Le principe : un utilisateur choisit un jeu vidéo, puis un personnage, et ouvre une conversation avec lui.

Il a démarré comme une application Express avec des vues serveur, avant d’être refondu en API Node.js consommée par un front React.

(02)

Challenge

Pour que le personnage reste crédible, le modèle doit connaître son univers et se souvenir de ce qui a déjà été dit. Or l’API ne garde aucun état entre deux appels.

Il fallait aussi une base de données propre, fidèle au modèle conceptuel du cours, pour relier utilisateurs, jeux, personnages, conversations et messages, le tout derrière une authentification.

(03)

Approche

À la création d’un personnage, l’application interroge OpenAI pour récupérer une description détaillée, qui sert ensuite de consigne système. À chaque nouveau message, tout l’historique de la conversation est renvoyé au modèle, qui répond dans la peau du personnage.

J’ai conçu la base MySQL à partir du MLD (avec une vue SQL pour certaines requêtes), écrit les CRUD des utilisateurs, jeux, personnages, conversations et messages, et sécurisé l’API par JWT avec des mots de passe hachés via bcrypt. Le front React propose une recherche de jeux avec debounce, une bibliothèque de jaquettes sous Swiper et la page de discussion. Des tests Mocha couvrent une partie des routes.

(04) — Résultats

Chiffres clés
105
commits
6
mois de développement
5
entités : utilisateurs, jeux, personnages, conversations, messages
2
architecture : API Node.js et front React
← Projet précédent27 · MyCampusQuest, chasse au trésor en PWA Next.jsProjet suivant29Thèmes et plugins WordPress sur mesure pour agence