• Home
  • Aiogram
  • Подключение искусственного интеллекта ChatGPT к Telegram боту с помощью Aiogram и OpenAI

Подключение искусственного интеллекта ChatGPT к Telegram боту с помощью Aiogram и OpenAI

Image

Добро пожаловать на мой новый видеоурок на YouTube! В этом уроке я покажу вам, как подключить искусственный интеллект ChatGPT к вашему Telegram боту, используя библиотеку Aiogram и OpenAI.

ChatGPT — это мощная модель искусственного интеллекта, разработанная OpenAI, которая способна генерировать тексты, отвечая на вопросы и участвуя в диалогах. Мы научим нашего Telegram бота использовать эту модель для улучшения коммуникации с пользователями.

Во время этого видеоурока я проведу вас через процесс интеграции ChatGPT в вашего бота, научу его обрабатывать входящие сообщения и генерировать умные и информативные ответы.

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

Не упустите возможность улучшить ваш Telegram бот с помощью искусственного интеллекта ChatGPT. Подписывайтесь на мой канал, чтобы получать новые видеоуроки по разработке ботов и использованию OpenAI. Давайте вместе создадим более умные и отзывчивые боты для вашего Telegram сообщества!

import asyncio
import contextlib
import logging
from aiogram import Bot, Dispatcher, F
from aiogram.types import Message
from aiogram.filters import CommandStart
import openai

BOT_TOKEN = '123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ'

async def get_start(message: Message):
    await message.answer('Привет! С моей помощью ты можешь задать вопросы ChatGPT.')


openai_messages = [
    {
        'role': 'system', 'content': 'Ты консультант бойцовского клуба. '
                                     'Сайт клуба https://fightclub.com. '
                                     'Адрес клуба проспект Победителей 98. '
                                     'Телефон клуба - 375 17 555 55 55. '
                                     'Цена одного занятия 10$, абонемент на месяц 50$. '
                                     'Виды единоборств - муай-тай, кикбоксинг, боевое самбо. '
    },
    {
        'role': 'user', 'content': 'Добрый день. Хочу тренироваться в вашем клубе.'
    },
    {
        'role': 'assistant', 'content': 'Здравствуйте, Да, конечно. Какой вид единоборств Вас интересует?'
    }
]


async def get_chat_gpt(message: Message):
    user_text = message.text
    msg_for_user = await openai_message(msg_for_openai=user_text)
    await message.answer(text=msg_for_user)


async def openai_message(msg_for_openai: str):
    openai.api_key = 'sk-BKaiWkVue5aZctHfHedhudQkFJL43wzW9TVa3p0K5CjZFk'
    model = 'gpt-3.5-turbo'
    # data_openai = [{'role': 'user', 'content': msg_for_openai}]
    openai_messages.append({'role': 'user', 'content': msg_for_openai})
    response = openai.ChatCompletion.create(model=model, messages=openai_messages)
    print(response)
    return response.choices[0].message.content


async def start():
    bot = Bot(token=BOT_TOKEN, parse_mode='HTML')
    dp = Dispatcher()

    dp.message.register(get_start, CommandStart())
    dp.message.register(get_chat_gpt, F.text)

    try:
        await dp.start_polling(bot)
    except Exception as ex:
        logging.error(f"[!!! Exception] - {ex}", exc_info=True)
    finally:
        await bot.session.close()


if __name__ == "__main__":
    with contextlib.suppress(KeyboardInterrupt, SystemExit):
        asyncio.run(start())
Image