Конструктор юридических документов с AI-проверкой
Платформа автогенерации договоров и государственных форм (включая полную форму Р13014 ФНС) с AI-чатом, который проверяет документы на соответствие нормативным требованиям.
О проекте
Клиент — юридический сервис для бухгалтеров и юристов — обратился с задачей автоматизировать рутинную подготовку юридических и корпоративных документов так, чтобы неспециалист мог заполнить сложный государственный бланк через понятные вопросы, а не разбираться в юридическом языке формы. Дополнительно требовалось снять с юристов часть работы по проверке входящих документов клиентов на соответствие нормативным требованиям (НК РФ, налоговые критерии).
Платформа из двух частей: backend на Node.js/TypeScript (Express 5 + Prisma + PostgreSQL) и frontend на Next.js 15, поднимаемые через Docker Compose тремя сервисами с healthcheck-гейтингом старта. Продукт закрывает три сценария: конструктор DOCX-шаблонов, визуальный конструктор ветвящихся опросников и AI-чат проверки документов через OpenAI Responses API с file_search по векторному хранилищу критериев.
Технологии
- TypeScript
- Node.js
- Express
- Prisma
- PostgreSQL
- Next.js
- React
- Tailwind CSS
- OpenAI API
- pdf-lib
- DaData API
- Docker
Что разработано
- Автопарсинг DOCX-меток {ключ} в готовый список вопросов и генерация документа с подстановкой ответов
- Конвейер форматирования полей: нормализация ОПФ юрлица, сумма прописью/цифрами/рублями, срок в месяцах, 4 формата дат, нормализация адресов
- Гибридное склонение ФИО по 6 падежам: локально через библиотеку lvovich, с фолбэком на gpt-5-nano при низкой уверенности
- Условные блоки в Word {#блок}...{/блок} с сохранением исходного форматирования параграфа
- Полная цифровизация формы Р13014: каталоги полей по 16 листам, генерация PDF через pdf-lib, валидация загруженного бланка, иммутабельные снапшоты сценариев
- Визуальный конструктор опросников с drag-and-drop и наглядной схемой ветвления диалога
- AI-чат проверки документов: классификация документа → file_search по векторному хранилищу с фильтром по категории → извлечение нарушений в строгом JSON
- Многослойная фильтрация ложных срабатываний: проверка, что цитата дословно есть в исходном документе, детекция ложных трактовок сносок, повторный проход при расхождении текста и структуры
- Точечные правки типового ответа по конкретным параграфам, а не полная перегенерация документа
- Интеграция DaData: автоподсказки организаций и адресов с настраиваемым маппингом полей (ИНН/КПП/ОГРН)
- Двухконтурная авторизация: JWT-сессии для админов и анонимные guest-cookie сессии для конечных пользователей без регистрации
- 5 отдельных rate-лимитеров под разные типы запросов (генерация файлов, логин, скачивание, автоподсказки)
- Админ-панель: билдер шаблонов, билдер Р13014 с нативным PDF-вьюером, управление критериями и системными промптами ассистента
Ключевые фичи
- Автопарсинг DOCX-меток и условные блоки {#блок} с сохранением форматирования исходного документа
- Гибридное склонение ФИО (детерминированная библиотека + AI-фолбэк только при низкой уверенности) — экономия на вызовах модели
- 66-страничная форма Р13014 с постраничным маппингом полей и иммутабельными снапшотами сценариев — старые заявки воспроизводимы даже после правки шаблона
- Анти-галлюцинационные гардрейлы AI-проверки: фильтрация по эвристикам, обязательная верификация цитаты в исходном тексте, повторный анализ при расхождении
- file_search с метаданным-фильтром по категории — модель ищет только по релевантной части базы знаний
- Точечные правки ответа по blockId вместо полной перегенерации — сохраняется юридически выверенная структура письма
- Guest-first UX: обычный пользователь работает без регистрации, у админов — полноценный JWT-контур с изоляцией по владельцу сессии
- DaData-автозаполнение одним выбором из подсказки вместо ручного ввода реквизитов
Решение задачи
Ключевая сложность задачи была не в технологиях, а в предметной области: заполнение официальных российских форм требует точных грамматических трансформаций, а форма Р13014 — это 66-страничный государственный бланк с жёсткой структурой полей. Решение разложило проблему на универсальный конструктор для произвольных DOCX-шаблонов и специализированный модуль для конкретного гос. бланка со снапшотами сценариев для исторической воспроизводимости.
Проверка документов клиентов реализована конвейером с явным разделением ответственности: классификация → узкий поиск по базе знаний → извлечение нарушений в строгом JSON → многослойная фильтрация ложных срабатываний → точечная правка шаблона ответа. Система намеренно отбрасывает нарушения, если цитата не находится дословно в исходном документе, а не полагается на доверие к одному ответу модели.
Метрики
Результаты
Заказать похожий проект
Оставьте заявку — обсудим задачу и предложим решение под ваш бизнес.
Оставить заявку








