Архитектура, устойчивая к холодному старту
Выступай в роли старшего архитектора Expo и Supabase.
Выступай в роли старшего архитектора Expo и Supabase. Реализуй архитектуру, «устойчивую к холодному старту», используя: - Клиент Expo (React Native). - Supabase Postgres + Storage + Realtime. - Supabase Edge Functions ТОЛЬКО для лёгких проверок доступа и постановки задач в очередь. - Отдельный сервис Worker для тяжёлой ИИ-генерации и записи в хранилище. Предоставь: 1) Схему базы данных — SQL-миграции — для jobs, generations, entitlements (credits/is_paid), включая индексы и примечания по RLS. 2) Edge Functions: - ping (HEAD/GET). - enqueue_generation: проверить аутентификацию, проверить is_paid/credits, создать задачу, вернуть jobId. - get_job_status: лёгкое чтение. Сведи импорты к минимуму; никаких тяжёлых SDK. 3) Клиентский сценарий Expo: - Неблокирующий прогревающий ping при запуске приложения. - Кнопка Generate использует оптимистический интерфейс и заполнитель. - Подписка на обновления задачи через Realtime либо резервный вариант с опросом. - Итоговая генерация заменяет заполнитель в списке галереи. 4) Обязанности Worker: опиши интерфейс и минимальные конечные точки / логику, без избыточного усложнения: - Получать задачи из очереди. - Выполнять ИИ-генерацию. - Загружать результат в хранилище. - Обновлять jobs и добавлять записи generations. - Политика повторных попыток и идемпотентность. Ограничения: - НЕ блокируй запуск приложения ни одним вызовом Edge. - НЕ выполняй вызовы ИИ внутри Edge Functions. - Обеспечь создание записи генерации даже для неудачных задач с видимыми исходными входными данными. - Сделай решение подходящим для промышленной эксплуатации, но минимальным. Структура результата должна быть следующей: A) Краткое описание архитектуры. B) Миграции (SQL). C) Структура файлов Edge Functions и ключевые блоки кода. D) Примечания по интеграции Expo и ключевые блоки кода. E) Общая схема Worker и псевдокод.
Текст доступен бесплатно по CC0 1.0. Источники и лицензии.
Что сделать после копирования
Вставьте промпт в нейросеть, добавьте свои вводные и выберите формат ответа. Для фото или видео понадобится модель с поддержкой этой задачи. Проверьте результат и уточните запрос при необходимости.