LEX — AI Legal Platform for Law Firms

AI-powered legal analysis platform for law firms and corporate counsel.

Features

Resources

Blog Articles

Technology

Built on AWS (EC2, Bedrock Claude AI, ALB, WAF, S3, ACM, KMS). PostgreSQL, Redis, Qdrant vector database. TypeScript, React, Node.js.

Start free — 50 credits on registration. Sign up

TECH 7 мин

AWS Bedrock как LLM-провайдер: от OpenAI fallback до Claude + Nova Pro

Один SDK вместо двух библиотек. IAM вместо API-ключей. Данные в ЕС вместо США. Единый биллинг вместо двух инвойсов. Вот как мы перевели весь fallback-слой на AWS Bedrock — и почему это изменило больше, чем мы ожидали.

AWS Bedrock как LLM-провайдер: от OpenAI fallback до Claude + Nova Pro

Как один PR изменил архитектуру fallback-слоя и почему API-ключи — это вчерашний день


Проблема: два API-ключа, два биллинга, ноль гарантий

LEX AI обрабатывает тысячи юридических запросов ежедневно. Каждый запрос — это вызов LLM: классификация намерения, поиск по базе, анализ решения суда, генерация ответа. Когда OpenAI ложится (а это случается чаще, чем хотелось бы), платформа должна продолжать работать.

Раньше мы использовали Anthropic API как fallback-провайдер. Это работало, но создавало ряд проблем:

Проблема Последствие
Два отдельных API-ключа Ротация секретов x 2, риск утечки x 2
Два биллинга Ежемесячная сверка двух инвойсов, невозможность Reserved Capacity
Данные летят в США Anthropic API не гарантирует EU-резидентность
Rate limits на уровне ключа При всплеске нагрузки fallback тоже ограничен
Round-robin провалился Мы уже писали об этом — разные форматы ответов ломали парсинг

Нам нужен был единый fallback-провайдер, который даёт доступ к нескольким моделям через один SDK, с IAM-авторизацией и данными в пределах ЕС.

Решение: AWS Bedrock

AWS Bedrock — это managed-сервис, который предоставляет доступ к моделям разных вендоров через единый API. Один SDK, одна авторизация (IAM), один биллинг, выбор региона.

Через Bedrock мы получили доступ сразу к двум семействам моделей:

Budget-aware модельные тиры

Наш ModelSelector уже поддерживал три тира производительности. Мы просто заменили fallback-модели:

Тир Назначение Primary (OpenAI) Fallback (Bedrock)
quick Классификация, роутинг gpt-5-nano Amazon Nova Micro
standard Выполнение тулов, суммаризация gpt-5-mini Amazon Nova Lite
deep Юридический анализ, паттерны gpt-5.1 Amazon Nova Pro

Nova Micro и Nova Lite закрывают дешёвые задачи, а Nova Pro — полноценная альтернатива для сложного анализа. Claude через Bedrock остаётся доступным для случаев, где нужно именно его качество reasoning.

Миграция: что изменилось в коде

До: два клиента, два формата

// Было: прямое подключение к Anthropic API
import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY, // ещё один секрет
});

После: единый AWS SDK

// Стало: Bedrock через AWS SDK
import {
  BedrockRuntimeClient,
  ConverseCommand,
} from '@aws-sdk/client-bedrock-runtime';

const bedrock = new BedrockRuntimeClient({
  region: 'eu-central-1', // данные остаются в ЕС
  // IAM авторизация — никаких API-ключей
});

Ключевое изменение — Converse API. Это унифицированный интерфейс Bedrock, который принимает одинаковый формат сообщений независимо от модели. Тот же код работает и для Nova Pro, и для Claude через Bedrock. Никакого парсинга разных форматов — проблема, которая убила наш round-robin.

Авторизация: IAM вместо API-ключей

Это, пожалуй, самый большой выигрыш. Вместо хранения ANTHROPIC_API_KEY в .env-файлах на каждом сервере, мы используем IAM-роль EC2-инстанса:

{
  "Effect": "Allow",
  "Action": [
    "bedrock:InvokeModel",
    "bedrock:InvokeModelWithResponseStream"
  ],
  "Resource": "arn:aws:bedrock:eu-central-1::foundation-model/*"
}

Никаких секретов в переменных окружения. Никакой ротации ключей. Credentials берутся автоматически из Instance Metadata Service. Одним вектором атаки меньше.

Результаты

Метрика До (Anthropic API) После (Bedrock) Изменение
Fallback latency (p50) 1.8s 1.2s -33%
Fallback latency (p99) 8.4s 4.1s -51%
Стоимость fallback-запросов $0.018/запрос $0.011/запрос -39%
Секретов в .env 4 (2 OpenAI + 2 Anthropic) 2 (только OpenAI) -50%
Данные в EU Не гарантировано eu-central-1 Гарантировано

Снижение latency объясняется двумя факторами: EC2 -> Bedrock — это трафик внутри AWS-региона (без выхода в интернет), а Nova Pro просто быстрее Claude для типичных юридических задач.

Provisioned Throughput: следующий шаг

Bedrock позволяет купить Provisioned Throughput — гарантированную пропускную способность для конкретной модели. Для нас это значит:

Мы планируем активировать Provisioned Throughput для Nova Pro на deep-тире, где предсказуемость важнее всего — юридический анализ не может ждать в очереди.

Выводы

Один PR, но архитектурное изменение ощутимо:

  1. IAM вместо API-ключей — меньше секретов, меньше риска
  2. EU data residency — данные не покидают eu-central-1
  3. Единый биллинг — AWS Cost Explorer вместо двух инвойсов
  4. Converse API — один формат для всех моделей
  5. Nova Pro — более дешёвый и быстрый fallback для юридического анализа

Если ваша платформа использует несколько LLM-провайдеров и вы устали от зоопарка API-ключей — посмотрите на Bedrock. Это не серебряная пуля, но для fallback-сценария это самое элегантное решение, которое мы нашли.