Как создать свой бот в телеграмме: Как сделать бота в «Телеграме» без навыков программирования

Содержание

Боты в Telegram: что это, зачем нужны, виды

Маркетинг  •  26 декабря  2022  •  5 мин чтения

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

  • Зачем нужен бот в Телеграме
  • Какими бывают боты в Telegram. Примеры готовых ботов
  • Создание чат-бота в Телеграме
  • Конструкторы для создания ботов
  • Совет эксперта

Зачем нужен бот в Телеграме

Бот — это небольшое приложение, которое самостоятельно выполняет заранее созданные задачи без участия пользователя. Telegram-бот умеет делать всё, что мог бы делать человек в чате: отвечать на вопросы, присылать ссылки на сайты или создавать мемы. Автоматически или по запросу он может отправлять:

● текстовые сообщения;
● картинки;
● видео;
● файлы.

Боты умеют:

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

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

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

На кнопках пишут вопросы, на которые сможет ответить бот

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

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

Демомагазин Sushinaka2Bot показывает возможности конструктора ботов Botobot. В нём можно полистать меню, оплатить заказ через Telegram Payments и даже зарегистрировать собственный магазин

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

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

Материал по теме:

Что нужно знать маркетологу о рекламе в Telegram

Какими бывают боты в Telegram. Примеры готовых ботов

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

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

Алгоритмы отвечают на часто задаваемые вопросы клиентов, например, как настроить или подключить услугу, помогают оформлять заказы и доставку товаров. Этот тип чат-ботов — один из самых популярных в Телеграме: он помогает заказывать роллы на ужин, договариваться с заказчиком о встрече, найти инструкцию, как починить пылесос, и круглосуточно оставаться на связи с клиентами.

Чат-бот AviasalesBot мониторит цены на выбранные направления и, как только цена падает, присылает оповещение

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

Бот для отложенного постинга Baslay умеет красиво оформлять публикации: выстраивать порядок фото в альбомах, выбирать удачное расположение кнопок и водяных знаков

Боты-расшифровщики
Отображают информацию по метаданным, которые посылают пользователи. Если отправить видео, вернётся служебная информация, тайм-коды, текст.

Голосовой файл бот переведёт в текст. Сейчас эти задачи решает платная подписка в Телеграме, но многие по привычке используют бесплатных ботов. Например, SaluteSpeech Bot переводит голосовые сообщения в текстовые. Авторы статей обращаются к нему, чтобы расшифровать интервью.

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

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

Боты-инструменты
Например, бот «Скачать видео TikTok | Youtube» помогает быстро и удобно скачивать видеоролики. Достаточно отправить ссылку на видео, а он взамен пришлёт ссылку на файл.

В бот можно загрузить видео любого объёма и качества

Боты-каталоги
Помогают подобрать книгу, музыку, фильм или сериал. Kinomanbot здорово экономит время на поиске — ищет и присылает подходящую ссылку по названию фильма. Если пользователь ещё не определился, что именно хочет посмотреть, то можно заглянуть в категорию «Популярное» или отфильтровать фильмы по жанрам.

Ещё в боте можно сыграть в игры: «Угадай кино» или «Правда или ложь»

Боты для оплаты
Принимают платежи пользователей и автоматически исключают их из платных чатов или каналов, если оплаты не было. Перевести деньги можно по номеру телефона или по карте. Это один из самых простых способов создать платную подписку в мессенджере. Чтобы запустить помощника, достаточно добавить бота в администраторы канала. Например, бот Admaker сам настроит тарифы и способы оплаты, будет собирать статистику и следить за лимитами. Также можно запускать рассылку прямо из бота для определённых аудиторий Телеграма, делать автоматическую публикацию постов и даже продавать электронные книги или цифровые версии игры, подписки на каналы и группы.

Боты-напоминалки
Подскажут, если пришло время выпить воды и размяться, и напомнят, что сутулиться и есть печенье за рабочим столом — вредно для здоровья. Например, Medicines Reminder Bot напомнит, что пришло время принять лекарство или витамины. А Pomodoro Bot установит таймер и проследит, чтобы на выполнение задачи ушло 25 минут, а 5 минут — на отдых.

Боты-маркетологи
Связываются с блогерами для рекламы. Easyprbot использует фильтры: цена, тема, статистика профиля, чтобы собрать подходящие аккаунты для рекламы. Например, можно выбрать travel-блогеров из России и оценить их на официальном сайте бота. В карточке блогера указаны виды рекламы, статистика аудитории, охваты сторис и постов, отзывы других рекламодателей.

