Python - самообучающийся чат-бот для Телеграмм

Python - самообучающийся чат-бот для Телеграмм

На досуге было нечего делать, решил посмотреть на 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

Комментарии

Дорогие посетители моего сайта, подпишитесь на мой канал в Дзене! Это стимулирует меня писать новые и новые познавательные статьи!