Как LLM-вызовы из BloodGPT-сервисов доходят до провайдеров (OpenAI / Google Gemini). Сейчас — mixed topology: разные сервисы используют разные пути, и есть env-split (stage vs prod).

Эта страница — про routing topology. Лимиты и тарифы по провайдерам — отдельно: vertex-gemini-quotas, openai-quotas.

TL;DR

  • 2 proxy в нашей системе: bifrost-proxy (stage-only сейчас), litellm-proxy (stage + prod). Оба — OpenAI-compatible API gateway, routing к разным providers.
  • Большинство сервисов на prod EU ходят через litellm-proxy → Vertex AI (vertex_project: bg-prod-general). HIPAA-OK.
  • Исключениеblood-gpt-dotnet (.NET API), который bypass’ит proxy и ходит напрямую в AI Studio (https://generativelanguage.googleapis.com) с API key. Это active compliance gap; миграция в общий routing через bifrost/litellm — часть что-мигрирует § «LLM access».
  • Bifrost — только на staging, testbed для advanced features (provider keys management). На prod пока не задеплоен.

Proxies

litellm-proxy (berriai/litellm)

OpenAI-compatible API gateway. Принимает OpenAI-formatted requests, проксирует к назначенному provider/model. Поддерживает routing strategies, retries, request transforms.

StageProd EU
Namespacecommon-litellm-proxycommon-litellm-proxy
Branchbloodgpt-stage-applicationsbloodgpt-prod-applications
Path в repocommon/litellm-proxy/values.yamleurope-west4/common/litellm-proxy/values.yaml
vertex_projectbg-stage-generalbg-prod-general
vertex_locationeurope-west4 / globaleurope-west4 / global
Service Accountlitellm-proxy@bg-stage-general.iam.gserviceaccount.com(likely litellm-proxy@bg-prod-general..., не проверено)

Routed models (consistent на stage и prod): Gemini 2.5 Pro/Flash/Flash-Lite (europe-west4 region), Gemini 3.x Pro/Flash/Flash-Lite preview (global region), OpenAI GPT-5.2, GPT-5.2-codex, o3, o3-mini, GPT-4.1.

bifrost-proxy (maximhq/bifrost)

OpenAI-compatible LLM proxy от Maxim. Аналог litellm но с другой архитектурой — поддерживает provider keys management, custom plugins (см. bifrost-custom-plugin-loading, bifrost-mock-strategy).

StageProd EU
Namespacecommon-bifrost-proxyНЕ задеплоен
Branch pathcommon/bifrost-proxy/values.yaml
project_idbg-stage-general
ProvidersOpenAI + Vertex (vertex-eu + vertex-global keys)
Service Accountlitellm-proxy@bg-stage-general.iam.gserviceaccount.com (shared с litellm)

Status: testbed для будущего migration на prod. Конфигурирован с двумя vertex keys (eu region для 2.5, global region для 3.x).

Direct (no proxy) — единичный случай

blood-gpt-dotnet (.NET API backend):

# europe-west4/common/blood-gpt-dotnet/values.yaml (prod EU)
Gemini__BaseUrl: "https://generativelanguage.googleapis.com"  # ← AI Studio (active)
# Gemini__BaseUrl: "https://aiplatform.googleapis.com"        # ← Vertex (prepared comment-out)

Auth: API key (GCP_APP_BLOOD_GPT_DOTNET_GEMINI_API_KEY в 1password). Migration plan на общий proxy-роутинг — часть что-мигрирует § «LLM access».

Service routing — prod EU (bloodgpt-prod-applications)

ServiceRoutingProviderStatus
blood-gpt-dotnet (.NET backend)Direct API callAI Studio (generativelanguage.googleapis.com)Compliance gap — миграция в legacy-stack-migration
analysis-worker→ litellm-proxyVertex AI (bg-prod-general)OK
algo-hub→ litellm-proxyVertex AI (bg-prod-general)OK
recommendations-portal→ litellm-proxyVertex AI (bg-prod-general)OK
b2c-dashboard→ litellm-proxyVertex AI (bg-prod-general)OK
patient-portal→ litellm-proxyVertex AI (bg-prod-general)OK
b2b-api / b2b-platform(TBD — не проверено в этом проходе)

Service routing — stage (bloodgpt-stage-applications)

Похожая структура, но с двумя proxy. Что-то идёт через bifrost (testbed), что-то через litellm. vertex_project указывает на bg-stage-general. Детальный map — не проверен в этом проходе, требует отдельной верификации если будет нужен.

Billing implications

  • Prod billing (BloodGPT Billing / 017EE6-A9042C-3BFCA4): видимый Gemini API spend = .NET API direct AI Studio calls (на 12 мая 2026 — €1,044 за 11 дней). Vertex AI line при этом отсутствует в breakdown, потому что Node.js сервисы тратят на vertex_project: bg-prod-general — это спенд под этим billing, но возможно offset credits или не выделен в top-line view.
  • Stage billing (отдельный аккаунт): €1,307 Vertex AI + €3,746 Gemini API за 30 дней на 12 мая 2026. Vertex spend растёт +66% MoM — миграция стейджа активна.

Capacity baseline

Historical reference point — оценка target throughput от Ильдара 12 марта 2026 в #ai-engineering thread “ключи для ЛЛМ и лимиты”:

МетрикаЗначениеИсточник
Target throughput100 tests/min15K RPM / 150 observations per test
Production rate144K tests/day = 45M tests/monthfull RPM utilisation
Effective rate (TPM-bound, на тот момент)~40 tests/min1M tokens/min observed
OpenAI tier на тот момент15K RPM / 40M TPMкак baseline

Bottleneck class: TPM-limited, не RPM-limited (по факту 40 vs возможные 100 tests/min).

Из того же треда — findings про routing strategy которые остались актуальны:

  • Shared TPM across model families (OpenAI docs): «Some model families have shared rate limits. All calls to any model in the given shared limit list will count towards that 3.5M.» Failover gpt-5gpt-5-mini не обходит лимит если они share TPM. Применимо к нашей failover-стратегии: fallback должен быть на разное семейство, не разный размер той же модели.
  • Per-project key multiplication (гипотеза, не decision’нута): если limit per-project — можно умножить выдав ключи с разных проектов. Technically возможно для OpenAI; для Vertex Standard PayGo не работает (limit на org-уровне через spend, см. standard-paygo—тиры-по-расходу).
  • Quick wins на 12 марта (Артём в том же треде):
    • Перейти на Vertex — частично сделано (Node.js services через litellm-proxy, .NET pending — см. legacy-stack-migration § «LLM access»)
    • Запросить повышенные лимиты у Сергея/Юры — сделано, Custom Tier denied 7 апреля (что-не-сработало)
    • Локальные индивидуальные ключи — в работе на тот момент

Local dev

В корне репозитория /home/i/JOBS/BloodGPT/litellm-config.yaml (плюс .dev.yaml, .fast.yaml) — local litellm config для разработки. Использует gemini/ provider + GEMINI_API_KEY (AI Studio routing). Только для dev — не запускается в prod.

Failure modes / Открытые вопросы

  • Bifrost prod deployment timeline — план есть, дата не зафиксирована
  • b2b-api / b2b-platform routing — не проверено в этой сессии, оставлено как TBD
  • Stage litellm-proxy auth: SA на bg-stage-general для Vertex calls — это правильное routing для стейджа, но cross-env nuance (если на стейдже билдится prod-image, не запутаемся ли с проектом)

Связанные решения

Связано

Источники