Перейти к содержанию

Model Management

Каталог AI/ML-моделей платформы. Хранит метаданные зарегистрированных моделей (LLM, CV, ASR), их контракты и статус мониторинга.

Назначение

Центральный реестр моделей. Атакующие сервисы (jailbreak, asr, cv) и scan-profile обращаются к нему за метаданными. При первом старте seed-контейнеры загружают предустановленные CV-модели (VGG19, ResNet50) и ASR-модели (Whisper).

Зависимости

Входящие

Сервис Назначение
scan-profile получение метаданных моделей
jailbreak валидация LLM-модели перед атакой
asr получение конфигурации ASR-модели
cv получение конфигурации CV-модели
orchestrator проверка доступности модели
ui-gateway CRUD моделей через API

Исходящие

Сервис Назначение
postgres основная БД (схема model_management)
redis (DB 0) кеш метаданных
nats получение событий обновления моделей
minio чтение/запись весов моделей (бакет model-weights)

Values

Параметр По умолчанию Обязателен Описание
image.name да registry.appsec.global/appsecgenai-release/model-mgmt
image.tag да Версия образа
imagePullSecrets[0].name да imagePullSecret
secretEnv.DATABASE_URL да PostgreSQL connection string
secretEnv.S3_ACCESS_KEY да MinIO root user
secretEnv.S3_SECRET_KEY да MinIO root password
secretEnv.MINIO_ACCESS_KEY да Alias (legacy, то же значение)
secretEnv.MINIO_SECRET_KEY да Alias (legacy, то же значение)
env.ENVIRONMENT "production" нет
env.AUTH_ENABLED "true" нет
env.OTEL_SDK_DISABLED нет "true" если нет otel-collector
global.url.redisUrl {svc: redis, port: 6379, scheme: redis, path: /0} нет
global.url.natsUrl {svc: nats, port: 4222, scheme: nats} нет
global.url.s3EndpointUrl {svc: minio, port: 9000, scheme: http} нет Обратите внимание: s3EndpointUrl, не s3Endpoint

Имя ключа: s3EndpointUrl

model-mgmt использует global.url.s3EndpointUrl (с суффиксом Url), в отличие от других сервисов, где используется s3Endpoint.

Пример values.yaml

# values-model-mgmt.yaml
image:
  name: registry.appsec.global/appsecgenai-release/model-mgmt
  tag: "<VERSION>"

imagePullSecrets:
  - name: harbor-cr

secretEnv:
  DATABASE_URL: "postgresql+asyncpg://genai_admin:<password>@postgres:5432/genai_db"
  S3_ACCESS_KEY: "<minio-root-user>"
  S3_SECRET_KEY: "<minio-root-password>"
  MINIO_ACCESS_KEY: "<minio-root-user>"
  MINIO_SECRET_KEY: "<minio-root-password>"

env:
  ENVIRONMENT: "production"
  AUTH_ENABLED: "true"
  OTEL_SDK_DISABLED: "true"
  S3_BUCKET_NAME: "model-weights"

global:
  url:
    redisUrl:      { svc: redis, port: 6379, scheme: redis, path: /0 }
    natsUrl:       { svc: nats,  port: 4222, scheme: nats }
    s3EndpointUrl: { svc: minio, port: 9000, scheme: http }

Установка

helm upgrade --install model-mgmt \
  oci://registry.appsec.global/appsecgenai-release/charts/model-mgmt \
  --version <VERSION> -n genai \
  --wait \
  -f values-model-mgmt.yaml

Init-контейнеры при первом старте выполняют: 1. migrate — Alembic миграции схемы model_management 2. seed-asr — загрузка метаданных ASR-моделей (Whisper) 3. seed-cv — загрузка метаданных CV-моделей (VGG19, ResNet50)

Алфавитный порядок init containers

appsec-common сортирует init containers по имени. Именно поэтому seed-контейнеры названы seed-asr и seed-cv (а не asr-seed/cv-seed) — чтобы migrate шёл первым (m < s).