Мультимодальный ввод в LLM API: форматы изображений, видео, аудио и файлов, которые принимает каждый провайдер
Практический справочник по форматам мультимодального ввода, которые принимают основные LLM API провайдеры — изображения, видео, аудио, PDF. Сравниваем OpenAI, Anthropic, DashScope, DeepSeek и SiliconFlow: таблицы форматов, ограничения и примеры кода.
Короткий ответ: OpenAI и Anthropic принимают изображения (JPEG, PNG, GIF, WebP) через URL или base64 с различными ограничениями размера; DashScope через модели Qwen-VL/Omni дополнительно поддерживает нативный ввод видео и аудио; размещённый API DeepSeek не поддерживает нативный ввод изображений; SiliconFlow хостит мультимодальные модели с открытыми весами с OpenAI-совместимым вводом изображений. Настоящая сложность — в деталях: максимальные размеры, стоимость в токенах, параметр detail и то, какие модальности каждая модель действительно обрабатывает.
OpenAI-совместимость означает, что провайдер предоставляет endpoint chat-completions, чей контракт запроса и ответа достаточно близок к API OpenAI, чтобы немодифицированный вызов OpenAI SDK работал после замены трёх значений: API key, base URL, название модели. Минимальная поверхность на практике —POST /v1/chat/completions с messages, model и потоковым ответом в форме OpenAI.
Источники: OpenAI Images and Vision, получено 2026-08-06; Anthropic Claude Vision, получено 2026-08-06; DashScope OpenAI-совместимость, получено 2026-08-06; DeepSeek API Docs, получено 2026-08-06; SiliconFlow Models, получено 2026-08-06.
Сводная таблица поддержки мультимодального ввода
| Провайдер | Форматы изображений | Макс. размер | Доставка | Видео | Аудио | Загрузка файлов | |
|---|---|---|---|---|---|---|---|
| OpenAI | JPEG, PNG, GIF, WebP | 20 МБ | URL, base64, file_id | Через извлечение кадров | Модели GPT Transcribe | Через File API | Да (File API) |
| Anthropic | JPEG, PNG, GIF, WebP | 5 МБ (base64) | URL, base64 | Нет | Нет | Нативно (100 стр., 32 МБ) | Нет |
| DashScope | JPEG, PNG, BMP, WebP | Зависит от модели | URL, base64 | Нативно (Qwen-VL, Omni) | Нативно (Qwen-Omni) | Через endpoint извлечения | По URL |
| DeepSeek | Не поддерживается (hosted) | — | — | Нет | Нет | Нет | Нет |
| SiliconFlow | JPEG, PNG, WebP | Мегапиксельный уровень | URL, base64 | Нет | Нет | Нет | Нет |
OpenAI: самый широкий мультимодальный API
OpenAI предлагает наиболее зрелый мультимодальный интерфейс. Модели с поддержкой Vision (GPT-5.6, GPT-5.5 Pro, GPT-5.4 Mini) принимают изображения тремя способами.
Способы ввода изображений
URL-ссылка — передайте публично доступный URL в поле image_url:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.6",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Что на этом изображении?"},
{
"type": "input_image",
"image_url": "https://example.com/photo.jpg",
"detail": "auto"
}
]
}]
)
Base64 data URI — встраивание данных изображения напрямую:
import base64
with open("photo.jpg", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
response = client.responses.create(
model="gpt-5.6",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Опишите это изображение."},
{
"type": "input_image",
"image_url": f"data:image/jpeg;base64,{b64}",
"detail": "high"
}
]
}]
)
File API file_id — загрузите один раз, ссылайтесь многократно:
file = client.files.create(file=open("photo.jpg", "rb"), purpose="vision")
# Затем используйте file.id в массиве content
Параметр detail
Параметр detail управляет обработкой изображения моделью и напрямую влияет на стоимость в токенах:
| Уровень | Разрешение | Стоимость в токенах | Применение |
|---|---|---|---|
low | 512×512, один блок | 85 токенов | Миниатюры, иконки, быстрая классификация |
high | Длинная сторона до 2048px, затем блоки 512px | 85 + 170 за блок | OCR, детальный анализ, графики |
auto | Модель решает сама | Варьируется | Общее назначение (по умолчанию) |
Поддерживаемые форматы и ограничения
- Форматы: JPEG, PNG, GIF (только первый кадр), WebP
- Макс. размер файла: 20 МБ
- Макс. размер изображения: 2048px по длинной стороне (автомасштабирование)
- Несколько изображений: поддерживается в одном запросе
- Аудио: выделенные модели (GPT Transcribe) для speech-to-text
- Видео: нет нативной поддержки — извлеките кадры и передайте как несколько изображений
Anthropic Claude: изображения и нативный PDF
Anthropic Claude (Opus 4.8, Sonnet 5, Haiku) поддерживает ввод изображений и является одним из немногих провайдеров с нативной обработкой PDF.
Ввод изображений
Claude принимает блоки содержимого image с полем source, указывающим base64 или URL:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5-20260714",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "<данные в base64>"
}
},
{"type": "text", "text": "Подробно опишите это изображение."}
]
}]
)
Ограничения форматов
- Форматы: JPEG, PNG, GIF (без анимации), WebP
- Макс. размер файла: 5 МБ на изображение (base64-кодированный payload больше исходного файла)
- Макс. размеры: 2576px / 3,75 мегапикселя (высокое разрешение, включено по умолчанию)
- Несколько изображений: до 20 изображений за запрос
- Подсчёт токенов: на основе размеров изображения — примерно (ширина × высота) / 750 токенов
Нативная поддержка PDF
Claude уникален среди крупных провайдеров нативным приёмом PDF:
- Макс. страниц: 100 на документ
- Макс. размер файла: 32 МБ
- Доставка: base64 в массиве content с
media_type: "application/pdf" - Стоимость в токенах: каждая страница приблизительно равна одному изображению
Чего Claude НЕ поддерживает
- Ввод видео: не поддерживается
- Ввод аудио: не поддерживается
- API загрузки файлов: нет постоянного хранилища файлов — base64 или URL в каждом запросе
DashScope (Qwen): самое широкое покрытие модальностей
DashScope предлагает наиболее широкий набор входных модальностей через семейство моделей Qwen. Через OpenAI-совместимый endpoint модели Qwen-VL и Qwen-Omni принимают изображения, видео и аудио.
Ввод изображений через OpenAI-совместимый API
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
response = client.chat.completions.create(
model="qwen-vl-max",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Что на этом изображении?"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}]
)
Поддерживаемые модели и модальности
| Модель | Изображения | Видео | Аудио | Thinking |
|---|---|---|---|---|
| Qwen3.8-Max | Да (нативное Vision + thinking) | Нет | Нет | Да |
| Qwen3.7-Max | Да | Нет | Нет | Да |
| Qwen3.7-Flash | Да (мультимодальное обновление) | Нет | Нет | Да |
| Qwen3.7-Plus | Да | Нет | Нет | Да |
| Qwen-VL-Max | Да | Да | Нет | Нет |
| Qwen-VL-Plus | Да | Да | Нет | Нет |
| Qwen3.5-Omni | Да | Да | Да (речевой ввод/вывод) | Нет |
Ввод видео
Модели DashScope Qwen-VL принимают URL видео напрямую в массиве content. Модель извлекает кадры самостоятельно:
response = client.chat.completions.create(
model="qwen-vl-max",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Опишите, что происходит в этом видео."},
{"type": "video_url", "video_url": {"url": "https://example.com/clip.mp4"}}
]
}]
)
Ввод аудио
Qwen3.5-Omni принимает аудио для понимания речи и может генерировать аудиовыход:
- Форматы: WAV, MP3, FLAC, OGG
- Макс. длительность: зависит от модели
- Доставка: URL-ссылка
Детали форматов изображений
- Форматы: JPEG, PNG, BMP, WebP, TIFF
- Макс. размеры: зависит от модели (до мегапиксельного уровня для VL-Max)
- Доставка: URL или base64
- Несколько изображений: поддерживается
DeepSeek: нет нативного Vision в размещённом API
По состоянию на август 2026 года, размещённые модели DeepSeek V4-Flash и V4-Pro не поддерживают нативный ввод изображений через официальный API на api.deepseek.com. Документация API DeepSeek описывает V4 как текстовый сервис.
Что доступно
- DeepSeek-VL (открытые веса): более ранняя мультимодальная модель для самостоятельного размещения, не обслуживается через официальный API
- Сторонний хостинг: платформы Fireworks AI и SiliconFlow размещают мультимодальные варианты DeepSeek с поддержкой Vision через document inlining
- Нет видео/аудио/PDF: ни одна из этих модальностей не поддерживается в размещённом API
Значение для routing
Если вашему приложению нужны и экономичность DeepSeek для текстовых задач, и возможности Vision, необходим routing-слой, который направляет мультимодальные запросы провайдеру с поддержкой Vision, а текстовые — на DeepSeek. Именно такую гетерогенную топологию провайдеров обрабатывает routing-слой.
SiliconFlow: мультимодальные модели с открытыми весами
SiliconFlow размещает более 200 моделей, включая мультимодальные модели с открытыми весами через OpenAI-совместимые API endpoint'ы.
Ввод изображений
SiliconFlow поддерживает ввод изображений через размещённые Vision-модели (Qwen-VL, InternVL, GLM-4V) в стандартном OpenAI-совместимом формате:
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx",
base_url="https://api.siliconflow.cn/v1"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-VL-72B-Instruct",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Опишите это изображение."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}]
)
Детали форматов
- Форматы: JPEG, PNG, WebP
- Макс. размеры: мегапиксельный уровень (зависит от модели)
- Доставка: URL или base64
- Нет видео/аудио/PDF: эти модальности не поддерживаются через API
Частые ошибки: конвертация форматов и ограничения размеров
Overhead base64-кодирования
Base64-кодирование увеличивает размер файла примерно на 33%. JPEG размером 4 МБ становится примерно 5,3 МБ в base64. Это наиболее критично для лимита Anthropic в 5 МБ — исходное изображение должно быть не более ~3,75 МБ, чтобы уложиться после кодирования.
Доступность URL
При передаче URL изображений URL должен быть публично доступен. Приватные endpoint'ы, URL с ограничениями VNet и URL за аутентификацией молча вернут ошибку. Для изображений из приватных источников используйте base64.
Автомасштабирование размеров
OpenAI и Anthropic автоматически масштабируют изображения, превышающие максимальные размеры. OpenAI масштабирует по длинной стороне до 2048px. Anthropic — до 2576px или 3,75 мегапикселей. Масштабирование происходит на стороне сервера, токены считаются по масштабированным размерам.
Обработка GIF
OpenAI обрабатывает только первый кадр анимированных GIF. Anthropic вообще не поддерживает анимированные GIF. Если нужно анализировать анимацию, извлеките ключевые кадры и передайте как несколько изображений.
Влияние стоимости токенов
Токены изображений тарифицируются по той же ставке, что и текстовые токены. Одно изображение в режиме high на OpenAI может стоить 1000+ токенов. На Anthropic изображение 1920×1080 стоит примерно 2764 токена. Планируйте бюджет токенов для мультимодальных запросов соответственно.
Дерево решений: какой провайдер для какой модальности
Нужно понимание изображений?
├── Приоритет бюджета → SiliconFlow (бесплатные VL-модели)
├── Приоритет точности → OpenAI GPT-5.6 или Anthropic Opus 4.8
├── Развёртывание в Китае → DashScope Qwen-VL
└── Routing текст + Vision → TheRouter (Vision → способный провайдер, текст → самый дешёвый)
Нужно понимание видео?
├── DashScope Qwen-VL-Max или Qwen3.5-Omni
└── OpenAI (извлечение кадров вручную)
Нужен аудиовход?
├── DashScope Qwen3.5-Omni (понимание речи)
└── OpenAI GPT Transcribe (speech-to-text)
Нужна обработка PDF?
├── Anthropic Claude (нативно, до 100 страниц)
├── OpenAI (через File API)
└── DashScope (через endpoint извлечения)
Примечание TheRouter: routing мультимодальных запросов
Когда вы маршрутизируете OpenAI-совместимые запросы через TheRouter, мультимодальные запросы следуют тем же правилам routing, что и текстовые. Ключевой момент — не все провайдеры поддерживают все модальности: размещённый API DeepSeek, например, не принимает ввод изображений.
Мы рекомендуем настроить fallback моделей, чтобы мультимодальные запросы направлялись провайдеру с поддержкой Vision, а текстовые — к наиболее экономичному варианту. Это особенно полезно, когда приложение обрабатывает смешанную нагрузку из текстовых и мультимодальных запросов.
FAQ
Q: Можно ли отправить несколько изображений в одном API-запросе? A: Да. OpenAI, Anthropic, DashScope и SiliconFlow поддерживают несколько изображений в одном запросе через массив content. Каждое изображение учитывается в бюджете токенов. См. руководство OpenAI Vision и страницы провайдеров Anthropic и DashScope.
Q: Что будет, если изображение превышает лимит размера? A: OpenAI возвращает ошибку 400 для изображений свыше 20 МБ. Anthropic возвращает ошибку для base64-payload свыше 5 МБ. DashScope и SiliconFlow имеют лимиты на уровне модели. Изменяйте размер изображений на клиентской стороне перед отправкой. См. SiliconFlow.
Q: Есть ли способ снизить стоимость токенов изображений?
A: На OpenAI установите detail: "low" для фиксированного бюджета в 85 токенов на изображение. На Anthropic уменьшите размеры изображения перед кодированием. Для всех провайдеров JPEG-сжатие уменьшает размер файла без существенного влияния на понимание моделью. Подробнее — в нашем руководстве по оптимизации затрат на routing.
Q: Можно ли использовать OpenAI SDK для отправки изображений в DashScope?
A: Да. OpenAI-совместимый endpoint DashScope принимает тот же формат content-блока image_url. Измените base_url и API key и используйте имя модели Qwen-VL. Подробности настройки — в нашем руководстве по DashScope API.
Q: У какого провайдера лучшая точность понимания изображений? A: Для общего понимания изображений OpenAI GPT-5.6 и Anthropic Claude Opus 4.8 стабильно лидируют в бенчмарках. По соотношению цена/качество DashScope Qwen3.8-Max и размещённые на SiliconFlow модели Qwen-VL предлагают хорошую производительность по более низким ценам. Актуальные сравнения бенчмарков — на странице моделей.