docs(01-03): complete pipeline LLM + API routers plan
Tasks completed: 2/2 - Task 1: LLMService, CSVBuilder, GenerationPipeline - Task 2: API routers (calendar, generate, export, settings) e wiring main.py SUMMARY: .planning/phases/01-core-generation-pipeline/01-03-SUMMARY.md
This commit is contained in:
@@ -10,28 +10,28 @@ See: .planning/PROJECT.md (updated 2026-03-07)
|
||||
## Current Position
|
||||
|
||||
Phase: 1 of 4 (Core Generation Pipeline)
|
||||
Plan: 2 of 4 in current phase
|
||||
Status: In progress — Plan 02 completato (parallelo con Plan 01)
|
||||
Last activity: 2026-03-08 — Completato 01-02-PLAN.md (servizi dominio + prompt)
|
||||
Plan: 3 of 4 in current phase
|
||||
Status: In progress — Plan 03 completato
|
||||
Last activity: 2026-03-08 — Completato 01-03-PLAN.md (pipeline LLM + API routers)
|
||||
|
||||
Progress: [██░░░░░░░░] 12% (2/16 piani totali stimati)
|
||||
Progress: [███░░░░░░░] 18% (3/16 piani totali stimati)
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
**Velocity:**
|
||||
- Total plans completed: 2
|
||||
- Total plans completed: 3
|
||||
- Average duration: ~7 min
|
||||
- Total execution time: 15 min
|
||||
- Total execution time: 23 min
|
||||
|
||||
**By Phase:**
|
||||
|
||||
| Phase | Plans | Total | Avg/Plan |
|
||||
|-------|-------|-------|----------|
|
||||
| 01-core-generation-pipeline | 2/4 | 15 min | 7 min |
|
||||
| 01-core-generation-pipeline | 3/4 | 23 min | 7 min |
|
||||
|
||||
**Recent Trend:**
|
||||
- Last 5 plans: 6 min, 9 min
|
||||
- Trend: baseline stabilita
|
||||
- Last 3 plans: 6 min, 9 min, 8 min
|
||||
- Trend: baseline stabile ~7-8 min/piano
|
||||
|
||||
*Updated after each plan completion*
|
||||
|
||||
@@ -42,33 +42,26 @@ Progress: [██░░░░░░░░] 12% (2/16 piani totali stimati)
|
||||
Decisions are logged in PROJECT.md Key Decisions table.
|
||||
Recent decisions affecting current work:
|
||||
|
||||
- [Setup]: Tutti i 9 critical pitfalls identificati dalla research sono concentrati in Phase 1 — affrontarli subito e' la priorita' assoluta
|
||||
- [Setup]: FastAPI root_path SOLO via Uvicorn (--root-path), mai nel costruttore FastAPI() — altrimenti doppio path bug
|
||||
- [Setup]: CSV encoding = utf-8-sig (BOM) sempre; CANVA_FIELDS locked come costante prima di qualsiasi codice di generazione
|
||||
- [Setup]: Prompt di sistema scritti IN italiano (non inglese + "scrivi in italiano")
|
||||
- [Setup]: Per-item error isolation dal primo loop di generazione — un fallimento non blocca il batch
|
||||
- [01-01]: root_path SOLO via Uvicorn --root-path nel Dockerfile CMD, VERIFICATO e funzionante
|
||||
- [01-01]: API_BASE='/postgenerator/api' nel frontend — Pitfall #9 risolto nella configurazione base
|
||||
- [01-01]: SPAStaticFiles montato come ultima operazione in main.py — pattern stabilito
|
||||
- [01-01]: fastapi[standard]==0.135.1, anthropic==0.84.0 pinned in requirements.txt
|
||||
- [01-01]: docker-compose NO porte esposte, named volume postgenerator-data per persistenza
|
||||
- [Setup]: FastAPI root_path SOLO via Uvicorn (--root-path), mai nel costruttore FastAPI()
|
||||
- [Setup]: CSV encoding = utf-8-sig (BOM) sempre; CANVA_FIELDS locked come costante
|
||||
- [Setup]: Prompt di sistema scritti IN italiano
|
||||
- [Setup]: Per-item error isolation dal primo loop di generazione
|
||||
- [01-01]: root_path SOLO via Uvicorn --root-path nel Dockerfile CMD
|
||||
- [01-01]: API_BASE='/postgenerator/api' nel frontend — Pitfall #9 risolto
|
||||
- [01-02]: CANVA_FIELDS 33 colonne con _image_keyword (non URL) — URL Unsplash in Phase 4
|
||||
- [01-02]: Distribuzione L3 split: valore-L3 in Cattura, riprova_sociale-L3 in Coinvolgi
|
||||
- [01-02]: PromptService usa ValueError per variabili mancanti — fail esplicito non silenzioso
|
||||
- [01-02]: Nicchie 50/50: slot pari=generico, slot dispari=verticale in rotazione
|
||||
|
||||
### Pending Todos
|
||||
|
||||
None.
|
||||
- [01-02]: PromptService usa ValueError per variabili mancanti
|
||||
- [01-03]: LLMService._parse_retry_after() legge header HTTP per wait esatto (fallback 60s)
|
||||
- [01-03]: asyncio.to_thread wrappa LLM sync calls nel background task async
|
||||
- [01-03]: Settings.api_key merge: PUT non sovrascrive con None se non inclusa nel body
|
||||
- [01-03]: Pipeline singleton in generate.py per mantenere _jobs tra request, con fallback da disco
|
||||
|
||||
### Blockers/Concerns
|
||||
|
||||
- [Phase 1 RISOLTO in 01-02]: CANVA_FIELDS locked con 33 colonne e assert a load-time
|
||||
- [Phase 1]: Validare token usage reale per batch 13 post con claude-sonnet-4-5 contro limite Tier 1 (8,000 OTPM) — necessario inter-request delay configurabile (2-3s) (da affrontare in 01-03)
|
||||
- [Phase 1]: Baseline qualita' prompt italiani da validare dopo prima generazione reale (post 01-03)
|
||||
- [Phase 1]: Validare token usage reale per batch 13 post con claude-sonnet-4-5 — inter_request_delay=2.0s configurato, da validare in produzione
|
||||
- [Phase 1]: Baseline qualita' prompt italiani da validare dopo prima generazione reale
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-03-08T01:00:34Z
|
||||
Stopped at: Completato 01-02-PLAN.md — Servizi dominio + prompt .txt italiani
|
||||
Last session: 2026-03-08T01:15:06Z
|
||||
Stopped at: Completato 01-03-PLAN.md — Pipeline LLM + CSVBuilder + 4 router API
|
||||
Resume file: None
|
||||
|
||||
Reference in New Issue
Block a user