Чему я научился, создавая контент с учетом типа пайплайна в Astro

Вы можете создавать специфический контент для разных типов моделей, не вызывая AI API при каждом просмотре страницы.

Я создал каталог AI-инструментов на Astro. Изначально все страницы моделей выглядели одинаково. Описания были уникальными, но разделы с рекомендациями — общими. Страница аудиомодели и страница текстовой модели отображали один и тот же пустой текст-заполнитель.

Это плохо для пользователей. И это также плохо для SEO.

Я решил эту проблему, используя одно поле метаданных из HuggingFace: pipeline_tag.

Вот как работает эта система:

  • Хранение данных: Мой ETL-процесс сохраняет pipeline_tag в базе данных на этапе получения данных (fetch).
  • Логика во время сборки: Astro загружает этот тег в процессе генерации статического сайта.
  • Пути принятия решений: Я использую простой код для проверки тега. Если тег — "text-generation", страница показывает советы по LLM. Если "audio" — советы по работе с речью.
  • Нулевые затраты во время выполнения: Вся эта логика срабатывает во время сборки. Пользователь получает обычный HTML. При посещении сайта нет никаких вызовов API или дополнительной обработки.

Я также использовал эти данные для создания более полезных сигналов юзабилити:

Уровни популярности: Вместо того чтобы просто показывать число, я классифицирую модели как «проверенные» (established), «активно используемые» (actively-used) или «нишевые» (niche). Это дает пользователю понять, сможет ли он найти поддержку сообщества. • Релевантные партнерские ссылки: На страницах LLM отображаются ссылки на аренду GPU. На страницах эмбеддингов (embedding) — другие, более подходящие ссылки. • Управление индексацией: Если у модели плохие данные или отсутствуют теги, я использую тег "noindex". Это предотвращает появление низкокачественных страниц в результатах поиска Google.

Компромиссы:

  • Неточные теги: Некоторые авторы помечают модели неправильно. Я решаю это с помощью перехода к общим рекомендациям (fallback).
  • Сложность кода: Компонент страницы стал длиннее. Я планирую провести рефакторинг и вынести логику в вспомогательные функции по мере роста проекта.

В результате получился сайт, который кажется персонализированным для пользователя, но при этом не требует огромных затрат на генерацию контента с помощью AI в реальном времени.

Источник: https://dev.to/morinaga/what-i-learned-building-pipeline-aware-content-variants-in-a-static-astro-directory-1op4