Интеграция ChatGPT в Telegram-ботов: пошаговое руководство

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
32.111
Репутация
12.420
Реакции
64.006
RUB
150

Зачем это нужно?

Боты с искусственным интеллектом могут:
  • Автоматизировать поддержку клиентов
  • Давать быстрые и осмысленные ответы
  • Развлекать и обучать пользователей
  • Создавать персонализированные рекомендации
С ChatGPT Telegram-бот становится не просто командным исполнителем, а полноценным собеседником.

Что понадобится?

Прежде чем начать, подготовьте:
  • Аккаунт Telegram (очевидно)
  • Токен от BotFather (создадим нового бота)
  • API-ключ OpenAI для доступа к ChatGPT
  • Сервер/VPS или локальный компьютер для запуска кода
  • Python и библиотека aiogram или pyTelegramBotAPI

Шаг 1: Создание бота в Telegram

  • Открываем Telegram, ищем BotFather и пишем /newbot
  • Даем боту имя и уникальное Username
  • Получаем API-токен — запоминаем, он нам пригодится!

Шаг 2: Регистрация в 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-бот с искусственным интеллектом. Можно добавить кнопки, голосовые сообщения и даже интеграцию с базами данных.


 
  • Теги
    интеграция chatgpt в telegram-бот
  • Назад
    Сверху Снизу