Снижение стоимости и сроков разработки
Новый сервис подключается к LLM за пять несколько минут вместо спринта. Retries, fallbacks, семантический кэш, телеметрия и governance уже есть на стороне шлюза.
Проблема
Когда команда впервые добавляет LLM-функцию в продукт, бóльшая часть времени уходит не на саму функцию, а на инфраструктурный «налог»:
- получение ключа провайдера и согласование бюджета с финансами;
- настройка retries и тайм-аутов под особенности конкретного провайдера;
- обвязка для смены провайдера в будущем («чтобы потом не больно»);
- интеграция с корпоративным логированием и метриками;
- кэширование одинаковых запросов для экономии;
- ограничение доступа и rate limits.
Эта работа повторяется в каждом сервисе. Команда тратит один–два спринта на инфраструктуру вокруг одного client.chat.completions.create(). Смена провайдера через год — переписывать обвязку заново.
Кого это касается: product engineering teams, lead-разработчики продуктов, желающие выводить AI-фичи в продакшен быстрее и без дублирования инфраструктурного кода.
Решение
- Подключение нового сервиса к LLM: 1–2 спринта → 10 минут. Готовый OpenAI-совместимый эндпоинт + готовый VK = готовая интеграция.
- Смена провайдера — без релиза приложения. Изменение в конфигурации VK; код не трогается. Подробнее в Защита от vendor lock.
- Экономия на дубликатах. Семантический кэш отдаёт ответ на повторные/похожие промпты, не уходя в LLM. Особенно эффективен для коротких системных подсказок и FAQ-сценариев.
- Готовая наблюдаемость. Метрики, трейсы, логи без подключения дополнительных библиотек в каждом сервисе.
- Контроль расходов с первого дня. VK имеет бюджет и rate limit; команда не может «случайно» выйти за лимит.
Что предлагает Meridian
Meridian переносит весь инфраструктурный слой со стороны приложения на сторону шлюза:
- Drop-in replacement OpenAI API — приложение использует существующий
openaiSDK, только меняетbase_urlиapi_key. Никакого нового SDK учить не нужно. - Retries & fallbacks — автоматические повторы и аварийное переключение на резервного провайдера выполняются Meridian, не приложением.
- Семантическое кэширование — повторные запросы с близкими по смыслу промптами обслуживаются из кэша; экономия мгновенная и без изменений в коде.
- Телеметрия — Prometheus-метрики и OpenTelemetry-трейсы доступны без подключения дополнительных библиотек.
- Governance — бюджет, rate limit, фильтрация моделей задаются конфигурацией VK, не кодом приложения.
Сценарий
Команда alpha разрабатывает новую функцию: автогенерацию title для пользовательских заметок.
Без Meridian (типичный путь):
- Запросить ключ OpenAI у платформы (1 день).
- Получить ключ, прописать его в Secrets (полдня).
- Написать клиент с retries, exponential backoff, тайм-аутами (1 день).
- Прикрутить корпоративные метрики и трейсы (1 день).
- Добавить кэш в Redis для повторяющихся запросов (2 дня).
- Сделать review безопасности, согласовать с финансами (3 дня).
Итого: много кода который надо поддерживать, отладка, релиз через несколько дней.
С Meridian:
- Лид команды через UI выпускает Virtual Key с бюджетом и rate limit (5 минут).
- Разработчик пишет:
from openai import OpenAI client = OpenAI(base_url="https://meridian/v1", api_key=VK) client.chat.completions.create(model="openai/gpt-4o-mini", messages=[...]) - С первого запроса работают retries, fallback-цепочка (если задана в
fallbacks), семантический кэш, метрики, бюджет, логирование.
Итого: ~день до первого продакшен-вызова.
Конфигурация
Для команды-потребителя единственное действие — получить от платформы VK и подставить его в base_url/api_key приложения.
Для платформенной команды первичная настройка делается один раз:
- Providers — подключить провайдеров (OpenAI, Anthropic, Bedrock).
- Settings → Cache — включить семантический кэш с подходящим vector store (Redis/Qdrant/Weaviate).
- Settings → Logging — включить логирование (
postgresbackend). - Observability — включить Prometheus и OpenTelemetry.
После этого каждая новая команда получает VK через портал самообслуживания и сразу пользуется всеми возможностями.
Минимальный код приложения (Python, существующий openai SDK):
from openai import OpenAI
client = OpenAI(
base_url="https://meridian/v1",
api_key="sk-bf-alpha-prod"
)
response = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Сгенерируй title для заметки..."}],
extra_body={
"fallbacks": ["anthropic/claude-3-5-sonnet-20241022"]
}
)TypeScript (Vercel AI SDK или OpenAI SDK):
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://meridian/v1",
apiKey: process.env.MERIDIAN_VK!,
});
const completion = await client.chat.completions.create({
model: "openai/gpt-4o-mini",
messages: [{ role: "user", content: "..." }],
});curl:
curl -X POST https://meridian/v1/chat/completions \
-H "Authorization: Bearer sk-bf-alpha-prod" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "..."}]
}'Платформенная конфигурация, которая делает всё перечисленное «из коробки»:
{
"client": {
"enable_logging": true,
"enforce_auth_on_inference": true
},
"providers": {
"openai": { "keys": [ { "id": "k1", "value": "env.OPENAI_API_KEY", "models": ["*"], "weight": 1.0 } ] },
"anthropic": { "keys": [ { "id": "k1", "value": "env.ANTHROPIC_API_KEY", "models": ["*"], "weight": 1.0 } ] }
},
"vector_store": {
"type": "redis",
"config": { "address": "env.REDIS_ADDR" }
},
"plugins": {
"semantic_cache": {
"enabled": true,
"ttl_seconds": 3600,
"similarity_threshold": 0.95
},
"prometheus": { "enabled": true },
"otel": { "enabled": true, "endpoint": "env.OTEL_EXPORTER_OTLP_ENDPOINT" }
},
"logs_store": {
"type": "postgres",
"config": { "dsn": "env.LOGS_DB_DSN" }
}
}Связанные материалы
- Drop-in replacement — формат совместимости OpenAI API.
- Резервные варианты (fallbacks) — формат
fallbacksв запросе. - Семантическое кэширование — настройка и поведение.
- Телеметрия — метрики, метки, OpenTelemetry.
- Защита от vendor lock — что даёт единый OpenAI API дальше.
- Самообслуживание команд и контроль затрат — как команда быстро получает VK.
Внедрение AI-first подхода в компании
Единая точка входа для LLM, общий набор провайдеров, единая инфраструктура, телеметрия и управление. Команды создают на AI-функции за дни и спринты, а не полугодовые цели и миграцией.
Надёжность через балансировку и резервные варианты
Взвешенная балансировка ключей, упорядоченные fallback-провайдеры, политика попыток и маршрутизация по правилам делают доступность LLM-фичи независимой от доступности одного провайдера или одного ключа.