Как добавить ChatGPT в Telegram-бот: полный гайд
Боты с ИИ становятся эффективным инструментом для автоматизации коммуникации, персонализации сервисов и повышения качества взаимодействия с аудиторией. Благодаря интеграции ChatGPT в Telegram, бот превращается из простого исполнителя команд в полноценного цифрового собеседника.
Интеллектуальные боты на базе ChatGPT позволяют:
— автоматизировать поддержку клиентов и внутренние процессы
— давать быстрые и осмысленные ответы на запросы
— обучать, развлекать и сопровождать пользователей
— формировать персонализированные рекомендации.
Что потребуется для запуска
Перед началом убедитесь, что у вас есть:
— аккаунт Telegram
— токен от BotFather для создания нового бота
— API-ключ OpenAI
— сервер или локальный компьютер для запуска скрипта
— установленный Python и библиотеки aiogram, openai, python-dotenv.
Этапы интеграции
1. Создание Telegram-бота:
- Откройте Telegram, найдите BotFather и отправьте команду /newbot.
- Задайте имя и уникальный username вашему боту.
- Получите API-токен — он понадобится при настройке скрипта.
2. Регистрация в OpenAI:
- Перейдите на сайт OpenAI.
- Зарегистрируйтесь и получите API-ключ в разделе API Keys.
- Сохраните ключ для дальнейшего использования.
3. Настройка кода и среды.
Установите необходимые библиотеки:
pip install aiogram openai python-dotenv
Создайте файл .env для хранения конфиденциальных данных:
TELEGRAM_BOT_TOKEN=ваш_токен_бота
OPENAI_API_KEY=ваш_api_ключ
Пример базового скрипта:
import openai
import os
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
from dotenv import load_dotenv
load_dotenv()
TELEGRAM_BOT_TOKEN = os.getenv(«TELEGRAM_BOT_TOKEN»)
OPENAI_API_KEY = os.getenv(«OPENAI_API_KEY»)
bot = Bot(token=TELEGRAM_BOT_TOKEN)
dp = Dispatcher(bot)
openai.api_key = OPENAI_API_KEY
@dp.message_handler()
async def chat_with_gpt(message: types.Message):
response = openai.ChatCompletion.create(
model=»gpt-3.5-turbo»,
messages=[{«role»: «user», «content»: message.text}]
)
await message.reply(response[«choices»][0][«message»][«content»])
if __name__ == «__main__»:
executor.start_polling(dp, skip_updates=True)
4. Запуск Telegram-бота:
— сохраните скрипт как bot.py
— запустите его через терминал:
python bot.py
— отправьте сообщение вашему боту. Он должен ответить автоматически.
5. Расширение функциональности
Добавьте команды:
@dp.message_handler(commands=[‘start’, ‘help’])
async def send_welcome(message: types.Message):
await message.reply(«Привет! Я бот на базе ChatGPT. Задавай вопросы.»)
Ограничьте длину сообщения:
if len(message.text) > 500:
await message.reply(«Сообщение слишком длинное, попробуйте короче.»)
return
Добавьте контекст диалога:
user_messages = {}
@dp.message_handler()
async def chat_with_gpt(message: types.Message):
chat_id = message.chat.id
if chat_id not in user_messages:
user_messages[chat_id] = []
user_messages[chat_id].append({«role»: «user», «content»: message.text})
response = openai.ChatCompletion.create(
model=»gpt-3.5-turbo»,
messages=user_messages[chat_id]
)
bot_reply = response[«choices»][0][«message»][«content»]
user_messages[chat_id].append({«role»: «assistant», «content»: bot_reply})
await message.reply(bot_reply)