Как я построил трехуровневую лестницу качества контента
Масштабировать программные сайты сложно. Если вы полагаетесь только на ИИ для написания контента, ваш сайт перестанет работать, если API упадет.
Я запустил три каталоговых сайта: Top AI Tools, Find Games Like и Open Alternative To. Я использую трехуровневую лестницу контента, чтобы они всегда отображали информацию, даже без активного соединения с ИИ.
Система использует одну колонку в базе данных под названием model_used. Она отслеживает три уровня качества:
seeded-from-json: базовые данные из файла. Они структурированы, но скудны.fallback-template: стандартный шаблон, используемый, если ИИ дает сбой или отсутствует API-ключ. Он технически корректен, но лишен индивидуальности.claude-haiku-4-5: целевое состояние. Оно обеспечивает высококачественные редакционные резюме и детализированные нюансы.
Для управления обновлениями я использую специфический SQL-запрос. Скрипт ищет две вещи:
- Новые записи, у которых еще нет контента.
- Существующие записи, которые содержат только низкокачественный контент типа
seededилиfallback.
Скрипт сортирует их по популярности. Сначала обновляются самые посещаемые страницы. Это гарантирует, что страницы с самым высоким трафиком сразу получат лучший контент.
Процесс полностью автоматизирован и идемпотентен. Я использую паттерн upsert. Если обновление проходит успешно, база данных перезаписывает старый контент fallback новым контентом от ИИ. Колонка model_used обновляется автоматически.
Я также использую кэширование промптов Anthropic. Это экономит много денег и токенов. Поскольку системные промпты одинаковы для каждой записи, первый вызов наполняет кэш. Следующие 99 вызовов в пакете считываются из этого кэша по более низкой цене.
Ключевые архитектурные решения:
- Обработка ошибок: если Claude дает сбой, система не падает. Она просто записывает шаблон
fallbackи переходит к следующему элементу. - SEO-безопасность: если на странице вообще нет полезного контента, я использую тег
noindex. Это предотвращает индексацию пустых страниц Google. - Статическая сборка: я экспортирую базу данных в JSON-файлы для Astro. Это означает, что мой сайт остается онлайн, даже если в базе данных или API ИИ произойдет сбой.
Такая настройка позволяет мне быстро строить проекты, не рискуя стабильностью сайта.
