Jev теперь анализирует фотографии: от проверки возврата до поиска повреждения
Экспериментальная поддержка изображений в Jev превращает фотографии в типизированные решения и ограничивающие рамки. Разберите процесс возврата кружки, проверку наличия объекта и безопасный первый прототип.
Клиент фотографирует кружку со сколом. Службе поддержки нужно ответить на три разных вопроса: видна ли кружка, есть ли на фотографии повреждение и где именно искать его проверяющему? Красивый абзац о керамике — не самый полезный промежуточный результат.
14 октября 2026 года TypeSafe AI объявила об экспериментальной поддержке изображений в Jev вместе с Jev 1.14.0 и новым типом вывода box. Изображения поддерживаются как в Jev 1.13, так и в 1.14, а Box требует версии 1.14. TypeSafe называет эти функции экспериментальными и прямо не рекомендует использовать их для производственной автоматизации. Официальный анонс
Полезное изменение уже, чем универсальный мультимодальный ассистент: фотография может стать типизированным решением или указать область изображения в программе. Разберём, как это меняет процесс возврата товара, какие входные данные поддерживает интерфейс и как создать осторожный прототип, не принимая прямоугольник за доказательство.
Авторская пояснительная схема: фотография на входе, отдельные суждения и координаты на выходе, затем проверка человеком. Это иллюстрация процесса, а не зафиксированный результат модели.
Кратко:
- В Jev появился экспериментальный путь анализа неподвижных изображений, но не их генерации.
- Прежде чем доверять предполагаемому местоположению объекта, проверьте, есть ли он на фото.
- Сохраняйте исходную фотографию и проверку человеком; проверку координат, разрешений и последствий поручайте коду.
Фотография может стать решением, а не описанием
Прежняя сильная сторона Jev — ограниченные ответы: выбрать предложенный вариант, оценить его по описанным уровням или проверить утверждение «да/нет». Основы изложены в нашем предыдущем руководстве по модели решений Jev. Новое развитие — возможность задавать такие вопросы на основании визуальных данных и получать координаты области.
Для интерфейса возвратов это меняет распределение работы. Модель может предположить, что повреждение заметно; код приложения способен показать эту подсказку рядом с загруженным изображением. Но ни одно из этих действий не устанавливает, когда возникло повреждение, относится ли фото к этому заказу и положен ли возврат денег. Это отдельные вопросы, требующие разных доказательств.
| Вход или выход | Что поддерживает документированный интерфейс | Что должно обеспечить приложение |
|---|---|---|
| Входная фотография | Экспериментальные неподвижные изображения PNG/JPEG | Разрешение на обработку и подготовку до загрузки |
| Входное аудио | Нативного ввода аудио нет | Транскрипт или структурированные поля, полученные отдельно |
| Входное видео | Нативного ввода видеофайлов нет | Выбранные кадры или извлечённый текст, а не загруженный фильм |
| Документы | Текст/JSON; скан страницы можно передать как изображение | Разбор PDF/DOCX или рендеринг страницы вне Jev |
| Выход | Заданные метки, оценки, вероятности и координаты Box | Отображение, кадрирование, создание документов и любые бизнес-действия |
Эти границы описаны в справочнике моделей, контракте API-запроса и SDK с поддержкой изображений. Папка PDF не превращается в систему обработки документов лишь потому, что на некоторых страницах есть картинки. Аналогично, несколько извлечённых кадров не означают нативное понимание видео или доступ к звуковой дорожке.
Наш вывод: интересен небольшой, проверяемый машиной результат, связанный с исходными данными. Это не новое разрешение автоматизировать все последующие действия.
Три официальных примера превращают одну фотографию в разные задачи
В документации TypeSafe для JavaScript приведены три конкретных отправных примера. Это опубликованный код, а не отчёты о внедрениях клиентов или измеренных результатах. Рассматривайте их как шаблоны прототипа, а не как обещание точности на ваших фотографиях.
В первом примере жалоба на повреждённую кружку сопоставляется с фотографией товара, после чего Noul оценивает наличие повреждения, а Score — его серьёзность. В очереди поддержки этот подход можно адаптировать, чтобы замечания с подозрением на повреждение проверялись раньше. Проверяющий всё равно должен видеть исходное фото целиком, описание клиента и возможность отклонить подсказку.
Во втором примере фотография продавца сравнивается с изображением из каталога. Запрашивается проверка, один ли и тот же товар на изображениях, а также оценка качества фото — размытия, обрезки и посторонних объектов. Для торговой площадки это подсказывает полезное разделение: совпадение товара и качество снимка не обязаны становиться одним решением об одобрении. Чёткое изображение не того товара не должно пройти лишь потому, что выглядит профессионально.
В третьем примере Box находит область повреждения. Результат может помочь отобразить рамку или предложить проверяющему фрагмент для осмотра. Сохраняйте рядом и исходное фото без обрезки: сужение внимания может облегчить проверку претензии, но также скрыть меняющий её смысл контекст.
Изучите официальные примеры оценки повреждения, сравнения с каталогом и локализации повреждения. Предлагаемый здесь процесс возврата добавляет к этим шаблонам защитные механизмы приложения; это не отчёт об испытании.
Рамка сама по себе не сообщает, что искать нечего
Важная деталь контракта Box от TypeSafe: отдельного результата «цель отсутствует» нет. Box возвращает четыре границы даже тогда, когда заданного объекта нет. Поэтому рамка вокруг целой кружки сама по себе не доказывает наличие повреждения.
Отдельно спросите Noul, присутствует ли нужный объект. Для этого сценария разделите два вопроса: видна ли кружка и заметно ли повреждение. Положительный ответ о наличии кружки ещё не разрешает накладывать рамку повреждения. Не используйте предполагаемую область, пока соответствующие проверки наличия не пройдут по валидированным правилам.
Эта проверка наличия не устраняет ошибки. Оба суждения могут оказаться неверными одновременно. Яркий блик может показаться сколом, а настоящая трещина — затеряться на глазурованном узоре. Протестируйте фотографии без кружки, с целыми кружками, неоднозначными бликами, несколькими предметами и хорошо видимыми повреждениями, прежде чем выбирать пороги.
Авторская схема принятия решения: корректный прямоугольник можно использовать лишь после проверки наличия объекта. При ошибке или неопределённости исходное фото остаётся доступным для ручной проверки; автоматического отказа не происходит.
Считайте прямоугольник указателем, а не вердиктом.
Рассматривайте координаты как геометрию и проверяйте их смысл
Box возвращает left, right, top и bottom как доли размеров изображения, отсчитываемые от верхнего левого угла. Значения лежат в диапазоне от 0 до 1, причём left < right и top < bottom. Один вопрос возвращает одну рамку, а не список обнаруженных объектов. Контракт ответа Box
Для иллюстративного изображения 1200 × 900 границы left: 0.20, top: 0.30, right: 0.60 и bottom: 0.70 соответствовали бы координатам пикселей 240, 270, 720, 630. Это арифметический пример, а не ответ Jev. API кадрирования часто ожидают порядок слева, сверху, справа, снизу, поэтому сопоставляйте именованные поля явно, а не полагайтесь на порядок свойств JSON.
До рисования проверяйте, что значения конечны, находятся в допустимом диапазоне и правильно упорядочены. Затем убедитесь, что область действительно указывает на повреждение. Если вы меняете размер, поворачиваете, дополняете или разбиваете фото на фрагменты, сохраняйте преобразования, нужные для обратного сопоставления координат. Иначе правдоподобная рамка может указать не на те пиксели.
Подготовьте изображение до запроса, а не после ошибки
Официальные ограничения изображений сформулированы точно, включая граничные значения. Изображение за пределами допустимого диапазона будет отклонено, а не автоматически изменено; при отклонении одного изображения весь запрос завершится ошибкой.
| Ограничение | Опубликованный предел |
|---|---|
| Формат | Неподвижное PNG или JPEG; анимированный PNG не поддерживается |
| Размер отдельного файла | 16 МиБ; для base64 размер измеряется после декодирования |
| Размер каждой стороны | От 280 до 1568 пикселей |
| Общее число пикселей | От 78 400 до 2 458 624 |
| Тело запроса | 32 МиБ, включая JSON и данные загрузки |
| Обработанные вместе изображения | 32 МиБ |
| Расширенный запрос | 32 МиБ после подстановки ссылок на изображения |
Повторно используемые ссылки учитываются снова в расширенном запросе. Размер файла, размеры изображения и длина контекста — отдельные проверки. Ограничения изображений
Авторская схема ограничений на основе документации TypeSafe по изображениям, проверена 18 октября 2026 года. Ограничения отдельного файла, обработанных изображений, расширенного запроса и тела запроса действуют независимо.
TypeSafe также рекомендует перед отправкой повернуть пиксели в правильное положение: API удаляет метаданные и не применяет ориентацию EXIF. Сначала конвертируйте неподдерживаемые форматы. Рекомендации по подготовке
Для прототипа подготовьте копию своего фото с понятным именем, оставив оригинал нетронутым. Локально проверьте размеры и просмотрите именно ту копию, которая будет отправлена. Для узкой обрезки может понадобиться добавить поля, чтобы соблюсти минимальный размер; зафиксируйте их до интерпретации координат.
Закрепите версию 1.14 и явно включите экспериментальный режим
По состоянию на 18 октября в опубликованной таблице псевдонимов jev-latest соответствует версии jev-1.13.0, а jev-preview — jev-1.14.0. Для примера с Box закрепите jev-1.14.0, а не предполагайте, что latest означает самое новое превью. Псевдонимы моделей
Следующая инструкция создаёт локальный пример только для проверки. Последняя команда отправляет оплачиваемый запрос инференса, который SDK может повторить; она не одобряет возврат и не меняет аккаунт. Используйте тестовое фото, принадлежащее вам, без людей, транспортных наклеек, адресов и приватных документов.
-
Получите доступ и выберите правильную организацию. TypeSafe сообщает, что для регистрации больше не нужно одобрение заявки или листа ожидания. Создайте API-ключ в консоли и проверьте кредиты организации. Доступ к аккаунту, настройки кредитов
-
Используйте Node.js 22 или новее. Выпуск JavaScript SDK с поддержкой изображений —
0.7.0, датированный 14 октября. Фиксация версии делает зависимость примера явной. Журнал изменений SDK
node --version
mkdir jev-photo-check
cd jev-photo-check
npm init -y
npm install @typesafe-ai/[email protected]
- Задайте ключ только для текущего сеанса. В Windows PowerShell используйте первый блок; в Bash/Zsh на macOS или Linux — второй. Локально замените заглушку и не коммитьте настоящий ключ.
$env:TYPESAFE_API_KEY = "your-api-key"
export TYPESAFE_API_KEY="your-api-key"
- Подготовьте
owned-mug.jpgи создайтеinspect-return.mjs. Эта авторская адаптация использует документированные помощники SDK. Экспериментальный заголовок настраивается до любого запроса с изображением. Оба порога вероятности ниже — примерные правила приложения, а не рекомендации TypeSafe. Каждый результат всё равно должен проверить человек. Примеры использования SDK
import { readFile } from "node:fs/promises";
import { box, image, noul, TypeSafeClient } from "@typesafe-ai/sdk";
if (!process.env.TYPESAFE_API_KEY) {
throw new Error("Set TYPESAFE_API_KEY before choosing to run this example.");
}
const client = new TypeSafeClient({
defaultHeaders: { "TypeSafe-Danger-Zone-Images": "true" },
});
const photo = image(await readFile("owned-mug.jpg"));
const response = await client.systemOne({
model: "jev-1.14.0",
state: { photo },
questions: {
mugVisible: noul("Is a mug clearly visible in `photo`?"),
damageVisible: noul("Is physical damage clearly visible on the mug in `photo`?"),
damageRegion: box("The physically damaged area of the mug in `photo`"),
},
});
const { mugVisible, damageVisible, damageRegion } = response.answers;
const edges = damageRegion.box;
const coordinates = [edges.left, edges.top, edges.right, edges.bottom];
const validBox = coordinates.every(
(value) => Number.isFinite(value) && value >= 0 && value <= 1,
) && edges.left < edges.right && edges.top < edges.bottom;
const presencePasses = [mugVisible.noul, damageVisible.noul].every(
(value) => Number.isFinite(value) && value >= 0.95 && value <= 1,
);
console.log({
model: response.model,
usage: response.usage,
humanReviewRequired: true,
suggestedBox: presencePasses && validBox ? edges : null,
});
- Запускайте только если готовы отправить изображение и оплатить использование. Во всех трёх операционных системах команда одна:
node inspect-return.mjs. Исключение илиsuggestedBox: nullдолжны оставить исходное изображение доступным для проверки, а не запускать автоматическую повторную отправку.
Вопросы задаются в одном запросе, но рамка игнорируется, пока приложение не пройдёт проверку допуска. Это не экономит стоимость вычисления неиспользованной рамки. В дальнейшем можно сделать локализацию вторым запросом после проверки наличия: появится дополнительный сетевой обмен, но можно будет избежать лишних вызовов локализации.
Низкая цена токена — не цена за одну фотографию
Опубликованный тариф для обеих версий — 0,042 доллара за миллион входных токенов, выходные токены бесплатны. Значит, 10 миллионов тарифицируемых входных токенов стоят 0,42 доллара; это не значит, что столько стоят десять миллионов изображений. Опубликованные тарифы
Изображения тарифицируются как входные токены по текстовой ставке, отдельной платы за изображение нет. TypeSafe пока не предоставила в документации формулу оценки количества токенов изображения. Для расчёта бюджета в рамках разрешённого тестирования используйте usage.input_tokens из ответа, а не придумывайте цену фотографии. Оплата изображений
Учитывайте в бюджете неудачные попытки, повторы, предварительную обработку, хранение и время проверяющего. Сопоставляйте стоимость с оценкой качества: экономия доли цента бессмысленна, если из-за слишком тесной обрезки проверяющему каждый раз приходится открывать оригинал. Сравните весь процесс проверки с простым ручным вариантом.
Учитывайте неопределённость, приватность и нагрузку на сервис
Noul возвращает вероятность без отдельного поля confidence. Choice и Score включают распределения и производные значения уверенности. Эти величины описывают неопределённость модели, но не являются общей гарантией правильности. Документация по уверенности
Для процесса с кружкой проверьте допуск на фотографиях, отложенных от набора настройки и размеченных согласованным образом. Сгруппируйте похожие выходы и сопоставьте их с наблюдаемой правильностью, чтобы оценить калибровку именно для своей задачи. Отдельно измеряйте пропущенные повреждения, ложные сигналы и неверное наложение рамки; не смешивайте их с ошибочным решением о возврате. Пересматривайте пороги при смене модели, освещения, категории товара или способа съёмки.
Не воспринимайте каждое не прошедшее проверку фото как доказательство против клиента. Фотография может оказаться непригодной из-за плохой камеры, бликующего объекта или необходимости снять дефект под другим углом. Полезный интерфейс предлагает переснять товар или передать случай на ручную проверку, не возлагая на клиента вину за неопределённость модели.
По словам TypeSafe, запросы клиентов и ответы не используются для обучения Jev. Центр поддержки также поясняет, что обработка может включать предоставление услуги, расчёты, предотвращение злоупотреблений и телеметрию; срок хранения зависит от данных, соглашений и наличия режима нулевого хранения данных. Отсутствие обучения на данных не означает отсутствия хранения. Политика обработки данных
На публичной странице состояния сервиса указана география США и регионы us-east-1, us-east-2 и us-west-2. Командам с требованиями к региональному хранению данных нужно решить вопрос о месте обработки до загрузки фотографий клиентов: доступ к консоли не является соглашением о резидентности.
Минимизируйте данные до загрузки. Если адрес на транспортной наклейке не важен для оценки, обрежьте его на подготовленной копии; ограничьте доступ к оригиналам и не записывайте изображения или секреты в обычные журналы. Хранение ваших записей проверки определяйте отдельно от политики провайдера.
Лимиты организации охватывают запросы и токены в секунду. API документирует код 429 для ограничения частоты и 529 для перегрузки; некорректный или слишком большой вход нужно исправить, а не повторять без изменений. Ограничения частоты, ошибки API
Политика повторов JavaScript SDK по умолчанию предусматривает два повтора и учитывает поддерживаемые заголовки задержки. Не добавляйте неограниченный внешний цикл повторов. Задайте лимит времени, сохраняйте понятное состояние ошибки и отделяйте возможное бизнес-действие, чтобы повтор инференса не выдал двойной возврат. Политика повторов
На какие вопросы ответить до первого процесса с фотографиями?
Будет ли Jev редактировать или генерировать фото возврата?
Нет. Изображение служит основанием для суждения или предложения области. Рамку поверх него отображает приложение, а кадрирование выполняется обычным кодом обработки изображений. Храните исходник отдельно: полезный прямоугольник не заменяет исходное свидетельство.
Почему в примере закреплена версия 1.14, а не latest?
Сейчас опубликованная таблица псевдонимов указывает 1.13 для jev-latest, тогда как Box требует 1.14. Закрепление jev-1.14.0 явно фиксирует эту зависимость. Прежде чем менять версию, изучите примечания к выпуску и тестовый набор, а не предполагайте, что обновление псевдонима сохраняет поведение.
Может ли высокая вероятность повреждения автоматически запустить возврат денег?
На основании только этих данных — небезопасно. Вероятность относится к ответу на заданный вопрос о переданной фотографии; она не подтверждает заказ, ответственность или соответствие правилам возврата. Начните с помощи проверяющему, оцените репрезентативные примеры и оставьте решение о последствиях за человеком.
Означает ли бесплатный вывод, что запрос с изображением ничего не стоит?
Нет. Входные токены, включая токены изображения, тарифицируются. Опубликованная ставка не является ценой за фото: формула оценки токенов изображения пока не документирована. Во время разрешённого пилота проверяйте отчёт об использовании и учитывайте повторы и время проверки.
Можно ли напрямую отправить видео товара или PDF?
Нет, документированный интерфейс неподвижных изображений этого не поддерживает. Приложение должно заранее извлечь подходящие кадры, текст или отрендеренные страницы, имея разрешение на обработку. Извлечение одного кадра теряет временную и аудиоинформацию, поэтому задавайте только вопросы, на которые может ответить предоставленное свидетельство.
Главное: направляйте внимание, прежде чем передавать полномочия
Предварительная поддержка изображений в Jev предлагает практичный подход: преобразовывать визуальные свидетельства в небольшие ответы, которые может проверить программа. Проверить его можно на процессе возврата кружки, разделив наличие объекта, наличие повреждения, его местоположение и последующий осмотр. Самый ценный первый результат — не автоматический возврат денег, а решение проверяющего, лучше обоснованное и требующее меньше поисков.
Именно это и стоит измерять: помогает ли предлагаемая область человеку понять исходные материалы, в том числе когда модель ошибается?
Источники и рамки материала
Основные источники TypeSafe проверены 18 октября 2026 года: анонс от 14 октября, модели и цены, ограничения изображений и тарификация, контракт Box, примеры JavaScript и примечания к выпускам SDK. Дополнительные источники по политике и надёжности приведены рядом с относящимися к ним утверждениями. Описанный процесс и схемы — пояснительная адаптация, а не практический бенчмарк; для этой статьи платный вызов модели не выполнялся. Схемы созданы авторами статьи, а не скопированы из материалов поставщика.
Храните источники рядом с выводами
В собственных исследованиях моделей отделяйте оригинальные источники от выводов, сделанных на их основе. Создайте аккаунт Telli.sh, чтобы материалы и производные заметки сохраняли контекст источников.