Теперь давайте посмотрим пример, как с помощью API OpenAI анализировать картинки, которые мы ей передаём. Предположим, у меня в корне проекта есть картинка - обычная красная стрелочка. Попробуем заставить OpenAI проанализировать её и написать, что именно находится на картинке.

Как передать картинку в запросе

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

Мы передаём в input объект с ролью user - мы являемся пользователем. Далее указываем content, и в нём две части:

  • input_text - входной текст, вопрос к модели;
  • input_image - сама картинка, которую мы передаём.

Кодирование в base64

Чтобы OpenAI прочитала картинку как картинку, её нужно закодировать в формат base64 - именно в таком формате модель будет её читать. Это специальный формат данных, удобный для передачи по сети: передать просто файл картинки не получится, его нужно закодировать.

import base64
import mimetypes

from dotenv import load_dotenv
from openai import OpenAI

IMAGE = "2026-06-24_04-23-21.png"  # путь к картинке, png или jpg

load_dotenv()
client = OpenAI()

# Картинку передаём внутри запроса: кодируем файл в base64 и делаем data URL
mime = mimetypes.guess_type(IMAGE)[0]
with open(IMAGE, "rb") as f:
    data = base64.b64encode(f.read()).decode()

response = client.responses.create(
    model="gpt-5-nano",
    input=[
        {
            "role": "user",
            "content": [
                {"type": "input_text", "text": "Посмотри на рисунок. Что на нём не дорисовано? Перечисли."},
                {"type": "input_image", "image_url": f"data:{mime};base64,{data}"},
            ],
        }
    ],
)

print(response.output_text)

Запускаем скрипт. OpenAI сумела прочитать картинку: на ней видна одна красная стрелка - модель успешно её проанализировала. Таким способом вы можете передавать в OpenAI изображения или другие файлы для анализа.