Как я создавал страницы сравнения ИИ при ограниченном бюджете
Мне нужно было создать страницы сравнения для моего каталога ИИ-инструментов.
Математика пугала. При наличии 200 моделей я столкнулся почти с 20 000 возможных пар. Использование Claude Haiku для генерации контента для каждой пары обходилось бы слишком дорого, если бы я запускал процесс ежедневно.
Вот как я решил эту задачу, используя логику и ограничения.
Стратегия
Я сосредоточился на запросах с высоким намерением (high-intent queries). Пользователи хотят знать «Llama 3 vs Mistral». Им нужно принять решение, а не читать длинное эссе.
Чтобы контролировать расходы, я использовал следующие правила:
• Группировать модели по их тегу пайплайна (pipeline tag). • Выбирать только топ-4 модели по количеству скачиваний в каждой группе. • Установить жесткий лимит на общее количество пар.
Это сократило количество пар с 20 000 до примерно 50. Это позволяет держать расходы на низком уровне, охватывая при этом самые популярные модели.
Техническая реализация
Я построил ETL-процесс, который запускается каждую ночь. Он идемпотентен. Это означает, что если пара уже существует в моей базе данных, скрипт её пропускает.
Большую часть ночей скрипт выполняется за 3 секунды и стоит $0, так как он всё пропускает.
Я использую несколько хитростей для повышения эффективности:
• Кэширование промптов (Prompt Caching): Я использую общий клиент Claude Haiku. Поскольку системный промпт остается неизменным, кэширование делает последующие вызовы почти бесплатными. • Лаконичные промпты (Lean Prompts): Я урезаю описания моделей до 400 символов. Это позволяет входным данным оставаться небольшими и быстрыми. • Статическая генерация (Static Generation): Я использую Astro, чтобы превращать данные в статические JSON-файлы. Для пользователя нет медленных запросов к базе данных или задержек edge-функций.
Что происходит, когда система дает сбой?
ИИ может быть непредсказуемым. Иногда Claude возвращает некорректный JSON.
Я написал систему отката (fallback system). Если ИИ дает сбой, страница не падает. Вместо этого она показывает стандартный шаблон и предлагает пользователю проверить страницы отдельных моделей. Я отслеживаю эти сбои в своей базе данных, чтобы иметь возможность повторить попытку позже.
Что бы я сделал иначе
Если бы я начинал сегодня заново, я бы изменил две вещи:
- Сравнение разных пайплайнов: Сравнение текстовой модели с моделью компьютерного зрения (vision model) ценнее, чем сравнение двух похожих текстовых моделей.
- Выбор на основе поиска: Вместо использования количества скачиваний я бы использовал реальные логи поисковых запросов пользователей, чтобы решить, какие пары создавать.
Работа в условиях ограничений заставляет вас создавать более умные решения.
Optional learning community: https://t.me/GyaanSetuAi
