most-AI.com
Войти

Как сравнить две версии документа нейросетью

Денис Коростелёв9 мин

Контрагент прислал договор «с небольшими правками». Файл выглядит почти как ваш: те же разделы, та же нумерация, тот же объём. Где-то внутри поменялись три формулировки, и одна из них переносит риск просрочки с исполнителя на вас. Найти её, читая двадцать страниц подряд второй раз, можно — но это час работы и высокая вероятность зевнуть ровно тот абзац, ради которого всё и затевалось.

Задача сравнения двух редакций возникает не только с договорами. Регламент после согласования, техническое задание после правок заказчика, политика компании в новой версии, черновик статьи после редактора — везде один и тот же вопрос: что здесь изменилось по сути и чем это для меня оборачивается. Ниже — как получать на него внятный ответ от текстовой модели в обычном чате, какие промты работают и где этот способ подводит.

Посимвольный diff и смысловое сравнение — разные инструменты

Привычный механизм сравнения версий — diff. Он сопоставляет два текста как последовательности символов и подсвечивает всё, что не совпало: удалённые куски одним цветом, добавленные другим. Инструмент честный и полностью надёжный: если строка изменилась, он это покажет, ничего не пропустит и ничего не выдумает.

Проблема в другом. Diff отвечает на вопрос «где текст стал другим», а вам нужен ответ на вопрос «что теперь по-другому». Это не одно и то же. Правка «в течение 10 (десяти) рабочих дней» на «в течение 10 (десяти) календарных дней» — это два изменённых слова, крошечная подсветка среди сотни таких же. По смыслу это сокращение срока почти вдвое. Рядом с ней diff подсветит абзац, где юрист переставил запятые и заменил «Исполнитель обязуется» на «Исполнитель обязан» — визуально изменение крупнее, а значения у него ноль.

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

Смысловое сравнение решает ровно эту задачу: не показать различия, а рассортировать их по важности и объяснить последствия. Модель читает обе редакции как связный текст, понимает, что «рабочие дни» и «календарные дни» — не просто разные слова, узнаёт перенесённый пункт на новом месте и способна сказать, в чью пользу играет правка. Это не замена diff, а другой инструмент поверх него. Идеальный порядок работы — сначала смысловая сводка, чтобы понять картину, затем сверка критичных мест глазами по исходным файлам.

Что подготовить до сравнения

Модель работает с текстом, поэтому обе версии должны быть текстом. Скопируйте содержимое каждого файла целиком, не выборочно — если отдать модели только «спорные разделы», она не увидит, что условие из раздела 4 переехало в раздел 9, и честно сообщит, что его удалили.

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

Персональные данные и реквизиты, которые не нужны для сравнения, лучше убрать заранее — ФИО, номера счетов, паспортные данные. Для анализа условий они не требуются, а гигиена работы с любыми внешними сервисами от этого только выигрывает.

И последнее: подписывайте версии явно. «Версия А — наша исходная», «версия Б — с правками контрагента». Модель должна понимать направление изменений, иначе получите нейтральное «в одном тексте так, в другом иначе» вместо «контрагент добавил себе право».

Базовый промт: сводка по разделам

Начинать стоит с общей карты — не с поиска подвохов, а с ответа на вопрос «что вообще происходит в этом документе».

Ниже две версии одного документа. Версия А — исходная, версия Б — с правками второй стороны.
Сравни их по смыслу, а не по символам. Опечатки, перестановку слов и стилистику игнорируй.
Выдай результат таблицей по разделам документа: номер и название раздела, что изменилось,
цитата из версии А, цитата из версии Б, последствие изменения одной фразой.
Разделы, где смысловых изменений нет, перечисли отдельной строкой списком.
Если пункт переехал в другой раздел без изменения смысла, отметь это как перенос, а не как удаление.

Версия А:
"""
[вставьте текст]
"""

Версия Б:
"""
[вставьте текст]
"""

Здесь важны три вещи. Первая — прямое требование цитат из обеих версий. Это главный механизм проверки: вы читаете не весь договор, а две строчки и находите их поиском по файлу. Заодно цитата дисциплинирует модель — придумать вывод легко, придумать вывод вместе с двумя фрагментами, которых в текстах нет, заметно сложнее, и такая подделка видна сразу. Тот же приём работает и в других задачах по документам, подробнее о нём — в разборе о том, как заставить нейросеть отвечать строго по вашему тексту.

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

Третья — отдельная категория «перенос». Без неё вы получите пару «удалено там / добавлено тут» и потратите время на разбирательство с несуществующей пропажей.

Как ловить тихие правки

Опасные изменения редко бывают заметными. Никто не вписывает в договор абзац «а ещё вы платите штраф» — меняют одно слово в существующем пункте. Поэтому после общей сводки имеет смысл сделать второй, узкий проход именно по числам и условиям.