В самом боте можно посмотреть всех блогеров по алфавиту

Бот всегда поможет маркетологу, но, если придётся настраивать рекламу самостоятельно, лучше знать, как это сделать правильно. На курсе «Трафик-менеджер» специалистов учат тестировать гипотезы, оптимизировать рекламные объявления и презентовать результаты кампаний.

Станьте универсальным специалистом в интернет-рекламе

Попробуйте себя в роли трафик‑менеджера: пройдите бесплатную вводную часть курса.

Создание чат-бота в Телеграме

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

Более сложный вариант для любителей индивидуальных решений в Телеграме — обратиться к программисту, который напишет программу под конкретного бота. Перед маркетологом такая задача обычно не стоит. Конструкторы — это визуальная реализация уже готового кода. Они доступны в использовании, и их легко найти в поисковике, например Salebot и Aimylogic.

Чтобы запустить бота, сначала нужно связаться с «отцом ботов» — найти в мессенджере Botfather. Он помогает создавать собственных ботов, организует уникальные имена и назначает права доступа. Botfather подскажет, какие команды нужно прописать, прежде чем получить уникальный токен — он нужен для того, чтобы связать бота, который пока ещё ничего не умеет, с сайтом-конструктором. Затем нужно прописать команды, которые новоиспечённый бот должен будет выполнять.

Разберём пошагово, как создать нового бота в Телеграме:

  1. Все боты в Телеграме регистрируются через бота @BotFather. Поэтому сначала нужно найти его в поиске.

Синий значок с галочкой подтверждает верификацию и означает, что это официальный бот Telegram

  1. Нажать кнопку «Запустить» (/start), чтобы активировать @BotFather.

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

  1. Выбрать или ввести команду /newbot и отправить её боту.

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

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

Если все правила соблюдены и имя не занято — бот будет создан автоматически. Пользователь получит сообщение со ссылкой на бота t.me/<никнейм_бота> и инструкции по настройке бота

После того как бот в Телеграме сделан, его необходимо подключить с помощью токена.

Токен нужно будет просто скопировать в конструктор

Бот готов, но пока ничего не умеет. Чтобы он заработал, его нужно собрать в специальном сервисе.

Конструкторы для создания ботов

Конструкторы ботов Telegram могут значительно облегчить работу маркетологу.
Разберём несколько популярных вариантов.

Salebot

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

Например, можно создать чат-бот для сбора отзывов, который будет запрашивать имя и номер телефона покупателя, оператора связи, скриншот отзыва и артикул товара

У конструктора есть:

Собственная встроенная CRM-система. В ней можно создавать мини-лендинги для сбора заявок с добавлением любых элементов — картинок, видео, анимации. Если есть навыки вёрстки кода в HTML/CSS, можно менять цвета, абзацы, дизайн.

Рассылки в мессенджерах. Можно добавлять картинки, файлы и другие вложения, сегментировать аудиторию по разным критериям, например по тегам, ID клиента, дате регистрации. Получаются рассылки без дополнительных интеграций — отправлять электронные письма клиентам можно прямо с платформы без сложных настроек.

Телефония внутри платформы. Интеграция с облачной телефонией и единое диалоговое окно с SalebotCRM. Менеджер может в любое время связаться с пользователем: звонок сохраняется в индивидуальной карточке клиента.

BotHelp

BotHelp — это платформа, на которой можно создавать автовороноки и рассылки, и главное — делать чат-ботов в мессенджерах и соцсетях.

Конструктор помогает:

Продавать товары и привлекать клиентов. Создатели конструктора обещают, что с его помощью можно конвертировать холодный трафик из социальных сетей в подписчиков с конверсией до 70%. Чат-бот автоматически собирает контакты клиентов прямо в Telegram.

Создавать автоматические цепочки сообщений. Рекламодатель может собирать и сегментировать аудиторию в мессенджерах с помощью чат-бота. Такая сегментация помогает определить, какой контент интересен определённым группам, и позволяет персонализировать посты и акции. Это может повысить открываемость сообщений до 80%.

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

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

Aimylogic

Конструктор для массового обзвона клиентов и создания ботов в Telegram
с искусственным интеллектом. Умные помощники общаются с клиентами в любых мессенджерах и принимают заказы на сайте.

С помощью конструктора можно:

Создавать ботов с искусственным интеллектом. Это поможет разгрузить отдел клиентской поддержки и обработать до 80% рутинных запросов. Если клиент не захочет общаться с чат-ботом, он переведёт диалог на менеджера. Конструктор вышлет клиенту напоминание о забытой корзине, поделится новостями об акциях, уведомит, что появился новый товар.

