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

Представляю Вашему вниманию практические примеры по теме, как создать Telegram бот на Python3 с использованием библиотеки pyTelegramBotAPI. Тут я не вижу смысла рассказывать о том, как использовать Bot Father, так как, скорее всего это знают все, либо инфы в инете полно. Минимум что будет из банальных примеров — это обработка таких команд, как «/start» и «/help» либо любой бот начинается именно с этого + это будет полезно, для тех кто только начинает свой путь в создании ботов Telegram.

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

  1. Подготовка — Создаём config.py и используем Proxy.
  2. Обработка команд «/start» и «/help».
  3. Обработка простых сообщений. Отправка и получение.
  4. Как скачать и отправить стикер пользователю из бота.
  5. Как отправить и получить документ, аудио, видео и.т.д
  6. Разбираемся с Emoji, как получить код смайла для отправки в сообщении.
  7. Получаем информацию о пользователе, который запустил бота.

Подготовка — Создаём config.py и используем Proxy.

Файл config.py понадобится нам для хранения Токена бота и proxy (Если используете). Сложного тут нет ничего, обычный файл с двумя переменными, которые мы будет использовать в основном файле проекта.

КАК ЗАПУСТИТЬ TELEGRAM БОТА ИЛИ ПАРСЕР НА СЕРВЕРЕ

token = ‘Token’

Так просто выглядит файл config.py который нужно импортировать в основном файле проекта, созданием которого мы сейчас займемся. Я его так и назову «telegram_bot.py»

import telebot
from telebot import apihelper # Нужно для работы Proxy
import config # Импорт config.py
import urllib . request # request нужен для загрузки файлов от пользователя
bot = telebot . TeleBot ( config . token ) # Передаём токен из файла config.py
apihelper . proxy = < ‘http’ : config . proxy ># Передаём Proxy из файла config.py
bot . polling ( ) # запускаем бота

Практически Telegram бот на Python уже готов к работе и его можно запустить, если нет ошибок то бот работает. Но есть одна проблема. Бот работает через прокси, а библиотека request, которая нам нужна для загрузки файлов от пользователя, в данном случаи не использует прокси, по этому скачивать файлы не получиться… Это дело можно исправить, но лучше использовать VPN а от proxy отказаться.

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

Обработка команд «/start» и «/help».

Библиотека «pyTelegramBotAPI» использует декораторы, это очень удобно и практично. Посмотрим как это работает на примере обработки команд «/start» и «/help».

def welcome ( message ) :
pass # Тут можно обработать одну из команд start или help

Если пользователь Вашего бота отправить одну из команд start или help то сработает функция «welcome()» (Название функции может быть произвольным) главное что бы она принимала обязательный параметр «message» в котором содержится много полезной информации.

Пишем Telegram бота на Python + Загружаем Telegram бота на сервер(хостинг)

А вот пример как работают декораторы. Мы можем обработать команды в разных функциях.

# Тут работаем с командой start
def welcome_start ( message ) :
bot . send_message ( message . chat . id , ‘Приветствую тебя user’ )
# Тут работаем с командой help
def welcome_help ( message ) :
bot . send_message ( message . chat . id , ‘Чем я могу тебе помочь’ )

Все получается аккуратно и логично, запутаться что и где уже стало сложнее, а значит разработка бота сводится не к рутине а к удовольствию =)

Обработка простых сообщений. Отправка и получение.

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

Еще по теме:  Как сделать кнопку Телеграмм в тильде

Типов сообщений в pyTelegramBotAPI достаточно. Некоторые из них для примера «text, audio, document» и.т.д. Рассмотрим пример

def content_text ( message ) :
print ( ‘Боту отправили обычный текст’ )
def content_document ( message ) :
print ( ‘Боту отправили документ’ )

Как получить простое сообщение от пользователя.

Ранее я уже сказал что в «message» много интересного. Там же и находится сообщение которое напечатал пользователь боту. Прочитать его можно так.

def text ( message ) :
print ( message . text )

В консоль будет выведено сообщение от пользователя.

Как отправить простое сообщение пользователю.

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

def text ( message ) :
if message . text == ‘hello’ :
bot . send_message ( message . chat . id , ‘И тебе hello’ )

