Модель принимает картинку почти так же, как текст: добавляете блок с изображением в сообщение, и дальше можно спрашивать про содержимое. Разница в деталях, которые решают, работает это хорошо или нет.
Как передать изображение
Два способа: закодировать файл в base64 и вставить прямо в тело запроса, или дать ссылку на публичный URL. Base64 надёжнее, потому что не зависит от доступности стороннего сервера в момент обработки запроса.
Пример на Python через SDK Anthropic:
import base64
import anthropic
client = anthropic.Anthropic(
api_key="ваш-ключ-claudexia",
base_url="https://api.claudexia.tech/v1",
)
with open("receipt.jpg", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-sonnet-4.6",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": image_data}},
{"type": "text", "text": "Извлеки из чека сумму, дату и список товаров построчно"},
],
}],
)
Поддерживаются JPEG, PNG, GIF и WebP. Формат PDF модель принимает отдельным типом блока, а не как картинку, если нужно разобрать документ целиком, а не отдельный скриншот страницы.
Разрешение и цена
Изображение считается в токенах так же, как текст, только правило другое: цена растёт с площадью картинки, а не с её визуальной сложностью. Фото с телефона в максимальном разрешении и то же фото, ужатое до размера, где текст ещё читается, стоят по-разному, а результат распознавания часто одинаковый.
Практический вывод: сжимайте изображение до размера, который реально нужен для задачи, прежде чем отправлять. Для чтения текста с чека или скриншота хватает стороны в тысячу с небольшим пикселей, для мелкой печати имеет смысл прибавить разрешение точечно, а не поднимать его для всей серии запросов сразу.
Если нужно разобрать несколько картинок в одном запросе, каждая считается отдельно, и общая цена растёт линейно. Для пакетов из десятков изображений это быстро становится заметной статьёй расхода, стоит прикинуть заранее через калькулятор на сайте.
OCR-задачи, где vision справляется хорошо
Извлечение структурированных данных с чеков, счетов и форм. Модель хорошо находит поля вроде суммы, даты, номера документа, даже если верстка на разных чеках отличается, потому что она понимает контекст, а не ищет паттерн по фиксированным координатам.
Разбор таблиц со скриншотов. Если таблица читаема глазом, модель обычно правильно сопоставляет строки и колонки и отдаёт результат в JSON без дополнительной разметки.
Рукописный текст читается заметно хуже печатного, но разборчивый почерк модель распознаёт куда лучше, чем классический OCR с фиксированными шаблонами символов.
Что не работает хорошо
Точные координаты объектов на изображении. Модель может сказать, что на фото есть кнопка «Отправить», но её ответ про пиксельные координаты этой кнопки часто неточен. Для задач автоматизации интерфейса, где нужен точный клик, полагаться на координаты от модели рискованно.
Подсчёт объектов на переполненной картинке. На фото с десятком похожих предметов модель регулярно ошибается в count на единицу-две, особенно если объекты частично перекрывают друг друга.
Мелкий текст на изображении низкого разрешения или в плохом освещении. Здесь помогает не более мощная модель, а просто лучший скан или фото.
Сравнение двух похожих изображений на предмет мелких отличий: модель склонна придумывать различия там, где их нет, если явно не попросить её быть консервативной и признавать неопределённость.
Как готовить изображения перед отправкой
Обрежьте лишнее поле вокруг нужного участка, это одновременно снижает цену и убирает шум, который может сбить модель с толку. Повышение контраста для сканов текста на светлом фоне часто улучшает точность заметнее, чем повышение разрешения.
Если документ состоит из нескольких страниц, отправляйте их по одной с явным указанием номера страницы в тексте запроса, а не склеивайте в одну длинную картинку. Модель хуже работает с очень вытянутыми изображениями, чем с набором отдельных кадров разумного размера.
Разница между Anthropic и OpenAI форматами
У Anthropic картинка это отдельный блок {"type": "image", "source": {...}} внутри массива content. У OpenAI формат другой: {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}. Через Claudexia работают оба варианта под свой набор эндпоинтов, менять приходится только структуру блока, а не логику самого запроса.
Коротко
Base64 надёжнее ссылок, сжимайте картинку под задачу, а не отправляйте оригинал с телефона. Vision хорошо справляется со структурированным OCR: чеки, формы, таблицы, но плохо с точными координатами и подсчётом объектов на переполненном кадре. Для мелкого текста лучше решает не более сильная модель, а более качественный снимок.