Это моя первая статья но надеюсь вам понравится! Почему я решил создать эту статью, когда скорее всего есть уже много других подобных? Дело в том что официальное API компании OpenAI(компании которая создала ChatGPT) — платное(пробный период быстро заканчивается), но недавно я нашел метод, которым сам пользуюсь, через который можно создавать приложения с использованием ChatGPT — бесплатно, покажу на примере просто Telegram-чатбота
Подготовка
Итак для начала нам нужно сделать несколько проверок на необходимые инструменты:
- Python — рекомендуемая версия 3.10 и выше Чтобы проверить установлен ли Python в коммандной строке введите: python -V Если коммандная строка вывела версию Python — все в порядке, можем продолжать, в другом случаи установите Python с официального сайта и при установке обязательно убедитесь что поставлена галочка на «Add to PATH», продолжаем
- Библиотека для взаимодействия с Telegram API Чтобы ее установить необходимо использовать команду: pip install python-telegram-bot
- Библиотека взаимодействия с ChatGPT Мы не будем использовать официальную библиотеку openai , вместо нее будет использована revChatGPT , ссылка на гитхаб автора — клик, чтобы ее установить необходимо использовать команду: pip install —upgrade revChatGPT
- Токен телеграм-бота Получить его можно создав новго или использовав уже существующего бота у BotFather https://t.me/BotFather
- Токен ЧатГПТ Если вы зарегестрированы в Openai и можете взаимодействовать с ChatGPT на официальном сайте то чтобы его получить надо перейти по ссылке https://chat.openai.com/api/auth/session и скопировать значение «accessToken»
Использования бибилиотеки revChatGPT
Итак для начала давайте разберемся как работает эта библиотека и затем интегрируем ее в бота, сделаем скрипт с постоянным циклом для некого подобия чата внутри консоли:
ПЕРЕПИСКА С ВИРТУАЛЬНЫМ ПАРНЕМ! КУКЛА КАЯКИ 2
from revChatGPT.V1 import Chatbot #импортируем библиотеку accesstoken=»здесь вместо текста вставьте ваш accessToken» #задаем переменную токена chatbot = Chatbot(config=) #инициализируем чатбота while True: message = input(«Вы:») #создаем ввод текста output = chatbot.ask(message) #даем запрос ChatGPT с набранным текстом print(f»ChatGPT:») #выводим ответ ChatGPT
Вы можете попробовать использовать этот скрипт для проверки токена и других целей, в нашем случаи ознакомление с работой revChatGPT
Создание Telegram бота
Теперь приступим к созданию кода непосредственно самого бота
1.Импорт библиотек telegram и ChatGPT:
from telegram.ext import Updater, CommandHandler, MessageHandler, filters from revChatGPT.V1 import Chatbot
2. Инициализируем бота и ChatGPT
# здесь нужно вставить свои токены TOKENTG = «TELEGRAM_TOKEN» TOKENGPT = «CHATGPT_TOKEN» updater = Updater(TOKENTG) chatbot = Chatbot(config=)
3. Создаем функцию ответа на сообщения пользователя
def chatgpt_reply(update, context): context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) text = update.message.text reply = chatbot.ask(text) update.message.reply_text(reply)
4. Создаем обработчик сообщений
echo_handler = MessageHandler(Filters.text TELEGRAM_TOKEN» TOKENGPT = «CHATGPT_TOKEN» updater = Updater(TOKENTG) chatbot = Chatbot(config=) def chatgpt_reply(update, context): context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) text = update.message.text reply = chatbot.ask(text) update.message.reply_text(reply) echo_handler = MessageHandler(Filters.text https://habr.com/ru/articles/731896/» target=»_blank»]habr.com[/mask_link]
Бот каяки онлайн в тг
Бот на Python, использующий ChatGPT для Telegram [Гайд]
09 февраля 2023
Оценки статьи
Еще никто не оценил статью
В этой статье мы реализуем бота, работающего на базе ChatGPT, с помощью языка Python и библиотеки aiogram. А также проверим его в работе!
Я обращаюсь к вам с просьбой о финансовой поддержке, чтобы помочь мне справиться с непредвиденной ситуацией, связанной с поломкой моей видеокарты. Как вы знаете, создание статей требует надежного оборудования, и видеокарта является важным компонентом для создания высококачественных материалов.
Я с большим энтузиазмом и преданностью занимаюсь написанием статей и созданием контента, который доступен абсолютно бесплатно. Моей целью является поделиться знаниями и помочь другим, но поломка видеокарты создала трудности и затраты, которые я самостоятельно не могу покрыть.
Ваше пожертвование поможет мне восстановиться от этой ситуации и продолжить создание качественного контента без препятствий. С каждым вкладом вы будете играть важную роль в моей возможности предоставлять информацию, обучение и вдохновение моим читателям и зрителям.
Все откликнувшиеся на зов помощи будут упомянуты после выполнения целей
Примечание: у вас уже должен быть зарегистрирован аккаунт в ChatGPT — OpenAI, если вы этого ещё не сделали, можете ознакомиться с этой статьёй
Дополнительно (может быть полезно): доступен гайд для запуска данного telegram-бота с ChatGPT на VPS сервере, используя Docker контейнер.
Получаем API токен для ChatGPT
- Нам необходимо получить токен для API, переходим на сайт: platform.openai.com
На сайте нажимаем Personal, и выбираем View API keys:
Далее нажимаем Create new secret key
Получаем наш ключ для ChatGPT API.
Опционально: вы можете изучить документацию и другие моменты в управлении ChatGPT.
Получаем токен для бота в телеграмм
Получаем ключ для доступа к API, на скриншоте он закрашен. Сохраняем в удобное место.
Создаем бота на Python
- Открываем папку, где хотим хранить проект с помощью IDE редактора, например VS CODE, открываем терминал, пишем команду cmd и создаем виртуальное окружение с помощью команды py -m venv venv . На компьютере у вас должен быть установлен Python. Скачать его можно на официальном сайте.
Далее активируем виртуальное окружение следующей командой: cd venv/scripts activate и возвращаемся в корневой каталог с помощью команды cd ../../ , в терминале у нас появится, что вирутальное окружение активировано, в скобках (venv).
Далее создаем файл рядом с venv под названием main.py.
Теперь нам необходимо установить два пакета с помощью терминала: pip install openai aiogram
Результат выполнения команды:
(venv) C:UsersRazilatorDesktopProjectsProgHunterBot>pip install openai aiogram Collecting openai Downloading openai-0.26.5.tar.gz (55 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.5/55.5 kB 481.5 kB/s eta 0:00:00 Installing build dependencies done Getting requirements to build wheel done Installing backend dependencies done Preparing metadata (pyproject.toml) done Collecting aiogram Using cached aiogram-2.25.1-py3-none-any.whl (203 kB) Collecting requests>=2.20 Using cached requests-2.28.2-py3-none-any.whl (62 kB) Collecting tqdm Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB) Collecting aiohttp Using cached aiohttp-3.8.3-cp311-cp311-win_amd64.whl (317 kB) Collecting Babel2.10.0,>=2.9.1 Using cached Babel-2.9.1-py2.py3-none-any.whl (8.8 MB) Collecting certifi>=2021.10.8 Using cached certifi-2022.12.7-py3-none-any.whl (155 kB) Collecting magic-filter>=1.0.9 Using cached magic_filter-1.0.9-py3-none-any.whl (9.3 kB) Collecting attrs>=17.3.0 Using cached attrs-22.2.0-py3-none-any.whl (60 kB) Collecting charset-normalizer3.0,>=2.0 Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB) Collecting multidict7.0,>=4.5 Using cached multidict-6.0.4-cp311-cp311-win_amd64.whl (28 kB) Collecting async-timeout5.0,>=4.0.0a3 Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB) Collecting yarl2.0,>=1.0 Using cached yarl-1.8.2-cp311-cp311-win_amd64.whl (55 kB) Collecting frozenlist>=1.1.1 Using cached frozenlist-1.3.3-cp311-cp311-win_amd64.whl (32 kB) Collecting aiosignal>=1.1.2 Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) Collecting pytz>=2015.7 Using cached pytz-2022.7.1-py2.py3-none-any.whl (499 kB) Collecting idna4,>=2.5 Using cached idna-3.4-py3-none-any.whl (61 kB) Collecting urllib31.27,>=1.21.1 Using cached urllib3-1.26.14-py2.py3-none-any.whl (140 kB) Collecting colorama Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB) Building wheels for collected packages: openai Building wheel for openai (pyproject.toml) done Created wheel for openai: filename=openai-0.26.5-py3-none-any.whl size=67643 sha256=37dc116c709234495442341b7ee6aa3dd3bc4106aaff6db62e06b270896d5d7e Stored in directory: c:usersrazilatorappdatalocalpipcachewheelsea6cec 84e3e339332a539336f4b1c6990779c508ee73a760b2697e6 Successfully built openai Installing collected packages: pytz, urllib3, multidict, magic-filter, idna, frozenlist, colorama, charset-normalizer, certifi, Babel, attrs, async-timeout, yarl, tqdm, requests, aiosignal, aiohttp, openai, aiogram Successfully installed Babel-2.9.1 aiogram-2.25.1 aiohttp-3.8.3 aiosignal-1.3.1 async-timeout-4.0.2 attrs-22.2.0 certifi-2022.12.7 charset-normalizer-2.1.1 colorama-0.4.6 frozenlist-1.3.3 idna-3.4 magic-filter-1.0.9 multidict-6.0.4 openai-0.26.5 pytz-2022.7.1 requests-2.28.2 tqdm-4.64.1 urllib3-1.26.14 yarl-1.8.2 [notice] A new release of pip available: 22.3 -> 23.0 [notice] To update, run: python.exe -m pip install —upgrade pip
Теперь в наш файл main.py добавляем следующий фрагмент кода:
В примере выше вы должны вставить токены, которые сохранили соответственно для телеграмм бота и для OpenAI ChatGPT.
Это самые стандартные настройки для запуска и работы бота и стандартные настройки для нейросети, чтоб он вам отвечал непосредственно от нейросети ChatGPT в телеграмме. В коде я передаю ответ от нейросети в виде пришедшего ответа по API.
Запускам бота, проверяем работу
Теперь нам необходимо запустить бота, для этого в терминале напишите py main.py и если все сделали правильно, результат будет следующим:
(venv) C:UsersRazilatorDesktopProjectsProgHunterBot>py main.py Updates were skipped successfully.
Теперь напишем нашему боту
Отлично. Надеюсь у вас все получилось! Иногда может случится такое, что сервер будет выдавать ошибку, к сожалению, это просто нагружен сам сервер нейросети.
Плюсы способа с телеграм-ботом:
- Вы можете обойтись без VPN.
- Всегда в легкой доступности. Минусы:
- Ограниченное кол-во на использование, OpenAI выдает вам 30$ как проверка. На самом деле вы можете долго им пользоваться. Тарификация маленькая и если будет желание, можете купить подписку. Это касается только использования ChatGPT через API.
- Общение не в рамках контекста. Нейросеть просто не запоминает ваши предудыщие сообщения через API, как это реализовано на самом сайте с нейросетью.
Меню категорий
-
Загрузка категорий.
Добро пожаловать в Блог Разработчика Владислава Александровича.
Ведется медленная, но уверенная разработка функционала сайта.
Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023
Источник: proghunter.ru