Визуализация (ввод изображений)
Тема дорожной карты · Claude от Anthropic
Vision-возможности Claude обеспечивают передачу изображений вместе с текстом через messages.create с использованием типа контента image. Поддерживаются форматы JPEG, PNG, GIF и WebP; изображения можно передавать как base64-encoded data URI или ссылки url. Claude способен анализировать графики, скриншоты, диаграммы, документы и фотографии, отвечая на вопросы, извлекая данные или описывая содержимое. Размер изображения в токенах рассчитывается по формуле, зависящей от разрешения, и крупные изображения стоят дороже. Vision-возможности поддерживаются в моделях Haiku, Sonnet и Opus. Для работы с PDF-файлами, содержащими изображения, используется Files API.
Как это работает
Визуализация (ввод изображений) осуществляется через Messages API, который использует REST/JSON. Обязательные параметры включают model, max_tokens и массив messages (чередующиеся user/assistant). Опциональные параметры включают system (system-промпт), tools (определения функций), temperature (0 = детерминированно, 1 = креативно), top_p, stop_sequences. Streaming осуществляется через stream: true с SSE. Стандартный метод аутентификации включает заголовок Authorization: Bearer <API_KEY> и заголовок anthropic-version. Для работы с API доступны SDK на Python, TypeScript, Java и Go.
Когда применять
SDK предпочтительнее использования сырого HTTP, так как они обрабатывают retries, rate limits, streaming и ошибки. Всегда указывайте явный max_tokens (не полагайтесь на дефолтные значения). Стримите ответы пользователям, чтобы они видели прогресс; собирайте полный output server-side для целей логирования. Используйте экспоненциальный backoff при получении ошибок 429 или 5xx. Кешируйте промпты, которые не меняются между запросами (system-промпт + few-shot примеры) с помощью cache_control для экономии до 90%+ стоимости запросов.
Типичные ошибки
Типичные ошибки при использовании визуализации (ввод изображений) включают необработку 429 (rate-limited на пике — backoff); утечку API-ключа в client-side JS (всегда проксируйте через backend); игнорирование usage-поля в ответе (не видите цену на вызов); использование слишком большого max_tokens "на всякий случай" (медленно и дорого).