Comment intégrer ChatGPT dans un bot Discord pour avoir son propre ChatBot

Dans ce tutoriel, nous vous montrerons comment créer un bot Discord en intégrant ChatGPT d'OpenAI via leur API. Ce chatbot pourra comprendre et répondre aux requêtes des utilisateurs de manière pertinente. Que ce soit pour du support client, animer un serveur Discord ou explorer les avancées en intelligence artificielle, ce guide vous sera utile. Préparez-vous à découvrir comment utiliser ChatGPT pour améliorer votre expérience utilisateur avec les bots Discord.

Les pré-requis

Notez que vous aurez besoin d'une clé API de OpenAI, et de quelques crédits dans votre compte. Le coût d'une requête est de 0,2 cent pour ~4000 caractères de texte. Vous pouvez obtenir des crédits d'une valeur de 18 $ lorsque vous vous inscrivez et ceux-ci devraient durer un certain temps, mais il n'y a actuellement pas de version entièrement gratuite de l'API.

Allez sur OpenAI et cliquez sur 'Créer une nouvelle clé secrète' pour en avoir une. Attention la clé ne pourra pas être affichée une deuxième fois.

Créer un compte sur Replit

Replit est une plateforme de développement en ligne qui permet de créer, exécuter et partager des projets de programmation dans différents langages, directement depuis votre navigateur web. Nous ne voulons pas perdre du temps à configurer un serveur en local, nous allons utiliser Replit qui va nous permettre d'héberger notre bot et d'éditer notre code. Rendez-vous sur leur site et créer un compte.

Importer un environnement de dev sur Replit

Cliquez sur le bouton ci-dessous et clonez (fork) le code pour pouvoir le modifier de votre côté. C'est un Bot Discord en JavaScript, permettant d'interagir avec l'API d'OpenAI.

Créer le bot sur Discord

Pendant que Replit charge votre environnement de travail, vous allez pouvoir vous rendre sur le site Discord Developer portal et créer votre bot.

Connectez-vous avec votre compte et cliquez en haut à droite sur New Application. Trouvez un nom pour votre application, ne suivez pas mon exemple, un bot ne peut pas avoir Discord dans son nom.

Créer une application sur Discord

Récupérer le Bot Token

Nous allons dire à Discord que notre application est un Bot, pour cela allez dans l'onglet Bot et cliquez sur le bouton pour valider. Ici vous allez pouvoir configurer l'aspect visuel de votre bot, sa photo de profil, son nom, sa bio.

Vous devriez voir un bouton View Token, il s'agit d'un clé secrète qui va permettre de prendre le contrôle de votre bot, ne la donnez à personne. Copiez ce Token, nous allons en avoir besoin pour la suite.

Configurez votre bot

Paramétrer le bot

Dans l'onglet Bot nous allons pouvoir définir les permissions de notre bot. Vous pouvez demander à ChatGPT, ou regarder dans la documentation à quoi correspond chaque élément de la liste. Pour des raisons de simplicité je vais lui donner les privilèges Administrator, mais je vous conseille fortement de ne lui donner que les permissions qui vous seront utiles.

Choisir les permissions du Bot

Créer un lien d'invitation pour le Bot

Rendez-vous dans Oauth2, ici nous allons créer un lien pour ajouter notre bot à notre serveur. N'oubliez pas de créer un serveur sur votre application Discord si vous n'en avez pas encore. Cochez bot et applications.commands. Ce dernier indique que nous voulons pouvoir utiliser les slash commands avec notre bot.

💡
Une slash command est une commande commençant par "/", tel que "/hello".

Vous pouvez ajouter d'autres fonctionnalités en fonction de vos besoins.

Ajouter les slash commands

Allez ensuite en bas de la page et copier le lien généré. Collez le dans votre navigateur et sélectionnez le serveur sur lequel ajouter votre bot puis validez.

Ajouter le bot à notre serveur

Votre bot fera son apparition sur votre serveur, mais sera hors-ligne.

Paramétrer l'environnement de dev sur Replit

Maintenant retournons sur Replit, notre environnement devrait être prêt. Nous allons devoir ajouter notre Token dans notre environnement. Pour cela cliquez en bas à gauche sur Secrets, un onglet va s'ouvrir à droite de l'écran. Ajoutez un secret portant le nom de TOKEN (dans key), collez votre token dans value.

Nous avons aussi besoin d'ajouter notre clé API venant d'OpenAI, toujours dans Secrets, ajoutez API_KEY et collez votre clé dans value.

Il faudra aussi préciser dans quel canal notre bot devra lire les messages. Notre bot va répondre à la totalité des messages se trouvant dans le canal (sauf ceux commençant par "!"), il est préférable d'en créer un uniquement pour lui. Ouvrez les options de Discord et allez dans Avancés, cochez le Mode développeur afin de pouvoir trouver l'ID d'un canal. Pour obtenir l'ID, faites un clic-droit sur le canal voulu, et tout en bas cliquez sur Copier l'identifiant. Maintenant sur Replit, toujours dans Secrets, créer CHANNEL_ID et collez l'ID dans value.

