к тексту
api

документация api

распознавание изображений

как передать картинку в chat completions: data-url, несколько файлов, стоимость.

последняя редакция: 18 сентября 2026

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

эндпоинт тот же — /v1/chat/completions. меняется только устройство сообщения. это не генерация картинок: ответ всегда текстовый.

генерация изображений в api пока не открыта. эта страница — про картинку на входе текстовой модели.

как передать изображение

поле content вместо строки принимает список: сначала текст, затем изображение. изображение кодируется в base64 и подставляется как data-url — строка вида data:image/jpeg;base64,<данные>, где после запятой идёт содержимое файла.

curl "https://api.airakurs.ru/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <КЛЮЧ>" \
    -d '{
        "model": "anthropic/claude-sonnet-4.5",
        "messages": [{
            "role": "user",
            "content": [
                {"type": "text", "text": "Что изображено на картинке?"},
                {"type": "image_url", "image_url": {
                    "url": "data:image/jpeg;base64,<ИЗОБРАЖЕНИЕ В BASE64>"
                }}
            ]
        }]
    }'

ответ приходит обычным текстом, как и на любой другой запрос. тело запроса с картинкой вырастает примерно на треть от размера файла — base64 всегда длиннее исходных данных.

несколько изображений

в одно сообщение можно вложить несколько изображений — например, чтобы попросить сравнить их между собой. каждое оплачивается отдельно и занимает место в контексте, поэтому осмысленный предел обычно ниже технического.

изображения из предыдущих сообщений передаются заново вместе со всей историей — модель не хранит переписку.

ограничения

форматы и предельный размер задаёт конечный сервис, а не airakurs. почти везде принимают png, jpeg, webp и неанимированный gif. слишком большие файлы либо уменьшаются автоматически, либо отклоняются с ошибкой 400 — точные пороги у каждого свои.

изображения понимают не все модели: текстовой модели без такой поддержки картинка либо не поможет, либо приведёт к ошибке. какие модели принимают изображение, будет видно в карточках моделей; до их публикации сверяйтесь с кабинетом и с ответом GET /v1/models.

стоимость

изображение переводится в токены и оплачивается как входные данные. чем больше разрешение, тем больше токенов, поэтому картинку стоит уменьшать до того размера, на котором ещё различимо нужное. для мелкого текста в документе это, наоборот, повод не экономить.

что дальше

частые вопросы

в каком виде передаётся файл?

изображение кодируется в base64 и подставляется как data-url в поле url. отдельной загрузки файла на сервер не требуется — картинка уходит вместе с телом запроса.

сколько изображений помещается в один запрос?

жёсткого предела в формате нет, но каждое изображение оплачивается и занимает контекст. практический предел определяется размером контекста модели и бюджетом на запрос.

почему запрос с картинкой стоит дороже текстового?

изображение переводится в токены и учитывается как входные данные. чем выше разрешение, тем больше токенов уходит на одну картинку.

может ли модель вернуть изображение в ответ?

на этом эндпоинте нет — ответ всегда текстовый. генерация картинок в api появится позже.

поддержка airakurs.official@gmail.com
© airakurs

20 статей. поддержка airakurs.official@gmail.com