This commit is contained in:
ShadowVR 2024-06-01 16:59:58 -04:00
parent c03d4a6043
commit c7d6a9c4a8

View file

@ -11,6 +11,7 @@ const { moderation } = require('../configs/moderation');
const { chatbot } = require('../configs/chatbot'); const { chatbot } = require('../configs/chatbot');
const conversations = new Map(); const conversations = new Map();
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require('discord.js');
const { exec } = require('child_process');
// Load the knowledge from the completion.txt file // Load the knowledge from the completion.txt file
const knowledge = fs.readFileSync(path.join(__dirname, '../utils/prompts/completion.txt'), 'utf-8'); const knowledge = fs.readFileSync(path.join(__dirname, '../utils/prompts/completion.txt'), 'utf-8');
@ -324,18 +325,43 @@ if (chatbot.State && (chatbot.AllowedChannels.includes(message.channel.name) ||
fullAnswer += part.choices[0]?.delta?.content || ''; fullAnswer += part.choices[0]?.delta?.content || '';
} }
const fs = require('fs');
const { exec } = require('child_process');
// 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
}
// Before sending the response, check for mentions // Before sending the response, check for mentions
if (!fullAnswer.includes('@everyone') && !fullAnswer.includes('@here') && !fullAnswer.includes('@')) { if (!fullAnswer.includes('@everyone') && !fullAnswer.includes('@here') && !fullAnswer.includes('@')) {
if (fullAnswer.length <= 2000) { if (fullAnswer.length <= 2000) {
await message.channel.send(fullAnswer); await message.channel.send(fullAnswer);
} else { } else if (fullAnswer.length <= 4096) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Response from GPT-4o') .setTitle('Response from GPT-4o')
.setDescription(fullAnswer.substring(0, 4096)) // Embed description has a 4096 character limit .setDescription(fullAnswer.substring(0, 4096)) // Embed description has a 4096 character limit
.setColor('#0099ff'); .setColor('#0099ff');
await message.channel.send({ embeds: [embed] }); await message.channel.send({ embeds: [embed] });
} else {
// Save the full answer to a .txt file
fs.writeFileSync('response.txt', fullAnswer);
// Send the .txt file
await message.channel.send({
files: [{
attachment: 'response.txt',
name: 'response.txt'
}]
});
// Restart the bot
restartBot();
} }
}
// Save the conversation for self-learning // Save the conversation for self-learning
const conversation = { const conversation = {
@ -459,7 +485,7 @@ function shouldRespond(message) {
// Add more conditions as needed based on personality and surroundings // Add more conditions as needed based on personality and surroundings
return true; return true;
}} }