Система автоматизации новостных рассылок

Бюджет: по договоренности
Необходимо разработать Python-скрипт для автоматического мониторинга постов в конкретном сообществе VK, их обработки с помощью ИИ (Google Gemini) и последующей отправки в Telegram-бот для модерации с возможностью дальнейшей рассылки через API VK Broadcast.

1. Функциональные требования
А. Модуль мониторинга (Сбор данных)
Скрипт должен опрашивать стену сообщества VK с заданным интервалом (по умолчанию 60 сек). Реализовать фильтрацию: пропуск рекламных постов (наличие метки ads или меток маркировки рекламы erid). Сохранение состояния (последний обработанный ID поста) для предотвращения дублей после перезагрузки.

Б. Модуль ИИ-обработки (Gemini AI)
Передача текста поста в Gemini с системным промптом для генерации краткого, «цепляющего» заголовка рассылки. Переработки текста под формат пуш-уведомления. Важно: Реализовать систему повторных попыток при ошибках API (429 Resource Exhausted, 503 Service Unavailable), так как ИИ часто накладывает лимиты.

В. Модуль модерации в Telegram
Отправка превью поста в телеграм-бот. Состав превью: Сгенерированный ИИ текст до 23 символов. Ссылка на оригинал поста. Фото (выбор максимального разрешения из доступных в VK).

Интерактивное меню под постом (Inline Buttons):

Кнопки выбора категории рассылки (например: «Важное», «Происшествия», «Хорошие новости»). Кнопка «Редактировать» (возможность изменить текст сообщения или прикрепить другую фотографию перед отправкой).

Кнопка «Отмена».

Г. Модуль публикации (VK Broadcast)
После подтверждения в Telegram, бот должен отправить сообщение в выбранный список рассылки через VK Broadcast API. Реализовать загрузку фото на сервер VK (метод photos.getMessagesUploadServer -> POST -> photos.saveMessagesPhoto), так как рассылка должна содержать изображение. Обработка ошибок загрузки фото с автоматическим ретраем (минимум 3 попытки).

2. Нефункциональные требования
Многопоточность: Мониторинг VK должен работать в отдельном потоке от Telegram-бота.

Логирование: Подробный лог всех действий (запросы к API, ошибки Gemini, статусы рассылок) в консоль и файл.

Конфигурация: Все ключи доступа (Tokens), ID сообществ и настройки списков рассылки должны выноситься в переменные окружения (.env).

3. Ожидаемый результат
Архив с исходным кодом, разбитым на логические модули (core, api, bot), файл зависимостей requirements.txt и инструкция по запуску.
Опубликован 26.05.2026 в 18:24

Выберите способ верификации:

Обновите страницу после прохождения верификации.