Какие вопросы задать по API генерации картинок
Что проверяют
Умеете ли вы до начала интеграции выяснить, как ведёт себя внешний сервис, особенно медленный и платный. Генерация картинки занимает секунды, иногда десятки секунд, и от ответов зависит вся схема вызова. Следом часто спрашивают, как вы организуете такой вызов в Python-сервисе, чтобы он не держал воркеры.
Как отвечать
Разложите вопросы по темам:
- модель вызова: ответ сразу или задача, когда
POSTвозвращает идентификатор, а результат забирают опросом или получают вебхуком. Какие таймауты у провайдера; - входные параметры: предельная длина промпта, негативный промпт, допустимые размеры и соотношения сторон, число картинок за запрос,
seedдля воспроизводимости, редактирование по маске; - результат: ссылка или base64 в теле ответа, формат файла, сколько живёт ссылка. Временную ссылку нужно сразу скачивать в своё хранилище;
- лимиты и деньги: сколько запросов в минуту и одновременных задач, как выглядит отказ по лимиту (
429и заголовокRetry-After), сколько стоит картинка в зависимости от размера и качества, списываются ли деньги за упавшую генерацию; - модерация: какие запросы отклоняются и можно ли отличить такой отказ от технической ошибки;
- ошибки и повторы: формат тела ошибки, какие ошибки временные, есть ли ключ идемпотентности, чтобы повтор не оплатить дважды;
- права и данные: кому принадлежат изображения, хранит ли провайдер промпты и обучается ли на них;
- окружение: есть ли песочница, официальный SDK для Python, как версионируется API.
По реализации: вызов уводите из обработчика запроса в фоновую задачу (Celery, RQ или arq), клиентом берите httpx с явными таймаутами, повторы делайте с экспоненциальной задержкой и ограничением числа попыток, а пользователю отдавайте статус задачи.
Где спотыкаются
Держат запрос пользователя открытым на всё время генерации. Срабатывают таймауты балансировщика, а синхронные воркеры Django под нагрузкой быстро заканчиваются.
Сохраняют у себя временные ссылки провайдера, и через сутки в интерфейсе битые картинки.
Не спрашивают про стоимость и лимиты, а потом повторы без ограничения съедают бюджет за одну ночь.