Как разметка документов тегами экономит время при работе с чатботами
Недавно столкнулся с интересным кейсом применения разметки в промптах для ИИ-ассистентов.
Задача была классической для юридической работы — сравнить две версии документа и создать на их основе протокол изменений (разногласий).
Да, Ворд умеет и сам сравнивать две версии документа и создавать третью версию, с визуально выделенными изменениями (redline). Но мне нужен был именно протокол изменений, для подачи предложений в рамках наших процедур СЕН/СЕНЭЛЕК.
Сначала подумал, что бот справится на основе одного файла с выделенными правками - того самого redline. Загрузил один документ с активированными изменениями (track changes), предполагая, что современные ИИ-модели смогут распознать и интерпретировать эту стандартную разметку Word. Однако, несмотря на многочисленные попытки с разными моделями (разные топовые модели в платном Перплексити, а также бесплатные версии Джемини и ЧатГПТ), ни одна из них не смогла выдать корректный протокол на основе одного лишь redline.
Прочитал, что люди рекомендуют брать две версии документа, и предварительно разметить текст в них с помощью уникальных HTML-/XML-подобных тегов.
В теле документа "до" правок вначале поставил
, в конце — , а документ "после" правок — разметил аналогично другими уникальными тегами. Для надёжности выбрал имена тегов, которые гарантированно не встречаются в тексте документов, чтобы помочь ИИ-модели избежать ошибок в интерпретации.
Затем оба документа загрузил в Перплексити, выбрал модель Claude 2.7 (без веб-поиска), и дал четкую инструкцию по формированию таблицы, с указанием её структуры, включая номера пунктов, текущей формулировки и предлагаемой формулировки, с выделением изменений и расшифровки их сути жирным шрифтом:
Attached are two Microsoft .docx, the original version (content enclosed between
and and the version with proposed changes (content enclosed between
and ). Output the proposed changes in a table format, first column - clause number, second column - current wording, third column - proposed wording. Reproduce the whole sentence where changes are introduced, but highlight the actual change proposed in bold. In each row of the third column, add a sentence in bold summarising the substance of proposed change.
Результат оказался впечатляющим — ИИ корректно идентифицировал и структурировал большинство изменений. Два изменения пропустил, но возможно с другой моделью или другим чатботом точность будет выше.
После получения первичного результата дополнительно дал инструкцию скорректировать мотивировки изменений, указав типовые причины единообразно:
amend the substance of some proposed changes in column 3 as follows:
- where I propose "level of automation (autonomy)" instead of "autonomy", this is for consistency with ISO/IEC 22989:2022 terminology.
- where I replace risks with hazards or foreseeable hazards, or risky with hazardous, or risk for level of risk, it is for consistency with EN AI RM
- where I expand the acronym, it is for clarity;
- where I add new requirement for biometrics, it is for consistency with the EU AI Act art 14(5) requirement.
Это позволило избежать многократной вставки вручную однотипных обоснований.
В целом — подход помог сэкономить много времени.
И более широко — теги помогают ИИ-системе с большей точностью понять, что и где брать в массиве данных и что с этим всем делать. Потому что иначе всё, что вы загрузите — превращается в один сплошной промт, в котором разобраться очень сложно.
Пользуйтесь, делитесь опытом!