Вызываем метод «send_message» и передаём ему собственно ID и текст сообщение. В данном примере происходит следующие: Если пользователь напишет «hello» то бот ему ответит «И тебе hello»

Как скачать и отправить стикер пользователю из Telegram бота

Как отправить Стикер

def text ( message ) :
if message . text == ‘sticker’ :
bot . send_sticker ( message . chat . id , ‘CAADAgADsQADWQMDAAEJK1niI56hlhYE’ )

Если пользователь боту пришлёт слово «sticker» то в ответ мы отправим ему свой стикер. За место send_message вызывается метод send_sticker также передаётся id и за место текста отправляется ID стикера. Все просто — стикер отправлен))

Как получить Стикер (Скачать на локальную машину)

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

def handle_docs_audio ( message ) :
# Получим ID Стикера
sticker_id = message . sticker . file _ id
# Нужно получить путь, где лежит файл стикера на Сервере Телеграмма
file_info = bot . get_file ( sticker_id )
# Теперь формируем ссылку и скачивам файл
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )

Собственно опять «message»! Пользователь отправляет нам стикер. Находим ID Стикера и отдаём его методу «get_file» что бы получить путь до файла на сервере телеграмма. А дальше скачаем файл в папку «stickers» которую нужно создать в том каталоге, где находится весь проект бота.

Как отправить и получить документ, аудио, видео, фото и.т.д

Продолжаем пилить telegram бот на python3 и на простом примере разберёмся, как отправлять файлы пользователям telegram бота.

Как отправить файл пользователю бота

Отправляем пользователю фотографию

def text ( message ) :
if message . text == ‘photo’ :
file = open ( ‘photo.png’ , ‘rb’ )
bot . send_photo ( message . chat . id , file )

За это отвечает метод «send_photo» Аналогично поступим и с другими типами файлов. Например нам нужно отправить документ «file.txt»

Отправляем пользователю документ

def text ( message ) :
if message . text == ‘document’ :
file = open ( ‘file.txt’ , ‘rb’ )
bot . send_document ( message . chat . id , file )

Тут мы уже используем метод «send_document» аналогично поступаем с другими типами файлов аудио, видео и прочие.

Как получить файл от пользователя

Все также как и со стикерами. В этом примере получим документ от пользователя и скачаем его себе на локалку.

def handle_docs_audio ( message ) :
file_info = bot . get_file ( document_id )
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )

Получим от пользователя музыку

def handle_docs_document ( message ) :
audio_id = message . audio . file_id
file_info = bot . get_file ( audio_id )
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )

Точно таким-же способом можно получить любой тип файла от пользователей и создать Telegram бот на Python для конвертации файлов или у кого на что фантазии хватает))

Время чтение: 6 минут 2020-08-31

  • Instabot — модуль для Python, который реализует обертку над API Instagram
  • Python-Cptchnet — Модуль для работы с API сервиса Cptch.net
  • pyTelegramBotAPI Библиотека для создание Ботов Telegram
  • ip2geotools модуль для определения местоположение по IP
  • VK-API Библиотека для создания скриптов для социальной сети Вконтакте
  • ТОПовый генератор паролей на Python 3

Помощь проекту

Если есть возможность — поддержать нас: будем очень признательны. Денежные средства пойдут на дальнейшее развитие проекта!

Источник: snippcode.ru

Как сделать свой личный ChatGPT в Telegram за 5 минут

Как сделать свой личный ChatGPT в Telegram за 5 минутКак сделать свой личный ChatGPT в Telegram за 5 минут

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

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

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

Еще по теме:  Видео с Телеграмма с телефона транслировать на телевизор

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

Подготовка

  • Для начала вам потребуется аккаунт на сайте OpenAI. Если у вас его до сих пор нет, то в самом конце этой статьи инструкция по его созданию. Для регистрации аккаунта потребуется виртуальный номер, минимальная стоимость которого на текущий момент составляет около 20 рублей.
  • Далее включите VPN и перейдите в раздел для разработчиков здесь:

  • Создайте API ключ, нажав на копку «Create new secret key». Запишите его, он понадобится позже.
  • Затем создайте бота в Telegram. Для этого откройте BotFather и введите команду /newbot.

  • Назовите его. Затем пропишите боту ссылку, которая обязательно заканчивается на bot. И сохраните API ключ от бота Telegram. Он также понадобится позже.
  • Итого у вас должно быть 2 ключа: OpenAI и Telegram.

