Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Бот в дискорде выдаёт ошибку

Stix Ученик (175), на голосовании 1 год назад
 const { Client, GatewayIntentBits } = require('discord.js') 
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers,
],
});
const { exec } = require('child_process');

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});

client.on('messageCreate', message => {
if (message.content === '!chat') {
// Получаем сообщение от пользователя и передаем его в модель ChatGPT
const userMessage = message.content;
exec(`python chatgpt.py "${userMessage}"`, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
// Отправляем ответ модели ChatGPT обратно пользователю в Discord
message.reply(stdout);
});
}
});

client.login('Токен_бота'); // Замените токен на свой
Голосование за лучший ответ
Егор Петрович Ученик (146) 1 год назад
Взломай дискорд и будь крутым
Лариса Сергеева Ученик (228) 1 год назад
[сделало нейросеть и мне кажется оно не поняло вопрос]
Проблема может быть в том, что при использовании команды !chat, переменная userMessage устанавливается равной строке '!chat', а не содержимому сообщения пользователя. Попробуйте заменить const userMessage = message.content; на const userMessage = message.content.slice(5);, чтобы переменная userMessage содержала текст сообщения пользователя после команды !chat. Например, если пользователь написал !chat Привет, то userMessage будет содержать строку 'Привет'.
Похожие вопросы