content: вместо строки в него передаётся массив частей — текстовые блоки {"type": "text"} и блоки с картинкой {"type": "image_url"}.
Картинка по публичной ссылке
Самый простой случай — изображение уже лежит в интернете по прямому 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 раздувает запрос
Огромный base64 раздувает запрос
Строка base64 примерно на треть больше самого файла и целиком уходит в тело запроса. Для тяжёлых картинок надёжнее публичная ссылка, чем многомегабайтный data URI — иначе можно упереться в лимит размера запроса.
Поддерживаемые форматы
Поддерживаемые форматы
Обычно это
jpeg, png, webp и gif. Экзотические форматы (HEIC, TIFF, SVG) лучше заранее перекодировать в один из перечисленных.Что дальше
- Быстрый старт — регистрация, ключ и первый запрос
- Ошибки и их решение — что делать при 400 / 413 / 415 и других кодах