Чат бот на английском: Чат-боты для практики английского – Учим английский язык с чат-ботами: будущее наступило | FluentU

Содержание

Чат-боты для изучения английского языка: ТОП-15 (рейтинг)

При освоении иностранных языков главной проблемой является получение навыка общения, который до недавнего времени нельзя было развить самостоятельно, без помощи учителя. Однако в настоящий момент благодаря чатам для изучения английского языка это стало возможным. В данной статье будут рассмотрены все популярные сервисы.

Бесплатные грамматические упражнения и тесты онлайн

На этом ресурсе собраны различные упражнения и тесты на английскую грамматику. Все задания распределены по уровням сложности. Контент полностью бесплатный. Перед прохождением тестов рекомендуется прочесть на этом же сайте грамматические правила.

https://englishteststore.net/index.php?option=com_content&view=article&id=11387&Itemid=380%3f

Englex

Сайт для тех, кто хочет изучать английский язык удалённо с преподавателем. Здесь можно пройти общий разговорный курс для начинающих, подготовиться к собеседованию, экзаменам, ЕГЭ. Также можно освоить иностранный по специальным темам: программирование, бизнес, туризм.

https://englex.ru

Learnenglish

Сайт для изучения английского языка, где есть практически всё что угодно:

  1. Подробный разбор грамматики.
  2. Словари по самым разным темам.
  3. Упражнения и тесты.
  4. Аудиофайлы для освоения речи.
  5. Информация о британской культуре.
  6. Чаты, игры, форумы и другие ресурсы.

Контент предоставляется бесплатно.

https://www.learnenglish.de

Pandorabots

Чат-бот, который переводит сообщения в автоматическом онлайн режиме в обе стороны – на английский и на русский, обеспечивая беспроблемную двустороннюю связь. С его помощью учится более 275 тысяч пользователей. Бот имеет несколько тарифов.

https://home.pandorabots.com/home.html

Мицуку

Мицуку – чат-бот, который будет общаться с владельцем на английском языке. Этот робот пять раз проходил тест Тьюринга и неоднократно становился победителем. Поэтому вы не почувствуете разницу между человеком и Мицуки.

https://www.pandorabots.com/mitsuku/

FAIR

FAIR – чат-бот, который станет устно общаться с человеком на английском языке. Программа способна распознавать речь. Разумеется, если у человека правильно поставлено произношение. Робот проходил тест Тьюринга, а также учится новому.

https://www.algebra.com/cgi-bin/chat.mpl

Cleverbot

Cleverbot – чат-бот, который станет устно общаться с человеком на английском языке. Программа способна распознавать речь. По словам самих создателей, робот не всегда адекватно распознаёт контекст общения, поэтому может начать говорить чушь. Использовать с осторожностью.

https://www.cleverbot.com

Existor

Сайт, который предоставляет сразу несколько голосовых ботов для общения на английском языке. Созданы не просто роботы, способные распознавать человеческую речь и контекст разговора, но и обладающие собственным лицом и мимикой. Все боты прошли тест Тьюринга.

https://www.existor.com

Elbot

Элбот – чат-бот, который станет общаться с человеком на английском языке. Робот проходил тест Тьюринга, умеет распознавать контекст общения. У бота создана некоторая индивидуальность: любимые фильмы, музыка и книги. Программу можно скачать на iPhone или Android.

https://www.elbot.com

Fluentu

Сайт, посвящённый английскому языку. Здесь имеются песни, ролики, различные упражнения и многое другое. Можно пополнить словарный запас, изучить грамматику, потренироваться в произношении и восприятии речи на слух.

https://www.fluentu.com/blog/english-rus/английский-чат-бот/»;»https://www.fluentu.com/blog/english-rus/английский-чат-бот/

Hal

Hal – чат-бот для общения с человеком на английском языке. Устанавливается на персональный компьютер на Windows. Общение с роботом может идти устно и письменно. Программа понимает множество тем, запоминает особенности поведения человека.

https://www.zabaware.com/

Johnlennon