Vous devez avoir ces 3 éléments dans secrets :

  • TOKEN
  • API_KEY
  • CHANNEL_ID

Choisir le modèle

Notre bot, en plus des fonctionnalités de ChatGPT, intègre aussi les fonctionnalités de DALL-E, si vous souhaitez désactiver DALL-E, vers la ligne 13, remplacez true par falseet DALL-E sera désactivé.

Pour plus d'infos sur le bot DALL-E :

Comment intégrer DALL-E dans un bot Discord pour avoir son propre bot de génération d’images
Dans cet article, nous allons vous guider pas à pas pour créer un bot Discord innovant, en intégrant la puissance de DALL-E d’OpenAI grâce à leur API. Ce chatbot unique en son genre sera capable de comprendre et de générer des images pertinentes en réponse aux requêtes des utilisateurs, ouvrant

Si vous avez accès à l'API de GPT-4, vous aurez la possibilité d'utiliser la commande /gpt4 dans le canal discord de votre bot. Si ce n'est pas le cas, ou si vous ne savez pas, vous allez devoir utiliser gpt-3.5-turbo. C'est la configuration de base du chatBot, mais vous pouvez aussi la forcer avec la commande /gpt3.

Personnaliser le ChatBot

Vers la ligne 110 du code, vous devriez voir :

  let conversationLog = [{ role: 'system', content: 'You are DecryptGPT, my personnal assistant. You will answer all my questions and help me on my tasks, by providing me code or whatever.' }];

Ce texte va indiquer à ChatGPT comment se comporter. Modifiez ce qui se trouve dans content: '' comme vous le souhaitez.

Ajouter une limite

Si vous souhaitez brider votre bot afin de ne pas trop dépenser de token sur l'API, vous pouvez lui mettre une limite de token par requête. Si il dépasse cette limite il ne vous répondra pas. Allez vers la ligne 130 :

const result = await openai
      .createChatCompletion({
        model: 'gpt-4',
        messages: conversationLog,
        // max_tokens: 256, // limit token usage
      })
      .catch((error) => {
        console.log(`OPENAI ERR: ${error}`);
      });

Retirez les "//" avant max_tokens, et modifiez la valeur par celle de votre choix. 256 étant assez faible, vous pouvez essayer 512.

const result = await openai
      .createChatCompletion({
        model: 'gpt-4',
        messages: conversationLog,
        max_tokens: 512, // limit token usage
      })
      .catch((error) => {
        console.log(`OPENAI ERR: ${error}`);
      });

Installer les dépendances

En bas à gaucher cliquez sur shell et écrivez npm installdans la fenêtre, puis attendez la fin du chargement.

Inscrivez-vous sur Degiro et investissez dans l'IA

Comment utiliser le bot

Lancer le bot sur Replit

Cliquez sur play en haut de Replit. Vous devriez voir une fenêtre avec Bot is alive! s'ouvrir, ainsi que The bot is online! dans la console. Si vous avez une erreur, copiez la, et collez là à ChatGPT en lui fournissant aussi la totalité de votre code, il vous aidera à résoudre le problème.

Le bot est en ligne

Parler avec le bot sur Discord

Votre bot est désormais en ligne, vous pouvez parler avec lui dans le canal présent dans Secrets.

Le bot fonctionne bien

Ignorer des messages

Le bot peut ignorer des messages, si ils commencent par "!". ChatGPT ne répondra pas à ces messages et ne consommera pas de token.

Si ChatGPT ne répond plus

  • Vérifiez que le bot est toujours en ligne, si vous avez la version gratuite de Replit, le bot finira par se mettre en veille. Il faudra alors le relancer.
  • Vérifiez la console de replit, si il y a une erreur, elle sera affichée ici. Collez là dans ChatGPT avec votre code.
  • Vérifiez les droits de votre bot, il doit avoir le droit d'écrire et de lire les messages.
  • Vérifiez votre quota API sur le site d'OpenAI, vous avez peut-être utilisé la totalité de vos tokens.

Conclusion

Ce tutoriel vous a guidé à travers les étapes nécessaires pour créer et intégrer un bot Discord avec ChatGPT d'OpenAI. Grâce à ces connaissances, vous êtes désormais en mesure d'améliorer l'interaction et l'expérience utilisateur sur votre serveur Discord. N'hésitez pas à expérimenter et à personnaliser davantage votre bot pour répondre au mieux aux besoins spécifiques de votre communauté. Bonne continuation et amusez-vous avec votre nouveau chatbot intelligent !