Conception d'un chatbot simple avec GPT
Chapitre 24: Conception d'un Chatbot Simple avec GPT
24.1 Introduction
Un chatbot peut améliorer l'interaction utilisateur en fournissant des réponses automatisées et pertinentes à leurs questions. En utilisant l'API Chat GPT d'OpenAI, il est possible de créer un chatbot simple mais efficace. Ce chapitre vous guidera à travers les étapes de conception et de développement d'un chatbot simple en utilisant Node.js pour le backend et React pour le frontend.
24.2 Pré-requis
- Node.js et npm installés sur votre machine.
- Une clé API OpenAI valide.
- Connaissances de base en JavaScript, Node.js et React.
24.3 Initialisation du Projet
24.3.1 Création du Backend avec Express
-
Créer un nouveau répertoire pour le projet :
mkdir gpt-chatbot
cd gpt-chatbot -
Initialiser un projet npm :
npm init -y -
Installer les dépendances nécessaires :
npm install express openai dotenv cors
24.3.2 Configuration de l'API OpenAI
-
Créer un fichier
.envpour stocker votre clé API :touch .env -
Ajouter votre clé API dans le fichier
.env:OPENAI_API_KEY=your_api_key_here -
Créer un fichier
index.jspour configurer le serveur Express :const express = require('express'); const { Configuration, OpenAIApi } = require('openai'); const cors = require('cors'); require('dotenv').config(); const app = express(); const port = process.env.PORT || 3001; app.use(cors()); app.use(express.json()); const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); app.post('/api/chat', async (req, res) => { const { prompt } = req.body; try { const response = await openai.createChatCompletion({ model: "gpt-4", messages: [{ role: "user", content: prompt }], max_tokens: 150, temperature: 0.7, }); const assistantMessage = response.data.choices[0].message.content.trim(); res.json({ message: assistantMessage }); } catch (error) { res.status(500).json({ error: error.message }); } }); app.listen(port, () => { console.log(`Server is running on http://localhost:${port}`); });
24.4 Création du Frontend avec React
24.4.1 Initialisation du Projet React
-
Créer un nouveau projet React en utilisant Create React App :
npx create-react-app client
cd client -
Installer Axios pour les requêtes HTTP :
npm install axios
24.4.2 Développement de l'Interface Utilisateur
-
Modifiez
src/App.jspour ajouter un formulaire permettant de saisir un prompt et d'afficher la réponse du chatbot :import React, { useState } from 'react'; import axios from 'axios'; import './App.css'; function App() { const [prompt, setPrompt] = useState(''); const [response, setResponse] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); try { const res = await axios.post('http://localhost:3001/api/chat', { prompt }); setResponse(res.data.message); } catch (error) { console.error("Erreur :", error); } }; return ( <div className="App"> <header className="App-header"> <h1>GPT Chatbot</h1> <form onSubmit={handleSubmit}> <textarea value={prompt} onChange={(e) => setPrompt(e.target.value)} placeholder="Posez votre question ici..." /> <button type="submit">Envoyer</button> </form> <div className="response"> <h2>Réponse :</h2> <p>{response}</p> </div> </header> </div> ); } export default App; -
Ajouter des styles de base dans
src/App.css:.App { text-align: center; padding: 20px; } .App-header { background-color: #282c34; padding: 20px; color: white; } textarea { width: 100%; height: 100px; margin: 10px 0; padding: 10px; border-radius: 5px; border: 1px solid #ccc; } button { padding: 10px 20px; border: none; border-radius: 5px; background-color: #61dafb; color: white; font-size: 16px; cursor: pointer; } .response { margin-top: 20px; } .response h2 { margin: 0; } .response p { background: #f1f1f1; padding: 10px; border-radius: 5px; }
24.5 Lancer l'Application
24.5.1 Lancer le Serveur Backend
Dans le répertoire racine de votre projet, lancez le serveur backend.
node index.js 24.5.2 Lancer l'Application React
Dans le répertoire client, lancez l'application React.
npm start 24.6 Test de l'Application
Ouvrez votre navigateur et accédez à http://localhost:3000. Vous devriez voir une interface où vous pouvez entrer une question et recevoir une réponse générée par le chatbot.
24.7 Améliorations et Personnalisations
Pour améliorer et personnaliser votre chatbot, vous pouvez :
- Ajouter des fonctionnalités de suivi de conversation : Conservez l'historique des messages pour des interactions plus contextuelles.
- Implémenter des filtres de contenu : Filtrez les réponses pour éviter les contenus inappropriés.
- Personnaliser les réponses : Ajustez les paramètres de l'API pour des réponses plus créatives ou plus cohérentes.
Conclusion
Ce chapitre vous a guidé à travers la conception et le développement d'un chatbot simple en utilisant l'API Chat GPT d'OpenAI. En suivant ces étapes, vous pouvez créer un chatbot interactif qui répond aux questions des utilisateurs de manière automatisée et efficace. N'hésitez pas à explorer davantage les capacités de l'API et à personnaliser votre chatbot pour répondre à des besoins spécifiques.