Пошаговое руководство по Python

Устав ждать приглашения Github Copilot, я решил взять дело в свои руки.

Codex от OpenAI — это мощное средство GPT-3, которое преобразует простой английский язык в исполняемый код. Он также может выполнять множество других задач, связанных с кодом, таких как перевод кода с одного языка на другой, создание строк документации и объяснение уже написанного кода.

Вот шаги по созданию собственного личного бота Codex Telegram.

Необходимое условие: для доступа к Codex API вам необходимо получить приглашение от OpenAI. Это бесплатно, и я получил одобрение примерно через неделю. Присоединяйтесь к списку ожидания здесь.

Если вы еще этого не сделали, скачайте Telegram, они также предлагают отличное настольное приложение.

Запросить бота
Для этого вы говорите с BotFather. Он ваш помощник во всем, от создания до настроек и т. д.

Чтобы начать, введите /newbot.
BotFather попросит вас выбрать имя бота (которое должно быть универсально уникальным) и имя пользователя, а затем сгенерирует токен аутентификации для вашего нового бота.

Ключ Кодекса
Затем возьмите свой ключ API от OpenAI.

Обратите внимание на два ключа, которые вы только что получили, они нам скоро понадобятся.

Совет. Работа с секретами в разных средах может вызвать затруднения. Ребята из Doppler предлагают отличный (бесплатный) продукт для всего этого.

Python Code
Запустите свой любимый редактор (в моем случае VS Code) и давайте повеселимся!

Для начала мы установим следующие две библиотеки:

pip install openai
pip install pyTelegramBotAPI

Начните так:

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

Обратите внимание, как я импортирую среду из os. Использование env[‘BOT_API_KEY’] просто красивее/аккуратнее, чем os.environ.

Теперь давайте установим коммюнике между нашим новым блестящим ботом и Кодексом.

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

В строке 7 мы устанавливаем max_tokens на 1200, потому что, хотя Codex допускает максимум 4096 токенов (включая ваше приглашение) на вызов, боты Telegram ограничены 4096 символами UTF-8 на сообщение. Один токен эквивалентен примерно 4 символам.

Узнайте больше о различных параметрах openai.Completion.create здесь, их документация великолепна.

В строке 14 мы используем тот факт, что Telegram предлагает отличную поддержку Markdown, поэтому код отображается красиво, а также позволяет копировать касанием.

Наконец, bot.infinity_polling() постоянно следит за входящими сообщениями.

Есть много других интересных вещей, которые может делать бот Telegram, и pyTelegramBotAPI разбирает все это очень подробно.

Перед запуском скрипта создайте файл .env (обратите внимание на начальную точку) в вашем текущем каталоге, например:

BOT_API_KEY = bot-key-here
OPENAI_API_KEY = openai-key-here

Вот как должен выглядеть ваш полный скрипт:

Поздравляю! Теперь у вас всегда под рукой собственный Кодекс.

Чтобы ваш бот был всегда доступен, вам нужно разместить его в облаке. Будь то AWS или Heroku, выбирайте то, что вам больше нравится; имейте в виду, что для правильной работы bot.infinity_polling() потребуется настройка сервера (например, Flask). Чтобы избежать постоянных минут вычислений, мы можем установить веб-перехватчик вместо опроса. В следующей статье я покажу вам, как я сделал это в качестве приложения-функции Azure.

Понравился этот пост? Давай, похлопай… 👏