AI Студия — Бизнес-обзор
Инструмент для создания студийного качества фотографий блюд с помощью AI. Интегрирован в ERP-платформу франшизы как отдельный микросервис.
Что это
«AI Студия» — это Photo Studio Service (gensvc), самостоятельный микросервис на Go. Принимает фотографию блюда, применяет к ней стиль из выбранного пресета или описание сцены, и возвращает студийную фотографию. Под капотом — Polza Nano Banana 2 (google/gemini-3.1-flash-image-preview).
Прототип уже работает
Сервис существует и работает на
https://ai-photo-studio.nirbi.ru. Задача BR 2.6 — интегрировать его в ERP (общая auth, permissions, мультитенантность).
Основные режимы
Фото в стиле (photo-studio)
Пользователь загружает фото блюда и выбирает стиль — системный пресет (их сотни) или личный (загруженный им самим). AI «переносит» стиль на блюдо: свет, фон, реквизит, обработка.
Результат: одна фотография (или несколько вариантов, до 4 штук).
Улучшение (enhance)
Пользователь загружает фото блюда и текстом описывает желаемую сцену («уютный осенний кадр, деревянная доска, боковое освещение»). AI сохраняет само блюдо неизменным, пересоздаёт всё вокруг него.
Результат: одна или несколько вариантов фотографии.
Ключевые сущности
Задание (Job)
Единица работы. Создаётся при запросе на генерацию, живёт в БД. Статусная модель:
stateDiagram-v2 [*] --> pending pending --> running running --> succeeded running --> failed succeeded --> [*] failed --> [*] pending --> cancelled running --> cancelled cancelled --> [*]
Поля: id, kind (photo-studio / enhance), status, user_id, franchise_id, preset_id или user_preset_id, extra_prompt, input_asset_id, output_asset_id, size, count (1–4 вариантов), retry_of (если повтор), created_at, started_at, finished_at.
Системный пресет (Preset)
Стандартный стиль, доступный всем пользователям. Создаётся администраторами (gensvc.preset.admin). Имеет slug, название (RU/EN), категорию, reference-изображение в MinIO.
Категории: bar-lounge, delivery-and-takeout, fine-dining, lifestyle, menu, pastry-bakery, studio.
Личный пресет (User Preset)
Reference-изображение, загруженное конкретным сотрудником как личный эталон стиля. Квота: до 50 на пользователя. Используется вместо системного пресета при создании задания.
Ассет (Asset)
Бинарный файл (фото) в MinIO. Хранит metadata: bucket, object_key, mime, size_bytes, width, height. Загруженные пользователем изображения и сгенерированные результаты — всё это ассеты.
Интеграции
| Внешняя система | Роль |
|---|---|
| Auth Service | Валидация JWT через POST /internal/auth/validate, получение permissions сотрудника |
| User Service | Хранит permissions-каталог — там регистрируются ключи gensvc.* |
| MinIO | S3-совместимое хранилище для ассетов (входные фото + результаты генерации) |
| Polza.ai | AI-провайдер (Nano Banana 2) — выполняет генерацию по prompt. Себестоимость ~4 ₽ за изображение, при count=4 за один job — ~16 ₽ |
| PostgreSQL | Метаданные: jobs, presets, assets, user_presets, audit_log |
| Redis | Очередь заданий + кэш introspection-ответов (TTL 60 сек) |
Ролевой доступ
Подробно — Permissions AI Студии.
| Действие | Минимальный permission |
|---|---|
| Войти в сервис | gensvc.access |
| Создать задание | gensvc.photo.create |
| Видеть свои задания | gensvc.history.read |
| Видеть задания всех | gensvc.history.read.all |
| Удалить задание | gensvc.delete |
| Управлять системными пресетами | gensvc.preset.admin |
Scope и мультитенантность
Каждый Job содержит franchise_id из JWT. Фильтрация по умолчанию — только задания своей франшизы. Пользователь без gensvc.history.read.all видит только свои задания (user_id = me).
Что НЕ входит в MVP
- Интерфейс AI Студии во фронте Админки (отдельный BR)
- Прямая загрузка результата в карточку товара Каталога
- Kafka-события
- Лимиты/биллинг на количество генераций