From 20292262d6bcd1402147f5d9556404642875cb90 Mon Sep 17 00:00:00 2001 From: Lukian LEIZOUR Date: Sat, 4 Mar 2023 17:30:09 +0100 Subject: [PATCH] commit --- app.js | 61 +++++++++++++++++++++++++++++--------------- libs/mysql.js | 4 +-- libs/openAi.js | 3 +-- register-commands.js | 4 +++ 4 files changed, 47 insertions(+), 25 deletions(-) diff --git a/app.js b/app.js index 49b9364..d9c35fe 100644 --- a/app.js +++ b/app.js @@ -167,13 +167,12 @@ client.on('interactionCreate', async interaction => { quota = await getQuota(interaction.member.user.id); - if (quota >= 999) { - interaction.editReply('Quota exceeded, please wait'); + if (quota >= 200000) { + interaction.editReply('Quota exceeded, please wait untill reset (every month)'); } else { - incrementQuota(interaction.member.user.id); - answerQuestion(interaction.options.get('question').value).then((res) => { + incrementQuota(interaction.member.user.id, res.data.usage.total_tokens); if (res.data.choices[0].message.content.length > 4096) { interaction.editReply(res.data.choices[0].message.content); addToLogs('[Discord] Sent answer to : ' +interaction.options.get('question').value); @@ -244,28 +243,35 @@ client.on('interactionCreate', async interaction => { else if (interaction.commandName === 'addmsg') { await interaction.deferReply(); - await addMessage(interaction.options.get('name').value,"user" ,interaction.options.get('message').value, interaction.member.user.username); - messages = await getMessages(interaction.options.get('name').value, "role"); + quota = await getQuota(interaction.member.user.id); + + if (quota >= 200000) { + interaction.editReply('Quota exceeded, please wait untill reset (every month)'); + } else { + await addMessage(interaction.options.get('name').value,"user" ,interaction.options.get('message').value, interaction.member.user.username); - sendConv(messages).then((res) => { - addMessage(interaction.options.get('name').value,"assistant",res.data.choices[0].message.content , "Chaise bot"); + messages = await getMessages(interaction.options.get('name').value, "role"); - const embed_user = new discord.EmbedBuilder() - .setColor(0xBBFAF4) - .setAuthor({ name : interaction.member.user.username, iconURL : "https://cdn.discordapp.com/avatars/"+interaction.member.user.id+"/"+interaction.member.user.avatar+".jpeg"}) - .setDescription(interaction.options.get('message').value); + sendConv(messages).then((res) => { + addMessage(interaction.options.get('name').value,"assistant",res.data.choices[0].message.content , "Chaise bot"); - const embed_bot = new discord.EmbedBuilder() - .setColor(0xFABBDE) - .setAuthor({ name : "Chaise bot", iconURL : client.user.displayAvatarURL()}) - .setDescription(res.data.choices[0].message.content) - .setFooter({ text : "Powered by OpenAI https://www.openai.com/", iconURL : "https://seeklogo.com/images/O/open-ai-logo-8B9BFEDC26-seeklogo.com.png" }); + const embed_user = new discord.EmbedBuilder() + .setColor(0xBBFAF4) + .setAuthor({ name : interaction.member.user.username, iconURL : "https://cdn.discordapp.com/avatars/"+interaction.member.user.id+"/"+interaction.member.user.avatar+".jpeg"}) + .setDescription(interaction.options.get('message').value); - interaction.editReply({ embeds : [embed_user, embed_bot] }); - }).catch((err) => { - console.log(err); - }); + const embed_bot = new discord.EmbedBuilder() + .setColor(0xFABBDE) + .setAuthor({ name : "Chaise bot", iconURL : client.user.displayAvatarURL()}) + .setDescription(res.data.choices[0].message.content) + .setFooter({ text : "Powered by OpenAI https://www.openai.com/", iconURL : "https://seeklogo.com/images/O/open-ai-logo-8B9BFEDC26-seeklogo.com.png" }); + + interaction.editReply({ embeds : [embed_user, embed_bot] }); + }).catch((err) => { + console.log(err); + }); + } } else if (interaction.commandName === 'displayconv') { @@ -289,6 +295,19 @@ client.on('interactionCreate', async interaction => { interaction.editReply({ embeds : [embed] }); } + + else if (interaction.commandName === 'getmyguota') { + await interaction.deferReply(); + quota = await getQuota(interaction.member.user.id); + + const embed = new discord.EmbedBuilder() + .setColor(0xFABBDE) + .setAuthor({ name : "Quota : " + interaction.member.user.username, iconURL : "https://cdn.discordapp.com/avatars/"+interaction.member.user.id+"/"+interaction.member.user.avatar+".jpeg"}) + .setDescription("You have a quota of " + quota + "/200k tokens") + .setFooter({ text : "Powered by OpenAI https://www.openai.com/", iconURL : "https://seeklogo.com/images/O/open-ai-logo-8B9BFEDC26-seeklogo.com.png" }); + + interaction.editReply({ embeds : [embed] }); + } }); //bot launch diff --git a/libs/mysql.js b/libs/mysql.js index 1a19c0a..750cd6e 100644 --- a/libs/mysql.js +++ b/libs/mysql.js @@ -19,9 +19,9 @@ function addUserToDb(id, user) { }); } -function incrementQuota(id) { +function incrementQuota(id, value) { return new Promise((resolve, reject) => { - connection.query('UPDATE users SET quota = quota + 1 WHERE userid = ' + id, (error, results, fields) => { + connection.query('UPDATE users SET quota = quota + '+ value + ' WHERE userid = ' + id, (error, results, fields) => { if (error) { reject(error); } else { diff --git a/libs/openAi.js b/libs/openAi.js index df65db5..4aabfa4 100644 --- a/libs/openAi.js +++ b/libs/openAi.js @@ -24,14 +24,13 @@ async function generateImage(query, ctx, bot) { async function answerQuestion(query) { response = await openai.createChatCompletion({ model: "gpt-3.5-turbo", - messages: [{"role":"system", "content" : "You are a helpful assistant."},{ "role" : "user", "content" : "who is the president of the united states?" }, { "role" : "assistant", "content" : "Joe Biden"}], + messages: [{ "role" : "user", "content" : query}], temperature: 0.9, }).catch((err) => { console.log(err); addToLogs("--> error : " + err); }) - console.log(response); return response; } diff --git a/register-commands.js b/register-commands.js index 50e7c4e..7a5771f 100644 --- a/register-commands.js +++ b/register-commands.js @@ -93,6 +93,10 @@ const commands = [ }, ], }, + { + name : 'getmyguota', + description : 'Get your quota', + }, ]; const rest = new REST({ version: '10' }).setToken(process.env.DISCORD);