Создавать умные звонки, с пониманием речи клиентов. Основное преимущество бота в том, что он не устаёт и может разговаривать без остановки. Например, обзвонить до 6000 клиентов в час, беспристрастно обработать возражения, а если разговор зайдёт в тупик — перевести на оператора. Бот использует в диалоге данные из CRM: умные звонки поддерживают интеграцию с Битрикс24 и с другими CRM.

Прописывать навыки голосовых ассистентов. Интенты, или задачи, которые специалист формулирует в конкретной реплике для робота, помогают ему разобрать смысл речи. Так он определяет вопрос клиента и реагирует, опираясь на логику заданного сценария. Робот на Aimylogic уже различает фразы «здравствуйте», «до свидания», «спасибо», «да» и «нет». Чтобы всё сработало — достаточно вставить нужный блок в сценарий.

Совет эксперта

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

Статью подготовили:

Еженедельный дайджест блога Практикума

Подписаться

Поделиться

Читать также:

Как стать трафик-менеджером и продвигать бизнес в интернете

Читать статью

Что нужно знать маркетологу о рекламе в Telegram

Читать статью

Лето ― самое время выбрать новую профессию, не спеша пройти бесплатный курс и начать карьеру в IT.

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

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

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

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

Необходимые приготовления

Для получения максимальной пользы от этого руководства читателю нужно:

  • знать язык программирования Python
  • иметь аккаунт в Телеграм и установить клиентскую часть на свой компьютер
  • иметь аккаунт в Replit или создать его прямо сейчас.

Также было бы полезно, если бы вы были знакомы с базой данных Replit, но это не критично.

Регистрация бота

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

Для этого сначала войдите в ваш аккаунт и в поиске наберите @bot. Обязательно выберите подтвержденный аккаунт (у которого справа будет голубая галочка), в противном случае мы можем провести беседу с кем-то совсем другим.

BotFather

Для активации BotFather нажмите на кнопку Start:

Для начала рабочего процесса создания нового бота мы должны отправить в BotFather команду /newbot.

Бот у нас спросит следующие данные:

  • имя бота, которое будет отображаться в верхней части чата нового бота, например, «Replit Quick-start Tutorial».
  • имя пользователя, которое будет использоваться для уникальной ссылки на этого бота, например, «@replit_tutorialbot».

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

Токен

Как только мы ответим на все вопросы, BotFather отправит нам наш токен аутентификации, который будет выглядеть примерно так:

110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw

Обратите внимание, что вся строка (до двоеточия и после) является токеном.

Создание интерфейса бота

Теперь мы можем приступить к написанию той части программы, которая обрабатывает запросы из Telegram. Создадим новую repl-среду, а в качестве языка программирования выберем Python.

Наш бот должен взаимодействовать с Telegram. Для этого нам понадобится доступ к Telegram REST API. Есть много способов сделать это, но в рамках данной статьи мы будем использовать удобную библиотеку, обернутую обернута вокруг API.

Прежде чем мы продолжим, нам нужно сделать наш токен доступным для использования нашим ботом. Создайте переменную среды под названием TOKEN, щелкнув значок замка на боковой панели, как показано ниже, и вставьте свой токен бота, который вы получили ранее, например 110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5:

Создание переменной среды

Это гарантирует, что наш токен доступен как переменная среды и что к нему не смогут получить доступ люди, имеющие доступ к нашей среде repl (в бесплатной версии она открыта для всех, — прим. переводчика).

Создание скелета бота

Теперь, когда все настроено, мы можем приступить к программированию! Начнем с нашего файла main.py:

import os
from telegram import Update #upm package(python-telegram-bot)
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext  #upm package(python-telegram-bot)
def help_command(update: Update, context: CallbackContext) -> None:
    htext = '''
Welcome
Send a message to store it.
Send /fetch to retrieve the most recent message'''
    update.message.reply_text(htext)
def main():
    updater = Updater(os.getenv("TOKEN"))
    dispatcher = updater.dispatcher
    dispatcher.add_handler(CommandHandler("start", help_command))
    dispatcher.add_handler(CommandHandler("help", help_command))
    updater. start_polling()
    updater.idle()
if __name__ == '__main__':
    main() 

Сначала мы импортируем модуль os, чтобы получить доступ к токену как переменной окружения.

Затем мы импортируем некоторые классы из библиотеки Telegram.

