Создание телеграм-бота с веб-интерфейсом при помощи python и replit

Признавая сообщения, которые мы уже видели

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

Измените наш бот следующим образом:

Добавьте дополнительное Смещение Параметр на нашу функцию getupdate. Если это указано, мы передадим его на API Telegram, чтобы указать, что мы не хотим получать сообщения с меньшими идентификаторами, чем это. Модифицированная функция должна выглядеть так:

def get_updates(offset=None):
    url = URL + "getUpdates"
    if offset:
        url += "?offset={}".format(offset)
    js = get_json_from_url(url)
    return js

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

def get_last_update_id(updates):
    update_ids = []
    for update in updates:
        update_ids.append(int(update))
    return max(update_ids)

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

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

def echo_all(updates):
    for update in updates:
        try:
            text = update
            chat = update
            send_message(text, chat)
        except Exception as e:
            print(e)

Обновите код в Главная () Так что это выглядит так:

def main():
    last_update_id = None
    while True:
        updates = get_updates(last_update_id)
        if len(updates) > 0:
            last_update_id = get_last_update_id(updates) + 1
            echo_all(updates)
        time.sleep(0.5)

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

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

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

Тестирование

Теперь можно протестировать бота. Запустите его.

Пошлите ему команду /start .

Ура, бот работает!

Но это не конец. Надо создать бота, который сообщает пользователю его ежедневный биоритм. Для этого следует применить команду /start. С ее помощью при запуске чата можно получить данные о дне рождения пользователя. Затем надо создать функцию для обработки новой команды /biorhythm, чтобы отправить ответ пользователю с его личным биоритмом.

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

# function to handle the /start command
def start(update, context):
    first_name = update.message.chat.first_name
    update.message.reply_text(f"Hi {first_name}, nice to meet you!")
    start_getting_birthday_info(update, context)

В параметре update можно найти полезную информацию о пользователе, например, его имя.

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

STATE = None

BIRTH_YEAR = 1
BIRTH_MONTH = 2
BIRTH_DAY = 3

Теперь необходимо реализовать функцию start_getting:_birthday_info(), она вызывается с помощью команды start(). После запуска вы получите информацию о дне рождения от пользователя.

def start_getting_birthday_info(update, context):
    global STATE
    STATE = BIRTH_YEAR
    update.message.reply_text(f"I would need to know your birthday, so tell me what year did you born in...")

Для переменной STATE устанавливается значение BIRTH_YEAR, чтобы после ответа пользователя было понятно, что вопрос касался года рождения. Затем отправляется сообщение, чтобы узнать год рождения.

Теперь пользователь ответит обычным текстом, поэтому нужно изменить функцию text().

def text(update, context):
    global STATE

    if STATE == BIRTH_YEAR:
        return received_birth_year(update, context)

    if STATE == BIRTH_MONTH:
        return received_birth_month(update, context)

    if STATE == BIRTH_DAY:
        return received_birth_day(update, context)

В функции text() необходимо понять, на какой вопрос отвечает пользователь, используя переменную STATE. После чего остается вызвать функцию для обработки каждого ответа.

Эти функции можно записать так:

def received_birth_year(update, context):
    global STATE

    try:
        today = datetime.date.today()
        year = int(update.message.text)
        
        if year > today.year:
            raise ValueError("invalid value")

        context.user_data = year
        update.message.reply_text(f"ok, now I need to know the month (in numerical form)...")
        STATE = BIRTH_MONTH
    except:
        update.message.reply_text("it's funny but it doesn't seem to be correct...")

def received_birth_month(update, context):
    global STATE

    try:
        today = datetime.date.today()
        month = int(update.message.text)

        if month > 12 or month < 1:
            raise ValueError("invalid value")

        context.user_data = month
        update.message.reply_text(f"great! And now, the day...")
        STATE = BIRTH_DAY
    except:
        update.message.reply_text("it's funny but it doesn't seem to be correct...")

