Базовая информация о том, как в API работает компьютеное зрение доступна здесь.
curl https://api.proxyapi.ru/openai/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -d '{ "model": "gpt-4o-mini", "input": [ { "role": "user", "content": [ {"type": "input_text", "text": "Что изображено на картинке?"}, { "type": "input_image", "image_url": "https://domain.com/your_image.jpg" } ] } ] }'
curl https://api.proxyapi.ru/openai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -d '{ "model": "gpt-4o-mini", "messages": [ { "role": "user", "content": [ {"type": "text", "text": "Что изображено на картинке?"}, { "type": "image_url", "image_url": "https://domain.com/your_image.jpg" } ] } ] }'
import base64 from openai import OpenAI client = OpenAI( api_key="<КЛЮЧ>", base_url="https://api.proxyapi.ru/openai/v1", ) # Кодирование изображения в base64 def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") # Путь к изображению image_path = "path_to_your_image.jpg" # Получение строки base64 base64_image = encode_image(image_path) response = client.responses.create( model="gpt-4o-mini", input=[ { "role": "user", "content": [ { "type": "input_text", "text": "Что изображено на картинке?" }, { "type": "input_image", "image_url": f"data:image/jpeg;base64,{base64_image}", }, ], } ], )
import base64 from openai import OpenAI client = OpenAI( api_key="<КЛЮЧ>", base_url="https://api.proxyapi.ru/openai/v1", ) # Кодирование изображения в base64 def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") # Путь к изображению image_path = "path_to_your_image.jpg" # Получение строки base64 base64_image = encode_image(image_path) chat_completion = client.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "user", "content": [ {"type": "text", "text": "Что изображено на картинке?"}, { "type": "image_url", "image_url": f"data:image/jpeg;base64,{base64_image}", }, ], }], )
Входные изображения должны соответствовать следующим требованиям для использования в API:
Поддерживаемые типы файлов:
- PNG (.png)
- JPEG (.jpeg, .jpg)
- WEBP (.webp)
- Неанимированный GIF (.gif)
Ограничения по размеру:
- До 20MB на изображение
- Низкое разрешение: 512x512 пикселей
- Высокое разрешение: короткая сторона — 768 пикселей, длинная сторона — до 2000 пикселей
Другие требования:
- Без водяных знаков или логотипов
- Без текста
- Без NSFW-контента
- Изображения должны быть достаточно чёткими, чтобы человек мог их понять
Параметр detail
сообщает модели, какой уровень детализации использовать при обработке и распознавании изображения (низкий, высокий или auto, чтобы модель сама выбрала). Если параметр не указан, модель использует auto. Укажите его сразу после image_url, вот так:
{ "type": "input_image", "image_url": "https://domain.com/your_image.jpg", "detail": "high", }
Вы можете сэкономить токены и ускорить ответы, используя detail: "low"
. Это позволяет модели обрабатывать изображение с бюджетом в 85 токенов. Модель получает изображение с низким разрешением 512px x 512px. Это подходит, если для вашего случая не требуется видеть изображение с высоким разрешением (например, если вы спрашиваете о форме или цвете на изображении).
Или предоставить модели больше деталей, чтобы она могла глубже понять изображение, используя detail: "high"
. Это позволяет модели увидеть изображение с низким разрешением (с использованием 85 токенов), а затем создать подробные фрагменты, используя 170 токенов для каждого блока 512px x 512px.
Responses API может принимать и обрабатывать несколько входных изображений. Модель обрабатывает каждое изображение и использует информацию со всех изображений для ответа на вопрос.
Этот функционал доступен только в Responses API. Узнать больше
curl https://api.proxyapi.ru/openai/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -d '{ "model": "gpt-4o-mini", "input": [ { "role": "user", "content": [ {"type": "input_text", "text": "Есть ли отличия между изображениями?"}, { "type": "input_image", "image_url": "https://domain.com/image1.jpg" }, { "type": "input_image", "image_url": "https://domain.com/image2.jpg" } ] } ] }'
В этом примере модели передаются два изображения. Она может отвечать на вопросы о каждом изображении по отдельности или об обоих сразу.