Опять нашли золото в нашем чате. На этот раз — проект нашего выпускника Алексея Мартынова @AleksMartyn по автоматическому мониторингу судебной практики.
Алексей собрал помощника, который каждый день ищет новые судебные акты, отсеивает лишнее, делает краткие саммари и приносит результат в Telegram на проверку.
То, что проходит проверку, Алексей публикует в канале @corp_disputes.
Что именно делает система
Каждый день помощник:
• заходит в банк решений арбитражных судов;
• ищет свежие акты по корпоративным спорам Верховного Суда и АС Московского округа;
• отбрасывает «процессуальный шум» (определения о возврате, отказы в передаче и другие малоинтересные документы без содержательной позиции);
• проверяет, не обрабатывал ли этот акт раньше;
• извлекает из PDF текст;
• отправляет текст в LLM, которая готовит короткое саммари с основной правовой позицией;
• присылает результат Алексею в Telegram вместе со ссылкой на дело.
Как это сделано (история для тех, кому IT уже ближе юриспруденции)
1. Система сама запускается каждый день
Вся система написана на Python (популярный язык программирования для таких задач) и работает на отдельном Linux-сервере.
Раз в день система сама запускает новый мониторинг. За запуск по расписанию отвечает планировщик JobQueue. Сам помощник работает как служба systemd: запускается вместе с сервером и автоматически перезапускается после сбоя.
API-ключи хранятся отдельно от кода.
2. Система забирает новые судебные акты
Тут все секретики раскрывать не будем: сайт защищён от автоматического сбора данных, поэтому пришлось отдельно настраивать способ получения документов.
3. Акты проходят фильтрацию
Каждый раз система проверяет документы за последние 15 дней по дате регистрации. Это нужно, потому что некоторые акты появляются в банке с задержкой.
Дальше система применяет несколько фильтров:
• оставляет нужные виды судебных актов;
• по содержанию исключает, например, отказы в передаче, возвраты, оставление без рассмотрения и документы без содержательной мотивировки;
• отбрасывает слишком короткие документы;
• не пропускает уже обработанные акты: система сохраняет их doc_id (уникальный идентификатор документа) в локальной базе SQLite и при следующем запуске сверяется с ней.
4. LLM готовит саммари
Из PDF автоматически извлекается текст. Для этого используется pypdf — библиотека для работы с PDF-файлами в Python.
Дальше текст отправляется в Qwen3-235B (языковая модель семейства Qwen). Доступ к ней система получает через Yandex AI Studio.
При этом система не привязана к одному варианту: в настройках можно быстро переключиться на Qwen через сервис DashScope или на YandexGPT, не переписывая всю программу.
Для модели установлена низкая температура — 0,1 (этот параметр отвечает за степень случайности ответа: чем он ниже, тем меньше модель импровизирует и тем более предсказуемо отвечает).
Отдельная большая часть работы — промпт. В нём десятки правил: что сохранять в саммари, что опускать, как не путать судебные инстанции и как вытаскивать именно правовую позицию, а не просто процессуальный результат.
5. Отдельно проверяются возможные галлюцинации
Дополнительно работает детектор галлюцинаций на обычных правилах поиска по тексту. Он находит в саммари ссылки на Пленумы, Обзоры и информационные письма и проверяет, есть ли такие упоминания в самом судебном акте. Если нет — помечает их для проверки.
6. Результат приходит в Telegram
Готовый разбор приходит Алексею в личку через Telegram-бота. Под сообщением есть кнопки «Опубликовать / Редактировать / Теги / Пропустить». В канал уходит только то, что Алексей подтвердил.
Получился хороший пример автоматизации рутинной части мониторинга судебной практики. Берите на заметку)
_______________________________
Сообщество юристов, которые покоряют нейросети
Канал | Курс