Самообслуживание команд и контроль затрат
Платформенная команда раздаёт доступ к LLM-провайдерам через единый портал. Команды сами выпускают виртуальные ключи в рамках своих лимитов; финансисты и менеджмент видят расход по подразделениям в реальном времени.
Проблема
В компании с продуктовых команд платформа становится узким местом: каждый сервис требует ручной выдачи ключа, согласования бюджета и настройки лимитов, а финансы получают единый счёт от OpenAI или Anthropic без разбивки по подразделениям. Согласование занимает дни; ключи могут выдаваться без ограничений; в конце месяца расход разбирают вручную по логам приложений.
Кого это касается: платформенные команды, финансовый и управляющий менеджмент, лиды продуктовых команд.
Решение
Meridian даёт трёхуровневую иерархию управления бюджетами — Customer (бизнес-юнит) → Team (продуктовая команда) → Virtual Key (приложение или окружение) — с независимым бюджетом и rate limits на каждом уровне. Веб-интерфейс работает как портал самообслуживания: администратор настраивает верхний уровень, а лидеры команд сами выпускают виртуальные ключи в рамках выделенных квот.
- Время выдачи доступа: часы/дни → минуты. Лид команды выпускает VK через UI без участия платформы или поддержки.
- Прозрачность расхода. Финансисты видят расход в реальном времени по иерархии
Customer → Team → VK → провайдер → модель. - Жёсткие гарантии бюджета. Лимиты применяются совокупно: VK не превышает квоту Team, Team — квоту Customer.
- Изоляция инцидентов. Утечка одного VK блокируется одной операцией; остальные ключи не затрагиваются.
- Корпоративный вход. OIDC через систему одного входа; действия журналируются в audit log (Enterprise).
- Интеграция с внутренним порталом. Через API можно Meridian можно интегрировать с уже имеющимся порталом самообслуживания внутри Вашей инфраструктуры
Сценарий
Компания с двумя командами alpha и beta внутри бизнес-юнита Продажи:
- Администратор создаёт Customer
Продажи($10 000/мес), внутри — Teamsalpha($4 000/мес) иbeta($3 000/мес). - Через ролевые доступы лиду команды
alphaвыдаются права на VK своей Team; ресурсыbetaему не видны. - Лид
alphaчерез корпоративный SSO выпускает три VK:alpha-prod($2 000/мес, 100 req/min),alpha-staging($500/мес),alpha-experiments($300/мес). - Разработчики получают VK с префиксом
sk-bf-*— upstream-ключ провайдера в код не попадает. - При утечке VK или закрытии сервиса лид переводит ключ в
is_active: false— доступ блокируется мгновенно, остальные ключи продолжают работать.
Конфигурация
Шаг 1. Создание Customer.
- Перейдите в раздел Customers.
- Нажмите Add Customer, заполните имя (
Sales), привяжите бюджет (Max Limit: 10000,Reset Duration:1 месяц). - Нажмите Create.

Шаг 2. Создание Team.
- Перейдите в раздел Teams.
- Нажмите Add Team, заполните имя (
alpha), укажите Customer (Sales), привяжите бюджет (Max Limit: 4000,Reset Duration:1 месяц). - Повторите для
beta.

Шаг 3. Настройка делегированного доступа (Enterprise — RBAC).
- Перейдите в RBAC → Roles.
- Создайте роль
team-lead-alphaс правами на CRUD виртуальных ключей в пределах Teamalpha. - Назначьте роль соответствующему пользователю SSO.
RBAC и SSO доступны в Enterprise-редакции. В OSS-редакции UI Meridian доступен администратору без разделения ролей.
Шаг 4. Выпуск Virtual Key лидом команды.
- Лид команды заходит в Virtual Keys, видит только свою Team.
- Нажимает Add Virtual Key, заполняет имя (
alpha-prod), задаёт собственный бюджет и rate limit в рамках квоты команды. - Выбирает разрешённые модели и провайдеров через
Provider Configs.