Johnlennon – интеллектуальный чат-бот, который ведёт диалог с человеком на английском языке. Особенностью является то, что данное приложение имитирует личность Джона Леннона, его взгляды, привычки, убеждения, мысли.

http://triumphpc.com/johnlennon/index.shtml

P-BOT

Онлайн чат-бот, который постоянно обучается. При желании можно исправить ответ робота и добавить собственный вариант. Программа может рассказать анекдот, сказать комплимент, приложение способно распознавать контекст общения.

http://p-bot.ru/en/

Andychatbot

Энди – чат-бот для изучения английского языка. Робот проходил тест Тьюринга. Поможет подтянуть грамматику и словарный запас. Он будет разговаривать с человеком, чтобы он мог развить своё произношение.

https://andychatbot.com

Hipmunk

Hipmunk – сервис для туристических поездок. Он выбирает оптимальные маршруты для путешествия, учитывая рабочий график пользователя. Может подсказать отель для бронирования. С его помощью можно составлять график мероприятий и встреч.

https://www.hipmunk.com

Бот для Изучения Английского (Обучение без Стресса)

Наверное, каждый из нас хотел бы иметь собственного личного робота! Он мог бы выполнять все наши поручения, даже самые неприятные. Он мог бы готовить вкусные блюда для нас каждый день, делать уборку, водить машину. К сожалению, на данный момент человечество пока не дошло до такого прогресса. Но знаете ли вы, что уже есть роботы, готовые помочь вам учить английский? С роботами вы можете практиковать английский каждый день без стресса и без зависимости от чьего-то расписания. Хотите иметь у себя в пользовании такой бот для изучения английского? Тогда читайте статью, в ней вы найдете описание 5 таких ботов-помощников.

Мы рассмотрим два основных типа ботов, с которыми вы можете практиковать английский язык. Во-первых, чат-боты, созданные специально для изучающих язык. Во-вторых, это аутентичные чат-боты, которые используют носители языка для выполнения множества задач: найти маршрут, заказать такси или узнать, что можно покушать в ресторане. Это поможет вам практиковать использование английского языка в реальных ситуациях.

Как помогает бот для изучения английского?

Персональное обучение

В классе у вас ограниченные возможности практиковать разговор один на один с преподавателем и получать от него обратную связь. Но с роботом-чатом вы получаете индивидуальную английскую практику, как только захотите.

Игровое обучение и мотивация

Многие чат-приложения используют геймификацию (забавные функции и награды, которые заставляют вас чувствовать себя в игре). Например, пользователи выигрывают драгоценные камни или значки, если используют бот для изучения английского. Эти функции делают приложение интересным и забавным. А когда нам интересно, мы лучше обучаемся.

Доступность 24/7

Всякий раз, когда вы чувствуете, что хотите поговорить по-английски, ваш чат-бот будет к вашим услугам. Вы получите мгновенный ответ на любой вопрос и можете чатиться хоть несколько часов подряд.

Нет стресса, нет критики, нет смущения

Бот для изучения английского не будет вас критиковать. Они не закатывают глаза, не качают укоризненно головой, когда вы совершаете ошибку. Кроме того, вы сами не будете чувствовать себя смущенным, если вы неправильно используете или произносите слово. Без критики и стресса вы с удовольствием будете практиковать свой английский.

Чат-боты — приложения для изучения английского языка

Эти чат-боты разрабатываются с использованием искусственного интеллекта (AI). Они могут оценить ваш уровень английского языка и помочь вам быстрее учиться. После нескольких разговоров с вами бот сформирует представление о ваших навыках английского языка и настроит разговоры на ваш уровень.

Чем больше вы практикуете и обновляете информацию в своей памяти, тем лучше он будет понимать ваши сильные и слабые стороны. Также он может предоставить вам индивидуальные уроки. Это отличный способ учиться на своем собственном уровне и в своем темпе.

Mondly

Это бот для изучения английского языка, с которым вы можете общаться в письменной или разговорной форме на смартфоне или компьютере.

Бот для изучения английского - Mondly 2

