Notice: Undefined index: user_id in /home/user/www/yurecnt.ru/api/modules/page/class.php on line 96

Notice: Undefined index: img1 in /home/user/www/yurecnt.ru/api/modules/page/index.php on line 105
Python - самообучающийся чат-бот для Телеграмм
Notice: Undefined index: show_reklama in /tmp/cache/yurecnt.ru/1577052b64de0613608ba44f34d14906d864c0c0_0.file.header.html.cache.php on line 59

Notice: Trying to get property 'value' of non-object in /tmp/cache/yurecnt.ru/1577052b64de0613608ba44f34d14906d864c0c0_0.file.header.html.cache.php on line 59

Notice: Undefined index: user_id in /tmp/cache/yurecnt.ru/9fde22674bb6637879f39ccf86816e201d140ffd_0.file.index.html.cache.php on line 30

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


Notice: Undefined index: user_id in /tmp/cache/yurecnt.ru/9fde22674bb6637879f39ccf86816e201d140ffd_0.file.index.html.cache.php on line 50

Если вам помогла статья, помогите пожалуйста проекту не умереть =)

Комментарии


Notice: Undefined index: user_id in /tmp/cache/yurecnt.ru/62b979be0073a0eda80c9e3108ae6fbee4c4d623_0.file.comments.html.cache.php on line 31

Notice: Undefined index: js_mod in /tmp/cache/yurecnt.ru/81d2abee5ca5fc7f196c252639898e9201a44ed6_0.file.footer.html.cache.php on line 119

Notice: Trying to get property 'value' of non-object in /tmp/cache/yurecnt.ru/81d2abee5ca5fc7f196c252639898e9201a44ed6_0.file.footer.html.cache.php on line 119
384592