Пишем Телеграм бота на Python c использованием API ChatGPT

Данная статья является вольным переводом статьи на medium.com , плюсом от себя реализация API ChatGPT в Телеграм боте.

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

Готовый/работающий телеграм бот ChatGPT доступен тут.

На вопрос «Кто ты?» сама нейросеть отвечает примерно следующее «Я — ChatGPT, крупнейшая языковая модель, созданная OpenAI. Я разработана для обработки естественного языка и могу помочь вам ответить на вопросы, обсудить темы или предоставить информацию на различные темы».

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

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

Если Вы хотите пощупать ChatGPT и потестировать API на Python, тогда об этом ниже.

 

 

 

Установка пакета

Сперва устанавливаем необходимый пакет в python:

Подробнее об API OpenAI можно прочитать в документации:

https://beta.openai.com/docs/api-reference/introduction

Получаем API ключ

Сгенерировать API ключ можно после регистрации на сайте по адресу:

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

Выбираем обученную модель

Выбираем обученную модель, а именно “text-davinci-003”, она является самой мощной моделью GPT-3 и обучалась на данных до июня 2021 года. Узнать больше о различных моделях Вы можете здесь:

https://beta.openai.com/docs/models/gpt-3

Проверяем модель

Протестируем модель! Начнем с того, что попросим ChatGPT назвать лучшую Python библиотеку по машинному обучению:

Код выше указывает использовать модель “text-davinci-003”, с температурой 0,5. Температура представляет собой число от 0 до 1. Меньшее число означает более четко определенный ответ, в то время как большее число позволяет модели брать на себя больший риск. Ответ будет выглядеть примерно так:

Выводим только текст ответа:

Идем дальше! Как насчет того, чтобы прописывать вопрос в терминале и там же получать ответ:

Собственно в коде выше после запуска, скрипт ждет ввода данных из-за функции input(). Ответ будет получен только после ввода запроса.

Оборачиваем код в функцию

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

Теперь все, что Вам нужно сделать, это написать свой вопрос в функции «ask()».

Как видим API ChatGPT прост в использовании, но имейте в виду, что ответы, которые он дает, не всегда на 100% верны.

 

 

 

Прикручиваем API ChatGPT к телеграм боту

Исходники телеграм бота выложил в гитхаб репозиторий.

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

Клонируем репозиторий:

Далее создаем локальное виртуальное окружение:

Переходим в виртуальное окружение и обновляем пакетный менеджер pip:

В файле main.py есть кусок кода, который тянет переменные среды окружения, с помощью библиотеки dotenv:

поэтому нам необходимо создать файл .env.prod или .env.dev (или оба файла) и задать там необходимые переменные 

Теперь можно запустить проект:

Надеюсь, что эта статья была интересной и полезной, спасибо, что посетили ее на этом сайте.