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.*
MinIOS3-совместимое хранилище для ассетов (входные фото + результаты генерации)
Polza.aiAI-провайдер (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-события
  • Лимиты/биллинг на количество генераций

Ссылки