AIHelperToHead

0

Описание

Языки

  • Python66,3%
  • HTML17,8%
  • Jinja7,9%
  • CSS5%
  • JavaScript3%
README.md

AIHelperToHead

Веб-прототип для проекта "AI-помощник Главы муниципального образования".

Проект собирает публикации из нескольких источников, обогащает их через AI-модель и показывает результат в Django-интерфейсе:

Dashboard
,
Карта
,
Кластеры
,
Уведомления
, карточки событий и вкладка управления источниками.

Что умеет проект

  • Авторизация с ролями
    Head
    и
    Assistant
    .
  • Вкладка
    Источники и сбор данных
    для роли
    Head
    .
  • Хранение списков Telegram-каналов и VK-сообществ.
  • Ручной запуск пайплайна из интерфейса.
  • Автозапуск пайплайна по таймеру.
  • Инкрементальная обработка:
    • парсеры дополняют raw JSON;
    • AI-агент обрабатывает только новые или изменённые записи;
    • импорт в БД не создаёт дубли.
  • Просмотр событий через сайт и Django admin.
  • Формирование
    .docx
    -сводки по данным из БД.

Архитектура

web/

Основное Django-приложение:

  • модели пользователей, событий, кластеров, уведомлений и конфигурации источников;
  • страницы сайта и API-эндпоинты;
  • формы, шаблоны, стили и JS;
  • management-команды для пайплайна и импорта.

Parsers/

Слой получения сырых данных:

  • Parsers/TG/parser.py
    — Telegram-парсер открытых каналов через HTML;
  • Parsers/VK/
    — VK-парсер через VK API;
  • Parsers/WEB/parser.py
    — парсер новостного сайта через
    Scrapling
    .

Каждый активный парсер пишет raw JSON в

Data/Raw JSONs/
.

AI/Agent/

AI-агент для обогащения raw JSON:

  • читает сырые записи;
  • прогоняет каждую новость через prompt-файлы;
  • дописывает аналитические поля:
    reduce
    ,
    category
    ,
    location
    ,
    score
    ,
    tags
    ,
    tone
    ;
  • умеет собирать
    .docx
    -отчёт.

Сейчас агент настроен на

GigaChat
через
gigachat
.

services/

Служебная логика пайплайна:

  • нормализация конфигурации источников;
  • хэширование и стабильные идентификаторы;
  • запуск парсеров;
  • инкрементальное обогащение;
  • импорт enriched JSON в БД;
  • планировщик фонового автозапуска.

pipeline/

Оркестратор верхнего уровня:

parsers -> raw json -> AI enrichment -> enriched json -> optional DB import

Структура данных

Raw JSON

Все активные парсеры приводятся к единой схеме:

Enriched JSON

AI-агент дополняет raw-запись полями:

  • reduce
  • category
  • location
  • score
  • tags
  • tone
  • source_uid
  • url_hash
  • raw_hash
  • processed_at
  • processing_status

Как запускается пайплайн

  1. Во вкладке
    Источники и сбор данных
    Head сохраняет ссылки и интервал автозапуска.
  2. По кнопке
    Начать сбор данных
    или по таймеру:
    • запускаются парсеры;
    • обновляются raw JSON в
      Data/Raw JSONs/
      ;
    • AI-агент обрабатывает только новые или изменённые записи;
    • enriched JSON сохраняются в
      Data/Enriched JSONs/
      ;
    • данные импортируются в БД.
  3. Страница
    Источники
    показывает статус последнего запуска и таймер следующего автозапуска.

Быстрый старт

Демо-учётные записи

  • head / head12345
  • assistant / assistant12345

Основные команды

Полный пайплайн

Пайплайн без AI

Импорт уже готовых enriched JSON в БД

Переменные окружения

См. файл

.env.example
.

Минимальный набор для работы сайта:

Примечания:

  • Для VK-парсера нужен
    VK_TOKEN
    .
  • Для AI-агента достаточно
    GIGACHAT_CREDENTIALS
    или временного
    GIGACHAT_ACCESS_TOKEN
    .
  • Если ключ Яндекс.Карт не задан, страница карты откроется с заглушкой.

Что не хранится в git

В репозиторий не должны попадать:

  • .env
    ;
  • локальная БД
    db.sqlite3
    ;
  • логи;
  • raw/enriched JSON-файлы;
  • временные отчёты;
  • __pycache__
    .

Для этого в проекте настроен единый корневой

.gitignore
.

Подготовка к первому push

Если локальный каталог ещё не является git-репозиторием:

Что осталось на будущее

  • расширение количества поддерживаемых источников;
  • кластеризация импортированных событий;
  • доработка генератора Word-отчёта;
  • фоновые очереди вместо dev-server scheduler;
  • боевая конфигурация для продакшн-развёртывания.