Кейс крупным планом · ОКТ 2026
Проверка договоров ИИ-сервис для поставщика
2,5 мин
на анализ типового договора; протокол — за секунды
10–20 ₽
анализ договора на 20 страниц моделью Claude Sonnet, цены октября 2026
- Проблема
- Покупатели присылают поставщику договоры в свою пользу: неустойки без предела, удержания из оплаты, отказ от договора без оплаты изготовленного товара. Каждый нужно прочитать и ответить на него протоколом разногласий.
- Решение
- Сделал веб-сервис: менеджер загружает договор, ИИ находит риски для поставщика, объясняет их простыми словами и предлагает новые редакции пунктов.
- Результат
- Анализ договора занимает минуты, протокол разногласий в Word и PDF с подписью и печатью собирается одной кнопкой. От ТЗ до работающей системы на сервере — около недели.
Риски видны сразу, рядом с текстом договора
Сверху — вывод: можно ли подписывать договор как есть и что исправить первым. Ниже — риски по важности: чем каждый грозит поставщику, простыми словами, и какая редакция пункта нужна взамен. Пункт, о котором речь, подсвечен в тексте договора, так что каждый вывод легко проверить. Вопросы к юристу и финансисту система выносит отдельно.
Как это сделаносвернуть
Модель отвечает по строгой JSON-схеме (structured outputs): риски, стоп-факторы, новые редакции, обязательства и сроки, противоречия, недостающие приложения, вопросы к специалистам. Если ответ не сходится со схемой, система один раз переспрашивает модель и прикладывает перечень ошибок.
Каждая цитата сверяется с текстом договора: сначала точно, потом нечётко (rapidfuzz). Номера пунктов и ссылки на приложения проверяются по разметке документа. Если цитаты в договоре нет, у риска стоит пометка, так что незаметно «придумать» пункт модель не может.
Договор для модели — данные, а не команды: так сказано в фиксированной части промпта, и промпт администратора её не меняет.
— открыть крупно
Протокол разногласий собирается одной кнопкой
Протокол разногласий — ответ поставщика покупателю: слева — редакция покупателя, справа — новая редакция поставщика. Он собирается из рисков; менеджер видит документ таким, каким его получит покупатель, правит строки и их порядок, а правки сохраняются сами. Готовый протокол скачивается в Word или PDF, с подписью и печатью или без них.
Как это сделаносвернуть
Протокол — полноценный деловой документ: альбомный A4, шапка таблицы повторяется на каждой странице, ширины колонок зафиксированы, чтобы Word и PDF не расходились. Тексты — по шаблону с подстановками, его правит администратор.
Подпись и печать — плавающие картинки над строкой подписи. У скана белый фон становится прозрачным, а печать чуть поворачивается и просвечивает, чтобы текст под ней читался.
PDF собирает LibreOffice из того же docx, а шрифт Liberation Serif метрически совместим с Times New Roman, поэтому PDF совпадает с Word постранично.
— открыть крупно
— открыть крупно
Договор принимается в любом виде, даже сканом
Менеджер загружает то, что прислал покупатель: Word, RTF, PDF или скан. Система сама находит в договоре сторону поставщика и сверяет его реквизиты с карточкой организации: ИНН, ОГРНИП, счета, телефоны, адреса. Опечатка в номере счёта не пройдёт незамеченной, а для этой сверки ИИ не нужен вовсе.
Как это сделаносвернуть
Файл docx разбирается прямо из XML, автонумерация восстанавливается так, как её показывает Word: иначе номера пунктов в анализе разошлись бы с документом. Файлы doc и rtf LibreOffice переводит в docx.
PDF с текстом читает pdfplumber, сканы распознаёт Tesseract. Таблицы с линиями разбираются по ячейкам: линии ищутся на картинке, каждая ячейка распознаётся отдельно, и колонки реквизитов двух сторон не перемешиваются.
Сверка реквизитов идёт без ИИ: числа сравниваются точно, телефоны — по последним 10 цифрам, адреса — нечётко, но все числа в них должны совпасть.
— открыть крупно
С телефона работает тот же сервис
Отдельной мобильной версии нет: тот же интерфейс перестраивается под узкий экран. Список проверок, риски с текстом договора в шторке и протокол с кнопками Word и PDF работают и с телефона.
Как это сделаносвернуть
Раскладку переключают два порога ширины, 768 и 992 px, поверх сетки Ant Design. На телефоне строки протокола становятся карточками, текст договора уходит в шторку снизу, а поля ввода набраны кеглем 16 px — иначе Safari на iPhone увеличивал бы страницу.
— открыть крупно
Правила проверки компания задаёт сама
Что искать в договоре, решает компания: администратор дописывает в промпт её позиции — сроки, пределы неустоек, подсудность — без программиста. От этих позиций и от модели зависит качество анализа. Модель выбирается там же: если договоры нельзя отправлять за рубеж, анализ идёт только через серверы в России.
Как это сделаносвернуть
У промпта есть версии с автором и комментарием, построчное сравнение, откат и прогон черновика на договоре до сохранения. Формат ответа задаёт фиксированная часть промпта, поэтому правка промпта его не ломает.
Подключения трёх типов. API, совместимый с OpenAI: RouterAI с режимом «Только серверы в РФ» под 152-ФЗ, OpenRouter, OpenAI, локальные Ollama и vLLM. API Anthropic: ответ потоком, строгая схема, кэш промпта. Codex CLI по подписке ChatGPT: вход по коду устройства прямо из админки.
Стоимость известна заранее: по прайсу RouterAI на 16 октября 2026 анализ договора на 20 страниц моделью Claude Sonnet стоит 10–20 ₽, а токены и стоимость каждого анализа пишутся в журнал.
Реквизиты, подпись и печать, шаблон протокола и лимиты тоже настраиваются в админке, а перенести все настройки на другую машину можно одним файлом.
— открыть крупно
Договоры не задерживаются в системе
Файл договора удаляется сразу после чтения, а вся проверка — через 24 часа после последнего действия с ней. Тексты договоров не попадают ни в логи, ни в резервные копии, так что коммерческие условия и персональные данные контрагентов на сервере не копятся.
Как это сделаносвернуть
Тест проводит договор через весь путь с логами уровня DEBUG и проверяет, что его текста в логах нет; то же подтвердил прогон в Docker с настоящей моделью. Проверок в резервной копии нет вовсе.
Копии шифруются открытым ключом age, а закрытый ключ хранится у владельца; на сервере данные лежат на зашифрованном диске (LUKS). Пароли хранятся хешами Argon2, ключи API — зашифрованными, число попыток входа ограничено, все изменяющие запросы защищены от CSRF, у интерфейса строгая CSP.
Как шла работа
Работал в паре с Claude Code: архитектуру и приёмку держал за собой, рутинный код писал агент, и каждый результат проходил автотесты и ревью. Поэтому весь цикл — от разбора ТЗ и вопросов заказчику до развёртывания, защиты сервера и документации — вёл один человек, а работающая система стояла на сервере через неделю после ТЗ. Код открыт, лицензия MIT: github.com/
Есть похожая задача? Опишите её — предложу, с чего начать.
Написать в Telegram