איך בניתי סולם איכות תוכן תלת-שכבתי

הרחבת אתרי programmatic היא משימה קשה. אם מסתמכים רק על AI לכתיבת התוכן, האתר עלול לקרוס כשה-API מפסיק לעבוד.

השקתי שלושה אתרי ספריות (directory sites): Top AI Tools, Find Games Like, ו-Open Alternative To. אני משתמש בסולם תוכן תלת-שכבתי כדי להבטיח שהם תמיד יציגו מידע, גם ללא חיבור AI פעיל.

המערכת משתמשת בעמודה בודדת במסד הנתונים בשם model_used. היא עוקבת אחר שלוש רמות איכות:

  • seeded-from-json: נתונים בסיסיים מקובץ. הם מובנים אך דלים.
  • fallback-template: תבנית fallback סטנדרטית המשמשת אם ה-AI נכשל או אם מפתח ה-API חסר. היא נכונה מבחינה טכנית אך חסרה אישיות.
  • claude-haiku-4-5: מצב היעד. זה מספק סיכומים עריכתיים באיכות גבוהה ופרטים מפורטים ומדויקים.

אני משתמש בשאילתת SQL ספציפית כדי לנהל שדרוגים. הסקריפט מחפש שני דברים:

  1. רשומות חדשות שעדיין אין להן תוכן.
  2. רשומות קיימות שיש להן רק תוכן seeded או fallback באיכות נמוכה.

הסקריפט ממיין אותן לפי פופולריות. הוא משדרג קודם כל את הדפים בעלי מספר הביקורים הגבוה ביותר. זה מבטיח שהדפים עם התנועה הגבוהה ביותר יקבלו את התוכן הטוב ביותר באופן מיידי.

התהליך הוא אוטומטי לחלוטין ו-idempotent. אני משתמש בתבנית upsert. אם שדרוג מצליח, מסד הנתונים דורס את תוכן ה-fallback הישן בתוכן ה-AI החדש. עמודת ה-model_used מתעדכנת מעצמה.

אני משתמש גם ב-Anthropic prompt caching. זה חוסך הרבה כסף וטוקנים. מכיוון שה-system prompts שלי זהים עבור כל רשומה, הקריאה הראשונה מכינה את ה-cache. 99 הקריאות הבאות ב-batch קוראות מה-cache הזה בעלות נמוכה יותר.

Key architectural choices:

  • טיפול בשגיאות: אם Claude נכשל, המערכת לא קורסת. היא פשוט כותבת את תבנית ה-fallback וממשיכה לפריט הבא.
  • בטיחות SEO: אם לדף אין תוכן מועיל בכלל, אני משתמש בתג noindex. זה מונע מגוגל לאנדקס דפים ריקים.
  • בנייה סטטית (Static builds): אני מייצא את מסד הנתונים לקובצי JSON עבור Astro. זה אומר שהאתר שלי נשאר זמין גם אם יש תקלה במסד הנתונים או ב-AI API.

הגדרה זו מאפשרת לי לבנות מהר מבלי לסכן את יציבות האתר.

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