Сравни версии А и Б только по параметрам, у которых есть значение: сроки, суммы,
проценты, штрафы и пени, порядок и сроки оплаты, гарантийные обязательства,
условия расторжения, ответственность сторон.
Выдай таблицу: параметр, значение в версии А, значение в версии Б, в чью пользу изменение.
Отдельно выпиши случаи, когда параметр был в версии А и исчез в версии Б,
и когда параметр появился в версии Б, а в версии А его не было.
Если значение не изменилось, строку не выводи.

Такой промт заставляет модель работать не по структуре документа, а по типу данных, и это ловит другое. Классический улов узкого прохода: замена рабочих дней на календарные, сдвиг точки отсчёта срока («с момента подписания» на «с момента получения уведомления»), исчезнувший потолок ответственности, добавленное автоматическое продление, смена «вправе» на «обязан» и обратно.

Третий полезный проход — про пропажи. Модели заметно легче даётся то, что добавили, чем то, что убрали: добавленный текст лежит перед ней, удалённого физически нет.

Проверь только одно: что из версии А отсутствует в версии Б.
Перечисли все выпавшие пункты и условия с цитатой из версии А и указанием раздела.
Для каждого напиши, было ли оно заменено похожей формулировкой в другом месте версии Б
или пропало полностью. Ничего, кроме пропаж, не разбирай.

Где этот способ подводит

Теперь неприятная часть, ради которой стоит дочитать. Смысловое сравнение — не проверка, а черновик проверки. У него два характерных отказа, и оба тихие.

Модель пропускает изменения. Особенно в длинных документах и особенно ближе к середине текста. Правка, которая выглядит для модели незначительной, до сводки может просто не дойти, и никакого предупреждения об этом не будет. Отчёт выглядит одинаково полным и когда в нём двенадцать изменений из двенадцати, и когда девять из двенадцати.

Модель придумывает изменения, которых не было. Она видит два похожих документа и по ходу пересказа способна усилить различие: слегка перефразировать цитату, приписать версии Б формулировку, которой там нет, или объявить изменением то, что в обеих редакциях написано одинаково. Ответ при этом звучит ровно так же уверенно, как правильный.

Отсюда рабочее правило: сводка задаёт маршрут, а решения принимаются по исходным файлам. Каждую позицию, которая касается денег, сроков, ответственности и расторжения, нужно открыть в обоих документах и прочитать глазами — это уже не двадцать страниц, а пять абзацев, и на них уходят минуты. Всё остальное можно оставить на совести модели, потому что цена ошибки там невелика. И отдельно: юридические и финансовые выводы модели — это мнение текстового генератора, а не консультация; в спорных случаях документ смотрит юрист.

Помогает и повторный запуск. Задайте тот же промт второй раз в новом чате и сравните два отчёта между собой: расхождения покажут места, где модель не уверена. Совпало в обоих прогонах — скорее всего, так и есть; появилось только в одном — идите проверять руками. Про природу такого разброса в ответах есть отдельный разбор.

Чем сравнивать

Задача сравнения упирается в объём: две редакции договора — это двойной объём текста в одном запросе, и модель должна удержать оба целиком. В каталоге Most AI под это подходят сильные текстовые модели — Claude Opus 4.8 и Sonnet 4.6, GPT-5.5, Gemini 3.1 Pro Preview. Начать разумно с бесплатного безлимитного чата ChatGPT: на документе средней длины он даёт нормальную сводку, и только если текст велик или цена ошибки высока, есть смысл переходить на флагманскую модель. Оплата в рублях, без VPN и без месячной подписки, актуальные цены — на странице прайсинга.

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

Частые вопросы

Чем сравнение нейросетью лучше обычного режима правок в редакторе?

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

Насколько длинные документы можно сравнивать?

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

Что делать, если у версий разная структура и нумерация?

Скажите об этом в промте прямо: «нумерация разделов в версиях не совпадает, сопоставляй пункты по смыслу, а не по номерам». И попросите в ответе указывать оба номера — из версии А и из версии Б. Без такой оговорки модель попытается сравнить раздел 5 с разделом 5 и запутается.

Можно ли доверить модели решение, подписывать документ или нет?

Нет. Сводка изменений — это подготовка к решению, а не решение. Модель не знает вашего контекста, истории переговоров и того, чем вы готовы поступиться. Юридические и финансовые последствия оценивает человек, а в серьёзных случаях — профильный специалист.

Как понять, что модель что-то пропустила?

Прямых сигналов нет — в этом главная сложность. Косвенные приёмы: попросить отдельно перечислить разделы без изменений, запустить узкий проход по числам и срокам, повторить сравнение в новом чате и сверить два отчёта. Расхождения между прогонами — самое честное указание на слабые места.

Работает ли это с таблицами и приложениями?

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

Пройдите это по шагам в кабинете

Всё из инструкции — текст, картинки, видео и звук — в одном кабинете: одна регистрация, один баланс, одна история.

НачатьБез VPN и зарубежной карты

Денис Коростелёв

Продуктовый аналитик

Сравнивает модели на одинаковых промтах и считает себестоимость результата. Не верит сравнениям без методики — включая собственные.