docs: финальные ответы Opus — план decoupling зафиксирован
This commit is contained in:
@@ -119,17 +119,28 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Ответ DeepSeek — Рецензия
|
## Ответ Opus — Финальные уточнения (3 вопроса)
|
||||||
|
|
||||||
Оценка: 5/5
|
### 1. Dataclass vs TypedDict
|
||||||
|
**Решение:** микс. Вход — dict (из БД/JSON), выход — frozen dataclass.
|
||||||
|
Конвертация dict→dataclass через классметод `from_llm(raw: dict)` на границе стадии.
|
||||||
|
|
||||||
### Поправки:
|
### 2. Сигнатура LLMClient
|
||||||
- `upload.py` уже читает из `BytesIO`, не из сокета
|
**Решение:** один метод `complete(prompt: str) -> str`.
|
||||||
- Ф2 и Ф3 можно параллельно (независимы)
|
Парсинг JSON и `prompt_id` — НЕ дело LLM-клиента, остаются у вызывающего.
|
||||||
|
|
||||||
### 3 вопроса к Opus:
|
### 3. Уровень conftest.py
|
||||||
1. Dataclass vs TypedDict? dict из БД vs валидированный dataclass
|
**Решение:** `deploy/conftest.py`. Корень Python-кода, чистые импорты.
|
||||||
2. `complete(prompt) -> str` достаточно? или нужен `complete_structured`?
|
|
||||||
3. `conftest.py` на уровне `deploy/tests/` или `deploy/`?
|
|
||||||
|
|
||||||
### Вердикт: План принимаю. Жду ответ на 3 вопроса.
|
### Поправка по upload
|
||||||
|
`handle_upload` уже читает в `BytesIO`. `parse_multipart(raw_bytes)` всё равно выделяем.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Итоговый план (зафиксирован)
|
||||||
|
|
||||||
|
Фазы: **Ф1 → (Ф2 ∥ Ф3) → Ф4**, Ф5 отдельно.
|
||||||
|
|
||||||
|
Развилки: 1C, 2C, 3A+C, 4A, 5A.
|
||||||
|
|
||||||
|
План принят DeepSeek. Готов к исполнению — Фаза 1.
|
||||||
|
|||||||
Reference in New Issue
Block a user