Vision и файлы

Изображения, PDF и документы в запросах

Мультимодальные модели принимают смешанный content: массив объектов с типами text, image_url, file. Поддержка зависит от модели — смотрите input_modalities в каталоге.

Vision: URL-изображения

json
{
  "model": "openai/gpt-4o",
  "messages": [{
    "role": "user",
    "content": [
      { "type": "text", "text": "Что изображено?" },
      { "type": "image_url",
        "image_url": { "url": "https://example.com/photo.jpg", "detail": "high" } }
    ]
  }]
}

Vision: base64

python
import base64
img_b64 = base64.b64encode(open("photo.jpg", "rb").read()).decode()

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Что изображено?"},
            {"type": "image_url",
             "image_url": {"url": f"data:image/jpeg;base64,{img_b64}"}},
        ],
    }],
)

PDF и документы

Залейте файл в объектное хранилище (S3, Selectel, Yandex Object Storage) и передайте подписанный URL. Для парсинга PDF на стороне шлюза подключите плагин file-parser.

json
{
  "model": "openai/gpt-4o",
  "messages": [{
    "role": "user",
    "content": [
      { "type": "text", "text": "Суммируй договор и выдели ключевые пункты." },
      { "type": "file",
        "file": { "url": "https://storage.example.com/contract.pdf", "name": "contract.pdf" } }
    ]
  }],
  "plugins": [{ "id": "file-parser" }]
}
Не все провайдеры принимают files нативно. file-parser вытащит текст на нашей стороне и прокинет его в prompt — это может увеличить стоимость запроса.

Аудио и другие модальности

Аудио-модели (STT/TTS) доступны через /v1/audio/transcriptions и /v1/audio/speech. Документация готовится.