PlyLoom внедряет дифф-логику для контроля правок LLM в графовых данных

Habr AI · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Разработчик PlyLoom представил механизм приращения, позволяющий безопасно интегрировать изменения от LLM без перезаписи всего проекта. Система использует логику git и Confluence для отслеживания конфликтов и проверки правок на уровне узлов.

Решение решает ключевую проблему работы с LLM в сложных структурах данных: предотвращает «галлюцинации» при доработке существующих карт, обеспечивая атомарность изменений и возможность отката.

В процессе разработки инструмента PlyLoom автор столкнулся с фундаментальной проблемой взаимодействия с большими языковыми моделями (LLM) при доработке сложных графовых структур. Традиционный подход, когда модель возвращает весь проект целиком, оказался неэффективным: на больших JSON-файлах LLM часто теряют узлы, сокращают цитаты или вносят нежелательные изменения. В качестве примера приводится случай, где запрос на добавление одной проверки привел к появлению двух «галлюцинаций»: срок хранения файла был изменен с 24 до 72 часов, а из описания очереди исчезла важная оговорка. Ручное сравнение двух версий файлов для выявления таких ошибок оказалось практически невозможным в регулярном режиме.

Для решения этой задачи разработчик отказался от полного перезаписывания проекта в пользу концепции «приращения» (diff). Новая архитектура заимствует терминологию у Confluence, но логически следует принципам git: изменения поступают как предложения правок, которые не затрагивают основную ветку до их явного принятия. Ключевым элементом структуры данных стало поле `was`, содержащее прежнее значение атрибута. Это позволяет системе автоматически выявлять конфликты, если пользователь успел изменить тот же параметр, пока модель генерировала ответ. Такой подход гарантирует, что даже при параллельной работе человека и ИИ корректные изменения будут применены, а спорные места — выделены для ручного решения.

Интерфейс проверки разделен на два этапа. Сначала пользователь работает со списком правок в режиме «брифа», где измененный текст отображается с выделением удаленных и добавленных слов. Здесь можно отметить нужные пункты и применить их, а лишнее отклонить. Второй этап происходит непосредственно на карте: примененные изменения визуально маркируются (новые узлы — зеленым, измененные — желтым), что позволяет оценить контекст и смысловую целостность связей. Отдельно реализована защита от перенумерации ID: если узел получил новый идентификатор, но сохранил тип и название, система распознает его как прежний, предотвращая ложное срабатывание на «удаление и добавление».

Вопросы безопасности данных также были учтены при проектировании. Изначально рассматривался вариант хранения полного журнала правок со старыми значениями для возможности отката. Однако от этой идеи отказались из-за риска утечки конфиденциальной информации: удаленный текст оставался бы в файле до очистки истории. Вместо этого в файле хранятся лишь отпечатки версий (первые 12 знаков SHA-256) и данные о незавершенных правках, которые удаляются после финального принятия или отклонения изменений.

Надежность алгоритма сравнения проверялась с помощью автоматизированного генератора случайных правок. Тесты на 500 вариантах карт выявили скрытые ошибки, такие как потеря основного листа узла или нарушение порядка вкладок при сравнении, которые были исправлены до релиза. Разработчик подчеркивает, что текущая версия инструмента ориентирована на сценарий «модель извлекает, человек проверяет», а следующим шагом станет реализация удобных вариантов экспорта результатов для использования вне платформы PlyLoom.