45 lines
2.5 KiB
Markdown
45 lines
2.5 KiB
Markdown
# Сверка договоров (Contracts)
|
|
|
|
Проект автоматизированной обработки и сверки договоров с помощью ИИ.
|
|
|
|
## Задача
|
|
|
|
Разбирать спецификации договоров и допников (docx/pdf) в структурированный вид,
|
|
отслеживать изменения между версиями, восстанавливать историю договора во времени.
|
|
|
|
## Архитектура
|
|
|
|
Подробное описание архитектуры (компоненты, БД, event sourcing, загрузка через
|
|
ВМ-буфер, ZIP, конвейер сравнения) — см. **[`DOC/architecture-contracts-flask.md`](DOC/architecture-contracts-flask.md)**.
|
|
|
|
Ключевые моменты:
|
|
|
|
- **Основной сервис** — `contracts-flask/` (Flask + SQLite WAL, managed на Nubes).
|
|
- **Загрузка** — браузер PUT файла в ВМ-буфер (WebDAV), бэк сам тянет с ВМ
|
|
(managed-gateway рвёт тела > 64 КБ, egress ВМ без лимита).
|
|
- **ZIP** — раскрывается на клиенте (`expandZipClient` → `listZipFiles`).
|
|
- **Event sourcing** — `spec_events` (журнал) + `spec_current` (текущее состояние).
|
|
- **Сравнение** — `/process-v2` (SSE): LLM возвращает ops (ADD/UPDATE/DELETE/
|
|
UNRESOLVED), применяются через `apply_ops()`.
|
|
- **LLM** — только своя модель `gpt-oss-120b` (api.aillm.ru).
|
|
|
|
## Состав репозитория
|
|
|
|
| Папка | Что |
|
|
|---|---|
|
|
| `contracts-flask/` | Основной сервис (Flask + SQLite, managed на Nubes) |
|
|
| `contractor-legacy/` | Старый Lucee/CFML-сервис (архив) |
|
|
| `convert-service/` | Микросервис конвертации doc → docx |
|
|
| `DOC/` | Документация: архитектура, тестирование |
|
|
| `History/` | История решений, ревью, протоколы |
|
|
| `FILES/` | Заметки, ключи LLM, ТЗ |
|
|
| `dogovora/` | Примеры договоров и допников |
|
|
| `loadtest/` | Нагрузочное тестирование |
|
|
| `sim/` | Симуляция сценариев |
|
|
| `testgen/` | Генерация тестовых кейсов |
|
|
| `hz/` | Разные заметки |
|
|
|
|
## Конфиденциальность
|
|
|
|
Данные договоров строго конфиденциальны. LLM — только собственная модель.
|