Однажды меня спросили: "Даня, почему ты не читаешь каналы". Я устал оправдываться, что у меня мало времени, и решил создать данного бота.
AI-автоответчик — это Telegram-userbot, автоматически публикующий комментарии к новым постам в каналах и отвечающий на ответы пользователей с помощью модели Google Gemini.
- Поддержка нескольких каналов: указывайте публичные юзернеймы и инвайт-ссылки через запятую.
- Публичные и приватные: автоматически присоединяется к приватным чатам по инвайт-ссылкам.
- AI‑ответы: генерация текста через Google Gemini с настраиваемыми промптами.
- Асинхронность: Telethon + asyncio для неблокирующей работы.
- Отказоустойчивость: fallback-ответ при недоступности AI-сервиса.
- Логирование: подробный вывод действий и ошибок.
git clone https://github.com/tdrkn/tg_userbot.git
cd tg_userbot
cp .env.example .env
# Отредактируйте .env, заполните ключи и список каналов
docker compose up -d --buildДля быстрой проверки работы AI-генерации ответов без необходимости деплоить бота в Telegram, вы можете запустить локальное GUI-приложение.
-
Установите зависимости:
pip install -r requirements.txt
-
Запустите тестовое приложение:
python test_app.py
-
Откроется окно, где можно ввести текст поста, прикрепить изображение и получить ответ от Gemini.
# Telegram API
TG_API_ID=1234567
TG_API_HASH=abcdef1234567890abcdef1234567890
TG_SESSION="YOUR_STRING_SESSION"
# Google Gemini
GEMINI_KEY="AIzaSy…"
GEMINI_MODEL="gemini-2.0-flash"
# Промпт для комментария к посту: {text} → текст поста
GEMINI_PROMPT="Комментарий к посту: «{text}»"
# Заглушка, если AI-сервис недоступен
TG_REPLY_TEXT="🤖 …"Вместо переменной TG_TARGETS бот теперь использует файл channels.csv, расположенный в корне проекта. В этом файле каждый канал или инвайт-ссылка записывается с новой строки. Пример:
@public_channel1
@public_channel2
https://t.me/joinchat/AAAAA...
Бот автоматически считывает этот файл при запуске и обновляет список каналов каждые 5 минут. Не нужно перезапускать контейнер. Просто отредактируйте channels.csv — бот сам подхватит изменения.
Использование этого бота в злонамеренных целях строго запрещено, особенно массовая рассылка и спам в каналах Telegram. Такое поведение противоречит правилам Telegram (Terms of Service: “Use our service to send spam or scam users”) и может привести к блокировке аккаунта или юридической ответственности.
- Python ≥ 3.10
telethon≥ 1.27google-genai≥ 0.2- Docker & Docker Compose
- tg_userbot/
- config.py — environment config (.env)
- logging_setup.py — logging configuration
- ai.py — Gemini client init, prompts, smart_reply
- telegram_utils.py — helpers: join channels, image extract, CSV, delays
- main.py — bot runner (async run())
- auto_reply_userbot.py — thin wrapper calling tg_userbot.main.run()
- Dockerfile, docker-compose.yml — containerization
- channels.csv — channels to track (mounted in docker-compose)
Entry point remains the same in Docker: the wrapper script runs the modular bot.
MIT License © 2024 [Danil Rastyapin]