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).