- Дата публикации
Daily Dose of News: как собрать визуальную AI-ленту новостей на Replicate, Flask и Vercel
Что произошло
Разработчица из команды Replicate по имени Вивиан собрала веб‑приложение Daily Dose of News. Это интерактивная лента новостей, где каждый заголовок превращается в сгенерированную картинку.
Приложение работает так: пользователь выбирает категорию (бизнес, здоровье, спорт, развлечения и другие) и страну — источник новостей. После клика по экрану лента начинает подгружать материалы, новый заголовок появляется каждые 10 секунд по умолчанию.
Для генерации изображений Вивиан использует VQGAN-CLIP на Replicate. Конкретно — модель mehdidc/feed_forward_vqgan_clip и её версию 28b5242dadb5503688e17738aaee48f5f7f5c0b6e56493d7cf55f74d02f144d8. Текстовый запрос — это сам заголовок новости.
Фронтенд через static/index.js отправляет POST‑запрос на /api/predict. На бэкенде Flask создаёт replicate.predictions.create с параметрами:
prompt: текст заголовка;model:'cc12m_32x1024_mlp_mixer_openclip_laion2b_ViTB32_256x256_v0.4.th';prior:False;grid:'1x1';seed: случайное число от 0 до2**15 - 1.
За новости отвечает News API, за деплой — Vercel. Локально проект запускается через виртуальное окружение Python и Flask, а для доступа к Replicate и News API используются токены окружения REPLICATE_API_TOKEN и NEWS_API_TOKEN.
Для продакшн‑запуска Вивиан создала vercel.json, настроила проект в Vercel из Git‑репозитория, прописала переменные окружения в Project Settings, а затем задеплоила через vercel login и vercel --prod.
Контекст
AI‑картинки по тексту уже никого не удивляют, но чаще они живут в песочницах вроде Midjourney или интерфейсов наподобие DALL·E. Вивиан показывает более прикладной сценарий: связать генерацию изображений с реальным потоком данных — новостями.
VQGAN-CLIP здесь важен не брендом, а тем, что модель умеет строить визуал по сложным текстовым описаниям без дополнительного обучения. Репликацию берёт на себя Replicate: разработчик не держит свою инфраструктуру, а просто дергает API нужной версии модели.
Фреймворк Flask выбран намеренно простым: это минимальный порог входа для Python‑разработчиков. Вместо тяжёлых монолитов — несколько маршрутов, среди которых ключевой /api/predict. Такой стек хорошо ложится на быстрые эксперименты и демонстрации.
Vercel, который обычно ассоциируют с фронтенд‑проектами на Next.js, здесь работает как площадка для Python‑бэкенда. Это сигнал: деплой AI‑игрушки больше не требует отдельного сервера, Docker‑оркестрации и часов настройки Nginx.
Проект не претендует на глубину аналитики или проверку фактов. Это скорее демонстрация: как за счёт News API, Replicate и пары десятков строк Flask превратить абстрактную «AI‑модель» в конкретный визуальный продукт.
Что это значит для вас
Если вы разработчик или продакт, Daily Dose of News — понятный шаблон, как собрать простой AI‑сервис от идеи до продакшн‑урла.
Плюсы подхода:
- Быстрый старт. Достаточно Python, базового Flask и регистрации в Replicate, News API и Vercel.
- Чёткий стек. Один бэкенд‑скрипт
app.py, фронтенд‑JS, конфигvercel.jsonи пара токенов окружения. - Прозрачная логика. Текст заголовка → запрос к Replicate → ссылка на изображение → показ в браузере.
Минусы и ограничения:
- Зависимость от внешних сервисов. Без токенов Replicate и News API приложение бесполезно. Любые лимиты или сбои сразу ломают ленту.
- Контроль качества картинок ограничен. VQGAN-CLIP иногда выдаёт сюрреалистичные или неочевидные визуализации. Для медиа это может быть проблемой.
- Безопасность и модерация. Проект не описывает фильтрацию контента. Если заголовок токсичный, картинка может оказаться такой же.
Кому это пригодится:
- Редакциям и медиа. Как прототип «живых обложек» для лент и подборок, где к каждому материалу генерируется иллюстрация.
- Маркетологам и SMM. Для быстрых визуальных дайджестов новостей бренда или ниши.
- Разработчикам. Как рабочий пример, как подружить Flask, Replicate и Vercel без тяжёлой DevOps‑рутины.
Если вы хотите повторить путь Вивиан, минимальный чек‑лист такой:
- Настроить виртуальное окружение Python:
python3 -m venv .venv,source .venv/bin/activate,pip install -r requirements.txt. - Получить токены и экспортировать их:
REPLICATE_API_TOKENиNEWS_API_TOKEN. - Подключить
replicateвapp.py, взять нужную модель и версию VQGAN-CLIP. - Реализовать маршрут
/api/predictи фронтенд‑запрос изstatic/index.js. - Добавить
vercel.json, залить код в Git и задеплоить через Vercel CLI.
Результат — небольшой, но наглядный проект, который можно показать редакции, заказчику или инвестору как живую демонстрацию того, что AI‑визуализация новостей — это не слайд в презентации, а работающий веб‑сервис.