Почему одной LLM недостаточно, как двухслойная валидация ловит ошибки модели, и сколько бизнес экономит на проверке договоров.
Что было в первой версии
Пару недель назад я рассказывал, как построил модульную систему промптов для YandexGPT. 32 тематических промпта, детекторы паттернов, калибровка по рынку. Система работала, находила риски, но вылезли проблемы:
-
Ложные срабатывания — LLM иногда «видела» асимметрию там, где её не было
-
Пропуски — некоторые паттерны (типа «1% в день за невывоз») проскакивали мимо
-
Нет второго мнения — одна модель, одна точка отказа
Пример ложного срабатывания:
{
"flag": "Асимметрия пеней: Покупатель 0.1%, Поставщик 0.1%",
"danger": "HIGH"
}
Подождите. 0.1% vs 0.1% — это симметрия, не асимметрия. LLM ошиблась.
Решение: два слоя детекции
┌─────────────────────────────────────────────────────────────────┐
│ ДВУХСЛОЙНАЯ ДЕТЕКЦИЯ │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Слой 1: LLM-анализ (YandexGPT или Claude) │
│ ├─ 32 тематических промпта │
│ ├─ Возвращает: 8 блоков анализа + redFlags[] │
│ └─ Проблема: бывают false positives │
│ │
│ Слой 2: Текстовые детекторы (код) │
│ ├─ 25+ специализированных детекторов │
│ ├─ Численная валидация (ловит ошибки LLM) │
│ └─ Ссылки на нормы права (ГК РФ, ТК РФ) │
│ │
│ Результат: LLM-флаги + текстовые флаги → дедупликация │
│ │
└─────────────────────────────────────────────────────────────────┘
Как код ловит ошибки LLM
Текстовый детектор проверяет асимметрию численно:
function detectPenaltyAsymmetry(penalties): Flag | null {
const party1Rate = parseFloat(penalties.party1?.rate || '0');
const party2Rate = parseFloat(penalties.party2?.rate || '0');
if (party1Rate === 0 || party2Rate === 0) return null;
const ratio = Math.max(party1Rate, party2Rate) /
Math.min(party1Rate, party2Rate);
if (ratio < 3) return null; // Соотношение < 3:1 — не флагуем
return {
flag: `Асимметрия пеней ${ratio.toFixed(1)}:1`,
danger: ratio >= 10 ? 'CRITICAL' : ratio >= 5 ? 'HIGH' : 'MEDIUM'
};
}
Если LLM сказала «асимметрия», а код посчитал ratio < 3 — флаг LLM отбрасывается.
22 текстовых детектора
|
Детектор |
Что ловит |
Пример |
|---|---|---|
|
|
Соотношение пеней ≥ 3:1 |
1% vs 0.1% = 10:1 |
|
|
Пеня ≥ 1%/день (365%/год) |
«1% за каждый день» |
|
|
Противоречия между пунктами |
«только самовывоз» vs «доставка» |
|
|
Отсутствие обязательных условий |
Нет срока гарантии |
|
|
Асимметрия расторжения |
Одна сторона — в любой момент |
|
|
Размытые формулировки |
«по согласованию сторон» |
|
|
Молчание = согласие |
«при отсутствии возражений…» |
|
|
Сокращённые сроки претензий |
3 дня вместо 30 |
Почему добавил Claude
YandexGPT хорош, но у Claude оказался лучше «юридический reasoning». Прогнал один и тот же договор поставки через обе модели:
|
Метрика |
YandexGPT |
Claude |
|---|---|---|
|
Найдено рисков |
11 |
27 |
|
CRITICAL |
2 |
5 |
|
HIGH |
4 |
12 |
|
MEDIUM |
5 |
10 |
Claude нашёл в 2.5 раза больше рисков на том же договоре.
Что нашёл Claude, а YandexGPT пропустил
1. Неустойка 1%/день за невывоз товара
В договоре:
«1% от стоимости несвоевременно вывезенного Товара за каждый день просрочки, но суммарно не более 2%»
YandexGPT увидел cap «не более 2%» и решил, что всё ок.
Claude понял: 1%/день = 365%/год — кабальное условие по ст. 333 ГК РФ, даже с cap’ом.
2. Противоречие между пунктами
-
П. 4.4: «Поставка осуществляется только путём самовывоза»
-
П. 6.2: «Поставщик организует доставку транспортной компанией»
YandexGPT не заметил. Claude флагнул как противоречие.
3. Антикоррупционная оговорка без адекватного срока
«Сторона обязана ответить на запрос в течение 10 дней, иначе другая сторона вправе приостановить исполнение»
Claude отметил: 10 дней — слишком короткий срок для серьёзной проверки, риск для добросовестной стороны.
Почему такая разница?
По нашим наблюдениям:
-
Размер контекста — у Claude Opus контекст 200K токенов, он лучше видит связи между далёкими пунктами договора
-
Качество reasoning — Claude лучше «понимает» юридическую логику, а не просто матчит паттерны
-
Меньше галлюцинаций — реже выдумывает несуществующие риски
Стоимость токенов
Сравнение цен на 1M токенов (async режим):
|
Провайдер |
Input |
Output |
|---|---|---|
|
YandexGPT Lite |
100 ₽ |
100 ₽ |
|
YandexGPT Pro |
600 ₽ |
600 ₽ |
|
YandexGPT Mixed (6/9 Pro + 3/9 Lite) |
~433 ₽ |
~433 ₽ |
|
Claude Opus 4.5 |
~500 ₽ ($5) |
~2500 ₽ ($25) |
В «Эконом» режиме используется mixed стратегия — сложные блоки (parties, payments, penalties, Deep Risk) идут через YandexGPT Pro, простые через Lite.
Claude дороже, но разница в качестве ощутимая — особенно на сложных договорах (франшиза, IT, строительство).
Экономика для бизнеса
Зачем вообще это нужно? Вот сравнение:
|
|
Юрист |
Legal Parser |
|---|---|---|
|
Время |
1-5 дней |
1-2 минуты |
|
Стоимость |
15 000 – 50 000 ₽ |
299 – 499 ₽ |
|
Доступность |
Рабочие часы |
24/7 |
|
Повторный анализ |
Платно |
Новый кредит |
Пример расчёта:
Компания проверяет 10 договоров в месяц.
-
Юрист: 10 × 20 000 ₽ = 200 000 ₽/месяц
-
Сервис: 10 × 499 ₽ = 4 990 ₽/месяц
-
Экономия: ~195 000 ₽/месяц или 2.3 млн ₽/год
Конечно, сервис не заменяет юриста полностью — сложные сделки всё равно требуют человека. Но для типовых договоров (аренда, поставка, услуги) AI справляется с первичной проверкой и выявляет большую часть рисков.
Как это работает для пользователя
-
Загружаете договор (PDF, DOCX, DOC)
-
Выбираете режим: «Эконом» (YandexGPT) или «Глубокий анализ» (Claude)
-
Через 1-2 минуты получаете отчёт:
-
Стороны и их роли
-
Финансовые условия
-
Сроки и этапы
-
Риски с цветовой кодировкой (CRITICAL / HIGH / MEDIUM)
-
Ссылки на нормы ГК РФ
-
Рекомендации по каждому риску
-
Итоги
-
Одной LLM недостаточно — нужна валидация кодом. Текстовые детекторы ловят ошибки любой модели.
-
Claude находит больше — на том же договоре в 2.5 раза больше рисков. Для сложных договоров разница критична.
-
Двухслойная архитектура — LLM для понимания контекста + код для численной проверки = меньше ложных срабатываний, меньше пропусков.
-
Экономия для бизнеса реальная — 299-499 ₽ вместо 15-50K ₽ за проверку. При 10+ договорах в месяц окупается многократно.
Попробовать: legalparser.ru — 2 бесплатных анализа при регистрации. Можно сравнить «Эконом» и «Глубокий анализ» на своём договоре.
Вопросы про архитектуру, промпты, детекторы — в комментариях.
Автор: alterpub