Комментарии, начинающиеся с #upm, не являются обязательными. Они используются Replit для загрузки правильного пакета. В общем случае это не нужно, но здесь необходимо, потому что подобных библиотек Telegram очень много.

Функция help_command запускается всякий раз, когда пользователь отправляет нам команду /start или /help. Команда /start также выполняется автоматически, когда новый пользователь запускает ваш бот (как мы ранее запускали BotFather). Бот будет знать, как использовать эту функцию, потому что мы сообщим ему об этом позже в теле функции main.

В функции main мы инициализируем экземпляр класса updater, который использует наш токен.

updater = Updater(os.getenv("TOKEN"))

Updater — это класс, который будет постоянно проверять Telegram на наличие новых сообщений в нашем боте.

Когда updater получает новое сообщение, он передает его в класс dispatcher. Тот проверяет, есть ли у нас подходящий обработчик для данного сообщения. Как уже упоминалось выше, нужно задать обработчик для команд /start и /help. Мы cделаем это при помощи функции add_handler, например:

dispatcher.add_handler(CommandHandler("start", help_command))

и

dispatcher. add_handler(CommandHandler("help", help_command))

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

Затем нам нужно сказать классу updater, чтобы он начал проверку новых сообщений. Мы это сделаем при помощи следующей строки.

updater.start_polling()

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

Другими словами, если мы оставим это в качестве последней строки функции main, код будет выполнен, а затем немедленно завершится, потому что больше ничего не блокирует его. Поэтому, чтобы наш бот не прекращал прослушку, мы используем строку updater.idle(), чтобы заблокировать скрипт, пока мы слушаем.

[python_ad_block]

Функционал для логирования

Согласно тексту справки, бот должен уметь делать две вещи:

  1. Если вы отправляете сообщение боту, он должен где-то его сохранить.
  2. При отправке боту команды /fetch он должен отправить вам последнее сообщение.

Для этого мы будем использовать встроенную в Replit базу данных ключ-значение. Начнем с импорта API:

from replit import db

Модуль db — это объект, который ведет себя как словарь, но сохраняет свое содержимое между запусками. Он также сериализует свои ключи в виде строк.

Мы хотим хранить зарегистрированные сообщения в определенном порядке, но объект db по своей сути не упорядочен (будучи словарем). Поэтому мы создадим вспомогательную функцию, которая может получать самый большой ключ (при условии, что мы будем использовать только числовые индексы). Добавим эту функцию перед определением функции help_command:

def latest_key():
    ks = db.keys()
    if len(ks):
        return max(map(int, ks))
    else:
        return -1 

Функция latest_key получает все ключи из нашей базы данных (модуль db). Если в ней есть ключи, они преобразуются в целые числа и возвращается максимальное из них. Если ключей нет, то возвращается -1.

Теперь мы можем создать обработчик, который записывает сообщения пользователей в базу данных. Добавим эту функцию после задания функции help_command:

def log(update: Update, context: CallbackContext) -> None:
    db[str(latest_key() + 1)] = update. message.text 

Этот обработчик получает последний ключ из базы данных, увеличивает его на единицу и создает новую пару ключ — сообщение.

Однако это не может быть выполнено, пока мы не зарегистрируем обработчик. Поэтому добавьте следующую строку после других строк dispatcher.add_handler (...):

dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, log))

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

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

def fetch(update: Update, context: CallbackContext) -> None:
    update.message.reply_text(db.get(str(latest_key()), 'No Messages yet.'))

Мы можем зарегистрировать его вместе с обработчиками остальных команд. Добавьте данную строку после уже существующих строк dispatcher.add_handler (...):

dispatcher.add_handler(CommandHandler("fetch", fetch))

Создаем веб-интерфейс

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

from math import ceil
from flask import render_template
from flask import Flask
app = Flask(__name__)
@app.route('/')
@app.route('/<int:page>')
def home(page=None):
    ks = sorted(map(int, db.keys()))
    pages = ceil(len(ks) / 10)
    if page is None: #Default to latest page
        page = pages
    if page < pages:
        next_page = page + 1
    else:
        next_page = None
    if page > 1:
        prev_page = page - 1
    else:
        prev_page = None
    messages = tuple(db[str(key)] for key in ks[(page-1)*10:page*10])
    return render_template('home.html', messages=messages, next_page=next_page, page=page, prev_page=prev_page)

Этот код создает небольшое Flask-приложение. Импорт модуля Flask обеспечивает среда программирования Replit. В этом уроке мы сделаем только одну страницу.