Когда вы разговариваете с чат-ботом, вам предлагаются несколько возможных ответов. Бот делает намеки, если вы не знаете, как реагировать на то, что он говорит. Вы можете услышать примеры, произнесенные мужским или женским голосом, которые научат вас произношению. Выбирайте тот, который вам больше всего нравится, или дайте свой собственный ответ, проговорив его или написав в окно чата.

Если чат-бот не понял, что вы сказали, он попросит вас повторить. Вы можете выбрать американский английский или британский английский. Помимо английского, бот знает еще много разных языков.

Энди — Andy

Это приложение для чата, разработанное специально для практики разговоров на английском языке. Бот — наполовину наставник, наполовину друг. Вы можете вести с Энди повседневные дискуссии или играть в языковые игры.

Существуют также варианты изучения грамматики английского языка и расширения словарного запаса. Изучающие английский язык от начинающего до продвинутого уровня могут найти объяснения разных грамматических правил. Когда вы выберете тему, Энди даст вам сначала краткую инструкцию, но вы можете попросить дать дополнительные объяснения. В конце каждого урока грамматики проводится тестирование. Если вы допустите ошибку, Энди поправит вас. Приложение также исправляет ошибки при общении.

Когда вы хотите выучить новые слова, Энди даст вам определения новых слов и примеры их использования в реальных контекстах. Если вам просто хочется поболтать, вы всегда можете это сделать. Просто отправляйте сообщения Andy, а потом читайте или слушате ответы.

Реальные английские боты-помощники

Если вы чувствуете, что учитесь более неформально и небрежно, вы можете весело общаться с ботом-помощником. Многие магазины и службы имеют чат-боты, чтобы помочь своим клиентам выполнять повседневные задачи, такие как планирование обедов или покупок.

Когда вы беседуете с этим ботом, темы очень важны для конкретных областей: это может быть ваше хобби или задача, которую вам нужно выполнить. Кроме того, эти помощники много знают в своей области. Это англоговорящие эксперты, подобных которым вы, возможно, не сможете найти никак иначе.

Hipmunk (приложение для планирования каникул)

Это онлайн-туристическая компания, предлагающая путешественникам информацию о рейсах, отелях, прокате автомобилей и т.д. У них также есть чат-боты, с которыми пользователи могут работать в Facebook Messenger, Slack, Skype и электронной почте.

Бот для изучения английского - Hipmunk

Вы можете попросить помощника по планированию виртуального путешествия, названного Hello Hipmunk, всевозможные вопросы о путешествии, например «Какой самый дешевый рейс из Москвы в Лондон в первую неделю июля?» Даже если вы в настоящее время не планируете отпуск, это интересный способ практиковать вопросы на английском языке. Если у Hipmunk нет проблем с пониманием вас, вы на правильном пути!

Вы также можете просто сообщить Hello Hipmunk о своем намерении путешествовать, и бот предложит вам варианты. Если вам необходимо изучить английские предметы первой необходимости, такие как названия мест, даты или цифры, это отличный инструмент для проверки ваших пробелов в знаниях.

Вы даже можете запланировать путешествие в англоговорящую страну!

Встроенные помощники для смартфонов

Если вы хотите ежедневно практиковать разговорный английский, вы можете попробовать виртуального помощника, доступный на вашем смартфоне. Если у вас iPhone, то вы можете общаться с Сири. С телефоном Android у вас есть помощник Google, который поможет вам в повседневных вопросах.

Вы можете спросить Siri или Google Assistant все, включая время последнего поезда до ближайшего города или размер самой большой планеты в нашей солнечной системе. Разумеется. надо делать это на английском языке. Вы также можете делать запросы, например, попросить Сири установить напоминание через 30 минут. Это означает, что вы улучшите свое знание всех видов конструкций предложений.

Чтобы Siri и Google поняли вас, говорить надо четко. Отличный способ проверить, можете ли вы правильно произнести слово и грамотно сформулировать предложение.

Когда вы беседуете с человеком, вы можете испо

Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python / Habr

Сегодня мне в голову пришла мысль: «А почему бы не написать 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:Код отправления сообщений на Dialogflow
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 # Посылаем запрос к ИИ с сообщением от юзера


