Содержание

Как создать бота в Telegram

29 августа 2021 Ликбез Технологии

Вас ждёт пошаговая инструкция и пример настройки.

Что нужно знать, прежде чем создавать бота в Telegram

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

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

Но так или иначе сначала бота нужно создать. Делается это следующим образом.

Как создать бота в Telegram

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

Запустите диалог с ним и нажмите «Начать».

Кликните по кнопке меню и выберите /newbot.

BotFather попросит назвать вашего бота. Введите желаемое имя и нажмите «Отправить».

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

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

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

Как настроить бота в Telegram

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

Также при желании можно добавить описание (/setdescription), прикрепить аватар (/setuserpic) или сменить имя (/setname). Все эти действия осуществляются через меню в BotFather. Если у вас несколько ботов, то сначала придётся выбрать нужный из списка.

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

Подключение бота

Сначала нужно открыть чат с Manybot, перейдя по ссылке, и нажать «Начать».

Затем выбрать удобный для вас язык.

Кликните «Добавить нового бота».

А вот теперь понадобится токен созданного ранее бота, который выдал BotFather. Нажмите «Я скопировал токен» и отправьте его Manybot.

Добавьте описание бота, которое будут видеть пользователи, или пропустите этот шаг.

Создание команд

Далее вернитесь к своему боту, которого создали с помощью BotFather, и нажмите «Начать».

Выберите «Пользовательские команды».

Затем — «Создать команду».

Придумайте название команды латинскими буквами, начиная со слеша.

Впишите текст, добавьте ссылки или фото, которые увидит пользователь после вызова команды. Сообщений может быть несколько. Нажмите «Отправить», а затем «Сохранить».

Таким же образом через меню «Создать команду» добавьте остальные команды, которые вам нужны. В нашем примере это подкасты, вакансии и обратная связь.

Добавление кнопок в меню

Чтобы пользователи могли взаимодействовать с ботом через графический интерфейс, а не вводить команды вручную, необходимо добавить кнопки для каждой из них. Для этого нажмите «Настроить гл. меню».

Кликните «Добавить пункт меню».

Выберите нужную команду.

Придумайте название для кнопки и нажмите «Отправить».

По такому же принципу добавьте кнопки для других команд.

Проверка работы бота

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

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

Читайте также 📱📳📲

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

Создать чат-бот в Telegram бесплатно

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

Создать бесплатно

Всё для чат-ботов в одном сервисе

Запускайте, управляйте, анализируйте. Это просто с инструментами Unisender.

Удобный конструктор

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

Галерея шаблонов

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

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

Выбрать шаблон

Готовые интеграции

В Unisender доступны больше 40 интеграций с CRM, CMS и другими платформами. Собирайте данные и управляйте процессами в одном месте.

Аналитика

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

Не только Telegram

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

Конструктор чат-ботов Unisender

Техподдержка 24/7

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

Что поручить боту в Telegram

Ответы на вопросы

О товарах, услугах, режиме работы, сроках доставки.

Массовые рассылки

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

Автоворонки

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

Уведомления о статусе заказа

Создание, оплата, комплектация, доставка.

Онлайн-запись

В клинику, салон красоты, на вебинар или курсы.

Внутренние коммуникации

Объявления для сотрудников, опросы, тестирования.

Доверьте чат-боту рутинные, но важные задачи

Попробовать

Собрать бота легко

Шаг 1. Создайте чат-карту

Соберите самые частые вопросы, придумайте текст ответов, добавьте кнопки меню.

Подробнее о том, как подключить чат-бот

Шаг 2. Создайте чат-бот

Затем получите ключ-токен и привяжите его к боту в Личном кабинете.

Шаг 3. Запустите бота и пригласите первых подписчиков

Просто загрузите список адресатов из Личного кабинета Unisender, а мы отправим автоматическую email-рассылку о новом чат-боте. Это бесплатно.

Выбрать шаблон

Больше пользы. Больше чатов. Больше продаж

Не оставляйте сообщения без ответа

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

Персонализируйте общение

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

Сегментируйте аудиторию

Разделяйте пользователей на группы и отправляйте рассылки на основе их интересов.

Принимайте платежи

Скоро

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

Чат-боты в Telegram — топ

Всегда на связи

