Добавить в корзинуПозвонить
Найти в Дзене
Ai-navigator

Как мы сделали интеллектуального юридического ассистента с RAG-поиском по миллионам документов

Заказчик поставил задачу — разработать интеллектуального «нейро-юриста», который: Для юристов это критично: любая выдумка — это уже не помощник, а источник проблем. Честно скажу: проект был очень сложный. Я играл не ведущую роль — помогал с поддержкой промптов, тестированием и финальной стабилизацией системы. Основную тяжёлую инженерную часть тянули ребята, которые заложили архитектуру, пайплайны данных и ядро RAG-логики. Но именно поэтому этот проект запомнился — ощущение, что мы вместе строили большой и умный механизм, который должен думать аккуратно, как хороший адвокат. Мы разложили систему на четыре слоя. Такой подход спасал от хаоса. Это был Telegram-бот и внутренняя админ-панель на Джанго. Бот — для диалога. Админка — для управления коллекциями, логами, диагностикой и всем, что помогает не паниковать, когда что-то идёт не так. Этот слой решал: Именно здесь система понимала, что: иногда нужно сначала спросить, а уже потом умничать. Мы работали с миллионами документов(перед этим
Оглавление

Заказчик поставил задачу — разработать интеллектуального «нейро-юриста», который:

  • ищет релевантные нормы и судебные решения среди миллионов документов.
  • анализирует загруженные пользователем файлы.
  • генерирует юридические документы (иски, жалобы, претензии и т.д.).
  • ведёт осмысленный диалог и помнит контекст.
  • и при этом не придумывает законы и номера дел.
Для юристов это критично: любая выдумка — это уже не помощник, а источник проблем.

Честно скажу: проект был очень сложный. Я играл не ведущую роль — помогал с поддержкой промптов, тестированием и финальной стабилизацией системы. Основную тяжёлую инженерную часть тянули ребята, которые заложили архитектуру, пайплайны данных и ядро RAG-логики.

Но именно поэтому этот проект запомнился — ощущение, что мы вместе строили большой и умный механизм, который должен думать аккуратно, как хороший адвокат.

Архитектура: из чего состоял наш «нейро-юрист»

Мы разложили систему на четыре слоя. Такой подход спасал от хаоса.

1️⃣ UI-слой — там, где пользователь

Это был Telegram-бот и внутренняя админ-панель на Джанго.

Бот — для диалога.

Админка — для управления коллекциями, логами, диагностикой и всем, что помогает не паниковать, когда что-то идёт не так.

2️⃣ Логика приложения — «мозг диспетчера»

Этот слой решал:

  • что пользователь хочет? (поиск, анализ, генерация?)
  • какие коллекции трогать?
  • нужно ли сначала задать уточняющие вопросы?
  • в какой фазе диалога мы сейчас?

Именно здесь система понимала, что:

иногда нужно сначала спросить, а уже потом умничать.

3️⃣ Data Layer — святая святых RAG-контура

Мы работали с миллионами документов(перед этим вытащили их из Консультанта):

  • судебные решения
  • нормы права
  • типовые договоры
  • пользовательские документы

Для поиска мы использовали векторную базу Qdrant.

Каждый документ дробился на фрагменты, векторизовался, снабжался метаданными и отправлялся в хранилище. Затем GPT 4.1 mini вытаскивал оттуда нужную инфу.

На практике:

🔴 метаданные иногда «плыли»

🔴 одни и те же акты оказались размечены по-разному

🔴 появлялись несовпадения, из-за которых модель путалась

Поэтому мы сделали единый пайплайн загрузки META_SYNC → MAIN_LOADER, выровняли поля, навели «бухгалтерский порядок» в данных и очень тонко настроили чанкинг, особенно для резолютивных частей судебных актов. Потому что юридическая правда часто живёт именно там.

4️⃣ LLM-слой

Здесь:

  • собирался контекст
  • формировался промпт
  • запускалась модель
  • результат приводился к строгому JSON-формату

И да — строго к JSON-формату.

Никакого «смотрите, я вам сейчас объясню человеческим языком». Только структура, поля, схемы, валидность.

Самая большая боль — промпты

Система должна была:

✔ отвечать строго по контексту и загруженным документам

✔ не выдумывать нормы, статьи и номера дел

✔ понимать фазу диалога

✔ соблюдать жёсткую JSON-схему

✔ разделять законодательство и судебную практику

✔ учитывать специфику арбитражных споров

Вот только один пример промпта занимал страницы — и таких направлений было много:

один — для анализа договоров, другой — для подготовки исков, третий — для судебной практики и т.д.

Особенно трудно было добиться, чтобы модель:

🔹 не «дорисовывала» законы

🔹 не склеивала чужие реквизиты

🔹 просила недостающие данные, а не фантазировала

🔹 не превращала ответ в лекцию по праву

Я гонял систему на реальных кейсах, проверял ответы, помогал адаптировать запросы под новую структуру метаданных.

Диалог: сначала уточнить, потом отвечать

Мы сделали двухфазный режим:

1️⃣ сначала — анализ

ИИ задаёт умные уточняющие вопросы, если данных мало

2️⃣ потом — answer или draft

либо выдаёт вывод, либо готовит проект документа

При этом он:

✔ помнит историю

✔ не повторяет одинаковые вопросы

✔ хранит ссылки на источники, а не тексты

То есть память — аккуратная и безопасная.

Как система ищет среди миллионов документов

Каждый запрос пользователя проходил путь:

🔍 классификация → выбор коллекции → векторный поиск → ранжирование → подмешивание контекста в промпт

Это позволяло дать не просто ответ, а юридически обоснованный ответ.

Причём без выдумок:

всегда видно, из какого источника пришёл факт.

Что мы показали заказчику

Все ключевые требования были подтверждены под запись:

✅ Нормы законодательств:

- корректные номера, даты и пункты.

✅ Судебная практика:

- корректные выдержки, правильная маршрутизация, без критических галлюцинаций.

✅ Контекст диалога:

- история учитывается, двухфазный режим стабилен

✅ Анализ и генерация документов:

- загрузка работает, документы анализируются и генерируются

В итоге у нас получилось создать систему, которая:

⭐ ищет среди миллионов фрагментов юридических документов

⭐ выдаёт структурированные ответы в строгом формате

⭐ не придумывает нормы и судебные дела

⭐ анализирует загруженные файлы

⭐ генерирует юридические документы

⭐ ведёт осмысленный диалог и умеет уточнять

Система была принята заказчиком.

Это был один из тех проектов, после которых уже сложно смотреть на LLM как на просто «чатик для болтовни».

Если нужно внедрить ассистента в бизнес, пишите: @backenddreamer