На досуге было нечего делать, решил посмотреть на Python, раньше никогда на нем не программировал и его синтаксис кардинально отличается от моего родного языка PHP, но за вечер мне удалось состряпать не сложного чат-бота... Да, не обошлось без глюков и ошибок... Пришлось гуглить как подружить Python с MySQL... Но я справился, на второй день - я научил чат бота учиться и поселил в Телеграме под ником yurecnt_bot
Данный скрипт не претендует на гениальность, вопросы и ответы он хранит в базе данных, нейронной сети нет и учится на тех ответах, что дают пользователи.
Принцип работы:
Берет от пользователя сообщение, проверяет - есть ли в базе ответ, если более менее подходящих ответов несколько - берет случайный и отвечает, если ответа нет - спрашивает у пользователя, чтобы он ответил, затем обновляет базу данных.
Учитывая качество современного образования в РФ, я бы жестко контролировал процесс обучения бота... А то может начать грубить всем.... И диалоги будут состоять из мата =)
Самообучение в скрипте можно выключить, но тогда придется самим набивать готовую базу ответов на возможные вопросы, так же учитывая грамотность многих интернет-пользователей - он может проигнорировать вопросы с ошибкой.
Как было написано в самом начале - бот использует MySQL, по этому надо будет создать ему базу данных, у меня она просто называется bot и в ней всего одна таблица:
CREATE TABLE `dialog` ( `id` int(10) NOT NULL AUTO_INCREMENT, `v` longtext DEFAULT NULL, `o` longtext DEFAULT NULL, `dialog_id` varchar(250) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Так же для работы нужны модули с помощью которых он цепляется к телеграмм:
pip install python-telegram-bot --upgrade pip install pytelegrambotapi pip install pymysql
Для работы бота вам необходимо его зарегистрировать, для этого в Телеграмме найдите бота BotFather
Напишите ему следующие команды:
/start /newbot ИМЯБОТА_bot
Система сгенерирует ваш API-ключ, который нужно указать в чат-боте, так же не забудьте указать ваши параметры подключения к MySQL.
Программ без ошибок не бывает, почему то иногда при коротких сообщениях (1 символ) он вылетает, по этому я добавил на своем VPS его запуск в крон на каждые 10 минут, оперативку и проц не жрет, так что можно. Сохраняем код в файл bot.py и можем запускать, проверено в Linux на Python 3
Рейтинг: 33
Обновлено: 21.11.2024