Робимо чат-бот з вбудованим AI

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

Зараз я розповім та покажу код, який може генерувати текст на основі того, що ти йому кажеш. Для цього я використав бібліотеку Telebot та API від Open AI.

Ось результат:

Для початку імпортуємо наші інструменти до проекту

pip install openai
pip install telebot
import telebot
import os
import openai

Тепер, коли ми маємо все для роботи, треба прописати токени, щоб наш код працював саме з нашим ботом та мав саме ту модель ШІ, яка потрібна нам.

#Тут токен з особистого кабінету OpenAI
openai.api_key = ("YOUR-TOKEN")

#Тут токен який ви мали отримати в BotFather
token_tg = "YOUR-TOKEN"

Так,а наступна частина кода найважча. Тут, для розуміння, вам треба ознайомитися з документацією(я залишив вище), а можна й просто все перепитати в ChatGPT. Він люб’язно підкаже що до чого.

bot = telebot.TeleBot(token_tg)

# Обробник повідомлень зі стікерами
@bot.message_handler(content_types=['sticker'])
def handle_sticker(message):
    # Отримуємо ідентифікатор файлу стікера
    file_id = message.sticker.file_id
    print('ID файлу стікера:', file_id)
    

# Обробник повідомлень з текстом "hello"
@bot.message_handler(func=lambda message: 'hello' in message.text.lower())
def send_sticker(message):
    # Отримуємо ідентифікатор файлу стікера
    file_id = 'CAACAgIAAxkBAAMqZEjRGdcdjkENxnx3CtZXoV9bEr0AApsnAALPomhIr1gpi8FE4aIvBA'
    # Надсилаємо стікер відповідно до ідентифікатора файлу
    bot.send_sticker(chat_id=message.chat.id, sticker=file_id)

# Обробник всіх інших повідомлень
@bot.message_handler(func=lambda message: True)
def generate_response(message):
    # Викликаємо OpenAI API для отримання відповіді
    response = openai.Completion.create(
        engine="text-curie-001",
        prompt=message.text,
        max_tokens=50
    )

    # Відправляємо відповідь користувачеві
    bot.send_message(message.chat.id, response.choices[0].text)

# Запускаємо бота
bot.polling(none_stop=True)

Я спробував прокоментувати усі моменти з коду, але його й без того легко зрозуміти. Особливо на прикладах наведених в документації. В майбутньому я додам посилання на код через гіт хаб, щоб користуватися їм було набагато зручніше.

Усі непорозуміння можете обговорити зі мною в тг або коментарях.

Розширюйте, покращуйте, вдосконалюйте, зміцнюйте український контент.

Слава Україні!

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Пан Євген
Пан Євген@Ukrainian

7KПрочитань
0Автори
67Читачі
Підтримати
На Друкарні з 16 квітня

Більше від автора

Вам також сподобається

Коментарі (10)

успіхів вам!

Вам також сподобається