Сравнение архитектур мультимодального API-маршрутизирования 2026: как gateway обрабатывают чат, изображения, видео и TTS через единый endpoint
Сравнение для продакшена: как OpenRouter, DashScope и Gemini обрабатывают мультимодальный routing — чат, генерацию изображений, видео, TTS и embeddings — через свои API-архитектуры, с примерами кода, ценовыми ориентирами и матрицей выбора.
Ответ за 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 | Модальности | Архитектура endpoint | OpenAI-совместимость | 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 не переносимы.
Матрица покрытия модальностей
| Модальность | OpenRouter | DashScope | Gemini 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 API | Imagen через 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-provider | OpenRouter | Единственный gateway, маршрутизирующий чат, генерацию изображений, видео, TTS, STT и embeddings у 70+ провайдеров через один OpenAI-совместимый base URL |
| Мультимодальный стек для Китая (Qwen + CosyVoice + Wanx) | DashScope | Лучшее покрытие моделей Qwen, оптимизированная задержка для Китая, один счёт Alibaba Cloud для всех модальностей |
| Встроенный code execution или computer use в чате | Gemini API | Code execution и computer use — встроенные инструменты на endpoint чата, не нужно подключать отдельный сервис |
| Multi-provider fallback для чата + vision | OpenRouter или TheRouter | Оба поддерживают provider failover для чата; TheRouter добавляет unified billing между провайдерами |
| Оркестрация managed agents | DashScope или Gemini | Оба выпустили managed agent API в июле 2026; OpenRouter не предлагает оркестрацию агентов |
| Минимальные усилия по миграции с OpenAI SDK | OpenRouter | Большинство модальностей используют OpenAI-совместимые endpoint; замените base URL и API-ключ |
Что это значит для архитектуры routing
Три подхода представляют разные философии проектирования:
-
Агрегационный gateway (OpenRouter): маршрутизация любой модальности к любому провайдеру через один API. Максимальная гибкость, но вы зависите от доступности gateway и добавляете дополнительный hop.
-
Платформенный мультимодальный стек (DashScope): один облачный аккаунт покрывает чат, изображения, видео, TTS, embeddings — но с раздельными API-поверхностями для каждой модальности и ограничением экосистемой Alibaba.
-
Модельное расширение инструментами (Gemini): модель сама обрабатывает несколько «модальностей» через встроенные инструменты. Мощно для команд на Google-стеке, но не переносимо между провайдерами.
Для продакшен-систем мы считаем, что правильный ответ — обычно комбинация. Используйте агрегационный gateway или TheRouter для чата и vision, где важен multi-provider fallback. Используйте платформенные API для генерации медиа, где задержка и региональный доступ важнее разнообразия провайдеров. Не проталкивайте генерацию видео через чат-gateway только ради одного API-ключа.
Тренд, который мы наблюдаем: команды начинают с одного gateway для чата (где частая смена моделей), затем добавляют прямые интеграции с провайдерами для генерации медиа (где выбирают одну модель и закрепляются). Gateway берёт на себя сложную часть — failover, billing, model deprecation — а прямые интеграции обрабатывают стабильную часть.
Связанные материалы
- Сравнение мультимодальных моделей API routing 2026 — наше сравнение на уровне моделей (какую модель выбрать для vision-задач)
- Руководство по Doubao Seedance Video API — генерация видео через Volcengine Ark
- Полное руководство по серии DashScope Qwen3.7 — глубокое погружение в DashScope chat API
- Руководство по Aliyun Bailian API — обзор платформы DashScope
- Руководство по Gemini 3.5 Flash Computer Use — глубокое погружение во встроенные инструменты Gemini
- Быстрый старт TheRouter — unified routing и billing между провайдерами
Данные получены 2026-07-22. Цены, rate limits и доступность моделей часто меняются. Проверяйте актуальную документацию провайдеров перед принятием решений для продакшена.