Изображения в Chat Completions
Передача локального изображения в составе сообщения
Структура сообщения
Изображение передаётся блоком image_url в массиве messages[].content. В url можно передать поддерживаемый моделью URL или data URI
| Поле | Тип | Назначение |
|---|---|---|
type | string | image_url |
image_url.url | string | Адрес изображения или data URI |
image_url.detail | string | Детализация, если поддерживается моделью |
Для текстовой части используйте {"type":"text","text":"..."}
Пример
Подготовьте photo.png, установите openai, задайте GETAPI_API_KEY и GETAPI_MODEL. Модель должна поддерживать изображения в Chat Completions
import base64
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
base_url="https://api.getapi.ru/v1",
api_key=os.environ["GETAPI_API_KEY"],
max_retries=0,
)
encoded = base64.b64encode(Path("photo.png").read_bytes()).decode("ascii")
response = client.chat.completions.create(
model=os.environ["GETAPI_MODEL"],
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Опиши изображение"},
{
"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{encoded}"},
},
],
}],
)
print(response.choices[0].message.content)MIME-тип в data URI должен соответствовать реальному файлу. Для JPEG используйте image/jpeg
Ответ и ограничения
Результат возвращается как обычный Chat Completion. Наличие изображения не меняет путь чтения текстового ответа
Если модель не поддерживает изображения, смена формата тела запроса не добавит такую возможность
Для нескольких файлов, PDF и обработки ошибок см. изображения и документы