Створення чат-ботів стає все більш популярним у світі технологій. Вони використовуються в різних сферах, від підтримки клієнтів до освіти та медицини. Однак розробка чат-бота може бути досить складним завданням, яке потребує глибоких знань програмування та штучного інтелекту. У цій статті ми розглянемо, як використовувати OpenAI ChatGPT для створення бота Telegram на основі Python, який спілкуватиметься з користувачами за допомогою природної мови.

Кроки налаштування бота:

  • Створення облікового запису OpenAI та ключа API
  • Створення телеграм-бота
  • Підготовка сервера, запуск бота

1. Створення облікового запису OpenAI та ключа API

Відвідайте сторінку OpenAI та створіть ваш аккаунт.
Ви можете зареєструватися за допомогою адреси електронної пошти або продовжити з наявним обліковим записом Google або Microsoft.

регистрация OpenAI

Наступним кроком є ​​введення номера, на який буде надіслано SMS-підтвердження.

Зауважте, що OpenAI доступний не в усіх країнах. Щоб переглянути список підтримуваних країн перейдіть за посиланням Підтримувані країни та території.

Створення ключа API

Натисніть на свій аватар у верхньому правому куті та виберіть View API Keys. Клікніть Create new secret Key щоб створити ключ API та скопіювати його.

Увага! Переконайтеся, що ви зберегли ключ, оскільки ви не зможете скопіювати його під час повторного входу. Якщо ви його втратите, вам доведеться створити новий ключ.

OpenAI API key

2. Створення телеграм-бота

Ми використаємо спеціальний бот @BotFather для створення нашого бота.
І так, щоб створити нового бота, виконайте команду:

/newbot

Далі призначте боту ім’я та нікнейм — за ним ви зможете знайти бота в Telegram. Нік має бути унікальним, написаним латинськими літерами і закінчуватися на bot. Для нашого прикладу вкажемо псевдонім – uni_chat_gpt_bot

Після створення бота ви побачите таке повідомлення:

telegram bot token

Для нас важливий токен, згенерований при створенні бота, ми будемо використовувати його в майбутньому для інтеграції з OpenAI ChatGTP.

3. Підготовка сервера, запуск бота

IУ цьому посібнику ми створимо простий чат-бот, використовуючи модель штучного інтелекту Davinci для створення відповідей. Це точна і дорога модель, але вона повільніша, оскільки працює з великою кількістю даних. Він може виконувати завдання всіх інших моделей, але потребує менше вказівок у «Інструкціях для бота».

У розділах Examples та OpenAI Cookbook, ви можете побачити приклади використання моделей, а також поекспериментувати з налаштуваннями в Playground.

Для прикладу в цьому підручнику ми вибрали шаблон чату Friend, який є емуляцією текстової розмови. За основу ми візьмемо API-запит для Python цього шаблону, але відредагуємо його під наші вимоги.

Отже, настав час створити та розмістити сценарій Python на сервері. Ми будемо використовувати VPS на базі Ubuntu Server 20.04.

Вхід на сервер через SSH.

За замовчуванням на Ubuntu Server 20.04 уже встановлено python версії 3.

Для перевірки введіть команду:

python3

Відповідь:

Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

це означає, що Python 3.8.10 уже встановлено на сервері, і ми можемо переходити до наступного кроку.

Встановлення pip:

apt install pip

Встановіть необхідні бібліотеки для нашого скрипта:

pip install openai

pip install pyTelegramBotAPI

Створення файлу main.py:

nano main.py

Вставте наступний код:

import os
import openai
import telebot

openai.api_key = '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'
bot = telebot.TeleBot('5868492437:AAHzr8E09ooGpXNw7lOf2On2K53FKz-ZTyc')

@bot.message_handler(func=lambda _: True)
def handle_message(message):
response = openai.Completion.create(
model="text-davinci-003",
prompt=message.text,
temperature=0.5,
max_tokens=60,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.0,
)
bot.send_message(chat_id=message.from_user.id, text=response['choices'][0]['text'])

bot.polling()

Де,

openai.api_key = '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'

API-key OpenAI
bot = telebot.TeleBot('5868492437:AAHzr8E09ooGpXNw7lOf2On2K53FKz-ZTyc')

Telegram chatbot API key

Відповідно, їх необхідно замінити на свої. Запустіть сценарій:

python3 main.py

Якщо помилок не виявлено, можна переходити до тестування нашого Telegram-бота, для цього його потрібно знайти за ніком – uni_chat_gpt_bot і ви можете почати діалог:

chatgpt bot