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:
@@ -88,6 +88,11 @@ class CalendarRequest(BaseModel):
|
|||||||
description="Data di inizio del calendario in formato YYYY-MM-DD. "
|
description="Data di inizio del calendario in formato YYYY-MM-DD. "
|
||||||
"Se None, usa la data corrente.",
|
"Se None, usa la data corrente.",
|
||||||
)
|
)
|
||||||
|
topic_overrides: Optional[dict[int, str]] = Field(
|
||||||
|
default=None,
|
||||||
|
description="Override topic per slot specifici. Chiave: indice slot (0-12), valore: topic. "
|
||||||
|
"Gli slot con override skipperanno la generazione topic LLM.",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class CalendarResponse(BaseModel):
|
class CalendarResponse(BaseModel):
|
||||||
|
|||||||
@@ -307,8 +307,17 @@ class GenerationPipeline:
|
|||||||
slot.target_nicchia,
|
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
|
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:
|
if not topic:
|
||||||
# Usa asyncio.to_thread per non bloccare l'event loop
|
# Usa asyncio.to_thread per non bloccare l'event loop
|
||||||
# (generate_topic usa time.sleep per inter_request_delay)
|
# (generate_topic usa time.sleep per inter_request_delay)
|
||||||
|
|||||||
Reference in New Issue
Block a user