← Все статьи

Сравнение архитектур мультимодального API-маршрутизирования 2026: как gateway обрабатывают чат, изображения, видео и TTS через единый endpoint

Сравнение для продакшена: как OpenRouter, DashScope и Gemini обрабатывают мультимодальный routing — чат, генерацию изображений, видео, TTS и embeddings — через свои API-архитектуры, с примерами кода, ценовыми ориентирами и матрицей выбора.

· TheRouter

Ответ за 30 секунд: если вам нужны все модальности (чат, генерация изображений, видео, TTS, STT, embeddings) под одним API-ключом и в одном счёте, OpenRouter — самый полный единый gateway на сегодня. Если вы строите приложение в Китае и вам нужны модели Qwen плюс CosyVoice TTS плюс Wanx для генерации изображений, DashScope обеспечивает самое широкое покрытие мультимодальных сервисов в рамках одного аккаунта Alibaba Cloud — но с отдельными task-specific API, а не единым endpoint. Gemini идёт третьим путём: вместо агрегации сторонних моделей он расширяет собственный endpoint чата встроенными инструментами (code execution, computer use, Google Search), стирая границу между «модальностями» и «возможностями». Мы считаем, что продакшен-системы не должны проталкивать все модальности через один gateway. Маршрутизируйте текст и генерацию изображений через gateway, подходящий для каждой нагрузки, и используйте TheRouter для unified billing и fallback между провайдерами вне зависимости от модальности.

Сводная таблица

GatewayМодальностиАрхитектура endpointOpenAI-совместимостьMulti-providerЛучше всего для
OpenRouterЧат, vision, генерация изображений, генерация видео, TTS, STT, embeddingsЕдиный base URL (/api/v1). Чат идёт через /chat/completions; изображения/видео/аудио/embeddings — через отдельные endpoint под тем же base URL.Да — drop-in замена для OpenAI SDKДа — 70+ провайдеров, 400+ моделейОдин API-ключ для всех модальностей у множества провайдеров
DashScopeЧат, vision, генерация изображений (Wanx), генерация видео (Wan), TTS (CosyVoice), STT, embeddingsРаздельные endpoint по типам задач. Чат через OpenAI-совместимый /compatible-mode/v1/chat/completions; изображения/видео/TTS/STT — через нативные DashScope API с разными форматами запросов.Частично — чат совместим; медиа-endpoint — нетОграниченно — в основном Alibaba/Qwen модели плюс DeepSeek, Kimi, GLMМультимодальный стек для Китая, один счёт Alibaba Cloud
Gemini APIЧат, vision, code execution, computer use, Google Search, managed agentsЕдиный generateContent / streamGenerateContent endpoint. Дополнительные модальности — это «встроенные инструменты», объявляемые в запросе, а не отдельные endpoint.Нет — нативный формат Gemini; есть слой OpenAI-совместимости, но ограниченныйНет — только модели GoogleНативный стек Google с расширениями встроенных инструментов (computer use, code execution)

OpenAI-совместимость означает, что провайдер предоставляет endpoint chat-completions, чей контракт запроса и ответа достаточно близок к API OpenAI, чтобы немодифицированный вызов OpenAI SDK работал после замены трёх значений: API key, base URL, название модели. Минимальная поверхность на практике —POST /v1/chat/completions с messages, model и потоковым ответом в форме OpenAI.

Как каждый gateway маршрутизирует мультимодальные запросы

OpenRouter: один base URL, строка модели определяет модальность

OpenRouter предоставляет единый base URL (https://openrouter.ai/api/v1), обслуживающий все модальности. Вы переключаетесь между ними, меняя строку модели и путь endpoint. Их блог-пост от июля 2026 года «Every Modality Through One API» описывает архитектуру: текст/чат, vision-ввод, PDF и аудио-ввод идут через /chat/completions с разными content type в массиве сообщений; генерация изображений, видео, TTS, STT и embeddings получают выделенные endpoint под тем же base URL.

Ключевой момент: routing-контроли — failover, предпочтения провайдера, сортировка по стоимости/задержке, data_collection: "deny" — работают одинаково для всех модальностей. Вызов embeddings получает ту же retry-логику, что и чат-запрос. Один API-ключ, один счёт.

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-...",
)

# Chat completion — тот же base URL
chat = client.chat.completions.create(
    model="anthropic/claude-sonnet-4",
    messages=[{"role": "user", "content": "Кратко изложи этот документ."}],
)

# Генерация изображений — тот же base URL, другой endpoint
image = client.images.generate(
    model="openai/gpt-image-1",
    prompt="Маршрутизатор, расщепляющий свет на разные длины волн",
    size="1024x1024",
)

# TTS — тот же base URL, другой endpoint
speech = client.audio.speech.create(
    model="openai/tts-1",
    input="Мультимодальный routing уже здесь.",
    voice="alloy",
)

# Embeddings — тот же base URL, другой endpoint
embedding = client.embeddings.create(
    model="openai/text-embedding-3-small",
    input="Архитектура мультимодального API routing",
)