Создание Customer:
curl -X POST http://localhost:8080/api/governance/customers \
-H "Content-Type: application/json" \
-d '{
"name": "Sales",
"budget": {
"max_limit": 10000.00,
"reset_duration": "1M"
}
}'Создание Team (привязана к Customer):
curl -X POST http://localhost:8080/api/governance/teams \
-H "Content-Type: application/json" \
-d '{
"name": "alpha",
"customer_id": "customer-Sales",
"budget": {
"max_limit": 4000.00,
"reset_duration": "1M"
}
}'Выпуск Virtual Key в рамках Team:
curl -X POST http://localhost:8080/api/governance/virtual-keys \
-H "Content-Type: application/json" \
-d '{
"name": "alpha-prod",
"description": "Production API key for alpha service",
"team_id": "team-alpha",
"provider_configs": [
{
"provider": "openai",
"weight": 1.0,
"allowed_models": ["gpt-4o-mini", "gpt-4o"]
}
],
"budget": {
"max_limit": 2000.00,
"reset_duration": "1M"
},
"rate_limit": {
"request_max_limit": 100,
"request_reset_duration": "1m"
},
"is_active": true
}'Получение расхода по команде:
curl http://localhost:8080/api/governance/teams/team-alphaМинимальный пример иерархии Customer Sales → Team alpha + Team beta → Virtual Keys:
{
"client": {
"enforce_auth_on_inference": true
},
"governance": {
"customers": [
{
"id": "customer-Sales",
"name": "Sales",
"budget_id": "budget-Sales"
}
],
"teams": [
{
"id": "team-alpha",
"name": "alpha",
"customer_id": "customer-Sales",
"budget_id": "budget-alpha"
},
{
"id": "team-beta",
"name": "beta",
"customer_id": "customer-Sales",
"budget_id": "budget-beta"
}
],
"virtual_keys": [
{
"id": "vk-alpha-prod",
"name": "alpha-prod",
"value": "sk-bf-alpha-prod",
"is_active": true,
"team_id": "team-alpha",
"budget_id": "budget-vk-alpha-prod",
"rate_limit_id": "rate-vk-alpha-prod",
"provider_configs": [
{
"provider": "openai",
"weight": 1.0,
"allowed_models": ["gpt-4o-mini", "gpt-4o"]
}
]
}
],
"budgets": [
{ "id": "budget-Sales", "max_limit": 10000.0, "reset_duration": "1M" },
{ "id": "budget-alpha", "max_limit": 4000.0, "reset_duration": "1M" },
{ "id": "budget-beta", "max_limit": 3000.0, "reset_duration": "1M" },
{ "id": "budget-vk-alpha-prod","max_limit": 2000.0, "reset_duration": "1M" }
],
"rate_limits": [
{
"id": "rate-vk-alpha-prod",
"request_max_limit": 100,
"request_reset_duration": "1m"
}
]
}
}| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
customers[].id | string | Да | Уникальный идентификатор бизнес-юнита |
teams[].customer_id | string | Нет | Привязка команды к клиенту |
virtual_keys[].team_id | string | Нет | Привязка VK к команде (взаимоисключающа с customer_id) |
virtual_keys[].customer_id | string | Нет | Прямая привязка VK к клиенту |
budgets[].max_limit | number | Да | Потолок расхода в долларах |
budgets[].reset_duration | string | Да | Период сброса: 1m, 1h, 1d, 1w, 1M, 1Y |
Связанные материалы
- Виртуальные ключи — детально о VK как основной сущности governance.
- Бюджеты и лимиты — иерархия бюджетов и rate limits в деталях.
- RBAC — делегированный доступ к UI.
- SSO — корпоративный вход.
- Защита от опустошения бюджета и отказа в обслуживании — углублённо о том, как hot-path estimation предотвращает overspend.
Сценарии использования
Десять типичных задач, которые Meridian решает в продакшен-среде — от самообслуживания команд и создания SaaS до защиты бюджета от DoS-нагрузок и единого backend'а для персональных AI-агентов.
Создание своего SaaS или продукта на базе LLM
Meridian как backend для AI-SaaS. Бюджеты клиентов с календарным сбросом по подписке, полный программный API для onboarding, размещение в SaaS-инфраструктуре или on-premise у крупного клиента.