Come ho costruito una scala di qualità dei contenuti a tre livelli
Scalare siti web programmatici è difficile. Se ti affidi esclusivamente all'IA per scrivere i tuoi contenuti, il tuo sito smette di funzionare quando l'API va giù.
Ho lanciato tre siti di directory: Top AI Tools, Find Games Like e Open Alternative To. Utilizzo una scala di qualità dei contenuti a tre livelli per garantire che mostrino sempre informazioni, anche senza una connessione IA attiva.
Il sistema utilizza una singola colonna nel database chiamata model_used. Monitora tre livelli di qualità:
- seeded-from-json: Dati di base provenienti da un file. Sono strutturati ma scarni.
- fallback-template: Un template standard utilizzato se l'IA fallisce o se manca la chiave API. È tecnicamente corretto ma privo di personalità.
- claude-haiku-4-5: Lo stato target. Fornisce riassunti editoriali di alta qualità e dettagli sfumati.
Utilizzo una specifica query SQL per gestire gli aggiornamenti. Lo script cerca due cose:
- Nuove voci che non hanno ancora contenuti.
- Voci esistenti che hanno solo contenuti di bassa qualità (seeded o fallback).
Lo script le ordina per popolarità. Aggiorna per prime le pagine più visitate. Questo assicura che le tue pagine con il traffico più alto ricevano immediatamente i migliori contenuti.
Il processo è completamente automatizzato e idempotente. Utilizzo un pattern di upsert. Se un aggiornamento ha successo, il database sovrascrive il vecchio contenuto di fallback con il nuovo contenuto generato dall'IA. La colonna model_used si aggiorna automaticamente.
Utilizzo anche il prompt caching di Anthropic. Questo fa risparmiare molti soldi e token. Poiché i miei system prompt sono gli stessi per ogni voce, la prima chiamata prepara la cache. Le successive 99 chiamate in un batch leggono da quella cache a un costo inferiore.
Scelte architettoniche chiave:
- Gestione degli errori: Se Claude fallisce, il sistema non va in crash. Scrive semplicemente il template di fallback e passa all'elemento successivo.
- Sicurezza SEO: Se una pagina non ha alcun contenuto utile, utilizzo un tag noindex. Questo evita che Google indicizzi pagine vuote.
- Build statiche: Esporto il database in file JSON per Astro. Ciò significa che il mio sito rimane online anche se il database o l'API dell'IA subiscono un'interruzione.
Questa configurazione mi permette di costruire velocemente senza rischiare la stabilità del sito.
