Files
contracts/History/opus-generator-request.md
T

5.7 KiB
Raw Blame History

Запрос к Opus — генератор тестовых документов + симулятор поведения

Что за сервис (кратко)

contracts — загрузка договоров колокейшн/ЦОД, авто-классификация через LLM, группировка по контрактам, сравнение версий (сверка спецификаций).

Pipeline: Загрузка (.docx/.doc/.pdf/.zip) → Парсинг → Классификация (LLM) → Группировка → Сравнение (LLM, Event Sourcing)

Фронтенд: одна страница с таблицей файлов, карточками групп, SSE-сравнением. Бэкенд: Python http.server, PostgreSQL, LLM через api.aillm.ru (gpt-oss-120b).

Какие файлы уже есть (3 типа, 6 шт.)

Тип 1: Договор — договор-XXX001-03700.docx

Заголовок: "Договор на оказание технологических услуг" Номер: № 03700_1 Стороны: ЗАО "XXX001" (Заказчик) + ООО "НУБЕС" (Исполнитель) Адрес/дата: г. Москва, 01.02.2026

Секции: Термины, Предмет, Права/Обязанности, Состав/Порядок/Сроки, Стоимость, Порядок оплаты, Взаимодействие, Сдача-приёмка, Особые условия Таблица реквизитов (1×2 — Заказчик | Исполнитель)

Тип 2: Допсоглашение — допник-1-XXX003-01300_2.doc

Заголовок: "Дополнительное Соглашение №1" Привязка: "к Договору № 01300_2 от 20.12.2025" Стороны: АО "XXX003" + ООО "НУБЕС"

Таблица услуг (6 колонок): №, Наименование, Цена руб. с НДС, Объем, Сумма, Дата начала Пример: Организация L2 канала без резерва — 8 283,80 × 1 = 8 283,80, 26.03.2026 Строка итого: Итого инсталляционный платеж — 8 283,80

Тип 3: Спецификация — спецификация-XXX001-03700.docx

Заголовок: "Приложение № 1 к Договору № 03700_1 от 01.02.2026" Секция: "Спецификация и стоимость услуг" Подсекция: "Абонентские услуги с ДАТА – ДАТА" Общая стоимость: 769 279,53 руб.

Таблица услуг (6 колонок): №, Наименование, Цена, Объем, Сумма, Дата начала 9 строк, включая:

  • Аренда стойко-места — 213 905,44 × 3 = 641 716,32
  • Аренда PDU 3Ф 32А — 2 511,17 × 3 = 7 533,51
  • Организация L2 канала — цена × кол-во
  • IP-адреса, cross-connect, etc.

Паттерны имён

договор-{КОМПАНИЯ}-{НОМЕР}.docx
допник-{N}-{КОМПАНИЯ}-{НОМЕР}.doc / .docx
спецификация-{КОМПАНИЯ}-{НОМЕР}.docx

КОМПАНИЯ = XXX001..XXX010, НОМЕР = 03700, 01200_3, 01300_2 N = номер допника (1, 2, 3...)

Иерархия: спецификация и допник привязаны к договору через НОМЕР.


Что нужно от Опуса

Часть 1 — Принцип генерации ~100 файлов

Нужна СХЕМА (не код):

  1. Сколько контрактов, сколько файлов каждого типа
  2. Как варьировать: компании, номера, даты, цены, наборы услуг
  3. Ошибочные случаи:
    • без номера договора
    • нестандартный заголовок
    • битый XML внутри docx
    • пустой файл
    • только таблицы / только текст
    • .doc (старый формат, идёт через конвертер)
    • битый PDF
    • дубликаты имён
  4. Как связать parent-child (договор → допник → спецификация)
  5. Структура шаблонов python-docx

Часть 2 — Симулятор поведения

Нужна СТРАТЕГИЯ:

  1. Хэппи-путь: загрузка → классификация → группы → сравнение
  2. Зигзаги: загрузил → удалил → перезагрузил → ещё загрузил
  3. Тупые действия: дубликаты (OK/Отмена), удалить всё, смешать форматы
  4. ZIP с дубликатами внутри
  5. Тайминги и задержки
  6. Верификация после каждого шага: число файлов, статусы, группы

Часть 3 — Верификация

Как проверять корректность после каждого шага симулятора:

  • Количество файлов в state.files
  • Статусы парсинга (✓ / ✗)
  • Наличие групп после classify
  • Результаты сравнения

Формат ответа

Принципиальная схема (НЕ реализация):

  • Что генерировать (типы, количество, вариации)
  • Как генерировать (шаблоны, подстановки)
  • Как симулировать (последовательности, тайминги)
  • Как проверять (чек-лист верификации)
  • Структура папок

Код генератора и симулятора напишу я сам.