Мы сообщаем Flask, каким образом должна быть доступна страница при помощи специальных декораторов. Декоратор @app.route ('/') говорит, что когда пользователь обращается к https://example.com, его будет обслуживать этот обработчик. В этом случае переменная page будет иметь значение по умолчанию None.

Декоратор @app.route('/<int:page>')  говорит, что когда пользователь обращается к чему-то вроде https://example.com/4, он откроет страницу 4 записанных сообщений. В этом случае переменной page будет присвоено значение 4.

Но пока это работать не будет, потому что шаблон home.html еще не существует. Давайте создадим его прямо сейчас в папке с названием templates (т.е. templates/home.html):

<!doctype html>
<h2>Messages - Page {{ page }}</h2>
<ul>
 {% for msg in messages %}
 <li>{{ msg | escape }}</li>
 {% endfor %}
</ul>
{% if prev_page %}<a href='/{{ prev_page }}'>Previous Page</a>{% endif %}
{% if prev_page and next_page %}|{% endif%}
{% if next_page %}<a href='/{{ next_page }}'>Next Page</a>{% endif %}

Этот шаблон будет выводить страницу записанных сообщений и ссылки на следующую или предыдущую страницу. Он требует наличия переменной page и массива messages, который будет отображаться в виде списка. Шаблон также принимает переменные «prev_page» и «next_page», которые мы используем для создания ссылок на предыдущую и следующую страницу, если они существуют, конечно. Все они присутствуют в нашей функции маршрутизации, когда мы запускаем render_template.

Как нам рассчитать максимальное количество страниц?

pages = ceil(len(ks) / 10)

То есть мы делим количество ключей в нашей базе данных Replit на десять и округляем его в большую сторону. Мы также можем использовать это число по умолчанию. Таким образом, если кто-то вызовет простой маршрут «/», мы просто отобразим последнюю страницу.

if page is None:
    page = pages

Мы знаем, что последние сообщения всегда будут «самыми последними», потому что мы отсортировали их в порядке возрастания в предыдущей строке.

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

Собираем все воедино

Если мы запустим нашу программу сейчас, веб-приложение Flask еще не будет работать. Flask должен прослушивать запросы аналогично библиотеке Telegram. Чтобы запустить сервер Flask, мы вполне можем в конце нашей программы использовать app.run() .

Проблема в том, что эта строка кода при нормальных обстоятельствах никогда не будет достигнута, потому что у нас есть строка updater.idle(), блокирующая наш код до нее. Чтобы решить эту проблему, мы можем заменить эту строку строкой, которая запускает наш сервер Flask на первом уровне. Строка updater.idle() у нас присутствовала лишь для того, чтобы предотвратить преждевременное завершение программы. Теперь то же самое будет делать сервер Flask. Итак, давайте произведем замену:

#updater.idle()
app.run(host='0.0.0.0', port=8080)

Параметры host и port, установленные в эти значения, позволяют среде Replit получить доступ к серверу и обычно будут отображать окно с содержимым нашей страницы. Теперь мы можем просматривать сообщения, отправленные пользователями через бот.

Сделайте все это сами

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

Что дальше?

Попробуйте использовать команду /setcommands в BotFather, чтобы добавить быстрое меню для команд в вашем боте. Здесь описаны все команды по работе с этим ботом.

Если бы мы хотели получить доступ к имени пользователя — отправителя сообщения, мы могли бы получить к нему доступ так же, как и к тексту сообщения:

username = update.message.from_user.username

Для изучения возможностей по получению дополнительных данных изучите, пожалуйста, документацию.

Как создать собственного Telegram-бота | Джерри | Паук

Опубликовано в

·

Чтение: 7 мин.

·

3 февраля 2021 г.

Отсутствует Наташа из Hike-chat? Что, если я скажу вам, что мы можем создать свой собственный сервис в Telegram, который общается с нами! В этой статье мы собираемся сделать это с помощью простого кода с открытым исходным кодом, используя Python и Telegram бесплатно!

Источник: SAP Conversational AI

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

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

Шагов для сборки:

  1. Создать Telegram-бота.
  2. Создать чат-бота.
  3. Создать сервис, который может связать Чат-бота с Телеграм-ботом.

Как создать бота?
Это очень просто, Telegram предлагает бота, который делает это за вас с помощью простых команд. Ищите Botfather в строке поиска приложения Telegram, вы найдете бота с официально подтвержденной галочкой. Далее нажимаем на старт, чтобы использовать бота.

Источник: Telegram

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