Установка

Далее установите Python на свой компьютер. В начале установки обязательно поставьте галочку «Add python.exe to PATH», иначе в консоли не будут работать команды.

  • Скачайте готовый код бота на GitHub от пользователя n3d1117. Для этого нажмите на зелёную кнопку Code –> Download ZIP. Распакуйте папку из архива в любое удобное место, но желательно без кириллицы в пути.
  • Откройте файл под названием .env.example через любой текстовый редактор (блокнот, notepad++, EmEditor).

  • В поле OPENAI_API_KEY=»XXX» вместо XXX вставьте ваш ключ OpenAI
  • В поле TELEGRAM_BOT_TOKEN=»XXX» вместо XXX вставьте ваш ключ Telegram-бота.
  • В поле ALLOWED_TELEGRAM_USER_IDS=»USER_ID_1,USER_ID_2″ вместо USER_ID_1,USER_ID_2 вставьте символ * – тогда бот будет доступен для всех пользователей. Если вы желаете сделать его доступным только для себя, то введите свой Telegram ID. Узнать его можно здесь.
  • После этого переименуйте «.env.example» в «.env».
  • Далее кликните на путь папки сверху и введите в нём слово powershell и нажмите Enter. Откроется PowerShell сразу с учётом расположения папки вашего бота.

В открытой консоли пропишите следующие команды по порядку:

python -m pip install —upgrade pip
Установка и/или обновление pip

pip install python-telegram-bot
Установка библиотеки Telegram

pip install openai
Установка библиотеки OpenAI

pip install pydub
Установка аудиобиблиотеки

Также можете скачать FFmpeg для работы с аудио и видео, но это необязательно. Текстовый бот будет работать и без этого дополнения. (Из архива нужно вытащить ffmpeg.exe и поместить в корневую папку).

python -m venv venv
Подготовка к запуску виртуального окружения

venvScriptsactivate
Запуск

pip install -r requirements.txt
Установка подходящих параметров

python bot/main.py
Запуск самого бота

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

Пример успешной работы бота:

Бот будет работать пока запущена консоль. Соответственно, чтобы его выключить, достаточно её закрыть. Чтобы запустить бота повторно, все перечисленные выше команды снова вводить не нужно, достаточно лишь так же открыть PowerShell в папке и прописать всего две команды.

venvScriptsactivate
python bot/main.py

Особенности и ограничения:

  • API-версия генерирует текст гораздо быстрее своей бесплатной браузерной версии, примерно на уровне Plus версии.
  • API-версия работает всегда, даже в период нагрузок, также вам не требуется VPN для её использования.
  • Используйте /help, чтобы получить список доступных команд
  • Подобно браузерному ChatGPT, API-версия запоминает информацию в диалоге.
  • Чтобы стереть боту память о беседе, используйте команду /reset. Также после этой команды можно ввести уточнение для бота, чтобы направить его в нужное русло. Например, с помощью «/reset Говори только на русском» можно заставить использовать русский язык по умолчанию.
  • С помощью команды /image можно генерировать картинки с помощью DALL-E по описанию.
  • Через команду /stats можно проверить затраты на использование бота.
  • Также вы можете добавить бота в беседу и общаться с ним вместе с друзьями. (для этого нужно разрешить добавление в беседу в настройках BotFather).

А теперь к ограничениям:

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

Количество бонусных долларов зависит от даты регистрации вашего аккаунта. На моём аккаунте, который был зарегистрирован в первые дни запуска ChatGPT, было предоставлено бонусов в размере $18. Это очень много, если вы используете бота в одиночку, то вам более чем хватит этого на месяц или два активного использования.

Однако в последнее время новым аккаунтам стали давать более скромный бонус – $5, которого хватит где-то на пару недель активного использования. Статистку использования вы можете отследить на сайте OpenAI или в самом боте по команде /stats.

Еще по теме:  Как в посте в Телеграм сделать текст Красным и жирным

