Чого я навчився, створюючи контент із підтримкою 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) у міру розростання проєкту.
Результатом є сайт, який здається персоналізованим для користувача без величезних витрат на генерацію ШІ в реальному часі.