раздел 03
Вариант 2: на сервере (сложнее)
Локальный вариант живёт, пока включён твой компьютер. Если помощник должен реагировать всегда - например, ставить автоответы круглосуточно - его переносят на сервер. Это дороже и требует навыков, зато он онлайн 24/7 и не зависит от твоего ноутбука.
Обработчики новых сообщений
Главное отличие от локального запуска - помощник работает не «раз в день по расписанию», а постоянно слушает входящие. В Telethon за это отвечают обработчики событий (events): ты описываешь «когда приходит новое сообщение с такими признаками - сделай вот это», и помощник срабатывает сразу.
from telethon import TelegramClient, events
client = TelegramClient("my.session", API_ID, API_HASH) # плейсхолдеры
@client.on(events.NewMessage(incoming=True))
async def handler(event):
text = (event.raw_text or "").lower()
# пример: вне рабочего времени отвечать вежливым автоответом
if "срочно" in text:
await event.reply("Вижу, отвечу в рабочие часы.")
client.start()
client.run_until_disconnected()
Из России - через прокси
Если сервер или ты находишься в России, прямое подключение к Telegram и к некоторым API может не работать. Тогда трафик пускают через прокси - промежуточный сервер, который пропускает запросы. Telethon умеет работать через прокси, это указывается в настройках подключения. Подробнее - в курсе Проксирование.
Связка с LLM
На сервере удобно подключить к помощнику языковую модель (LLM) по API - тогда он не просто фильтрует по словам, а понимает смысл: решает, важное ли сообщение, что ответить, что суммировать. Как это устроено - в главе Правила и ИИ внутри. Если API модели не открывается из России, его тоже пускают через прокси.
Плюсы и минусы
Смежные темы
- Подключение к серверу - как зайти на VPS и работать по SSH.
- Docker с нуля - контейнеры простыми словами.
- Проксирование - когда и зачем нужен прокси.