Этот код будет посылать запрос к Dialogflow, но нам нужно также извлечь ответ. Дописываем парочку строк, итого textMessage выглядит вот так:Полный код функции textMessage
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='Я Вас не совсем понял!')


Немного пояснений. С помощью
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. Там можно посмотреть все сообщения, которые писались и что на них ответил бот (или не ответил). Там же его можно и обучать, говоря боту где он ответил правильно, а где нет.

Надеюсь, статья была Вам полезна, удачи в обучении!

chat-bot — с английского на русский

  • chat'bot — noun A robot that is able to produce intelligent language • • • Main Entry: ↑chat …   Useful english dictionary

  • Internet Relay Chat bot — An IRC bot performing a simple task. An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. An IRC bot differs from a regular client in that… …   Wikipedia

  • Chat Trakan — ชาติตระการ Provinz: Phitsanulok Fläche: 1.586,2 km² Einwohner: 38.646 (2005) Bev.dichte: 24 E./km² PLZ: 65170 …   Deutsch Wikipedia

  • Chat Trakan District — Chat Trakan ชาติตระการ   Amphoe   Amphoe location in Phitsanulok Province …   Wikipedia

  • Bot — or BOT or similar may refer to:In people: * Bernard Bot, Dutch Minister of Foreign AffairsIn places: * Bot, Spain, municipality of the comarca of Terra AltaIn computers: * Alienware Bot, line of budget desktop PCs manufactured by Alienware * Bots …   Wikipedia

  • Bot conversacional — Saltar a navegación, búsqueda Un bot de charla o bot conversacional es un programa que simula mantener una conversación con una persona. Habitualmente, la conversación se establece a través de un teclado, aunque también hay modelos que disponen… …   Wikipedia Español

  • Bot herder — Bot herders are crackers who use automated techniques to scan specific network ranges and find vulnerable systems, such as machines without current security patches, on which to install their bot program. The infected machine then has become one… …   Wikipedia

  • Bot — (de robot) es un programa que realiza en línea funciones normalmente realizadas por humanos. En sitios wiki como este, un bot puede realizar funciones rutinarias de edición. En sitios de conversación en línea (chat o IRC), un bot puede simular… …   Enciclopedia Universal

  • Chat log — A chat archive is an archive of transcripts from online chat and instant messaging conversations. Many chat or IM applications allow for the client side archiving of online chat conversations, while a subset of chat or IM clients (i.e., Google… …   Wikipedia

  • Bot — Para el municipio de Tarragona, véase Bot (localidad). Para los Bots de Wikipedia, véase Wikipedia:Bot. Un bot (abreviatura de robot) es un programa informático que realiza funciones muy diversas, imitando el comportamiento de un humano. En… …   Wikipedia Español

  • bot herder — n. A hacker who controls a large number of compromised computers for malicious purposes. Also: bot herder, botnet herder. bot herd n. bot herding pp. Example Citations: Attackers use automated techniques to scan specific network ranges and… …   New words

  • Очень простой чат-бот для Telegram для самых маленьких / Rusonyx corporate blog / Habr

    Есть 100500 способов и инструментов создать простого serverless чат-бота для телеграм. А наш все-равно будет проще, хотя бы по числу кликов в интерфейсе. Сам бот будет написан на Python, а выполнятся будет на serverless движке Swifty.

    Как и всегда в наших гайдах, никаких особых знаний питона или других языков программирования вам не потребуется. Нужно лишь умение запустить кое-что в командной строке. Если вы находитесь в России, то еще и VPN на вашем компьютере, так как потребуется достучаться до сервера телеграм.

    Пока все стандартно — зарегистрируйте бота


    Чтобы создать нового бота, нужно попросить другого бота это сделать. Откройте телеграм и найдите там бота @BotFather или откройте ссылку. Далее, наберите /newbot и следуйте инструкциям БотПапы. Для минимальной настройки вам нужно только дать боту display name и username. После создания бота вам будут выданы access token и URL. Сохраните их где-нибудь.

    Бот


    Для начала вам нужно зарегистрироваться в Swifty — нашей серверлесс платформе. Сделать это можно здесь. Затем зайдите в панель управления и сделайте следующее:
    1. Нажмите Functions -> New Function. Перейдите на вкладку From repo (Templates) и выберите репозиторий github.com/swiftycloud/swifty.demo, если он не выбран по-умолчанию. Это наш собственный репозиторий, в котором мы храним шаблоны функций.
    2. Выберите шаблон Simple Telegram Chatbot (python) и нажмите Next.
    3. Введите имя своего бота, например, swifty_bot (далее я буду использовать это название для ее обозначения) и нажмите Create.

    Чтобы телеграм мог позвать функцию бота, нужно создать ей API ссылку. Перейдите на вкладку Triggers, нажмите Add Trigger -> REST API (URL). Сохраните получившуюся ссылку.

    Затем, вам нужно дать функции бота доступ к access token, который вы получили от telegram. В Swifty есть специальная сущность — Account, которая позволяет безопасно хранить любые данные, например, связки логин-пароль или токены.

    1. Выберите Accounts -> Create Account. Используйте тип Telegram API, имя SWIFTYBOT (именно в uppercase) и токен, который вы получили от telegram.
    2. Выберите Functions -> swifty_bot -> Access -> Add. Выберите Accounts и аккаунт SWIFTYBOT. Теперь ваша функция имеет безопасный доступ к вашему access token.

    Update. Обратите внимание! Имя SWIFTYBOT для аккаунта прописано в коде функции вот здесь:
    BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN'))

    Если вы хотите использовать другое имя аккаунта, то вам нужно поменять его и в коде функции. Например, если имя вашего аккаунта MYOWNBOT, то ваш код будет выглядеть так:
    BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN'))

    Как формируется имя переменной окружения ACC_TELEGRAMMYOWNBOT_TOKEN, через которую функция получает свойство аккаунта, ровно как и любого другого ресурса в Swifty? Здесь:
    • ACC — идентификатор, что вы хотите обратиться к ресурсу типа Account;
    • TELEGRAM — тип аккаунта;
    • MYOWNBOT — имя аккаунта;
    • TOKEN — свойство аккаунта;

    Код получившейся функции:
    import json
    import os
    import sys
    import requests
    
    BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN'))
    
    def Main(req):
        try:
            data = json.loads(req.body.encode())
            message = str(data["message"]["text"])
            chat_id = data["message"]["chat"]["id"]
            first_name = data["message"]["chat"]["first_name"]
    
            response = "Please /start, {}".format(first_name)
    
            if "start" in message:
                response = "Hello {}! Type /help to get list of actions.".format(first_name)
                
            if "help" in message:
                response = "/about - get information about Swifty"
                
            if "about" in message:
                response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n"
                                    "Start creating your backend at\n"
                            "https://swifty.cloud")
    
            data = {"text": response.encode("utf8"), "chat_id": chat_id}
            url = BASE_URL + "/sendMessage"
            requests.post(url, data)
    
        except Exception as e:
            print(e)
    
        return {"statusCode": 200}, None

    Это простейший бот, который умеет отвечать на команды /start, /help и /about. Можете также добавить любые свои команды и расширить его функционал по-желанию.

    Подключаем функцию к боту


    Теперь вам нужно сказать телеграму, по какой ссылке находится ваш бот. Вам нужно открыть командную строку и выполнить в ней следующую команду. При этом YOUR_API_URL нужно заменить на API ссылку, которую вы скопировали ранее, а YOUR_ACCESS_TOKEN на токен.
    curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL

    Если все прошло хорошо, то вы увидите примерно следующее:

    {
      "ok": true,
      "result": true,
      "description": "Webhook was set"
    }

    Если вы находитесь в России, то все пройдет хорошо только в том случае, если у вас включен VPN.

    Можно проверять


    Найдите в telegram бота с вашим именем и попробуйте выполнить пару команд, например, /start или /about. Если все работает — поздравляем. Если нет — пожалуйтесь здесь в комментарии или в нашем slack канале.

    Как работает такой готовый бот можно посмотреть, если найти в телеграме нашего бота с именем swifty_test_bot. Спасибо.

    Make your ideas come app, как говорят в swifty.cloud.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *