29 lines
1.4 KiB
Markdown
29 lines
1.4 KiB
Markdown
# MVP Auto-classification — план реализации
|
|
|
|
## Итоговый план (Опус + мои правки)
|
|
|
|
### Фаза 1: БД + данные
|
|
1. ALTER documents — 7 колонок (doc_type, own_number, parent_number, doc_date TEXT, counterparty, classify_status, batch_id)
|
|
2. db/documents.py — set_classification(), list_pending(batch), list_by_batch(batch)
|
|
3. db/prompts.py — seed classify prompt
|
|
|
|
### Фаза 2: Классификация
|
|
4. llm_prompt.py — build_classify_prompt (строгий JSON)
|
|
5. services/classify.py — умная выжимка + LLM + ThreadPoolExecutor(4)
|
|
|
|
### Фаза 3: Группировка
|
|
6. services/grouping.py — normalize_number + group_documents + apply_groups
|
|
|
|
### Фаза 4: Эндпоинты
|
|
7. convert_server.py — POST /classify-batch, GET /api/groups, POST /apply-groups
|
|
|
|
### Фаза 5: UI
|
|
8. app.js — batch_id, classify button, polling progress, group cards, per-group compare
|
|
9. index.cfm — version bump only (HTML не меняем)
|
|
|
|
## Мои корректировки к плану Опуса
|
|
- batch_id генерируется на клиенте (crypto.randomUUID()), передаётся в upload
|
|
- ZIP — фаза 2, сначала multi-upload (уже работает)
|
|
- doc_date TEXT (не DATE) — LLM нормализует в ISO, при провале null
|
|
- parent_number отдельно от own_number
|