Чат-бот умеет общаться с пользователями в режиме 24/7. Автоматизируйте ответы на типовые вопросы, отправляйте уведомления и рассылки — в любое время суток, без участия службы поддержки.

Удобно для пользователя

Личные контакты, рабочие переписки, интересный контент — всё есть в Telegram. Не уводите клиентов из мессенджера, в котором они привыкли общаться. Будьте на связи с пользователями там, где им удобно.

Большой охват аудитории

Telegram входит в топ-3 популярных мессенджеров в мире. Больше 500 млн активных пользователей в месяц — и аудитория только растёт. Открываемость сообщений — выше 80%. Используйте эти преимущества для продвижения и продаж.

Создать чат-бот в Telegram

Часто задаваемые вопросы

  • 👀 Как работают боты в Telegram?

    Чтобы начать общение с чат-ботом в Telegram, пользователь должен первым ему написать — т. е. запустить бота.

    Чат-бот умеет:

    1. Отвечать на сообщения пользователя — реагирует на текст, выбор пунктов меню и команды из букв и специальных символов.
    2. Собирать контактные данные и сохранять лиды для дальнейшей работы с клиентами.
    3. Отправлять рассылки о новинках, акциях и специальных предложениях.
    4. Подключать оператора. Консультант может присоединиться к диалогу и ответить на нетиповые вопросы.
    5. Собирать аналитику — анализируйте эффективность чат-бота и корректируйте сценарии при необходимости.
    6. Принимать оплату. Пользователь может совершать покупки прямо в мессенджере.
  • 🔧️ Смогу ли я создать бота самостоятельно?

    Да, это легко. В конструкторе Unisender — интуитивно понятный интерфейс. Вам не придётся создавать чат-бот с нуля. Используйте готовые шаблоны, наполняйте их своим контентом, настраивайте логику сообщений в простом визуальном редакторе.

  • 🔐️ Как подключить чат-бота в Telegram, что мне для этого нужно?

    Для подключения бота к мессенджеру понадобится токен — ключ авторизации. Для его получения:

    1. Перейдите в Telegram и найдите чат-бота @botfather.
    2. Наберите /newbot — это команда-«заявка» на создание бота в мессенджере. Придумайте и отправьте имя и айди бота.
    3. В ответном сообщении от @botfather найдите HTTP API, скопируйте его.
    4. В Личном кабинете Unisender выберите созданного бота, перейдите во вкладку «Каналы» и нажмите кнопку «Подключить». Введите скопированный ключ в поле «Токен».

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

  • 🔢 Можно создать сразу несколько ботов в Telegram?

    Да. В Unisender можно создавать неограниченное количество чат-ботов.

  • org/Question»>

    💰 Сколько стоит чат-бот для Telegram?

    Стоимость зависит от количества подписчиков. Создание бота и подключение до 500 подписчиков — бесплатно.

    Посмотреть цены.

  • 👥 Где взять подписчиков для бота в Telegram?

    Если вы клиент Unisender, используйте вашу базу адресов в Личном кабинете. Оповестите подписчиков о запуске чат-бота — отправьте им письмо при помощи email-шаблона. Эта рассылка будет для вас бесплатной.

    Как ещё привлечь подписчиков:

    • рассказать в соцсетях;
    • разместить виджет на сайте;
    • отправить ссылку на бота при помощи SMS-рассылки или Viber-рассылки.
  • 🔄 У меня есть чат-боты в другом сервисе. Их можно перенести в Unisender?

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

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

  • 👋 Можно ли заказать разработку чат-бота?

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

    Подробнее об услуге.

Бот в Telegram работает даже тогда, когда вы отдыхаете

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

Создать бесплатно

Создайте своего собственного веселого бота ChatGPT в Telegram с помощью Python: пошаговое руководство | by Eloise

Иллюстрация: Getty Images

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

Готовы внести столь необходимый юмор в ваши групповые чаты? В этом руководстве показано, как легко добавить забавного бота OpenAI ChatGPT в любую группу Telegram с помощью всего нескольких строк кода Python 9.0006 . Независимо от того, являетесь ли вы профессионалом в области кодирования или только начинаете, мы предоставим вам пошаговое руководство. Приготовьтесь революционизировать свои чаты и посмеяться вдоволь!

Спросите ChatGPT

Наша группа использует API OpenAI для улучшения общения и повышения производительности. Наш бот, @ask_chatGPTbot, постоянно…

