Чого я навчився, створюючи контент із підтримкою pipeline в Astro

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

Я створив каталог інструментів ШІ за допомогою 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).
  • Складність коду: Компонент сторінки став довшим. Я планую рефакторити його у допоміжні функції (helper functions) у міру розростання проєкту.

Результатом є сайт, який здається персоналізованим для користувача без величезних витрат на генерацію ШІ в реальному часі.

Джерело: https://dev.to/morinaga/what-i-learned-building-pipeline-aware-content-variants-in-a-static-astro-directory-1op4