Использование сервиса Telegram Botfather для создания нового бота. Первое выделение — это общая ссылка, а следующее — токен API для вновь созданного бота (в настоящее время этот токен деактивирован).

Даем имя и уникальный логин (общая ссылка) боту, все, Ура! наш бот создан.

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

Мы отправляем сообщения, но почему бот Дэдпул не отвечает? В следующем разделе мы сделаем так, чтобы он отвечал на наши сообщения.

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

Затем мы устанавливаем необходимые библиотеки python3

 pip install ChatterBot 

Пример кода для использования модуля Chatterbot

Это так же просто, как и создание чат-бота, независимо от ввода, который мы вводим в методе get_response , мы получаем ответ от обученного ИИ-бота, которого мы только что создали.

Мы только что сделали чат-бота, но как мы можем интегрировать чат-бот с Telegram-ботом? Следующий раздел делает именно это.

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

Как это сделать?

Перед этим нам потребуется узнать об API Telegram, который позволяет коду Python3 взаимодействовать с ботом Telegram.

Когда пользователь отправляет сообщение, наш сервер (код) должен собрать это сообщение. Есть два способа, которыми Telegram предлагает нашим серверам получать сообщения (от пользователя).

1. Опрос в конечной точке API — Telegram API предлагает конечную точку /getUpdate в API для получения обновлений для пользовательского ввода.

2. Веб-перехватчики — Telegram предлагает конечную точку /setWebhook и /deleteWebhook для установки и удаления веб-перехватчика для обновлений сообщений от пользователя.

Подробнее об определениях и различиях между опросом и веб-перехватчиками.

В этой статье мы будем использовать 1-й вариант опроса API-запроса, поскольку для этого варианта не требуется сервер, размещенный в Интернете, с конечной точкой (URL), а также его легко запустить и протестировать. Если вы новичок в веб-API, нажмите здесь , чтобы узнать о них.

Использование опроса

Получение пользовательских сообщений: Мы можем использовать конечную точку /getUpdates с токеном безопасного API, полученным при создании бота, для получения сообщений, отправленных всеми пользователями бота Deadpool, используя указанный ниже URL-адрес.

 https://api.telegram.org/bot1635894026:AAHiGLTmIfLYd8IIqYBvu2vlO1Fy0JHOj3E/getUpdates 

Поскольку это конечная точка запроса GET, мы можем запустить ее в браузере. замените указанный выше токен API своим токеном API и используйте URL-адрес в своем браузере, введите несколько сообщений своему боту, и вы получите сообщения в формате JSON при перезагрузке.

Ответ на сообщения пользователя : Теперь мы можем использовать конечную точку /sendMessage для отправки сообщений пользователю с его идентификатором пользовательского чата (полученным из конечной точки /getUpdates) и ответным сообщением с использованием этого формата в URL-адресе.

 https://api.telegram.org/bot1635894026:AAHiGLTmIfLYd8IIqYBvu2vlO1Fy0JHOj3E/sendMessage?text="ответить на сообщение пользователя"&chat_id=654923404 

Замените своим токеном и идентификатором чата для сообщения с предыдущей конечной точки на ответ с ответным сообщением в текстовом поле в URL-адресе.

Ура! мы можем отправлять и получать сообщения от конечных точек API. Давайте реализуем это в коде python3.

Устанавливаем необходимые библиотеки из pip. Затем мы создали:

  1. Доступ к API-интерфейсу бота Telegram, который имеет методы для получения обновлений с использованием тайм-аута ожидания идентификатора сообщения, который является числом и увеличивается на единицу для каждого сообщения и отправки сообщений, см. документацию здесь.
  2. Файл конфигурации для использования собственного токена.
  3. Файл сервера для запуска сервера с чат-ботом (тот, который мы создали в предыдущем разделе) и для ответа на идентификатор чата пользователя с помощью метода send_message бота телеграммы из импортированного класса бота.

Мы запускаем файл, используя следующую команду

 python server.py 

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

Сервер запущен и готов отвечать на сообщения для бота Дэдпула

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

Теперь, пока сервер работает, мы отправляемся в Telegram, чтобы проверить нашего бота, мы можем отправлять сообщения и видеть его ответ и разговаривать.

Круто, правда? Достижение Мы успешно создали чат-бот Telegram. Поделитесь им с друзьями, используя общую ссылку, и они смогут попробовать. Если они спровоцируют бота, он будет давать такие дикие ответы…

Больше он никогда не использовал бота.

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

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

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