t. me

F дерзкий? Пропустите пошаговое руководство и проверьте его, отправив сообщение по ссылке выше.

2. Затем получите учетные данные для аутентификации Telegram API.

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

Source

Откройте беседу с ботом BotFather в Telegram, выполнив поиск «@BotFather» в строке поиска Telegram. Введите «/newbot» , чтобы создать нового бота. Следуйте инструкциям, чтобы выбрать имя и имя пользователя для своего бота. Имя пользователя должно заканчиваться на «bot» (например, «my_new_bot»).

https://core.telegram.org/bots/tutorial

После создания бота BotFather предоставит вам токен. Этот токен используется для аутентификации вашего бота и предоставления ему доступа к Telegram API. Скопируйте токен и используйте его в коде своего бота для аутентификации и доступа к API. Защитите секретный токен вашего бота, как драгоценности короны! Никому не передавайте токен своего бота.

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

https://t.me/ask_chatgptbot

Отправить сообщение на этот канал через Bot API, используя имя канала и токен доступа. https://api.telegram.org/bot11234485678:AAElJxyzHCbiiZu7Vb_fGGhmk2tbFVr54n/sendMessage?chat_id=@TestChannel&text=123

 {"ok":true, 
«результат»: {
«message_id»: 191,
«sender_chat»: {
«id»: -1001527664788,
«title»: «название тестового канала»,
«имя пользователя»: «TestChannel», «тип» :"канал"
},
"чат":{
"id":-1001527664788,
"название":"",
"имя пользователя":"TestChannel","тип":"канал"
},
" дата": 1670434355,
"текст": "123"
}
}

Идентификатор канала указан в чате/идентификаторе.

Убедитесь, что ваш бот назначен администратором.

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

3. Пришло время получить ключ API и подключиться к движку OpenAI, не спеша!

