Тестовые эффекты (тестовый режим генерации)¶
Набор служебных эффектов, которые проигрывают весь поток генерации
(POST /v1/generations → poll/SSE → result_url) без реального ИИ-провайдера и без траты
токенов. Удобно для интеграции и QA клиента: проверить happy-path, ошибку с возвратом
кредитов, долгую генерацию (таймауты/реконнект SSE) — детерминированно и бесплатно.
С точки зрения API они ничем не отличаются от обычных эффектов: те же эндпоинты, те же конверты ошибок, тот же SSE-стрим и жизненный цикл. Отличие лишь внутри: результат — заранее закешированный ассет, а сценарий зашит в эффект.
Где доступны
Тестовые эффекты заведены на dev и стенде, но не на проде — там их нет. Не закладывайся на них в продакшен-сборке клиента.
Как вызвать¶
Они скрыты из публичного каталога (GET /v1/effects их не вернёт), но доступны по прямому
слагу/id. Слаги стабильны, id — свои в каждом окружении, поэтому id берём из каталога, а не
хардкодим:
# 1. Резолвим эффект по слагу → получаем его id (и output_type)
curl "$BASE_URL/v1/effects/test-image-ok" -H "Authorization: Bearer $TOKEN"
# 2. Дальше обычный поток: загрузка фото → создание генерации по id из шага 1
curl -X POST "$BASE_URL/v1/generations" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"effect_id":"<ID из шага 1>","characters":[["<UPLOAD_ID>"]]}'
Фото нужно как любому эффекту (один персонаж с одним фото): сами байты mock игнорирует, но
загрузка должна быть реально завершена, иначе 422 validation_error.
Набор¶
| Слаг | output_type |
cost |
Что проигрывает |
|---|---|---|---|
test-image-ok |
image | 0 | Успех с реалистичной задержкой (~3 c) → succeeded, result_url на закешированную картинку |
test-video-ok |
video | 0 | Успех (~8 c), output_type = video, результат .mp4 |
test-image-fail |
image | >0 | Доходит до processing и уходит в failed с error_code; зарезервированные кредиты возвращаются (запись refund в истории) |
test-slow |
image | 0 | Долгая генерация (~60 c) — для проверки таймаутов и переподключения SSE |
test-instant |
image | 0 | Готова почти мгновенно |
cost = 0— баланс не двигается.test-image-failстоит >0 специально: на нём проверяется резерв и возврат кредитов (см. Возврат кредитов и историю кредитов).- Всё остальное — ровно как в Генерации и realtime: ждём готовность по
SSE-стриму или пушу, результат забираем из
детали
GET /v1/generations/{id}.