В среде разработки мы запускаем файл python локально, чтобы убедиться, что бот телеграммы работает. Практически для долгосрочного использования бота телеграммы нам нужен компьютер (сервер) для запуска скрипта Python на постоянной основе, чтобы получить доступ к боту в любое время, когда кто-либо захочет. Персональный компьютер в данном случае не годится. Следовательно, мы можем использовать любой компьютер-сервер, такой как ваш собственный сервер или бесплатный сервер онлайн-сервиса, который избавит вас от беспокойства, такой как Heroku или python, где угодно и т. Д.

Более чистая версия кода доступна на GitHub, здесь . Не стесняйтесь помечать и разветвлять репо, чтобы протестировать и изменить его в соответствии с вашими потребностями. Вот и все на сегодня, друзья!

Вы можете попробовать бота на t.me/deadpool_chatbot.

4-этапное руководство по созданию чат-бота Telegram AI (без кода) – блог n8n

Telegram, вероятно, является наиболее удобным для разработчиков мессенджером. Он имеет невероятную экосистему ботов, которая позволяет разработчикам создавать полноценные продукты, такие как чат-боты, модераторы групп, настраиваемые инструменты, многопользовательские игры и многое другое.

Сегодня мы покажем, как n8n помогает интегрировать Telegram с передовыми инструментами искусственного интеллекта и проведет вас через все тонкости создания чат-бота с искусственным интеллектом.

Пример бота Telegram на базе ИИ

После прочтения этого руководства вы сможете создать аналогичного чат-бота Telegram на базе GPT-3 или GPT-4. Кроме того, этот бот может отправлять вам изображения, созданные искусственным интеллектом.

Круто, да?

Легко ли сделать бота Telegram?

Абсолютно да! Сделать бота Telegram с помощью инструментов без кода или с низким кодом в настоящее время очень просто.

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

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

В отличие от этих инструментов, n8n сочетает в себе лучшие из подходов:

  • Легко создавать ботов Telegram благодаря триггеру Telegram и узлу Telegram
  • Поддерживать бот Telegram с помощью n8n несложно, поскольку все темы хостинга охватываются n8n
  • В случае необходимости сложной логики вы можете настроить бота Telegram, чтобы он делал все, что вам нужно, с помощью пользовательского кода JS и HTTP-запросов к платформе API Telegram
  • Вы даже можете создать многоязычного бота Telegram в n8n с минимальным красным безразличие к вашему рабочему процессу
  • Наконец, n8n не блокирует вас, и вы полностью контролируете данные, передаваемые через вашего бота.

Итак, давайте начнем и создадим простого AI-бота для Telegram!

Как собрать Telegram бота с n8n?

В этом руководстве мы покажем вам, как создать простого чат-бота с использованием модели GPT3/4.

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

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

Шаг 0. Добавить нового бота в Telegram

Telegram позволяет добавить нового бота всего за минуту!

Официальный способ — использование BotFather. Запустите этого бота и выполните 2 простых шага:

  • Сначала запустите команду /newbot и дайте своему боту удобочитаемое имя
  • .

  • Затем укажите уникальное имя бота. Telegram требует, чтобы имя содержало «bot» или «_bot» в конце имени.

После этого вы получите подтверждение с секретным токеном API.

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

Зарегистрируйте нового бота Telegram всего за минуту

Следующие шаги по созданию бота Telegram зависят от вас: запрограммируйте бота с нуля, используйте библиотеку из языка программирования по вашему выбору, обратитесь к SaaS для создания ботов или используйте платформу с низким кодом, такую ​​​​как n8n, для расширения возможностей вашего бота.

Шаг 1. Подготовьте экземпляр n8n и получите ключ API OpenAI

После того, как вы зарегистрировали нового бота на платформе Telegram, необходимо выполнить несколько подготовительных шагов:

  • Выберите облачную версию n8n и приступайте к работе всего за минуту
  • Зарегистрируйтесь на платформе OpenAI и получите новый ключ API.

💡

Если вы решите самостоятельно разместить n8n, не забудьте про переменную среды EXECUTIONS_PROCESS, она должна быть установлена ​​на main . Этот твик гарантирует быстрый ответ вашего бота, потому что все запросы будут выполняться в основном процессе. В противном случае в его собственный режим n8n будет иметь задержку в несколько секунд для каждого запроса Telegram.

Шаг 2. Обработка входящих сообщений для вашего бота Telegram

Давайте разобьем рабочий процесс бота на три более мелкие части.

Эта часть получает входящие сообщения от Telegram и выполняет некоторые подготовительные действия

