Интеграция ChatGPT в Telegram-ботов: пошаговое руководство
Зачем это нужно?
Боты с искусственным интеллектом могут:
- Автоматизировать поддержку клиентов
- Давать быстрые и осмысленные ответы
- Развлекать и обучать пользователей
- Создавать персонализированные рекомендации
С ChatGPT Telegram-бот становится не просто командным исполнителем, а полноценным собеседником.
Что понадобится?
Прежде чем начать, подготовьте:
- Аккаунт Telegram (очевидно)
- Токен от BotFather (создадим нового бота)
- API-ключ OpenAI для доступа к ChatGPT
- Сервер/VPS или локальный компьютер для запуска кода
- Python и библиотека aiogram или pyTelegramBotAPI
Шаг 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: Запуск бота
- Сохраняем код в файл bot.py
- Запускаем командой:
python bot.py
Пишем боту в Telegram — он должен отвечать на сообщения!
Шаг 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)
Итог
Поздравляю! Теперь у вас есть Telegram-бот с искусственным интеллектом. Можно добавить кнопки, голосовые сообщения и даже интеграцию с базами данных.
🔹 Хотите еще больше крутых гайдов? Подписывайтесь на наш Telegram-канал — там самые свежие лайфхаки и фишки по AI и ботоводству!
3 комментария