Дата публикации
news

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‑рутины.

Если вы хотите повторить путь Вивиан, минимальный чек‑лист такой:

  1. Настроить виртуальное окружение Python: python3 -m venv .venv, source .venv/bin/activate, pip install -r requirements.txt.
  2. Получить токены и экспортировать их: REPLICATE_API_TOKEN и NEWS_API_TOKEN.
  3. Подключить replicate в app.py, взять нужную модель и версию VQGAN-CLIP.
  4. Реализовать маршрут /api/predict и фронтенд‑запрос из static/index.js.
  5. Добавить vercel.json, залить код в Git и задеплоить через Vercel CLI.

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

Daily Dose of News: как собрать визуальную AI-ленту новостей на Replicate, Flask и Vercel — VogueTech | VogueTech