Skip to main content
Модели с поддержкой vision принимают изображения вместе с текстом в одном запросе. Им можно дать картинку и попросить описать её, распознать текст (OCR), разобрать скриншот интерфейса, схему или график, прочитать таблицу с фото. Технически всё работает через тот же OpenAI-совместимый эндпоинт, что и обычный чат. Меняется только поле content: вместо строки в него передаётся массив частей — текстовые блоки {"type": "text"} и блоки с картинкой {"type": "image_url"}.
Берите модель, которая умеет vision: Claude (Sonnet / Opus), GPT, Gemini и GLM (GLM-5V) принимают изображения. DeepSeek работает только с текстом — см. Модели DeepSeek. Перед запросом проверьте бейджи возможностей на странице «Цены» на www.ruapi.ai.

Картинка по публичной ссылке

Самый простой случай — изображение уже лежит в интернете по прямому URL.
Python (OpenAI SDK)

Локальный файл через base64

Если картинки нет в открытом доступе (скриншот, фото с диска), её кодируют в base64 и передают как data URI вида data:image/jpeg;base64,....
Python (OpenAI SDK)
Для PNG поменяйте префикс на data:image/png;base64,, для WebP — data:image/webp;base64,. MIME-тип должен совпадать с реальным форматом файла.

Подводные камни

Картинка считается как входные токены, и чем выше разрешение, тем дороже запрос. Если детали не нужны — уменьшите изображение перед отправкой (например, до 1024–1568 px по длинной стороне).
Строка base64 примерно на треть больше самого файла и целиком уходит в тело запроса. Для тяжёлых картинок надёжнее публичная ссылка, чем многомегабайтный data URI — иначе можно упереться в лимит размера запроса.
Обычно это jpeg, png, webp и gif. Экзотические форматы (HEIC, TIFF, SVG) лучше заранее перекодировать в один из перечисленных.

Что дальше