До конца 2025 года мы использовали OpenAI напрямую для всех задач, связанных с чатами. Один аккаунт, один ключ, один счет. В январе 2026 года мы перешли на мульти-модельный агрегатор. Вот что произошло на самом деле.

Что у нас было

  • Корпоративный тариф OpenAI — ~$8k/месяц на всех платформах
  • Все завершения чатов на gpt-4o или gpt-4o-mini
  • Одна модель для эмбеддингов, одна модель для изображений (DALL-E 3)
  • Прямая интеграция SDK в четырех сервисах

Что стало причиной перехода

  • Claude Opus 4.6 показывал заметно лучшие результаты в наших оценках агентного программирования
  • Gemini 3 Pro стал явным лидером для анализа документов с длинным контекстом
  • Мы хотели протестировать open-source модели (DeepSeek, Llama 4) без необходимости разворачивать инфраструктуру для инференса
  • Работа с пятью провайдерами означала пять контрактов, пять циклов выставления счетов, пять панелей для лимитов запросов

Миграция

Мы перешли на агрегатор, совместимый с OpenAI (на самом деле, это наш собственный продукт — мы используем его в продакшене). Весь процесс свелся к замене baseURL и apiKey в SDK. Разница в коде составила 8 строк для всех четырех сервисов.

// До
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });

// После
const openai = new OpenAI({
  apiKey: process.env.AIGEN_KEY,
  baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});

Что изменилось в счетах

  • Чат (GPT-4o → смешанный GPT-4o + Claude Sonnet в зависимости от задачи): -22%
  • Агентное программирование (перешли на Claude Opus): +8%, но оценки улучшились на 15 пунктов
  • Анализ длинного контекста (перешли на Gemini 3 Pro): -40%
  • Генерация изображений (перешли с DALL-E 3 на Nano Banana): -65%

Общий эффект на ежемесячный счет: -28%. Лучший выбор моделей для каждой задачи + более низкие ставки за токен от агрегаторов, с которыми нам не нужно вести прямые переговоры.

Три проблемы, с которыми мы столкнулись

  • Различия в формате потоковой передачи SSE. Claude передает данные немного иначе, чем OpenAI. Наша клиентская логика буферизации сломалась примерно на 10 минут, пока мы не добавили совместимый shim.
  • Подсчет токенов. Разные модели по-разному токенизируют текст. Наш внутренний метрик "использованные токены на разговор" пришлось откалибровать для каждой модели.
  • Кэширование с привязкой к имени модели. Наш кэш подсказок использовал gpt-4o в качестве ключа. Когда мы начали перенаправлять некоторые запросы на Claude, мы получали устаревшие результаты из кэша. Урок: всегда включайте модель в ключи кэша.

Сделали бы мы это снова?

Да — по трем причинам, не связанным с затратами.

  • Гибкость. Когда у OpenAI произошел 40-минутный сбой 3 апреля, наш чат продолжил работать, так как трафик автоматически переключился на Anthropic и Gemini. Это само по себе оправдывает миграцию.
  • Паритет моделей закончился. В 2026 году нет "лучшей модели". Есть лучшая модель для каждой задачи. Агрегация — это способ использовать этот факт.
  • Один счет. Финансовый отдел хотел этого больше, чем инженерный. Один счет, один поставщик, один контракт для 12 провайдеров.

Если вы работаете с любым значительным объемом на одном провайдере, переход окупается уже в первый месяц.