Бот 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
Бот для групповых чатов Telegram | бот-модератор для групповых чатов
Управление чатом в Telegram: модерация сообщений, карма, приветствие пользователей, авто ответы и еще много другого вы делали это в ручную ну с приходом ботов это стало делать на много проще и 27/7 сегодня я вам покажу 1 из таких ботов упросить работу с чатом
Модератор чатов-группы
Бот TOP TG ADMIN — уже по название понятно что это бот помощник админов, ну что он может я приведу пример не много ниже.
Какие функции доступные на данный момент?
- Выбор бана час, день, месяц, навсегда.
- Запрет матных слов (авто удаление сообщений)
- Запрет ссылок (авто удаление сообщений)
- Запрет спама (авто удаление сообщений)
- Запрет рекламы (авто удаление сообщений)
- Настройки удаление за мат, ссылку, спама и тд
- Приветственный пост
- Карма пользователей
- Обязательная подписка при вступление в чат
- Функция авто ответчик
- Заработок на своем чате
- Рассылка по чатам
Как сделать новых приветствие в чате-группы Телеграм?
Как сделать автоответчик в Telegram чате-группы бесплатно
Как заработать с помощью своего чата-группы в телеграмме
Для многих может стать удивлением ну в этом боте можно заработать на своем чате не много денег, все что вам нужно сделать это подключить бота и зайти в бот и нажать на кнопку заработать, от куда будет идти заработок?? Тут на самом дели все очень просто в боте есть функциям рассылка по чатам вот бот будут вам платить деньги за то что эта реклама будет показываться в вашем чате, учитывайте то что если вы не дадите разрешение на показ рекламы в вашем чате тогда ее не будет вообще
Как сделать массовую рассылку по чатам в Телеграм
Каждый хочет привлечь себе новых пользователей в свой проект ну где же взять этих новы пользователей?? один из актуальных методов это рассылка по чатам уже давно не секрет что люди в чатах активней и если делать рассылку по чатам вы получаете больше охват чем в лс.. так вот бот TOP TG ADMIN дает такую возможность заказать рассылку по чатам к которых бот стоить админом
На этом сегодня все если у вас если интересные боты или приложение пишите в комментариях буду раз по читать и посмотреть. Если Понравилось? Поделитесь с друзьями!
Источник: spark.ru
Как создать бота для Telegram | Бот отправляющий изображения котов
Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.
ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:
Подготовка
Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.
pip install python-telegram-bot —upgrade
pip install requests
Не забудем и про добавление команды
Пишем код
В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.
Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.
По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.
Остальные хендлеры трогать не будем, а поменяем лишь вызываемые ими функции.
Так например по умолчанию функция echo отправляет пользователю тот же самый текст что он и прислал.
Изменим отправляемый текст на сообщение об ошибке
Также изменим отправляемый текст на /start и /help
Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.
Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .
Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.
Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())
Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:
В итоге получается
Исходный код
import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()
F.A.Q
- Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
- A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
- Q: А как сделать ребут, админку, оформить тексты т.д ?
- A: Здесь есть отличные сниппеты
- Q: Как осуществить . ?
- A: Документация Telegram bot api, Вики библиотеки
Источник: liberbear.com