feat(03-02): topic_overrides in CalendarRequest + pipeline wiring

- Aggiunto campo topic_overrides: Optional[dict[int, str]] a CalendarRequest
- GenerationPipeline._run_generation ora controlla request.topic_overrides
  prima di chiamare LLM per generare il topic
- Slot con override saltano la chiamata LLM per il topic
- Log informativo quando un override viene applicato
- Slot senza override continuano a funzionare come prima
This commit is contained in:
Michele
2026-03-09 00:30:47 +01:00
parent babdf8a250
commit 67769dd68d
2 changed files with 15 additions and 1 deletions

View File

@@ -307,8 +307,17 @@ class GenerationPipeline:
slot.target_nicchia,
)
# Genera topic se non presente nello slot
# Genera topic se non presente nello slot.
# Controlla prima gli override passati dall'utente dallo Swipe File.
topic = slot.topic
if not topic and request.topic_overrides and slot.indice in request.topic_overrides:
topic = request.topic_overrides[slot.indice]
logger.info(
"Topic override applicato | job_id=%s | slot=%d | topic=%s",
job_id,
slot.indice,
topic[:60],
)
if not topic:
# Usa asyncio.to_thread per non bloccare l'event loop
# (generate_topic usa time.sleep per inter_request_delay)