5.2 KiB
5.2 KiB
ТЗ: Агент «Сверка договоров»
Контекст
Есть договоры и дополнительные соглашения (допники) с клиентами. Файлы в форматах Word (.docx) и PDF. Данные строго конфиденциальны — обработка только на локальной модели (без внешних API).
Задача 1: Разбор спецификации в структурированный вид
Вход: файл договора или допника (docx / pdf)
Что делать:
- Извлечь текст из файла
- Найти и распарсить спецификацию (таблица услуг/товаров)
- Вывести структуру: номер строки, наименование, количество, единица измерения, цена, сумма
- Если таблица не найдена или не поддаётся разбору — отметить задачу как нерешаемую с указанием причины (нет таблицы / нечитаемый PDF / нестандартный формат)
Выход: JSON или таблица со строками спецификации
Задача 2: Кумулятивный статус договора по цепочке допников
Вход: базовый договор + список допников в хронологическом порядке
Что делать:
- Взять спецификацию базового договора как начальное состояние
- Для каждого допника определить тип изменений:
- Полная замена — допник содержит новую полную спецификацию → заменить текущее состояние целиком
- Частичное изменение — допник содержит только изменённые строки → идентифицировать строку (по наименованию / номеру позиции) и применить изменение
- Строить историю состояний: дата допника → что изменилось → текущее состояние
- Если строку из допника невозможно сопоставить с текущим состоянием — отметить эту строку как нерешаемую (нет совпадения), не применять изменение, продолжить обработку остальных
Выход:
- История изменений (timeline): дата / документ → изменения
- Итоговое состояние спецификации на последнюю дату
Задача 3: Сопоставление позиций с каталогом услуг (опционально)
Вход: спецификация договора (из задачи 1) + каталог услуг (артикул + описание)
Что делать:
- По текстовому описанию строки спецификации найти ближайший артикул в каталоге
- Использовать семантическое сравнение (embedding / fuzzy match)
- Если уверенность совпадения ниже порога — отметить строку как нерешаемую (нет уверенного совпадения), не назначать артикул
Выход: спецификация с добавленным полем артикул (или пометкой не определено)
Примечание: задача реализуема только в части случаев. Приоритет — не ошибиться, а не охватить всё.
Общие требования
| Требование | Описание |
|---|---|
| Модель | Только локальная (без внешних API) |
| Конфиденциальность | Файлы не покидают локальную среду |
| Обработка исключений | На каждом шаге — явная пометка нерешаемых подзадач с причиной. Не фантазировать, не домысливать |
| Форматы входа | .docx, .pdf |
| Формат выхода | JSON + человекочитаемый отчёт (md или html) |
| Логирование | Каждый шаг (файл → задача → результат / ошибка) фиксируется |
Критерии успеха
- Структурированная спецификация получена или задача явно помечена как нерешаемая
- История изменений по допникам построена корректно
- Ни одно изменение не применено «наугад» без идентификации строки
- Итоговый отчёт читаем и проверяем вручную