|
|
|
|
|
|
|
|
|
Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python. Telegram разработка ботаᐈОт 50$ | Разработка чат Бота Telegram | Быстрое создание Бота Телеграм для бизнесаОбразование: КПИ (Компьютерные и робототехнические системы). Люблю спорт и клиент-серверную архитектуру:) Скилы: Python: Flask, Django(base), aiohttp(base), pytg, pyQt5, telebot/pyTelegramBotApi, bs4, vk, threading, selenium, etc. C++: Cocos2d-x, Qt(base). Php. Base front-end skills, experience with bootstrap4. Base angular. Base knowlege of bash. Больше 3х лет назад занялся разработкой ботов для Вконтакте и пол года спустя - для telegram. Три года проработал на фрилансе в сфере разработки ботов, также работал с веб студиями на партнерских условиях. Собрал команду и решил открыть свою небольшую студию разработки ботов - Momentum bots. https://yourash.github.io/ Образование: КПИ (Системная инженерия) Люблю рок-концерты и фестивали. Интересуюсь футболом и гитарой. Скилы: C, Qt C++, C# (Base), PHP(Base), Python3 (Flask, Django, PyTelegramBot, PyQt5, Pandas, NumPy, Matplotlib, Web scraping, web2py, keras, TensorFlow), MySQL, MongoDB, Travis CI, Bootstrap4 Образование: КПИ (программная инженерия, кафедра технической кибернетики). Мечтаю стать Ричардом из "Силиконовой долины" в сфере data science) Скилы:Python: Django(base), numpy, pandas, scipy, matplotlib telebot/pyTelegramBotApi, bs4, vk, threading, selenium, etc. C#: ASP.NET, WPF. Java(base). Experience with kali, ubuntu, mint. Knowing principles of OOP and SEO. momentum-bots.top Разработка ботов в Telegram | Specialcase blogРазработка ботов в Telegram — один из методов автоматизации онлайн бизнес-процессов, использующих возможности бесплатного мессенджера Телеграмм для взаимодействия с клиентами. Бот — это специальная программа, управляемая с помощью команд, вводимых пользователем Telegram. В зависимости от вида бизнеса и задач, требующих решения с помощью средств автоматизации, боты могут выполнять самые разные действия: от предоставления справочной информации — до более сложного функционала, например, оформления и подтверждения заказов. Разработка чат-ботов для Telegram возможна с помощью различных программных средств. Для решения простейших задач используются сервисы, позволяющие сгенерировать программный код для бота без наличия знаний в программировании. Естественно, и работоспособность таких программ оставляет желать лучшего. Для создания эффективных и надежных ботов для Телеграмм и некоторых других мессенджеров, поддерживающих использование ботов, обратитесь к программистам, специализирующимся на создании подобных приложений. Как раз такие есть в нашем коллективе. Зачем нужны боты?Telegram bot решает большой перечень бизнес-задач. Наиболее распространенные среди них:
Фактически, разработка Telegram бота способна решить намного больший перечень бизнес-задач. Грамотный подбор параметров и реализация программы способны повысить конверсию любого бизнеса, работающего онлайн. При этом, создание бота, даже с самым широким функционалом стоит для собственника бизнеса дешевле разработки мобильных приложений или других решений, предлагающий идентичный набор возможностей.Заказ разработки бота предоставляет такие преимущества:
Ответы на часто задаваемые вопросыРазработка ботов в Telegram часто вызывает массу вопросов у владельцев бизнеса. Мы собрали самые популярные из них, и попросили наших программистов ответить на них максимально доступным языком.
Запуск бота — дополнительный инструмент автоматизации бизнес-процессов. Он поможет снизить нагрузку на ваших подчиненных, упростит работу компании, позволит принимать решения основываясь на аналитике — обобщая, приносить пользу вашему бизнесу. Главное — правильно сформулировать требования к функционалу бота и выбрать компетентных исполнителей решения.
Достаточно придуманного вами сценария взаимодействия. Все остальные вопросы решаются походу работы.
Цена создания продукта рассчитывается индивидуально. На нее влияет функционал, вкладываемый вами и сложность его реализации с точки зрения программирования. Для срочных заказов — время, отводимое на работу, запуск и багчекинг бота.
Полностью легально и одобрено. Чтобы начать взаимодействие с ботом пользователь добавляет его в лист контактов. Потому и предоставляемая ботом информация воспринимается с большим уровнем доверия.
Настолько, насколько может быть безопасна бизнес-информация в сети. Шифрование Телеграмма и используемые нами технологии — гарантия того, что важные для вас данные не станут достояние конкурентов. Оплата также настроена через специальные каналы, гарантирующие безопасность.
Теоретически количество переписок неограниченно. Фактически — чем больше запросов, тем больше будет задержка на ответ. Создаваемые нами боты поддерживают одновременное общение с 500 пользователей с моментальной доставкой ответов на их запросы. Как заказать бота?Для заказа разработки бота свяжитесь с нами, оставьте заявку на сайте или по телефону +38 (066) 463—58—72. budovskiy.com.ua Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python / ХабрСегодня мне в голову пришла мысль: «А почему бы не написать Telegram чат-бота с ИИ, которого потом можно будет обучать?»Сейчас сделать это совсем легко, поэтому, недолго думая, я принялся к написанию кода. Языком я выбрал Python, т.к. на нём легче всего работать с подобного рода приложениями.Итак, для создания Telegram чат-бота с ИИ нам потребуется: 1. API Telegram. В качестве обёртки я взял проверенную библиотеку python-telegram-bot 2. API ИИ. Выбрал я продукт от Google, а именно Dialogflow. Он предоставляет довольно-таки неплохое бесплатное API. Обёртка Dialogflow для Python Шаг 1. Создаём бота в TelegramПридумываем имя нашему боту и пишем @botfather. После создания бота нам придёт API токен, который желательно бы где-то сохранить, т.к. в дальнейшем он нам понадобится.Шаг 2. Пишем основу ботаСоздаём папку Bot, в которой потом создаём файл bot.py. Здесь будет код нашего бота. Открываем консоль и переходим в директорию с файлом, устанавливаем python-telegram-bot.pip install python-telegram-bot --upgrade После установки мы уже можем написать «основу», которая пока что будет просто отвечать однотипными сообщениями. Импортируем необходимые модули и прописываем наш токен API:Код настроек и импорта# Настройки from telegram.ext import Updater, CommandHandler, MessageHandler, Filters updater = Updater(token='ВАШ API КЛЮЧ') # Токен API к Telegram dispatcher = updater.dispatcher Далее напишем 2 обработчика команд. Это callback-функции, которые будут вызываться тогда, когда будет получено обновление. Напишем две таких функции для команды /start и для обычного любого текстового сообщения. В качестве аргументов туда передаются два параметра: bot и update. Bot содержит необходимые методы для взаимодействия с API, а update содержит данные о пришедшем сообщении.Код callback'ов# Обработка команд def startCommand(bot, update): bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?') def textMessage(bot, update): response = 'Получил Ваше сообщение: ' + update.message.text bot.send_message(chat_id=update.message.chat_id, text=response) Теперь осталось лишь присвоить уведомлениям эти обработчики и начать поиск обновлений. Делается это очень просто:Код хендлеров# Хендлеры start_command_handler = CommandHandler('start', startCommand) text_message_handler = MessageHandler(Filters.text, textMessage) # Добавляем хендлеры в диспетчер dispatcher.add_handler(start_command_handler) dispatcher.add_handler(text_message_handler) # Начинаем поиск обновлений updater.start_polling(clean=True) # Останавливаем бота, если были нажаты Ctrl + C updater.idle() Итого, полная основа скрипта выглядит вот так:Код полной основы бота# Настройки from telegram.ext import Updater, CommandHandler, MessageHandler, Filters updater = Updater(token='ВАШ API ТОКЕН') # Токен API к Telegram dispatcher = updater.dispatcher # Обработка команд def startCommand(bot, update): bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?') def textMessage(bot, update): response = 'Получил Ваше сообщение: ' + update.message.text bot.send_message(chat_id=update.message.chat_id, text=response) # Хендлеры start_command_handler = CommandHandler('start', startCommand) text_message_handler = MessageHandler(Filters.text, textMessage) # Добавляем хендлеры в диспетчер dispatcher.add_handler(start_command_handler) dispatcher.add_handler(text_message_handler) # Начинаем поиск обновлений updater.start_polling(clean=True) # Останавливаем бота, если были нажаты Ctrl + C updater.idle() Теперь мы можем проверить работоспособность нашего нового бота. Вставляем на 2 строке наш API токен, сохраняем изменения, переносимся в консоль и запускаем бота:python bot.py После запуска пишем ему. Если всё настроено правильно, то Вы увидите вот это:Основа бота написана, приступаем к следующему шагу! P.s. не забывайте выключить бота, для этого вернитесь в консоль и нажмите Ctrl + C, подождите пару секунд и бот успешно завершит работу. Шаг 3. Настройка ИИВ первую очередь, идём и регистрируемся на Dialogflow (просто входим с помощью своего Google аккаунта). Сразу после авторизации мы попадаем в панель управления.Жмём на кнопку Create agent и заполняем поля по усмотрению (это никакой роли не сыграет, это нужно лишь для следующего действия). Жмём на Create и видим следующую картину: Расскажу, почему созданный нами ранее «Агент» никакой роли не играет. Во вкладке Intents есть «команды», по которым работает бот. Сейчас он умеет лишь отвечать на фразы типа «Привет», и если не понимает, то отвечает «Я вас не понял». Не сильно впечатляет. После создания нашего пустого агента, у нас появилась куча других вкладок. Нам нужно нажать на Prebuilt Agents (это уже специально обученные агенты, которые имеют множество команд) и из всего представленного списка выбрать Small Talk. Наводим на него и жмём Import. Далее ничего не меняя, жмём Ok. Агент импортировался и теперь мы можем его настроить. Для этого в левом верхнем углу жмём на шестерёнку возле Small-Talk и попадаем на страницу настроек. Теперь мы можем изменить имя агента, как захотим (я оставляю как было). Меняем часовой пояс и во вкладке Languages проверяем, чтобы был установлен русский язык (если не установлен, то ставим). Возвращаемся на вкладку General, спускаемся немного вниз и копируем Client access token Теперь наш ИИ полностью настроен, можно возвращаться к боту. Шаг 4. Собираем всё вместеИИ готов, основа бота готова, что дальше? Дальше нам нужно скачать обёртку API от Dialogflow для питона.pip install apiai Установили? Возвращаемся к нашему боту. Добавляем в нашу секцию «Настройки» импорт модулей apiai и json (нужно, чтобы в будущем разбирать json ответы от dialogflow). Теперь это выглядит вот так:Код обновлённых настроек# Настройки from telegram.ext import Updater, CommandHandler, MessageHandler, Filters import apiai, json updater = Updater(token='ВАШ API КЛЮЧ') # Токен API к Telegram dispatcher = updater.dispatcher Переходим к функции textMessage (которая отвечает за получение любого текстового сообщения) и посылаем полученные сообщения на сервера Dialogflow:Код отправления сообщений на Dialogflowdef textMessage(bot, update): request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow request.lang = 'ru' # На каком языке будет послан запрос request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота) request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера Этот код будет посылать запрос к Dialogflow, но нам нужно также извлечь ответ. Дописываем парочку строк, итого textMessage выглядит вот так:Полный код функции textMessagedef textMessage(bot, update): request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow request.lang = 'ru' # На каком языке будет послан запрос request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота) request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера responseJson = json.loads(request.getresponse().read().decode('utf-8')) response = responseJson['result']['fulfillment']['speech'] # Разбираем JSON и вытаскиваем ответ # Если есть ответ от бота - присылаем юзеру, если нет - бот его не понял if response: bot.send_message(chat_id=update.message.chat_id, text=response) else: bot.send_message(chat_id=update.message.chat_id, text='Я Вас не совсем понял!')Немного пояснений. С помощью request.getresponse().read() получается ответ от сервера, закодированный в байтах. Чтобы декодировать его, просто применяем метод decode('utf-8') и после этого «заворачиваем» всё в json.loads() чтобы распарсить json ответ.Если ответа нет (точнее, json приходит всегда, но не всегда есть сам массив с ответом ИИ), то это означает, что Small-Talk не понял пользователя (обучением можно будет заняться позже). Поэтому если «ответа» нет, то пишем пользователю «Я Вас не совсем понял!». Итого, полный код бота с ИИ будет выглядеть вот так: Полный код бота с ИИ# Настройки from telegram.ext import Updater, CommandHandler, MessageHandler, Filters import apiai, json updater = Updater(token='ВАШ API ТОКЕН') # Токен API к Telegram dispatcher = updater.dispatcher # Обработка команд def startCommand(bot, update): bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?') def textMessage(bot, update): request = apiai.ApiAI('ВАШ API ТОКЕН').text_request() # Токен API к Dialogflow request.lang = 'ru' # На каком языке будет послан запрос request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота) request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера responseJson = json.loads(request.getresponse().read().decode('utf-8')) response = responseJson['result']['fulfillment']['speech'] # Разбираем JSON и вытаскиваем ответ # Если есть ответ от бота - присылаем юзеру, если нет - бот его не понял if response: bot.send_message(chat_id=update.message.chat_id, text=response) else: bot.send_message(chat_id=update.message.chat_id, text='Я Вас не совсем понял!') # Хендлеры start_command_handler = CommandHandler('start', startCommand) text_message_handler = MessageHandler(Filters.text, textMessage) # Добавляем хендлеры в диспетчер dispatcher.add_handler(start_command_handler) dispatcher.add_handler(text_message_handler) # Начинаем поиск обновлений updater.start_polling(clean=True) # Останавливаем бота, если были нажаты Ctrl + C updater.idle() Сохраняем изменения, запускаем бота и идём проверять:Вот и всё! Бот в 30 строк с ИИ написан! Шаг 5. Заключительная частьДумаю, Вы убедились, что написать бота с ИИ – дело 10 минут. Осталось лишь теперь его учить и учить. Делать это, кстати, можно во вкладке Training. Там можно посмотреть все сообщения, которые писались и что на них ответил бот (или не ответил). Там же его можно и обучать, говоря боту где он ответил правильно, а где нет.Надеюсь, статья была Вам полезна, удачи в обучении! habr.com Python Telegram Bot - примеры разработки Телеграмм бота на ПитонеPython – язык программирования высокого уровня, который появился сравнительно недавно. Однако его простота и легкий синтаксис уже сделали язык лидером в программировании. Многие предпочитают Python для создания Telegram Bot. Что требуется для создания ботаСейчас боты крайне распространены, так как позволяют быстро и удобно получать информацию, музыку, книги. Даже платежная система Qiwi, имеет свой бот @qiwi_bot.Телеграмм бот на Python – не такая уж и сложная задача. Однако необходимо понять, как работают программы на сервере. Нам понадобятся:
Последние два позволят развернуть бот в сети. Создаем ботаПерейдите в Telegram и найдите @Botfather. Это инструмент для создания новых ботов. Зайдите в него и введите имя бота для пользователей. Затем укажите имя для мессенджера. Здесь же вы можете указать описание бота, определить для него команды. После того, как робот в мессенджере создан, он понимает только три предопределенные: /start, /help и /settings. Остальные следует определить в @Botfather. В результате вы получите токен – символьно-числовую последовательность, уникальную для каждого бота Telegram. Именно с помощью этого идентификатора отправляются запросы на сайт https://api.telegram.org. Каждый запрос имеет вид: https://api.telegram.org/bot507226896:AAGT_fsEO1milOkqbNp-VolQDJ0tGjaPvD7/КОМАНДА Методы описаны в документации к Telegram Bot API и являются стандартными. Задача программиста при написании бота заключается в создании кода, который получает сообщения от пользователя и отправляет команду боту на выполнение действий. Запрос может выглядеть следующим образом: https://api.telegram.org/ bot507226896:AAGT_fsEfg1milOkqbNp-VolQDJ0tGjaPvD7/sendMessage?chat_id=391911270&text=Hello Это пример отправки сообщения для клиента Telegram. Обязательно необходимо знать параметр id_chat – это идентификатор чата. Узнать его можно из ответа, который присылает сервер, который имеет вид JSON-строки: {«ok»:true,»result»:{«message_id»:4,»from»:{«id»:507226896,»is_bot»:true,»first_name»:»Anna»,»username»:»Annatuola_bot»},»chat»:{«id»:391911270,»first_name»:»Irina»,»last_name»:»12345678″,»type»:»private»},»date»:1514900499,»text»:»Hello»}} По сути программа отправляет запросы, считывает ответы и выполняет парсинг полученной строки. В зависимости от сообщений пользователя выполняются те или иные действия. Пишем бота для Telegram на PythonСначала создадим программный код. Необходимо установить Python и среду разработки.
Откройте среду программирования IDLE. Это делается через пуск, в главном меню ищите раздел с установленным Python и выбирайте нужную команду. Отроется окно. Создайте в нем новый файл и вставьте программный код бота Telegram на Python. import requests import datetime #Установка адреса бота url = https://api.telegram.org/bot507226896:AAGT_fsEO1milOkqbNp-VolQDJ0tGjaPvD7/ #Поиск последнего сообщения из массива чата с пользователем Telegram. def lastUpdate(dataEnd): res = dataEnd['result'] totalUpdates = len(res) - 1 return res[totalUpdates] #Получение идентификатора чата Telegram def getChatID(update): chatID = update['message']['chat']['id'] return chatID #отправка запроса sendMessage боту def sendResp(chat, value): settings = {'chat_id': chat, 'text': value} resp = requests.post(url + 'sendMessage', data=settings) return resp #Get-запрос на обновление информации к боту. Результат – строка json. Метод .json позволяет развернуть ее в массив def getUpdatesJson(request): settings = {'timeout': 100, 'offset': None} response = requests.get(request + 'getUpdates', data=settings) return response.json() #Главная функция def main(): chatID = getChatID(lastUpdate(getUpdatesJson(url))) sendResp(chatID, 'Ваше сообщение') updateID = lastUpdate(getUpdatesJson(url))['update_id'] #Бесконечный цикл, который отправляет запросы боту на получение обновлений while True: #Если обновление есть, отправляем сообщение if updateID == lastUpdate(getUpdatesJson(url))['update_id']: sendResp(getChatID(lastUpdate(getUpdatesJson(url))), 'проба') updateID += 1 sleep(1) #Запуск главной функции if __name__ == '__main__': main() Python чувствителен к пробелам и табуляции, поэтому выполните Format-Untabify Region. Запустите здесь же в среде разработки. В созданном боте Telegram должно появиться сообщение «Ваше сообщение Проба». Разворачиваем проект на сервереСамое сложное – заставить наш проект для Telegram работать на сервере. Мы воспользуемся бесплатным сервисом Heroku.
Далее последовательно набирайте в командной строке git init Вы увидите сообщение об инициализации пустого репозитория. git add . Внимание, после add пробел и точка! Добавляет файлы в локальный депозиторий. Выполнение команды занимает некоторое время, необходимо подождать. git commit -m ‘short message that describe changes to commit’Фиксирует изменения в репозитории.git push -u https://github.com/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ИМЯ_РЕПОЗИТОРИЯПозволит развернуть проект на github. Затем выполните команды: heroku create имя проекта В результате вы получите адрес вашего проекта, например, runbot.herokuapp.com. git push heroku master Ждем окончания процесса компиляции проекта. heroku ps:scale web=1heroku open Последняя команда откроет ваше приложение на сервере. Бот на Питоне для Телеграмма начнет свою работу. На сайте с документацией можно посмотреть другие Telegram Bot примеры на Python. telegramzy.ru
|