Как выглядит для покупателя
- На странице товара — кнопка «Примерить»
- Модалка: «Загрузи своё фото / сделай через камеру»
- Canvas-сжатие до 1200px, JPEG 0.85, ~300 KB
- Нажимает «Примерить» → loading 15-30 сек
- Видит результат → может сохранить, поделиться, купить
Типы примерки
- Одежда (платья, топы, брюки) → Fashn.ai Direct → fal.ai fallback
- Головной убор (платки, палантины, хиджабы, банданы) → Gemini (scarf_tryon)
- Неизвестный тип → пробуем одежду
Роутинг — по имени товара и категории (детекция ключевых слов).
Защита от перегрузки
| Механизм | Значение |
|---|---|
| Rate limit на IP | 5 запросов/мин |
| Семафор | max 10 параллельных |
| Таймаут backend | 60 сек |
| Таймаут frontend | 65 сек |
| Max размер файла | 10 MB |
Ошибки (видят покупатели)
- 429: «Слишком много запросов. Подожди минуту»
- 503: «Сервер перегружен. Попробуй через 30 секунд»
- 504/timeout: «AI не ответил вовремя. Попробуй ещё»
Лимиты тарифа
- trial — 10/месяц
- start — 50
- business — 150
- max — 500
- enterprise — безлимит
Провайдеры — fallback-цепочка
Fashn Direct → fal.ai → Replicate → Gemini. Если один упал или возвратил 502/503/504 — мгновенно пробуем следующий (circuit breaker).