Comment intégrer DALL-E 2 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 ainsi de nouvelles possibilités d'interaction et de créativité au sein de votre communauté. Préparez-vous à découvrir comment transformer votre expérience Discord grâce à l'intelligence artificielle et à l'imagerie générative.
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.
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.
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.
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.
Vous pouvez ajouter d'autres fonctionnalités en fonction de vos besoins.
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.
Votre bot fera son apparition sur votre serveur, mais sera hors-ligne.
Inscrivez-vous sur Degiro et investissez dans l'IAParamé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 DALL-E, intègre aussi les fonctionnalités de ChatGPT, si vous souhaitez désactiver ChatGPT, vers la ligne 12, remplacez true
par false
et ChatGPT sera désactivé, vous pouvez ignorez ces étapes et aller à la configuration de DALL-E directement.
Pour plus d'infos sur le bot ChatGPT :
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 install
dans la fenêtre, puis attendez la fin du chargement.
Configuration de DALL-E
DALL-E nous permet de faire quelques réglages, vers la ligne 180, n: 4;
indique la quantité d'image que DALL-E va générer, il faut choisir un chiffre entre 1 et 4. Ensuite size: 256x256;
va définir la taille des images. Choisissez entre 256, 512, et 1024. Gardez à l'esprit que chaque génération va vous coûter des tokens, plus il y a d'images, et plus elles sont grandes, plus vous utiliserez de tokens.
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.
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
. Utilisez la commande /generate
et écrivez votre prompt.
Si vous n'avez pas d'inspiration :
Comment demandez des variations
DALL-E permet de créer des variations d'une même image, pour cela, faites un clique droit sur l'image que DALL-E vous a envoyé. Et copier son lien. Faites /variation
et collez le lien. Si vous appuyez sur tab vous pouvez choisir la quantité de variations que DALL-E va générer. Entre 1 et 4. Si vous ne précisez rien, il fera 1 variante par défaut.
Si DALL-E 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
En conclusion, l'intégration de DALL-E d'OpenAI dans un bot Discord via leur API ouvre un monde d'opportunités pour enrichir et dynamiser les interactions au sein de votre communauté. Grâce à ce tutoriel, vous avez désormais les compétences nécessaires pour créer un chatbot capable de générer des images pertinentes en fonction des requêtes des utilisateurs. N'hésitez pas à explorer davantage les possibilités offertes par l'IA et à partager vos réalisations avec votre communauté. L'avenir du divertissement et de la communication sur Discord s'annonce passionnant grâce à l'intelligence artificielle et à des outils innovants comme DALL-E.