Для AI-агентов: markdown этой страницы — /docs-content/ai/chat/vision.md индекс документации — /llms.txt

Анализ изображений

Модели с поддержкой изображений принимают графику через массив content с элементом type: "image_url". Адрес изображения — либо data:-URI с данными в base64, либо ссылка https. В каталоге GET /v1/models такие модели имеют флаг capabilities.vision: true.

Бесплатно изображения обрабатывают bitrix/bitrixgpt-5.5 и bitrix/bitrixgpt-5.5-thinking. Через свой ключ провайдера (BYOK) доступны модели Anthropic Claude: anthropic/claude-opus-4-6, anthropic/claude-sonnet-4-6, anthropic/claude-haiku-4-5-20251001. Для них платформа сама приводит элемент image_url к формату Anthropic — на стороне клиента менять ничего не нужно.

Пример запроса

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/chat/completions \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bitrix/bitrixgpt-5.5",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "Опиши, что на изображении"},
          {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."}}
        ]
      }
    ],
    "max_tokens": 500
  }'

Ограничения

Параметр Значение
ПараметрMIME-типы Значениеimage/png, image/jpeg, image/gif, image/webp
ПараметрМаксимум на изображение, декодированный размер Значение20 MiB для любой модели
ПараметрМаксимум image_url.url в запросе Значение30 MiB, с запасом на кодирование base64 это 22 MiB полезных данных
ПараметрФормат url Значениеdata:<mime>[;параметр=значение]*;base64,<данные> или https://<host>/<path>. Параметры между типом и ;base64 (например data:image/jpeg;name=photo.jpg;base64,…) допускаются и отбрасываются
ПараметрСсылки http:// Значениене принимаются, только https или data:
ПараметрМаксимум элементов content на сообщение Значение64
ПараметрМаксимум тела запроса ЗначениеМодели bitrix/*: предел задаёт кластер моделей, для тела с изображениями он ниже, чем для текста. Изображения data: в теле больше предела платформа уменьшает сама — см. «Известные особенности». Действующий предел называет сообщение ответа 413. Модели через свой ключ провайдера — 30 MiB

MiB — мебибайт, двоичная единица по стандарту IEC 80000-13: 1 MiB = 2²⁰ = 1 048 576 байт ≈ 1,05 МБ. Лимиты проверяются как N × 1024 × 1024, поэтому и в сообщении об ошибке размер указан в MiB — например, decoded size 21.3 MiB exceeds limit 20 MiB.

Проверка содержимого

Перед отправкой модели содержимое каждого элемента image_url, переданного как data:-URI, проверяется по фактическим байтам, а не по заявленному MIME-типу. Если содержимое не является изображением — например HTML-страница или ответ с ошибкой, закодированные в base64 и объявленные как image/png, — элемент не отбрасывается, а заменяется на своей позиции текстовой заглушкой [image unavailable: <причина>]. Остальные изображения обрабатываются как обычно, запрос завершается успешно.

Проверка по содержимому применяется только к data:-URI. Кандидат по ссылке https:// платформа передаёт модели как есть, без загрузки и проверки байтов, — такие ссылки валидируйте на своей стороне.

Позиции элементов сохраняются: длина массива content не меняется, поэтому нумерация кандидатов на вашей стороне остаётся верной.

Факт замены виден в ответе:

  • заголовок X-Image-Parts-Rejected несёт число заменённых элементов — это единый сигнал для всех режимов ответа; для потоковых ответов он приходит вместе с началом потока;
  • в обычном (не потоковом) ответе поле warnings дополнительно содержит запись с кодом IMAGE_CONTENT_REJECTED и деталями замен. В потоковом ответе поля warnings нет — ориентируйтесь на заголовок.

Ошибки

HTTP Код Описание
HTTP400 Кодinvalid_image_payload ОписаниеСтруктурная ошибка запроса: отсутствует поле url, строка не является ни URL, ни data-URI, бесформенный data-URI (без ;base64,), неподдерживаемая схема или http:// в production. Сообщение содержит номер элемента content и конкретную причину
HTTP413 Кодai_payload_too_large ОписаниеТело запроса с изображениями к модели bitrix/* больше предела кластера моделей и после уменьшения изображений. Запрос к модели не отправляется, списания нет. Сообщение называет размер запроса и действующий предел
HTTP413 Кодai_payload_too_large ОписаниеЗапрос отклонил по размеру тела сам кластер моделей или провайдер модели на вашем ключе. В теле ответа есть поле providerStatusCode: 413
HTTP429 Кодai_image_resize_busy ОписаниеПлатформа уже уменьшает много изображений одновременно. Повторите запрос через время из заголовка Retry-After или уменьшите изображения перед отправкой

Ошибки содержимого (не изображение, повреждённый base64, неподдерживаемый MIME-тип, превышение 20 MiB) больше не завершают запрос ошибкой — такой элемент заменяется заглушкой (см. «Проверка содержимого»).

Полный список общих ошибок API — Ошибки.

Известные особенности

Массив content нужен только для изображений. Для текстовых запросов передавайте content строкой. Массив с единственным элементом text тоже работает, но избыточен.

Большие изображения для bitrix/* платформа уменьшает сама. Если в теле запроса есть изображения и оно больше предела, платформа уменьшает изображения data:, начиная с самого большого, до 1536 пикселей по длинной стороне и сохраняет в JPEG с качеством 80. Если этого не хватило — до 1024 пикселей с качеством 70. Изображение с прозрачными пикселями уменьшается с сохранением прозрачности в PNG, и только если так оно не уложилось в предел — сохраняется в JPEG на белом фоне. От GIF остаётся первый кадр, изображения по ссылке https не меняются. Тело, которое не уложилось в предел и после этого, получает 413. При stream: true отказы ai_payload_too_large и ai_image_resize_busy приходят кадром ошибки внутри ответа 200, а пауза — полем retryAfter в кадре, а не заголовком. Изображение больше 20 MiB после декодирования не уменьшается, а заменяется заглушкой, как описано в «Проверке содержимого».

Чтобы управлять качеством, уменьшайте изображения сами. Фотография 12 Мп в JPEG занимает 4–5 МБ. Уменьшенная до 1500 пикселей по длинной стороне и сохранённая в JPEG или WebP с качеством 80–85, она занимает 0,2–1 МБ и уходит модели без изменений.

Размер изображения проверяется после декодирования. Ограничение в 20 MiB относится к самому изображению, а не к строке base64. Строка длиннее примерно на треть, поэтому тело запроса для моделей через свой ключ провайдера ограничено 30 MiB.

Смотрите также