Первая часть получает входящие сообщения от Telegram и выполняет некоторые подготовительные действия:

  • Telegram Trigger по умолчанию получает все возможные сообщения. Вот как вы можете убедиться, что ваш бот не выглядит бездействующим, даже если определенные действия еще не поддерживаются.
  • Шаг предварительной обработки гарантирует, что ключ json. message.text всегда существует. Это поможет избежать сообщений об ошибках на последующих этапах.

Этот шаг гарантирует, что ключ JSON всегда существует

  • Теперь давайте более подробно рассмотрим Настройки .

В настройках хранятся важные параметры конфигурации GPT3/4

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

Переменная bot_typing необходима для уведомления о наборе текста, пока бот работает над ответом. Уведомление зависит от того, начал ли пользователь свое сообщение с команды /image или нет.

Пример бота, набирающего уведомление

model_temperature хранит значение температуры: чем выше, тем более «креативное» завершение чата будет обеспечивать модель. Подробнее о параметрах GPT читайте на справочной странице API.

token_length 9Значение 0018 ограничивает длину ответа модели GPT.

  • Отправить действие ввода просто использует значение из параметра bot_typing JSON.
  • Наконец, почему у нас здесь узел слияния? Этот узел настроен в режиме ChoseBranch , который проходит через исходный JSON из Settings . Это простой способ гарантировать, что Отправить действие ввода завершится до того, как начнутся следующие шаги.

Шаг 3. Выполнение вызовов API к службам OpenAI

Следующая часть бота направляет пользовательские данные в одну из трех моделей ИИ.

Эта часть бота решает, какая модель должна работать, в зависимости от пользовательского ввода

  • CheckCommand — узел коммутатора, настроенный следующим образом:

Узел коммутатора направляет запросы соответствующим моделям AI ALL-E 2. Последнее правило является резервным правилом для неподдерживаемых команд.

  • Простой текст и команда /start (выводы 0 и 1) передаются узлу OpenAI для завершения чата GPT.

Узел OpenAI настроен на режим завершения чата через модель GPT

  • Выход 2 переходит к другой модели OpenAI. Модель DALL-E 2 представляет собой нейронную сеть преобразования текста в изображение, которая может генерировать изображения из текстовых входов.

Пример узла OpenAI, настроенного для создания изображения

Шаг 4. Отправка ответа обратно пользователю

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

В этой части показано, как узлы ответа связаны с предыдущими частями

  • Вы можете видеть, что Текстовый ответ подключен к обоим узлам OpenAI. Это небольшая хитрость в n8n для уменьшения избыточности рабочего процесса.
  • Отправить изображение проходит через URL-адрес, возвращенный из Создать изображение .
  • Наконец, Отправить сообщение об ошибке возвращает общий ответ. Таким образом, мы не вызываем какие-либо модели OpenAI и даем немедленный ответ.

Вот и все! Мы создали функционального чат-бота на базе ИИ в Telegram.

Сколько стоит создать Telegram бота?

Создание бота Telegram состоит из трех отдельных этапов:

  1. Регистрация нового бота на платформе Telegram
  2. Создание логики бота
  3. Хостинг бота

Telegram позволяет бесплатно зарегистрировать нового бота всего за пару минут.

После регистрации нового бота вы можете создать его функционал. Если вы создаете бота самостоятельно, цены могут быть незначительными, а основные инвестиции — это ваше время. Если вы нанимаете разработчика (классического, no-code или low-code), то цена зависит от многих факторов и может быть довольно высокой для проекта со сложным функционалом.

Наконец, бот должен быть доступен 24 часа в сутки, 7 дней в неделю, а это значит, что его нужно где-то разместить. Если вы решите создать бота с помощью таких инструментов, как Python или самостоятельная версия n8n для сообщества, то затраты на хостинг для простого бота будут скромными: около 5 долларов в месяц за низкоуровневый VPS, который может обрабатывать несколько ботов одновременно. Создатели ботов Telegram будут брать с вас больше в зависимости от тарифов. В случае, если ваш бот станет чрезвычайно популярным, вам может потребоваться купить дополнительную вычислительную мощность или заплатить значительно больше за коммерческую платформу для создания ботов.

Подведение итогов

Создание ботов в Telegram не так сложно, как может показаться.

В этом уроке мы показали вам, как создать бота Telegram AI, используя n8n в качестве впечатляющего конструктора ботов с низким кодом. Бот легко настраивается, он может отвечать на ваши сообщения в зависимости от роли, а также без труда передавать изображения, созданные ИИ.