Также следует отметить ещё пару важных фактов:

  • Подключить версию GPT-4 на данный момент нельзя, даже если у вас есть Plus. API GPT-4 на текущий момент находится в закрытом доступе.
  • Запущенная через API версия фактически незначительно отличается от браузерной ChatGPT. Браузерная версия была доработана, чтобы быть ассистентом, а также содержит больше уточняющей информации о себе, в то время как API-версия «более обезличенная» и даже не называет себя ChatGPT.
  • В этом плане API версия сильно напоминает декабрьский ChatGPT, который даже не мог назвать актуальную дату. Однако всё же знания у ботов общие, поэтому беспокоиться за качество ответов не стоит.
  • Для тех кому интересно, по умолчанию в боте используется модель gpt-3.5-turbo. Какие ещё существуют модели можете посмотреть здесь.

Источник: kod.ru

Создание бота на Python для Telegram и его упаковка в Docker Compose

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

Часть 1: Создание бота на Python для Telegram

Шаг 1: Регистрация бота в Telegram

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

Шаг 2: Установка необходимых библиотек

Далее необходимо установить библиотеку python-telegram-bot, которая предоставляет удобный интерфейс для взаимодействия с Telegram API. Вы можете установить ее с помощью pip, выполнив команду:

pip install python-telegram-bot

Шаг 3: Написание кода бота

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

from telegram.ext import Updater, MessageHandler, Filters def handle_message(update, context): message = update.message.text if message.lower() == ‘привет’: context.bot.send_message(chat_id=update.effective_chat.id, text=’Привет, как дела?’) updater = Updater(token=’YOUR_TOKEN_HERE’, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(MessageHandler(Filters.text, handle_message)) updater.start_polling()

Вышеуказанный код создает экземпляр Updater , который устанавливает соединение с Telegram API с использованием вашего токена доступа. Затем мы создаем обработчик сообщений MessageHandler , который реагирует на текстовые сообщения. В нашем примере он проверяет, содержит ли сообщение текст «привет» и отправляет ответное сообщение.

Часть 2: Упаковка бота в Docker Compose

Шаг 1: Установка Docker и Docker Compose

Прежде чем упаковывать бота в Docker Compose, убедитесь, что у вас установлены Docker и Docker Compose на вашей системе. Вы можете найти инструкции по установке на официальном сайте Docker.

Шаг 2: Создание Dockerfile

Dockerfile — это файл, который содержит инструкции для создания Docker-образа. Создайте файл с именем «Dockerfile» в корневой папке вашего проекта и добавьте следующий код:

FROM python:3.9 WORKDIR /app COPY requirements.txt . RUN pip install —no-cache-dir -r requirements.txt COPY . . CMD python bot.py

Этот Dockerfile использует базовый образ Python 3.9, устанавливает необходимые зависимости, копирует файлы проекта и запускает скрипт bot.py .

Шаг 3: Создание docker-compose.yml

Теперь создайте файл docker-compose.yml в корневой папке вашего проекта и добавьте следующий код:

version: ‘3’ services: bot: build: . environment: — YOUR_TOKEN=YOUR_TOKEN_HERE

Этот файл определяет службу bot , которая будет построена на основе текущего каталога ( . ). Он также устанавливает переменную окружения YOUR_TOKEN со значением вашего токена доступа.

Шаг 4: Запуск бота в Docker Compose

Теперь вы можете запустить вашего бота в Docker Compose. Откройте терминал, перейдите в папку с файлами проекта и выполните следующую команду:

docker-compose up

Docker Compose автоматически соберет Docker-образ и запустит контейнер с вашим ботом. Вы увидите вывод логов бота в терминале.

Заключение

В этой статье мы рассмотрели, как создать бота на Python для Telegram и упаковать его в Docker Compose. Docker позволяет легко развертывать и масштабировать ботов, обеспечивая удобную изоляцию и управление зависимостями. Docker Compose предоставляет простой способ описания и запуска множества связанных контейнеров. Теперь у вас есть все необходимое для создания и развертывания своего собственного бота на Python для Telegram. Удачи в вашем проекте!

Источник: infozone.pro

Рейтинг
( Пока оценок нет )
Загрузка ...