From 4c57a66a973185804b1d48b6694c974ff8bdb27d Mon Sep 17 00:00:00 2001 From: ShadowVR Date: Sun, 2 Jun 2024 02:04:15 -0400 Subject: [PATCH] revert c75a8205853c71143eccd3edd038e4390d319451 revert Update events/messageCreate.js --- events/messageCreate.js | 100 ++++++++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 39 deletions(-) diff --git a/events/messageCreate.js b/events/messageCreate.js index 39a8013..5930167 100644 --- a/events/messageCreate.js +++ b/events/messageCreate.js @@ -11,6 +11,7 @@ const { moderation } = require('../configs/moderation'); const { chatbot } = require('../configs/chatbot'); const conversations = new Map(); const { EmbedBuilder } = require('discord.js'); +const { exec } = require('child_process'); // Load the knowledge from the completion.txt file const knowledge = fs.readFileSync(path.join(__dirname, '../utils/prompts/completion.txt'), 'utf-8'); @@ -324,58 +325,79 @@ if (chatbot.State && (chatbot.AllowedChannels.includes(message.channel.name) || fullAnswer += part.choices[0]?.delta?.content || ''; } - if (!fullAnswer.includes('@everyone') && !fullAnswer.includes('@here') && !fullAnswer.includes('@')) { + const fs = require('fs'); + +// Function to restart the bot +function restartBot() { + console.log("Restarting bot..."); + process.exit(0); // Exits the current process, assuming your process manager restarts the bot +} + +// Function to restart the bot +function restartBot() { + console.log("Restarting bot..."); + process.exit(0); // Exits the current process, assuming your process manager restarts the bot +} + +// Function to save conversation for self-learning +function saveConversation(conversation) { + // Implement the logic to save the conversation + // For example, you can write it to a file or a database + const data = JSON.stringify(conversation, null, 2); + fs.appendFileSync('conversations.json', data + ',\n'); +} + +// Before sending the response, check for mentions +if (!fullAnswer.includes('@everyone') && !fullAnswer.includes('@here') && !fullAnswer.includes('@')) { if (fullAnswer.length <= 2000) { await message.channel.send(fullAnswer); + } else if (fullAnswer.length <= 4096) { + const embed = new EmbedBuilder() + .setTitle('Response from GPT-4o') + .setDescription(fullAnswer.substring(0, 4096)) // Embed description has a 4096 character limit + .setColor('#0099ff'); + + await message.channel.send({ embeds: [embed] }); } else { - // Function to split the fullAnswer into chunks of 4096 characters - const splitIntoChunks = (str, chunkSize) => { - const chunks = []; - for (let i = 0; i < str.length; i += chunkSize) { - chunks.push(str.slice(i, i + chunkSize)); - } - return chunks; - }; + // Save the full answer to a .txt file + fs.writeFileSync('response.txt', fullAnswer); - const chunks = splitIntoChunks(fullAnswer, 4096); + // Send the .txt file + await message.channel.send({ + files: [{ + attachment: 'response.txt', + name: 'response.txt' + }] + }); - // Send each chunk as an embed - for (const chunk of chunks) { - const embed = new EmbedBuilder() - .setTitle('Response from GPT-4o') - .setDescription(chunk) - .setColor('#0099ff'); - - await message.channel.send({ embeds: [embed] }); - } - - // Exit the process to trigger a restart - process.exit(0); + // Restart the bot + restartBot(); } } +// Save the conversation for self-learning +const conversation = { + user: message.author.id, + userMessage: question, + botResponse: fullAnswer +}; +saveConversation(conversation); - // Save the conversation for self-learning - const conversation = { - user: message.author.id, - userMessage: question, - botResponse: fullAnswer - }; - saveConversation(conversation); +conversations.set(message.author.id, messages.concat([{ "role": "assistant", "content": fullAnswer }])); - conversations.set(message.author.id, messages.concat([{ "role": "assistant", "content": fullAnswer }])); - } catch (error) { - console.error(chalk.bold.redBright(error)); +} catch (error) { + console.error(chalk.bold.redBright(error)); - if (error.response) { - await message.reply(error.response.error.message.substring(0, 2000)); - } else if (error.message) { - await message.reply(error.message.substring(0, 2000)); - } - } - } + if (error.response) { + await message.reply(error.response.error.message.substring(0, 2000)); + } else if (error.message) { + await message.reply(error.message.substring(0, 2000)); } } +} +} +} + // Command Handler if (message.content.toLowerCase().startsWith(config.Prefix)) {