def received_birth_day(update, context):
    global STATE

    try:
        today = datetime.date.today()
        dd = int(update.message.text)
        yyyy = context.user_data
        mm = context.user_data
        birthday = datetime.date(year=yyyy, month=mm, day=dd)

        if today - birthday < datetime.timedelta(days=0):
            raise ValueError("invalid value")

        context.user_data = birthday
        STATE = None
        update.message.reply_text(f'ok, you born on {birthday}')

    except:
        update.message.reply_text("it's funny but it doesn't seem to be correct...")

Когда получен год рождения пользователя, остается проверить, допустимое ли это значение. Если да, то оно сохраняется в словаре context.user_data[]. Продолжайте устанавливать значения для переменной STATE и задавать следующие вопросы.

Когда зададите последний вопрос и будете знать день рождения, создайте переменную даты и сохраните ее в context.user_data[] словаре.

Если пользователь вводит недопустимое значение, то получает ответ, что оно неверно. Значение переменной STATE не меняется, поэтому пользователь застревает на этом вопросе, пока не ответит правильно.

Эпилог

Как известно человек боится того чего не знает, не понимает, не может предсказать. Чтобы страха и паники не было нужна достоверная и доступная информация, а также осмысление ситуации насколько возможно широко.

Приведу пример, цифра 10 000 сама по себе не страшна, но что будет если мы приправим ее небольшим контекстом, 10 000 смертей, выглядит страшнее, не правда ли? Если дальше продолжить эксперимент с добавлением контекста то можно дойти до ужасающих результатов, допустим “10000 новых смертей от коронавируса в России в день” и тогда мы получим то, что называется паника, которое настолько сильна, что подавляет развитие разума и логического мышления, заменяя его подавляющим чувством тревоги и неистового возбуждения, совместимого с животной реакцией «дерись или беги».
Именно поэтому стоит критически анализировать информацию, особенно в наше время.

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

Спасибо тем кто дочитал до конца за внимание. Приятного кодинга!

Часть 2 Написание кода

sudo apt-get install python python-pip

Далее воспользуемся системой управления пакетами PIP, которая используется для установки и управления программными пакетами, и установим библиотеку PyTelegramBotAPI (Telebot):

Создадим логику работы нашего бота. Используя полноценный IDE или простой текстовый редактор создадим файл ourbot.py и заполним его необходимой логикой.

import telebot 

bot = telebot.TeleBot(‘851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM’)

Теперь создадим метод, для получения сообщений.

