Comment j'ai construit une échelle de qualité de contenu à trois niveaux

Passer à l'échelle avec des sites web programmatiques est difficile. Si vous comptez uniquement sur l'IA pour rédiger votre contenu, votre site tombe en panne lorsque l'API ne répond plus.

J'ai lancé trois sites d'annuaires : Top AI Tools, Find Games Like et Open Alternative To. J'utilise une échelle de contenu à trois niveaux pour m'assurer qu'ils affichent toujours des informations, même sans connexion IA active.

Le système utilise une seule colonne dans la base de données appelée model_used. Elle suit trois niveaux de qualité :

  • seeded-from-json : Données de base provenant d'un fichier. C'est structuré mais superficiel.
  • fallback-template : Un modèle standard utilisé si l'IA échoue ou si la clé API est manquante. C'est techniquement correct, mais cela manque de personnalité.
  • claude-haiku-4-5 : L'état cible. Cela fournit des résumés éditoriaux de haute qualité et des détails nuancés.

J'utilise une requête SQL spécifique pour gérer les mises à niveau. Le script recherche deux choses :

  1. Les nouvelles entrées qui n'ont pas encore de contenu.
  2. Les entrées existantes qui ne possèdent que du contenu de faible qualité (seeded ou fallback).

Le script les classe par popularité. Il met à niveau les pages les plus visitées en priorité. Cela garantit que vos pages à fort trafic reçoivent immédiatement le meilleur contenu.

Le processus est entièrement automatisé et idempotent. J'utilise un modèle d'upsert. Si une mise à niveau réussit, la base de données remplace l'ancien contenu de secours (fallback) par le nouveau contenu généré par l'IA. La colonne model_used se met à jour automatiquement.

J'utilise également le prompt caching d'Anthropic. Cela permet d'économiser beaucoup d'argent et de tokens. Comme mes prompts système sont les mêmes pour chaque entrée, le premier appel prépare le cache. Les 99 appels suivants d'un lot lisent dans ce cache à un coût inférieur.

Choix architecturaux clés :

  • Gestion des erreurs : Si Claude échoue, le système ne plante pas. Il écrit simplement le modèle de secours (fallback) et passe à l'élément suivant.
  • Sécurité SEO : Si une page ne contient aucun contenu utile, j'utilise une balise noindex. Cela empêche Google d'indexer des pages vides.
  • Builds statiques : J'exporte la base de données vers des fichiers JSON pour Astro. Cela signifie que mon site reste en ligne même si la base de données ou l'API d'IA subit une interruption.

Cette configuration me permet de construire rapidement sans risquer la stabilité du site.

Source : https://dev.to/morinaga/how-i-built-a-three-tier-content-quality-ladder-for-programmatic-directory-etl-483