Компромиссы: OpenRouter агрегирует множество провайдеров, но сам модели не хостит. Задержка зависит от upstream-провайдера. Генерация видео асинхронна (отправка задания, polling результата). Не все провайдеры поддерживают все модальности — перед маршрутизацией нужно проверять возможности модели.

DashScope: раздельные task API под одним аккаунтом Alibaba Cloud

DashScope (Alibaba Cloud Model Studio) использует другой подход. Chat completions работают через OpenAI-совместимый endpoint https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions (или новые домены для конкретных workspace). Но генерация изображений (Wanx, Flux), генерация видео (Wan), TTS (CosyVoice) и embeddings используют нативные DashScope task API с разными форматами запросов.

OpenAI-совместимый слой покрывает Qwen LLM, Qwen-VL, Qwen-Coder, Qwen-Omni, DeepSeek, Kimi, GLM и MiniMax для чата. Но когда нужна генерация изображений или TTS, вы переключаетесь на нативные DashScope endpoint с другим форматом запросов. Один API-ключ и один billing-аккаунт по-прежнему покрывают всё, но кодовые пути расходятся.

from openai import OpenAI
import dashscope

# Чат — OpenAI-совместимый endpoint
client = OpenAI(
    api_key="sk-...",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
chat = client.chat.completions.create(
    model="qwen-plus",
    messages=[{"role": "user", "content": "Объясни мультимодальный routing."}],
)

# Генерация изображений — нативный DashScope API (другой SDK, другой формат)
from dashscope import ImageSynthesis
result = ImageSynthesis.call(
    model="wanx-v1",
    input={"prompt": "Маршрутизатор, расщепляющий свет на разные длины волн"},
    parameters={"size": "1024*1024", "n": 1},
)

# TTS — нативный DashScope API
from dashscope.audio.tts_v2 import SpeechSynthesizer
synthesizer = SpeechSynthesizer(model="cosyvoice-v2", voice="longxiaochun")
audio = synthesizer.call("Мультимодальный routing уже здесь.")

Компромиссы: Вы получаете самое широкое покрытие китайских AI-моделей (Qwen, DeepSeek, GLM, Kimi, MiniMax) под одним аккаунтом с оптимизированной задержкой для Китая. Но OpenAI-совместимый слой покрывает только чат — медиа-endpoint требуют изучения нативного API DashScope. Если вы мигрируете с OpenAI, только чат-путь встраивается без изменений.

Gemini: встроенные инструменты расширяют endpoint чата

Google использует принципиально иной подход. Вместо агрегации нескольких провайдеров за одним URL, Gemini расширяет собственный endpoint generateContent встроенными инструментами: code execution, computer use, Google Search grounding и managed agents. Это не отдельные модальности с отдельными endpoint — это объявления инструментов в чат-запросе, которые модель может вызывать в процессе генерации.

В changelog Gemini API отмечено, что computer use запущен в 2026 году с «упрощёнными действиями с интентами, встроенной поддержкой браузера, мобильного и десктопного окружений». Code execution запускает Python в серверной песочнице и возвращает результаты inline. Эти расширения означают, что один вызов Gemini может искать в вебе, выполнять код и взаимодействовать с браузером — возможности, которые в других gateway маршрутизировались бы к отдельным сервисам.

from google import genai

client = genai.Client()

# Чат со встроенным инструментом code execution
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Рассчитай сложные проценты на 10 000 при ставке 5% за 10 лет",
    config={
        "tools": [{"code_execution": {}}],
    },
)

# Чат со встроенным инструментом Google Search grounding
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Какие последние изменения в ценах AI API произошли в июле 2026?",
    config={
        "tools": [{"google_search": {}}],
    },
)

Компромиссы: Встроенные инструменты Gemini мощны, но привязаны к моделям Google. Нельзя перенаправить запрос Gemini computer use на fallback Anthropic или OpenAI. Есть слой OpenAI-совместимости, но он не предоставляет доступ к встроенным инструментам. Если вам нужен multi-provider fallback, расширения инструментов Gemini не переносимы.

Матрица покрытия модальностей

МодальностьOpenRouterDashScopeGemini API
Текстовый чат/chat/completions (OpenAI-совместимый)/compatible-mode/v1/chat/completions (OpenAI-совместимый)generateContent (нативный)
Vision-вводimage_url content type на /chat/completionsПоддержка Qwen-VL через OpenAI-совместимый endpointНативный мультимодальный ввод
Генерация изображенийВыделенный /images endpointНативный DashScope Wanx/Flux APIImagen через Gemini (ограниченно)
Генерация видеоВыделенный /videos endpoint (async)Нативный DashScope Wan APIЧерез API недоступно
TTS/audio/speech (OpenAI Audio-совместимый)Нативный DashScope CosyVoice APIЧерез API недоступно
STT / транскрипция/audio/transcriptionsНативный DashScope Paraformer APIЧерез API недоступно
EmbeddingsВыделенный /embeddings endpointНативный DashScope + частично OpenAI-совместимыйembedContent (нативный)
Code executionНе встроен (routing к модели с tool calling)Не встроенВстроенный инструмент
Computer useНе встроен (routing к модели с computer use)Не встроенВстроенный инструмент
Web search groundingНе встроенНе встроенВстроенный Google Search
Managed agentsНеприменимоDashScope Managed Agents API (июль 2026)Gemini Managed Agents (июль 2026)

