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

Наступним кроком є введення номера, на який буде надіслано SMS-підтвердження.
Зауважте, що OpenAI доступний не в усіх країнах. Щоб переглянути список підтримуваних країн перейдіть за посиланням Підтримувані країни та території.
Створення ключа API
Натисніть на свій аватар у верхньому правому куті та виберіть View API Keys. Клікніть Create new secret Key щоб створити ключ API та скопіювати його.
Увага! Переконайтеся, що ви зберегли ключ, оскільки ви не зможете скопіювати його під час повторного входу. Якщо ви його втратите, вам доведеться створити новий ключ.

2. Створення телеграм-бота
Ми використаємо спеціальний бот @BotFather для створення нашого бота.
І так, щоб створити нового бота, виконайте команду:
/newbot
Далі призначте боту ім’я та нікнейм — за ним ви зможете знайти бота в Telegram. Нік має бути унікальним, написаним латинськими літерами і закінчуватися на bot. Для нашого прикладу вкажемо псевдонім – uni_chat_gpt_bot
Після створення бота ви побачите таке повідомлення:

Для нас важливий токен, згенерований при створенні бота, ми будемо використовувати його в майбутньому для інтеграції з 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 і ви можете почати діалог:
