

Единый LLM API · GPT, Claude, Gemini за одним SDK
Практический гид по работе с GPT, Claude, Gemini, DeepSeek, Qwen и другими LLM через единый API — выбор модели, код интеграции и контроль затрат.
Поле LLM распалось как минимум на 6-7 серьёзных семейств — GPT, Claude, Gemini, DeepSeek, Qwen, Doubao, Kimi, MiniMax, GLM — каждое со своими сильными сторонами, ценовой кривой и эксплуатационными причудами. Команды, которые зафиксировались на одном провайдере, следующий квартал переписывают интеграции — потому что провайдер поднял цены, поменял лимиты или просто отстал по нужной им возможности. В этой статье разбираем, почему единый LLM-шлюз стал дефолтной прод-конфигурацией, как подбирать модель под задачу и как на деле выглядит интеграционный код.
Почему единый API теперь дефолт
Стоимость интеграции LLM больше не живёт в самом вызове модели — она живёт в клеевом коде вокруг него. У каждого провайдера свой SDK, форма авторизации, модель ошибок, заголовки лимитов и биллинговый портал. Умножьте это на пять провайдеров — интеграция превращается во второй продукт.
Налог на интеграцию нескольких SDK
Прямая интеграция с тремя провайдерами превращается в три потока авторизации, три политики ретраев, три панели использования и три набора инцидентов в продакшене. Каждая новая модель запускает обновление какого-то SDK. Команды регулярно теряют 1-2 инженеро-недели в квартал на провайдерский обвяз, который не двигает ни одной бизнес-метрики.
Ценовой риск и риск провайдера
Цены на LLM постоянно движутся — кто-то за один релиз срезает тариф на 80%, кто-то добавляет новый уровень, ломающий вашу модель затрат за ночь. Быть заперленным на одного провайдера — значит впитывать все эти сдвиги без рычага на переключение. Единый шлюз удерживает стоимость переключения на уровне изменения конфигурации.
Что единый шлюз решает
Единый LLM API складывает всех провайдеров за одной OpenAI-совместимой точкой. Один ключ, один SDK, одно представление биллинга, одно место, где настраиваются лимиты и фолбэки. Выбор модели становится строковым параметром — сегодня "gpt-5", завтра "claude-4-6-sonnet", для ночного батча "deepseek-v3". Интеграционный код не меняется.
Как выбирать семейство LLM под задачу
Ни одна модель не выигрывает все бенчи. Хороший выбор — это совпадение сильных сторон модели с формой задачи. Таблица ниже — грубая карта сильных сторон основных семейств, до которых в продакшене реально тянешься. Используйте как точку старта, дальше меряйте на своём трафике.
| Семейство | Сильные стороны | Типичное применение |
|---|---|---|
| GPT (OpenAI) | Универсальность, tool use, экосистема | Базовый чат, агенты, tool-heavy флоу |
| Claude (Anthropic) | Длинная форма, тонкое рассуждение, безопасность | Драфты, аналитика, контент с контролем тона |
| Gemini (Google) | Мультимодальность, длинный контекст, фактичность | QA по документам, image/video, ресёрч |
| DeepSeek | Сильное рассуждение при низкой цене | Математика, код, массовые reasoning-нагрузки |
| Qwen (Alibaba) | Сильный китайский, конкурентоспособные языки | CJK-контент, локализация |
| Doubao (ByteDance) | Сильный китайский, конкурентная цена | CJK-чат, потребительские ассистенты |
| Kimi | Длинный контекст, анализ документов | Альтернатива RAG, суммаризация длинных документов |
| MiniMax | Персонажи/ролеплей, теплота диалога | Companion-приложения, развлекательный чат |
| GLM (Zhipu) | Сбалансированный универсал, хороший билингв | Общий чат, где важно качество CJK |
Рассуждение и сложный анализ
Когда важна корректность на длинных цепочках рассуждений — многошаговая математика, юридический разбор, ревью кода — нужна модель с выраженным рассудочным поведением. Claude, рассуждающие уровни GPT и DeepSeek здесь ложатся хорошо. Особенно DeepSeek сдвигает кривую стоимости так, что массовые reasoning-нагрузки, нерентабельные год назад, становятся возможными.
Кодинг и разработческие воркфлоу
В повседневных задачах по коду Claude и GPT идут примерно на равных; DeepSeek и Qwen закрывают разрыв на существенно меньшей цене на батч-задачах вроде крупных рефакторингов или генерации тестов. Выбор обычно сводится к тому, что важнее — пиковое качество или пропускная способность на доллар.
Бюджет-сензитивные массовые нагрузки
Классификация, теги, суммаризация, фоновое обогащение — для этого фронтирная модель почти никогда не нужна. Отправьте их на уровень попроще — DeepSeek, Qwen или младшие варианты фронтирных семейств — а дорогие модели оставьте для user-facing интерактивных вызовов. Многоуровневая маршрутизация часто оказывается крупнейшим единичным рычагом стоимости в продакшен-приложении на LLM.
Многоязычный и региональный контент
В рабочих нагрузках с сильным CJK Qwen, Doubao, GLM и Kimi стабильно обходят западные фронтирные модели по культурным нюансам и идиомам. Прогнать небольшой оценочный сет на целевом языке по трём кандидатам полезнее любого лидерборда.
Интеграционный код через единый API
Единый LLM-шлюз говорит на протоколе OpenAI, то есть любой популярный SDK работает без изменений — достаточно указать baseURL шлюза. Примеры ниже используют эндпойнт APIMart, но форма одинакова для любого OpenAI-совместимого шлюза.
Минимальный chat completion
Минимально жизнеспособный вызов — однораундовый комплишн с системным промптом:
curl https://api.apimart.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain vector embeddings in two sentences."}
]
}'
Замените "gpt-5" на "claude-4-6-sonnet", "gemini-2-5-pro" или "deepseek-v3" — запрос не изменится. В этом вся суть.
Стриминг ответов
Для интерактивных интерфейсов нужен потоковый вывод по токенам. OpenAI SDK поддерживает это прямо из коробки на совместимом шлюзе:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIMART_API_KEY,
baseURL: "https://api.apimart.ai/v1",
});
const stream = await client.chat.completions.create({
model: "claude-4-6-sonnet",
stream: true,
messages: [{ role: "user", content: "Write a haiku about TCP." }],
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
От прямой интеграции с OpenAI отличаются только две строки — baseURL и строка model.
Структурированный JSON-вывод
Агентные пайплайны почти всегда требуют структурированный ответ. Все основные семейства сейчас поддерживают JSON-режим, а шлюз выравнивает параметр:
const response = await client.chat.completions.create({
model: "gpt-5",
response_format: { type: "json_object" },
messages: [
{ role: "system", content: "Return JSON with fields: sentiment, topic, score." },
{ role: "user", content: "The product arrived late but the support team was amazing." },
],
});
const parsed = JSON.parse(response.choices[0].message.content ?? "{}");
// { sentiment: "mixed", topic: "customer-service", score: 0.7 }
Для строгих гарантий используйте формат json_schema — большинство фронтирных семейств его уже поддерживают, остальные шлюз дотягивает сам.
Переключение модели на лету
Настоящая ценность единого API видна там, где вы маршрутизируете разные запросы в разные модели по цене или возможностям. Минимальный роутер выглядит так:
function pickModel(task: "chat" | "reasoning" | "bulk"): string {
switch (task) {
case "chat": return "claude-4-6-sonnet"; // пользовательский чат, где важно качество
case "reasoning": return "deepseek-v3"; // дёшево и сильно на рассуждениях
case "bulk": return "qwen-plus"; // минимальная цена для массовой классификации
}
}
const completion = await client.chat.completions.create({
model: pickModel(task),
messages,
});
Всё, что вне роутера, остаётся неизменным. Добавить новую модель — добавить строку. Убрать модель — удалить строку. Без смены SDK, без миграции авторизации, без нового биллинга.
Выбор LLM раньше был одноразовым решением, с которым вы жили год. В 2026-м это конфигурационный параметр, который переоценивается каждый месяц по мере движения цен и выхода новых моделей. Единый API превращает это в лёгкую операцию: интеграция пишется один раз, микс моделей эволюционирует непрерывно, а внимание команды остаётся на продукте, а не на провайдерском обвязе.
Выберите нужную модель в маркетплейсе моделей
Попробуйте чат, изображения и видео в маркетплейсе APIMart и быстро оцените возможности моделей через единый API.