Чтобы получить ключ API от OpenAI, вам необходимо создать учетную запись на веб-сайте OpenAI (https://beta.openai.com/). Если у вас есть учетная запись, вы можете получить доступ к своим ключам API, перейдя на вкладку «Ключи API» на панели пользователя.

https://beta.openai.com/account/api-keys

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

https://beta.openai.com/account/usage

Имейте в виду, что OpenAI может ограничивать количество вызовов API, которые вы можете сделать. С личной учетной записью вам предоставляется грант в размере 18,00 долларов США для использования в запросах API. Перед использованием API обязательно ознакомьтесь с условиями обслуживания и информацией о ценах на веб-сайте OpenAI.

Подключение к Text-davinci-003 https://beta.openai.com/docs/models/gpt-3

Text-davinci-003 — это большая языковая модель, разработанная OpenAI. Он считается одной из самых эффективных языковых моделей, доступных в настоящее время, благодаря своей способности генерировать человекоподобный текст и выполнять широкий спектр языковых задач. Он был обучен на наборе данных из миллиардов слов и может генерировать связный текст, который читается так, как будто он был написан человеком .

Хорошо, воины кода! Пришло время заставить вашего бота и группу Telegram общаться как старые друзья. Выполнив несколько простых шагов и немного магии Python, вы сможете в кратчайшие сроки подключить и развернуть своего собственного бота ChatGPT в своей группе. Приступаем к кодированию!

4. Начните писать код Python

Для начала мы импортируем необходимые библиотеки и установим ключевой параметр аутентификации.

 # 1. Начните с импорта необходимых библиотек и настройки клиентов API 
import request
import json
import os
import threading

# Секретный ключ OpenAI
API_KEY = 'xxxxxxxxxxxsecretAPIxxxxxxxxxx'
# Модели: text-davinci-003,text-curie-001,text-babbage-001,text-ada-001
MODEL = 'text-davinci-003'
# Токен бота для секретного доступа Telegram
BOT_TOKEN = 'xxxxxxbotapikeyxxxxx'
# Определение личности бота с помощью прилагательных 002 Представляем параметр BOT_PERSONALITY — твой билет в ChatGPT с персонажем! Используйте эту удобную константу, чтобы придать вашему боту определенный тон или манеру речи, например, , дружелюбную, профессиональную или юмористическую . Установив параметр BOT_PERSONALITY, вы можете настроить способ общения ChatGPT с вашими пользователями и создать более персонализированный и привлекательный опыт.

 Вот 15 конкретных тонов, которые вы можете использовать для настройки личности 
ChatGPT:
1. Дружелюбный
2. Профессиональный
3. Юмористический
4. Саркастичный
5. Остроумный
6. Нахальный
7. Обаятельный
8. Дерзкий
9. Причудливый
10. Непринужденный
11. Элегантный
12. Игривый
13. Успокаивающий 9 0055 14. Интенсивный
15. Страстный

Затем создайте функцию, которая получает ответ от чат-бота OpenAI .

 № 2а. Функция, которая получает ответ от чат-бота OpenAI 
def openAI(prompt):
# Сделать запрос к API OpenAI
response = request.post(
'https://api.openai.com/v1/completions',
заголовки={'Авторизация': f'Bearer {API_KEY}'},
json={'модель': МОДЕЛЬ, 'подсказка': подсказка, 'температура': 0,4, 'max_tokens': 300}
)

результат = response.json()
final_result = ''.join(choice['text'] для выбора в результате['choices'])
return final_result

# 2b. Функция, которая получает изображение AI из OpenAI
def openAImage(prompt):
# Сделать запрос к API OpenAI
resp = request.post(
'https://api.openai.com/v1/images/generations',
заголовков = {'Авторизация': f'Bearer {API_KEY}'},
json={'prompt': prompt,'n' : 1, 'size': '1024x1024'}
)
response_text = json.loads(соответственно.текст)

return response_text['data'][0][ 'url']

#Example print(openAI("Что такое энтропия?"))

Эта функция 2.a отправит запрос POST в API OpenAI с заданным вводом (например, "Что такое энтропия?") API для анализа. Параметр температуры определяет, насколько случайным будет сгенерированный ответ — более низкие значения означают более предсказуемый текст. Параметр max_tokens задает ограничение на количество слов и знаков препинания в ответе. И вуаля! Функция вернет сгенерированный ответ от указанной модели OpenAI.

Теперь пришло время создать функцию, которая отправляет сообщение в определенную группу Telegram.

 № 3а. Функция, которая отправляет сообщение в определенную группу телеграмм 
def telegram_bot_sendtext(bot_message,chat_id,msg_id):
data = {
'chat_id': chat_id,
'text': bot_message,
'reply_to_message_id': msg_id
} 9 0055 ответ = request.post(
'https://api.telegram.org/bot' + BOT_TOKEN + '/sendMessage',
json=data
)
return response.json()

№ 3б. Функция, которая отправляет изображение в определенную группу телеграмм. 0055 URL = 'https://api.telegram.org/bot' + BOT_TOKEN + '/sendPhoto'

response = request.post(url, data=data)
return response.json()

Приведенный выше 3.a отправляет сообщение в определенную группу Telegram с помощью Telegram API. Функция принимает три аргумента: bot_message — сообщение для отправки, chat_id — уникальный идентификатор чата, в который будет отправлено сообщение, и msg_id — уникальный идентификатор сообщения, на которое вы хотите ответить. Функция использует библиотеку запросов для отправки GET-запроса к Telegram API с необходимыми параметрами, включая ключ API, идентификатор чата и сообщение для отправки.

Теперь пришло время перейти к хорошему — созданию функции, которая извлекает последний запрос от пользователей в группе Telegram, генерирует умный ответ , используя OpenAI , и отправляет его обратно в группу . Давайте сделаем это дело!

 # 4. Функция, которая получает последние запросы от пользователей в группе Telegram, 
# формирует ответ, используя OpenAI, и отправляет ответ обратно в группу.

def Chatbot():
# Получить последнее сообщение ID из текстового файла для обновления ChatGPT
cwd = os.getcwd()
filename = cwd + '/chatgpt.txt'
, если не os.path.exists(имя файла):
с открытым(имя файла, "w") as f:
f.write("1")
иначе:
print("Файл существует")

с открытым( filename) as f:
last_update = f. read()

# Проверить наличие новых сообщений в группе Telegram
url = f'https://api.telegram.org/bot{BOT_TOKEN}/getUpdates?offset={last_update} '
response = request.get(url)
data = json.loads(response.content)

для результата в data['result']:
try:
# Проверка наличия нового сообщения
if float(result['update_id']) > float(last_update):
# Проверка новых сообщений, которые не пришли из chatGPT
if not result['message']['from']['is_bot']:
last_update = str(int(result['update_id']))

# Получение идентификатора сообщения отправителя запроса
msg_id = str(int(result['message']['message_id']))

# Получение идентификатор чата
chat_id = str(result['message']['chat']['id'])

# Проверка, хочет ли пользователь изображение
, если '/img' в результате['message']['text ']:
prompt = result['message']['text'].replace("/img", "")
bot_response = openAImage(prompt)
print(telegram_bot_sendimage(bot_response, chat_id, msg_id))

# Проверка этого пользователя упомянул имя пользователя чат-бота в сообщении
, если '@ask_chatgptbot' в результате ['сообщение']['текст']:
prompt = результат['сообщение']['текст']. replace("@ask_chatgptbot", "")
# Вызов OpenAI API с использованием личности бота
bot_response = openAI(f"{BOT_PERSONALITY}{prompt}")
# Отправка ответа группе телеграмм
print(telegram_bot_sendtext(bot_response, chat_id, msg_id))
# Проверка того, что пользователь отвечает боту ChatGPT ['from']['is_bot']:
prompt = результат['message']['text']
bot_response = openAI(f"{BOT_PERSONALITY}{prompt}")
print(telegram_bot_sendtext(bot_response, chat_id, msg_id ))
кроме Exception as e:
print(e)

# Обновление файла с идентификатором последнего обновления
с open(filename, 'w') as f:
f.write(last_update)

return "done"

Но подождите, это еще не все! Мы также удостоверимся, что они принадлежат реальному пользователю (а не надоедливому боту), и отправим их в API OpenAI для анализа, если они упоминают имя пользователя бота и являются ответом боту. Убедитесь, что вы переименовали своего бота в скрипте, заменив «@ask_chatgptbot» на желаемое имя.

Итак, последний шаг! Пришло время добавить компонент планирования в вашего бота, чтобы он мог регулярно проверять наличие новых сообщений в группе и отправлять ответы по мере необходимости. Библиотека потоков Python может помочь вам в этом.

 # 5 Запуск проверки каждые 5 секунд для проверки наличия новых сообщений 
def main():
timertime=5
Chatbot()

# 5-секундный таймер
threading.Timer(timertime, main).start()

# Запустить основную функцию
if __name__ == "__main__":
main()

Та-да! Представляем плоды вашего труда: окончательный код Python для вашего модного нового чат-бота. Просто скопируйте и вставьте этого плохого парня в свой любимый редактор кода, вставьте свои ключи API и идентификатор группы чата, и вы сразу же начнете общаться с ChatGPT.

Полный обзор кода ( ссылка на github здесь ):

https://raw.githubusercontent.com/Eloise1988/OPENAI/main/robot. py

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

Тестирование на https://t.me/askchatgpt

Да начнутся махинации с чат-ботами! Просто нажмите на ссылку ниже и отправьте сообщение @ask_chatGPTbot

Спросите ChatGPT

Наша группа использует API OpenAI для улучшения общения и повышения производительности. Наш бот, @ask_chatGPTbot, постоянно…

t.me

Как создать бота для Telegram, способ Low-Code (2023)

Telegram был 6-м самым загружаемым приложением в 2022 году с 310 миллионами загрузок, согласно Форбс. С помощью ботов Telegram вы можете использовать популярность приложения, чтобы направлять пользователей к вашим собственным продуктам и услугам или оживлять свои онлайн-сообщества: боты Telegram могут отправлять автоматические сообщения, взаимодействовать с пользователями с помощью команд и предоставлять информацию или услуги членам группы. Их может создать кто угодно и интегрировать с любой платформой, если вы знаете, как это сделать!

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

Почему боты Telegram?

Telegram — популярная платформа, но она также предлагает невероятные возможности для создателей:

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

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

5 шагов по созданию бота Telegram

1. Зарегистрируйте своего бота в Telegram

Бот Telegram — это просто программа, которая получает события Telegram в виде HTTP-запросов и отправляет запросы обратно в Telegram Bot API. Для этого нам сначала нужно зарегистрировать бота в Telegram, чтобы получить токен API.

Чтобы создать нового бота Telegram, используйте строку поиска, чтобы найти бота BotFather — бота Telegram, который заботится об управлении ботами (мета, я знаю) — и отправьте ему команду /newbot :

После выбора имени и имени пользователя для вашего бота BotFather выдает вам токен API. Этот токен используется для аутентификации вашего бота и требуется для всех запросов API.

В этом примере мы назовем нашего бота RowyAI, и это будет полезный бот, который передает входящие сообщения на GPT-3 OpenAI и отправляет вывод обратно отправителю.

2. Получение сообщений Telegram

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

В Rowy создайте таблицу и добавьте два столбца — один для хранения входящего сообщения , а другой для хранения соответствующего telegramChatId , чтобы помнить, куда отправить ответ:

Затем мы просто создаем Rowy webhook, щелкнув значок веб-перехватчика в правом верхнем углу таблицы и Add Webhook -> Basic . Вы уже можете заметить, что Rowy автоматически генерирует URL-адрес веб-перехватчика, на который мы можем указать Telegram для отправки событий:

Нам просто нужно добавить логику кода в настройки вебхука для хранения входящего сообщения. Документация API Telegram говорит нам, что сообщение хранится в теле запроса:

Давайте пройдемся по коду вебхука:

 const basicParser: Parser = async({req, db, ref, logging}) = > {
  const {сообщение} = req.body;
  возвращаться {
    сообщение: сообщение.текст,
    telegramChatId: message.chat.id
  }
}
 

Функция webhook поставляется с несколькими параметрами, но нас интересует только параметр входящего запроса, запрос . Мы разбираем объект message и возвращаем новую строку для сохранения в нашей таблице Rowy. Теперь каждый раз, когда мы получаем новое сообщение, вебхук будет сохранять его в нашей таблице.

Прежде чем он заработает, мы должны сообщить Telegram, что наш веб-перехватчик готов, отправив запрос POST на конечную точку setWebhook API Telegram. Для этого мы можем использовать простую команду curl :

 curl -X POST "https://api.telegram.org/bot/setWebhook?url="
 

Затем отправьте сообщение своему боту в Telegram:

И вы увидите сообщение, хранящееся в вашей таблице Rowy:

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

3. Отправка сообщений Telegram

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

Во-первых, нам нужно передать входящее сообщение на GPT-3:

 const response = await fetch("https://api. openai.com/v1/completions", {
    метод: «ПОСТ»,
    заголовки: {
        "Тип контента": "приложение/json",
        «Авторизация»: `Bearer ${rowy.secrets.OPENAI_API_KEY}`
    },
    тело: JSON.stringify({
        модель: "текст-davinci-003",
        подсказка: row.message,
        температура: 0,7,
        макс_токены: 256,
        топ_р: 1,
        частота_пенальти: 0,
        присутствие_пенальти: 0
    }),
}).затем(рез => res.json())
 

Мы будем хранить вывод в таблице. Чтобы отправить сообщение, нам нужно вызвать конечную точку sendMessage API Telegram:

 await fetch(`https://api.telegram.org/bot${rowy.secrets.TELEGRAM_API_TOKEN}/sendMessage`, {
    метод: «ПОСТ»,
    тело: JSON.stringify({
        chat_id: row.telegramChatId,
        текст: ответ.выборы[0].текст
    }),
})
 

И окончательный код производной будет выглядеть так:

 const производная:Производная = async ({ row })=>{
    константный ответ = ожидание выборки ("https://api. openai.com/v1/completions", {
        метод: "ПОСТ",
        заголовки: {
            "Тип контента": "приложение/json",
            «Авторизация»: `Bearer ${rowy.secrets.OPENAI_API_KEY}}`
        },
        тело: JSON.stringify({
            модель: "текст-davinci-003",
            подсказка: row.message,
            температура: 0,7,
            макс_токены: 256,
            топ_р: 1,
            частота_пенальти: 0,
            присутствие_пенальти: 0
        }),
    }).затем(рез => res.json())
  константный ответ = response.choices[0].text
  ожидание выборки(`https://api.telegram.org/bot${rowy.secrets.TELEGRAM_API_TOKEN}/sendMessage`, {
        метод: «ПОСТ»,
        тело: JSON.stringify({
            chat_id: row.telegramChatId,
            текст: ответ
        }),
    })
  вернуть ответ
}
 

Теперь бот ответит на ваши самые дикие вопросы:

4. Разверните бота на производстве

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