Сейчас буквально весь мир говорит о ChatGPT. В связи со сложившейся политической обстановкой в России данный сервис не доступен без VPN. Но чтобы не морочиться каждый раз с VPN я решил написать бота в Telegram на Python и подключить api openai.
Даже если вы ничего не поняли, то ничего страшного. Я расскажу всё поэтапно.
Сразу предупрежу вас о том, что понадобится VPN и зарубежный номер, для регистрации на OpenAI (п.2.1)
1. Установка и настройка среды программирования
Я использую VS Code так как в нём можно не только писать код, но и запускать скрипт.
VS Code можно скачать и установить бесплатно с сайта производителя.
1.1 Настройка среды
Для начала работы с языком python необходимо скачать сам python на ваш ПК c официального сайта.
После установки мы можем приступить к установки языка в VS Code. Для этого мы переходим на вкладку Extension, которая находится на левой вертикальной панели. Также можно вызвать её сочетанием клавиш Ctrl + Shift + X
После этого в строке поиска набираем "Python" и устанавливаем.
1.1.2 Выбор версии Python в VS Code
Чтобы выбрать версию интерпретатора в самом VS Code необходимо:
- Открыть командную строку VSCode комбинацией Ctrl + Shift + P.
- Ввести "Python: Select Interpreter";
- Выбрать необходимую версию (вспомните какую устанавливали в п. 1.1)
После выбора вы увидите используемую версию в правом нижнем углу.
2. Написание кода и скачивание необходимых библиотек
Чтобы начать писать код мы создадим новый текстовый файл. Это можно сделать двумя способами:
- Нажать File -> New Text File
- Сочетанием клавиш Ctrl + N
При создании нового файла нас попросят выбрать язык. Нажимаем на "Select a language" и в поиске пишем "Python". Нажимаем на предложенный вариант.
Отлично! Теперь мы можем начать писать код.
2.1. Код для интеграции ChatGPT в Telegram бота
Разберём код немного подробнее, чтобы стало яснее.
import openai
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
Первые четыре строки импортируют необходимые библиотеки для работы скрипта.
Нам понадобятся всего две библиотеки:
- aiogram - бот TG
- openai - API ChatGPT
Чтобы эти библиотеки заработали вам необходимо их установить. Для этого мы пишем "pip install aiogram" в Терминале, который находится снизу. После установки прописываем "pip install openai".
token = 'You Token'
openai.api_key = 'You API'
"token" - это токен бота в Telegram, который мы получаем после регистрации бота в BotFather в Telegram. Вот инструкция
Вместо 'You Token' вписываем полученный токен из Botfather
"openai.api.key" - тут находится API ключ для подключения ChatGPT.
Для получения данного ключа нам необходимо зарегистрироваться в openai (используйте vpn для перехода и регистрации на сайте).
При регистрации Вас попросят подтвердить не только email, но и телефон. Я воспользовался сервисом sms-activate (скидка 10% по моей ссылке на первое пополнение), для принятия смс на зарубежный номер (я выбрал Индию).
После прохождения регистрации переходим сюда и нажимаем "Create new secret key".
Скопируйте полученный ключ в заметки на телефоне, текстовый документ для того, чтобы не потерять. Он показывается только один раз, после генерации.
Вместо 'You API' вписываем полученный токен ключ.
bot = Bot(token)
dp = Dispatcher(bot)
bot = Bot(token) и dp = Dispatcher(bot) являются кодом, которые создают объекты бота и диспетчера в Python. token представляет собой секретный токен, который используется для аутентификации бота. Объект Bot создается используя токен, а объект Dispatcher создается, используя объект Bot. Объект Dispatcher используется для управления распределением сообщений между пользователем и ботом.
@dp.message_handler()
async def send(message : types.Message):
prompt = message.text
response = openai.Completion.create(
model="text-davinci-003",
prompt="The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: I'd like to cancel my subscription.\nAI:",
temperature=0.9,
max_tokens=150,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.6,
stop=[" Human:", " AI:"]
)
Самая основная часть кода! Она и отвечает за работу бота с ChatGPT.
@dp.message_handler()
async def send(message : types.Message):
prompt = message.text
Эта часть отвечает за получение сообщений.
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0.6,
max_tokens=150,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.5,
stop=["You:"]
)
А эта за обработку сообщений ChatGPT. Вторая часть данного кода может обновляться в соответствии с обновлением кода OpenAI.
Взять этот код можно тут.
await message.answer(response['choices'][0]['text'])
executor.start_polling(dp, skip_updates=True)
Заключительная часть. Ожидание ответа, запуск работы скрипта на постоянной основе.
Полный код тут
3. Запуск скрипта
Для запуска написанного нам осталось только нажать на кнопку отладки файла.
После запуска вы можете заходить в Telegram и начать тестировать своего бота.
Есть одно НО. Он не будет запоминать диалог как оригинальный ChatGPT. Для этого необходимо усовершенствовать код. Об этом я напишу чуть позже.
#chatGPT #chatgpt #telegramchatgpt #telegram #tgchatgpt #chatgpttg #телеграмбот #тгбот #тгботчатгпт #телеграмботчатгпт #botchatgpt #chatbotgpt #искусственныйинтерелект #ии #технологии #автоматизация #чатбот #бизнес #постинг #написаниепостов