AIHelperToHead
Описание
Языки
- Python66,3%
- HTML17,8%
- Jinja7,9%
- CSS5%
- JavaScript3%
AIHelperToHead
Веб-прототип для проекта "AI-помощник Главы муниципального образования".
Проект собирает публикации из нескольких источников, обогащает их через AI-модель и показывает результат в Django-интерфейсе: , , , , карточки событий и вкладка управления источниками.
Что умеет проект
- Авторизация с ролями
иHead.Assistant - Вкладка
для ролиИсточники и сбор данных.Head - Хранение списков Telegram-каналов и VK-сообществ.
- Ручной запуск пайплайна из интерфейса.
- Автозапуск пайплайна по таймеру.
- Инкрементальная обработка:
- парсеры дополняют raw JSON;
- AI-агент обрабатывает только новые или изменённые записи;
- импорт в БД не создаёт дубли.
- Просмотр событий через сайт и Django admin.
- Формирование
-сводки по данным из БД..docx
Архитектура
web/
Основное Django-приложение:
- модели пользователей, событий, кластеров, уведомлений и конфигурации источников;
- страницы сайта и API-эндпоинты;
- формы, шаблоны, стили и JS;
- management-команды для пайплайна и импорта.
Parsers/
Слой получения сырых данных:
— Telegram-парсер открытых каналов через HTML;Parsers/TG/parser.py— VK-парсер через VK API;Parsers/VK/— парсер новостного сайта черезParsers/WEB/parser.py.Scrapling
Каждый активный парсер пишет raw JSON в .
AI/Agent/
AI-агент для обогащения raw JSON:
- читает сырые записи;
- прогоняет каждую новость через prompt-файлы;
- дописывает аналитические поля:
,reduce,category,location,score,tags;tone - умеет собирать
-отчёт..docx
Сейчас агент настроен на через .
services/
Служебная логика пайплайна:
- нормализация конфигурации источников;
- хэширование и стабильные идентификаторы;
- запуск парсеров;
- инкрементальное обогащение;
- импорт enriched JSON в БД;
- планировщик фонового автозапуска.
pipeline/
Оркестратор верхнего уровня:
Структура данных
Raw JSON
Все активные парсеры приводятся к единой схеме:
Enriched JSON
AI-агент дополняет raw-запись полями:
- reduce
- category
- location
- score
- tags
- tone
- source_uid
- url_hash
- raw_hash
- processed_at
- processing_status
Как запускается пайплайн
- Во вкладке
Head сохраняет ссылки и интервал автозапуска.Источники и сбор данных - По кнопке
или по таймеру:Начать сбор данных- запускаются парсеры;
- обновляются raw JSON в
;Data/Raw JSONs/ - AI-агент обрабатывает только новые или изменённые записи;
- enriched JSON сохраняются в
;Data/Enriched JSONs/ - данные импортируются в БД.
- Страница
показывает статус последнего запуска и таймер следующего автозапуска.Источники
Быстрый старт
Демо-учётные записи
- head / head12345
- assistant / assistant12345
Основные команды
Полный пайплайн
Пайплайн без AI
Импорт уже готовых enriched JSON в БД
Переменные окружения
См. файл .
Минимальный набор для работы сайта:
Примечания:
- Для VK-парсера нужен
.VK_TOKEN - Для AI-агента достаточно
или временногоGIGACHAT_CREDENTIALS.GIGACHAT_ACCESS_TOKEN - Если ключ Яндекс.Карт не задан, страница карты откроется с заглушкой.
Что не хранится в git
В репозиторий не должны попадать:
;.env- локальная БД
;db.sqlite3 - логи;
- raw/enriched JSON-файлы;
- временные отчёты;
.__pycache__
Для этого в проекте настроен единый корневой .
Подготовка к первому push
Если локальный каталог ещё не является git-репозиторием:
Что осталось на будущее
- расширение количества поддерживаемых источников;
- кластеризация импортированных событий;
- доработка генератора Word-отчёта;
- фоновые очереди вместо dev-server scheduler;
- боевая конфигурация для продакшн-развёртывания.