Сравнение цен

Ценообразование мультимодальных сервисов существенно различается по модальностям и провайдерам. Цены на токены чата хорошо задокументированы; цены на генерацию медиа часто считаются за запрос или за секунду.

МодальностьПодход OpenRouterПодход DashScopeПодход Gemini
Токены чатаПрозрачная трансляция цен провайдера, без наценки (см. OpenRouter pricing)По модели, за MTok (см. DashScope pricing)По модели, за MTok (см. Gemini pricing)
Генерация изображенийЗа изображение, зависит от модели/провайдераЗа изображение, цены Wanx (прибл. ¥0,16/изображение стандарт)За изображение, цены Imagen
Генерация видеоЗа секунду, зависит от модели/провайдераЗа секунду, цены WanНедоступно
TTSЗа символ или за запрос, зависит от моделиЗа символ, цены CosyVoiceНедоступно
EmbeddingsЗа токен, зависит от модели/провайдераЗа токен, по моделиЗа токен, по модели
Наценка gatewayНет — цены провайдера без наценкиНет — цены первой стороныНет — цены первой стороны

Ключевое отличие в ценообразовании — структурное: OpenRouter транслирует цены провайдера без наценки по всем модальностям. DashScope и Gemini устанавливают собственные цены первой стороны. Для чата это значит, что цена OpenRouter равна цене upstream-провайдера; для DashScope цена — та, которую Alibaba установила для каждой модели Qwen.

Rate limits

GatewayМодель rate limitДокументация
OpenRouterПо модели, по аккаунту. Бесплатный уровень — более строгие лимиты. Пополнение баланса повышает лимиты.Документация OpenRouter
DashScopeПо модели RPM/TPM. Зависит от модели и уровня аккаунта.Rate limits DashScope
Gemini APIПо модели RPM/TPM. Бесплатный уровень — строгие лимиты; pay-as-you-go повышает.Rate limits Gemini

Для мультимодальных нагрузок rate limits обычно считаются по endpoint и по модели раздельно. Rate limit чата и rate limit генерации изображений, как правило, независимы, но это зависит от конкретного провайдера. Проверяйте документацию endpoint перед проектированием batch-пайплайнов.

Матрица выбора: вам нужно X — выбирайте Y

Вам нужно…Выбирайте…Почему
Все модальности под одним API-ключом, multi-providerOpenRouterЕдинственный gateway, маршрутизирующий чат, генерацию изображений, видео, TTS, STT и embeddings у 70+ провайдеров через один OpenAI-совместимый base URL
Мультимодальный стек для Китая (Qwen + CosyVoice + Wanx)DashScopeЛучшее покрытие моделей Qwen, оптимизированная задержка для Китая, один счёт Alibaba Cloud для всех модальностей
Встроенный code execution или computer use в чатеGemini APICode execution и computer use — встроенные инструменты на endpoint чата, не нужно подключать отдельный сервис
Multi-provider fallback для чата + visionOpenRouter или TheRouterОба поддерживают provider failover для чата; TheRouter добавляет unified billing между провайдерами
Оркестрация managed agentsDashScope или GeminiОба выпустили managed agent API в июле 2026; OpenRouter не предлагает оркестрацию агентов
Минимальные усилия по миграции с OpenAI SDKOpenRouterБольшинство модальностей используют OpenAI-совместимые endpoint; замените base URL и API-ключ

Что это значит для архитектуры routing

Три подхода представляют разные философии проектирования:

  1. Агрегационный gateway (OpenRouter): маршрутизация любой модальности к любому провайдеру через один API. Максимальная гибкость, но вы зависите от доступности gateway и добавляете дополнительный hop.

  2. Платформенный мультимодальный стек (DashScope): один облачный аккаунт покрывает чат, изображения, видео, TTS, embeddings — но с раздельными API-поверхностями для каждой модальности и ограничением экосистемой Alibaba.

  3. Модельное расширение инструментами (Gemini): модель сама обрабатывает несколько «модальностей» через встроенные инструменты. Мощно для команд на Google-стеке, но не переносимо между провайдерами.

Для продакшен-систем мы считаем, что правильный ответ — обычно комбинация. Используйте агрегационный gateway или TheRouter для чата и vision, где важен multi-provider fallback. Используйте платформенные API для генерации медиа, где задержка и региональный доступ важнее разнообразия провайдеров. Не проталкивайте генерацию видео через чат-gateway только ради одного API-ключа.

Тренд, который мы наблюдаем: команды начинают с одного gateway для чата (где частая смена моделей), затем добавляют прямые интеграции с провайдерами для генерации медиа (где выбирают одну модель и закрепляются). Gateway берёт на себя сложную часть — failover, billing, model deprecation — а прямые интеграции обрабатывают стабильную часть.

Связанные материалы


Данные получены 2026-07-22. Цены, rate limits и доступность моделей часто меняются. Проверяйте актуальную документацию провайдеров перед принятием решений для продакшена.

Помощь и контакты