В прошлом году мы выпустили функцию отслеживания изменений для документов Word: вы отправляете DOCX со внесенными правками, а взамен получаете Markdown и HTML, где каждое добавление, удаление и комментарий размечены прямо в тексте. Это отлично работало, но с одним жестким ограничением. Функция поддерживала только DOCX, поскольку читала разметку правок напрямую из XML-структуры документа.
Большинство документов с правками (redlines) приходят не в формате DOCX. Контрагенты отправляют PDF, чтобы другая сторона не могла их отредактировать. Законодательные органы публикуют законопроекты с поправками в виде PDF-файлов с зачеркнутым и подчеркнутым текстом. Суды подают постановления с правками. Рецензенты распечатывают черновик, делают пометки от руки и сканируют его обратно. Во всех этих случаях отслеживаемые изменения существуют лишь как чернила на странице.
Сегодня мы распространяем отслеживание изменений на PDF-файлы и отсканированные изображения. Тот же эндпоинт /track-changes теперь принимает PDF или изображение и возвращает те же встроенные теги разметки <ins>, <del> и <comment>, прочитанные со страницы новой моделью, которую мы обучили специально для этой задачи.
Что делает модель
Страница с правками не имеет структуры, которую мог бы извлечь обычный парсер. На ней используются визуальные обозначения: подчеркнутый или цветной текст для добавлений, зачеркнутый — для удалений, текст в скобках, выноски на полях «Вставлено:» и «Удалено:», бабблы с комментариями, заметками и иногда инициалами. Каждый редактор и каждый законодательный орган оформляет их немного по-своему.
Мы обучили визуальную модель поверх нашего семейства OCR для считывания этих обозначений. Она принимает визуализированную страницу и генерирует HTML с учетом макета, точно так же, как наше обычное OCR, но с тремя дополнениями:
- Вставленный текст обернут в <ins>.
- Удаленный текст обернут в <del>, независимо от того, зачеркнут ли он, заключен в скобки или вынесен в баббл на полях.
- Комментарии на полях превращаются в <comment text="..."> вокруг фрагмента текста, к которому они относятся, а сам текст заметки помещается в атрибут text.
Страница без видимой разметки возвращается как обычный разобранный текст, поэтому вы можете прогнать через модель весь документ целиком, не выясняя постранично, где именно есть правки.
Вот реальный результат обработки PDF-файла с правками для требований к договорам распределенной генерации Illinois Shines — официального нормативного документа, обновляемого каждый год с изменениями в виде красного подчеркивания и зачеркивания. Вы можете скачать его и прогнать через эндпоинт, чтобы получить такой же результат. В новой редакции были обновлены даты публикации и вступления в силу, а также добавлено примечание вверху:
Вот Markdown, который эндпоинт возвращает для этого заголовка:
Обратите внимание на детализацию. Редактор изменил отдельные цифры в дате, и модель помещает в теги именно эти цифры, а не всю строку. Ниже по тексту был заменен термин внутри маркированного списка, и итоговый HTML сохраняет его положение внутри списка:
Теги сохраняются во всех выходных форматах. HTML и chunks сохраняют их «как есть». Понятие вставки или комментария в Markdown обычно отсутствует, поэтому в режиме отслеживания изменений итоговый Markdown сохраняет эти три тега в виде буквального встроенного HTML, вместо того чтобы удалять их.
Текст внутри иллюстраций и схем транскрибируется дословно, а не подписывается, поскольку в документах с правками графическим элементом часто является таблица или диаграмма, содержимое которой как раз и изменилось.
DOCX и PDF: один эндпоинт
Для документов Word ничего не меняется. DOCX по-прежнему считывается напрямую из XML правок — это единственный способ получить автора и метку времени для каждого изменения. Эти метаданные не печатаются на странице, поэтому способ обработки PDF не может их восстановить. Из PDF восстанавливается то, что видит рецензент: какой текст был добавлен, какой удален и о чем говорят комментарии.
Эндпоинт выбирает способ обработки в зависимости от типа файла. Отправьте DOCX — и вы получите точное извлечение. Отправьте PDF, PNG, TIFF или любой другой поддерживаемый формат документов — и он будет визуализирован и прочитан моделью. Сканы обрабатываются так же, как и цифровые PDF, поскольку модель работает исключительно с пикселями.
Использование
Установите параметр extras=track_changes для эндпоинта разбора (parse) или вызовите /track-changes напрямую. Выходные форматы — markdown, html и chunks. Параметры page_range, max_pages, paginate, webhook_url и processing_location работают так же, как и в других случаях.
Размеченный результат отлично подходит в качестве входных данных для языковой модели. Поскольку изменения помечены тегами, а не описаны словами, вы можете запросить сводку изменений или сравнить два раунда правок без необходимости модели предварительно разбираться, что означает зачеркивание:
Вы также можете извлекать изменения программно, так как теги представляют собой обычный HTML:
Функция также доступна в интерактивной песочнице (playground). Включите карточку Track Changes и перетащите PDF или изображение.
Сценарии применения
- Согласование договоров. Другая сторона присылает PDF с правками. Извлеките изменения, сформируйте краткое резюме и отправьте рецензенту те из них, которые меняют риски или обязательства.
- Отслеживание законодательных и нормативных актов. Законопроекты с поправками и изменения правил публикуются в виде PDF с правками. Превращайте каждый из них в структурированный список добавлений и удалений в масштабах всей сессии.
- Судебные документы. Проекты постановлений с правками и измененные состязательные бумаги прямо из материалов дела.
- Отсканированные пометки. Распечатанный черновик с правками, сделанными от руки или в PDF-редакторе и отсканированный обратно. Модель считывает его так же, как и цифровой PDF.
- Сведение версий. Когда у вас есть PDF с правками и вам нужен чистый текст обеих версий, примите добавления и отбросьте удаления для получения новой версии, или наоборот — для старой.
Цены и доступность
Отслеживание изменений для PDF-файлов и изображений тарифицируется по той же ставке, что и существующая функция для DOCX: 6 долларов США за 1000 страниц сверх стоимости конвертации, и доступно на всех тарифных планах. Функция работает в наших регионах US и EU, поэтому указание processing_location=eu сохраняет изображения страниц в пределах региона.
Функция также доступна в нашем локальном контейнере (on-prem) для команд, которые не могут передавать документы во внешнюю среду. Свяжитесь с нами, если вам это необходимо.
Если у вас есть массив документов с правками, на которых модель сбоит, или стиль оформления, с которым мы еще не сталкивались, напишите нам на [email protected]. Модель обучилась на реальных документах, и благодаря им она становится лучше.