Возможности PyTelegramBotAPI позволяют отправлять боту аудио (content_types=[‘audio’), видео (content_types=[‘video’), документы (content_types=[‘document’), текст (content_types=[‘text’), географический адрес (content_types=[‘location’), данные контакта (content_types=[‘contact’) и стикеры (content_types=[‘sticker’).  Мы, для простоты опыта, будем общаться с ботом только текстом:

@bot.message_handler(content_types=)
def handle_text_messages(message):

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

Видео курсы по схожей тематике:

UX/UI Design Стартовый

Артур Рыгус

UX/UI Design мобильных приложений

Владислав Шевченко

Создаем игру типа “Pokémon Go“

Роман Самчук

    if message.text == «Привет»:
        bot.send_message(message.from_user.id, «Привет»)
    elif message.text == «Кто ты?»:
        bot.send_message(message.from_user.id, «Я тестовый чатбот для учебного примера.»)
    elif message.text == «Как тебя зовут?»:
        bot.send_message(message.from_user.id, «Меня зовут MyFirstTestBot.»)
    elif message.text == «Что ты умеешь?»:
        bot.send_message(message.from_user.id, «Я умею отвечать на несколько простых вопросов — кто я, как меня зовут и что я умею делать.»)
    else:
        bot.send_message(message.from_user.id, «Я тебя не понимаю. Напиши что-то другое.»)

После тела метода, обрабатывающего наши запросы к боту, добавим вызов метода:

bot.polling(none_stop=True, interval=0)

Задачей этого метода является создание потока, в котором бот отправляет запросы на сервер, уточняя таким способом, не писал ли ему кто-то сообщение. Параметр none_stop: False означает, что наша программа будет продолжать отправлять запросы на сервер после получения сообщения об ошибке от сервера Telegram.

Сохраним наш код:

Мы можем протестировать работу нашего бота, запустив его код в той IDE, в которой мы писали. И написав нашему боту в мессенджере.

Все работает.

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

Вопросы заливки нашего простого бота на сервер мы рассмотрим в следующей статье.

Начало. Создание бота и добавление библиотек.

Для начала добавим библиотеку pyTelegramBotAPI обычным пипом в cmd.

А также загрузим простенькую библиотеку для работы с Excel. (ЧИТАЕТ ТОЛЬКО .xls!!!)

Время импортировать все необходимые библиотеки.

Далее нужно создать самого бота в телеграме. Для этого пройдёмся по следующим шагам:

  1. Найти в поиске телеграма @BotFather

  2. Написать ему команду /newbot

  3. Первым сообщение отправить имя бота, а вторым его юзернейм (который пишется с @). Он должен быть уникальный и оканчиваться на Bot или _bot

После этих шагов батя пришлёт нам ссылку на нашёго бота и его API.

Нужно скопировать всю строку, которая на скрине закрыта красным прямоугольником

Если коротко, то API — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это». (Более подробная инфа тут API)

Бот лайкающий посты на сайте.

Последовательность действий у нас следующая.

  1. Зайти на сайт under-prog.ru (открыть браузер)
  2. Пройтись по каждому из постов.
  3. Нажать кнопку лайк, если она не нажата.
  4. Закрыть браузер.

Первый пункт мы уже сделали, перейдем ко второму.

Пройтись по каждому из постов.

Зайдите на сайт, и нажмите кнопку F12.

У вас откроются инструменты разработчика. Изучив разметку, мы понимаем, что все посты находятся в теге article.

Сейчас нам нужно получить ссылку, на каждый пост. Для этого будем использовать этот css селектор.

Данный селектор указывает:

  • На элемент с тегом a
  • который находится находится внутри тега h2 с классом entry-title
  • тот, в свою очередь, находится внутри тега header с классом entry-header
  • тег header находится внутри тега div с классом blog-entry-content
  • тот, находится в теге div
  • тег div находится внутри тега article

Теперь, дополним бота.

Разберем новую функцию.

Данная функция ищет элементы по css селектору. В результате своей работы, она возвращает массив элементов.

В-общем, мы из этого массива, достали первый элемент, и при помощи функции get_attribute(), получили значение атрибута href (ссылка на пост).

И вывели его на экран.

Запустите скрипт, в консоли должна появится ссылка на первый пост.

Если закинуть массив элементов в цикл, то получится извлечь ссылки на все посты.

Отлично, ссылки на все посты получены, осталось всем этим постам, поставить лайк.

Нажать кнопку лайк, если она не нажата

Сначала перекопируем наши ссылки в отдельный массив. Замените это:

На это:

Далее напишем код, отвечающий за нажатие кнопки лайк.

Разберем данные строки.

Данная строка ищет кнопку с помощью css_селектора, и получает строку с названиями классов нашей кнопки.

Далее, при помощи функции find (стандартная функция python), мы получаем индекс подстроки ‘wp_ulike_btn_is_active‘, если не удалось найти подстроку, функция find возвращает -1, этим мы и воспользовались в нашем условии. Т.е. если атрибут ‘class‘ не содержит подстроку ‘wp_ulike_btn_is_active‘, то.

Кликаем по кнопке лайк.

Осталось закрыть браузер, делается это с помощью функции quit().

Бот завершен, запустите скрипт, и наслаждайтесь автоматизацией.

Проверяем расширение файла с помощью регулярного выражения

Чтобы решить эту проблемы, мы будем использовать регулярное выражение.

Отличить изображение от видео или GIF, можно по расширению файла. Нам понадобится последняя часть URL.

https://random.dog/*****.JPG

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

allowed_extension = 

Затем использовать регулярное выражение, чтобы извлечь расширение файла из URL.

file_extension = re.search("(*)$",url).group(1).lower()

Создайте функцию , используя этот код. Она будет перебирать URL, пока вы не получите файл с подходящим расширением (jpg, jpeg, png).

def get_image_url():    allowed_extension =     file_extension = ''    while file_extension not in allowed_extension:        url = get_url()        file_extension = re.search("(*)$",url).group(1).lower()    return url

Шаг 0: теоретическая база об API Telegram-ботов

Основной инструмент, который используют при создании Телеграм-ботов – это интерфейс прикладного программирования HTML, или API HTML. Этот элемент принимает запросы посетителей и отправляет ответы в виде информации. Готовые конструкции упрощают работу над программой. Чтобы написать бот для Телеграма, необходимо воспользоваться этим электронным адресом: https://api.telegram.org/bot<token>/METHOD_NAME

Для правильного функционирования бота также нужен токен – комбинация символов, защищающая программу и открывающая доступ к ней доверенным разработчикам. Каждый токен уникален. Строка присваивается боту при создании. Методы могут быть разными: getUpdates, getChat и прочие. Выбор метода зависит от того, какого алгоритма работы разработчики ожидают от бота. Пример токена:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

В ботах используются запросы GET и POST. Параметры методов нередко приходится дополнять – к примеру, когда по задумке метод sendMessage должен отправить id чата и какой-либо текст. Параметры для доработки метода можно передать строкой запроса URL с помощью application/x-www-form-urlencoded или через application-json. Эти способы не подходят для загрузки файлов. Также обязательна кодировка UTF-8. Отправив запрос к API, можно получить результат в JSON-формате. Взгляните на ответ программы на извлечение информации через метод getME:

GET https://api.telegram.org/bot<token>/getMe{   ok: true,   result: {       id: 231757398,       first_name: "Exchange Rate Bot",       username: "exchangetestbot"   }

}

Существует два способа получить пользовательские сообщения в ботах. Обе методики действенны, но подходят в разных случаях. Чтобы получить сообщения, можно вручную написать запрос с методом getUpdates – программа выдаст на экран массив данных Update. Запросы нужно отправлять регулярно, после анализа каждого массива отправка повторяется. Избежать повторного появления проверенных объектов поможет offset – параметр, определяющий количество пропущенных записей перед загрузкой нового результата. Преимущества метода getUpdates проявятся, если:

  • нет возможности настроить HTTPS;
  • используются сложные языки сценариев;
  • сервер бота время от времени меняется;
  • бот нагружен пользователями.

Второй метод, который можно прописать для получения пользовательских сообщений – setWebhook. Он используется один раз, не нужно постоянно отправлять новые запросы. Webhook пересылает обновления данных на указанный адрес URL. Для применения этого способа потребуется SSL-сертификат. Webhook будет полезен в этих случаях:

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

Telegram-сервис @BotFather предназначен для создания чат-ботов. Основные настройки также устанавливаются через эту систему – BotFather поможет сделать описание, поставить фотографию профиля, добавить инструменты поддержки. Библиотеки – наборы HTML-запросов для Телеграм-ботов – доступны в интернете, их достаточно много. При создании программы-примера применена pyTelegramBotApi.

База, приём!

Раз уж мы имеем дело с перманентными данными, нам нужно где-то их хранить. В стандартной библиотеке Python есть 2 чудесных способа: при помощи БД SQLite3 и при помощи хранилищ типа “ключ-значение” shelve. Будем использовать оба варианта. Начнём с БД. Здесь и далее под “БД” или “Базой Данных” я буду понимать именно SQLite3, а под словом “хранилище” — shelve. Итак, при помощи бесплатной Windows-утилиты DB Browser for SQLite я создал базу данных с одной-единственной таблицей music и заполнил её сведениями о моих аудиофайлах. Чтобы была понятна примерная структура БД, посмотрите на скриншот:


Структура БД

Столбец содержит идентификатор аудиозаписи, и — правильный и неправильные ответы соответственно. Для чего мне нужно это разделение, объясню позднее. Итак, наша тестовая база создана, при помощи команды экспорт я сгенерировал файл с чудесным названием следующего содержания:


SQL-код БД

Затем я залил этот файл на свой Linux-сервер, в терминале которого выполнил команду , которая привела к созданию файла music.db, являющимся базой данных наших аудиозаписей.Теперь создадим файл . Т.к. Python изначально объектно-ориентированный язык, мне захотелось оформить работу с БД в виде класса. Пусть умные люди меня поправят, если я что-то сделал не так. Вот как выглядит наш класс:

При каждом создании объекта SQLighter будет открываться отдельное соединение с БД и впоследствии закрываться. Мне кажется, это правильный подход, тем более, что бот изначально многопоточный (особенность библиотеки).

Взаимодействуя с нашим ботом через ваш веб-браузер

Мы можем контролировать наш бот, отправив HTTPS-запросы на телеграмму. Это означает, что самый простой способ взаимодействовать с нашим ботом через веб-браузер. Посещая разные URL-адреса, мы отправляем разные команды нашу бот. SimpleSt Command – это то, где мы получаем информацию о нашем боте. Посетите следующий URL в вашем браузере (подставляя токен бота, который вы получили раньше)

https://api.telegram.org/bot/getme

Первая часть URL указывает, что мы хотим общаться с Telegram API (API.TELEGRAMAM.ORG). Мы следуем это с Чтобы сказать, что мы хотим отправить команду нашему боту, и сразу после того, как мы добавим наш токен, чтобы определить, какой бот мы хотим отправить команду и доказать, что у нас есть. Наконец, мы указываем команду, которую мы хотим отправить ( ), которая в этом случае только что возвращает базовую информацию о нашем боте, используя JSON. Ответ должен выглядеть похоже на следующее:

{"ok":true,"result":{"id":248718785,"first_name":"To Do Bot","username":"exampletodo_bot"}}

Получение сообщений, отправленных на наш бот

Самый простой способ для нас для получения сообщений, отправленных на наш бот, проходит через вызов. Если вы посетите , вы получите ответ JSON всех новых сообщений, отправленных на ваш бот. Наш бот – совершенно новый и, вероятно, еще не получил никаких сообщений, поэтому, если вы сейчас посетите это, вы должны увидеть пустой ответ.

Telegram Bots не могут говорить с пользователями, пока пользователь сначала не инициирует разговор (это уменьшить спам). Для того, чтобы попробовать Звоните, мы сначала отправлю сообщение на наш бот из нашей собственной учетной записи Telegram. Посетить Чтобы открыть разговор с вашим ботом в веб-клиенте (или найти в любой из клиентов Telegram). Вы должны увидеть ваш бот, отображаемый с . кнопка в нижней части экрана. Нажмите эту кнопку, чтобы начать общаться со своим ботом. Отправьте свой бот короткое сообщение, например «Hello».

Теперь посетите URL снова, и вы должны увидеть ответ JSON, показывающую сообщения, которые получили ваш бот (включая один из при нажатии кнопки «Пуск»). Давайте посмотрим на пример этого и выделите данные импорта, которые мы будем писать код для извлечения в следующем разделе.

{"ok":true,"result":[{"update_id":625407400,
"message":{"message_id":1,"from":{"id":24860000,"first_name":"Gareth","last_name":"Dwyer (sixhobbits)","username":"sixhobbits"},"chat":{"id":24860000,"first_name":"Gareth","last_name":"Dwyer (sixhobbits)","username":"sixhobbits","type":"private"},"date":1478087433,"text":"\/start","entities":}},{"update_id":625407401,
"message":{"message_id":2,"from":{"id":24860000,"first_name":"Gareth","last_name":"Dwyer (sixhobbits)","username":"sixhobbits"},"chat":{"id":24860000,"first_name":"Gareth","last_name":"Dwyer (sixhobbits)","username":"sixhobbits","type":"private"},"date":1478087624,"text":"test"}}]}

Раздел JSON – список обновлений, которые мы еще не подтвердили (мы поговорим о том, как подтвердить обновления позже). В этом примере наш бот имеет два новых сообщения. Каждое сообщение содержит кучу данных о том, кто его отправил, какой чат он является частью, и содержимое сообщения. Две детали информации, на которой мы сосредоточимся на данный момент, – это идентификатор чата, который позволит нам отправить ответное сообщение и текст сообщения, который содержит текст сообщения. В следующем разделе мы увидим, как извлечь эти две части данных с помощью Python.

Отправка сообщения от нашего бота

Окончательный вызов API, который мы попробуем в нашем браузере, которое используется для отправки сообщения. Для этого нам нужен идентификатор чата для чата, где мы хотим отправить сообщение. Есть куча разных идентификаторов в ответе JSON от Позвоните, так что убедитесь, что вы получите правильный. Это поле, которое находится внутри поле (24860000 в примере выше, но ваши будут разные). Как только у вас есть этот идентификатор, посетите следующий URL в вашем браузере, подставляя для вашего идентификатора чата.

https://api.telegram.org/bot/sendMessage?chat_id=&text=TestReply

После того, как вы посетили этот URL, вы должны увидеть сообщение от вашего бота, отправленного на ваш, который говорит «Testreply».

Теперь, когда мы знаем, как отправлять и получать сообщения, используя API Telegram, мы можем перейти с автоматическим использованием этого процесса, написав несколько логики в Python.

Почему python?

Вы можете написать бот Telegram Chat на любом языке, который вы хотите. Некоторые из основных вариантов, кроме Python, будут Java, PHP или Ruby. Если вы более знакомы с другим языком программирования высокого уровня, вы можете предпочесть использовать это вместо этого, но Python – хороший выбор по нескольким причинам:

  • Python может сделать запросы HTTP очень кратко и просто через модуль запросов. Получение контента от URL (как мы будем контролировать нашу телеграмму BOT), потребуется еще много линий Java, чем эквивалент Python.
  • Python является самым популярным языком для обработки натурального языка и обучения машине: хотя мы не будем использовать любой из них для нашего простого бота, оба они будут необходимы для более продвинутого бота. Таким образом, если вы хотите продлить бот, приятно садиться на Python.
  • Python имеет хорошую поддержку для обслуживания веб-контента: когда мы хотим расширить наш бот, чтобы позволить ему получить много сообщений в секунду, Python имеет зрелые технологии, такие как WSGI для достижения «веб-масштаба».
  • Python Portable – мы можем легко запускать один и тот же код на Linux, MacOS или Windows.

Заключение

Хотя наш примитивный бот едва ли обладает когнитивными навыками, это был неплохой способ разобраться с NLP и узнать о работе чат-ботов. «ROBO», по крайней мере, отвечает на запросы пользователя. Он, конечно, не обманет ваших друзей, и для коммерческой системы вы захотите рассмотреть одну из существующих бот-платформ или фреймворки, но этот пример поможет вам продумать архитектуру бота.

Интересные статьи:

  • Как создать собственную нейронную сеть с нуля на языке Python
  • Word2Vec: как работать с векторными представлениями слов
  • Как применять теорему Байеса для решения реальных задач
Добавить комментарий

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

Adblock
detector