feat(04-01): UnsplashService + Settings unsplash_api_key

- Crea UnsplashService con search, cache disco, traduzione IT->EN
- ~30 keyword B2B italiane tradotte in dizionario statico
- Cache in-memory + persistenza su disco (unsplash_cache.json)
- Retry automatico su errori di rete, no-retry su 401/403
- Rate limiting awareness via X-Ratelimit-Remaining header
- Aggiunge campo unsplash_api_key a Settings schema
- Router settings espone unsplash_api_key_masked + configured
- Merge None-preserving per unsplash_api_key nel PUT
This commit is contained in:
Michele
2026-03-09 08:07:06 +01:00
parent 6078c75c22
commit afba4c5e9e
3 changed files with 347 additions and 1 deletions

View File

@@ -48,3 +48,7 @@ class Settings(BaseModel):
default="diretto e concreto",
description="Tono di voce per i contenuti generati.",
)
unsplash_api_key: Optional[str] = Field(
default=None,
description="Chiave API Unsplash. Se configurata, le keyword immagine vengono risolte in URL reali nel CSV.",
)