Analiza AI12 min czytania

Jev analizuje zdjęcia: od kontroli zwrotu do wskazania uszkodzenia

Eksperymentalna obsługa obrazów w Jev zamienia zdjęcia w typowane oceny i ramki ograniczające. Poznaj proces zwrotu kubka, bramkę wykrywania obiektu i przygotuj bezpieczny pierwszy prototyp.

K
Ken Jo

Zdjęcie kubka zwracanego przez klienta prowadzi do kontroli obecności obiektu, propozycji obszaru uszkodzenia i weryfikacji przez człowieka, a nie automatycznego zwrotu pieniędzy

Oryginalny diagram objaśniający: zdjęcie staje się osobnymi ocenami i współrzędnymi, a następnie trafia do weryfikacji przez człowieka. Ilustruje przepływ pracy, nie odnotowany wynik modelu.

Klient fotografuje wyszczerbiony kubek. Narzędzie obsługi klienta musi odpowiedzieć na trzy różne pytania: czy kubek jest widoczny, czy zdjęcie pokazuje uszkodzenie i gdzie recenzent powinien spojrzeć? Płynny akapit o ceramice nie jest najbardziej użytecznym wynikiem pośrednim.

14 października 2026 r. TypeSafe AI ogłosiło eksperymentalną obsługę obrazów w Jev, razem z Jev 1.14.0 i nowym typem wyjściowym box. Obrazy działają zarówno z Jev 1.13, jak i 1.14; Box wymaga wersji 1.14. TypeSafe nazywa te możliwości eksperymentalnymi i wyraźnie nie zaleca ich do automatyzacji produkcyjnej. Oficjalne ogłoszenie

Przydatna zmiana jest węższa niż uniwersalny asystent multimodalny: zdjęcie może stać się typowaną decyzją albo lokalizacją w programie. Oto jak wpływa to na proces obsługi zwrotu, jakie wejścia przyjmuje interfejs i jak zbudować ostrożny prototyp, nie myląc prostokąta z dowodem.

W skrócie:

  • Jev ma teraz eksperymentalną ścieżkę rozumienia nieruchomych obrazów, a nie ich generowania.
  • Zanim zaufasz wskazanej lokalizacji, osobno sprawdź, czy poszukiwany obiekt jest obecny.
  • Zachowaj oryginalne zdjęcie i kontrolę człowieka; poprawność współrzędnych, uprawnienia i konsekwencje powinien sprawdzać kod.

Zdjęcie może stać się decyzją, a nie tylko opisem

Pierwotną zaletą Jev były ograniczone odpowiedzi: wybór jednej z podanych opcji, ocena według opisanych poziomów albo sprawdzenie twierdzenia typu tak/nie. Podstawy omawia nasz wcześniejszy przewodnik po modelu decyzyjnym Jev. Nowością jest dostarczenie takim pytaniom dowodu wizualnego oraz możliwość zwrócenia współrzędnych przestrzennych.

W interfejsie zwrotów zmienia to podział pracy. Model może zasugerować, że uszkodzenie jest widoczne; kod aplikacji może wyświetlić tę sugestię obok przesłanego zdjęcia. Żadna z tych operacji nie potwierdza, kiedy powstało uszkodzenie, czy zdjęcie dotyczy tego zamówienia ani czy zwrot pieniędzy jest dozwolony. To osobne pytania, wymagające innych dowodów.

Wejście lub wyjścieObsługa opisana w dokumentacjiCo musi zapewnić aplikacja
Wejście obrazuEksperymentalne nieruchome obrazy PNG/JPEGZgoda na przetworzenie obrazu i przygotowanie go przed wysłaniem
Wejście audioBrak natywnego wejścia audioTranskrypcja lub ustrukturyzowane pola utworzone gdzie indziej
Wejście wideoBrak natywnego wejścia pliku wideoWybrane nieruchome kadry lub wyodrębniony tekst, nie przesłany film
Wejście dokumentuTekst/JSON; skan strony można potraktować jako obrazParsowanie PDF/DOCX lub renderowanie stron poza Jev
WyjścieZdefiniowane etykiety, oceny, prawdopodobieństwa i współrzędne BoxRenderowanie, przycinanie, tworzenie dokumentów i działania biznesowe

Te granice wynikają z opisu modelu, kontraktu żądań API i SDK JavaScript obsługującego obrazy. Folder plików PDF nie staje się potokiem przetwarzania dokumentów tylko dlatego, że część stron zawiera obrazy. Podobnie kilka wyodrębnionych kadrów nie oznacza natywnego rozumienia wideo ani dostępu do ścieżki dźwiękowej klipu.

Nasza konkluzja: interesującą jednostką jest mała, sprawdzalna ocena powiązana z dowodem. Nie jest nią nowe zezwolenie na automatyzowanie wszystkiego, co następuje dalej.

Trzy oficjalne przykłady zamieniają to samo zdjęcie w różne zadania

Dokumentacja JavaScript TypeSafe przedstawia trzy konkretne punkty startowe. To opublikowane przykłady kodu, a nie relacje z wdrożeń u klientów ani zmierzone rezultaty. Traktuj je jako wzorce prototypu, nie obietnice dokładności na twoich zdjęciach.

Pierwszy przykład łączy zgłoszenie uszkodzonego kubka ze zdjęciem produktu, pytając Noul o uszkodzenie, a Score — o jego stopień. W kolejce obsługi klienta podobne rozwiązanie może przesunąć podejrzane przypadki wyżej, do kontroli. Recenzent nadal powinien widzieć pełne zdjęcie, opis klienta i możliwość odrzucenia sugestii.

Drugi porównuje zdjęcie przesłane przez sprzedawcę ze zdjęciem katalogowym. Pyta, czy przedstawiają ten sam produkt, i klasyfikuje przydatność zdjęcia — także rozmycie, kadrowanie i treści niezwiązane z produktem. Dla platformy handlowej oznacza to użyteczne rozdzielenie: zgodność produktu i jakość zdjęcia nie muszą dzielić jednej decyzji akceptacyjnej. Wyraźne zdjęcie niewłaściwego produktu nie powinno zostać zaakceptowane tylko dlatego, że wygląda profesjonalnie.

Trzeci przykład prosi Box o wskazanie uszkodzonego obszaru. Wynik może posłużyć do naniesienia ramki albo zaproponowania kadru dla recenzenta. Zachowaj obok niego oryginał bez przycięcia: skupienie uwagi pomaga sprawdzić zgłoszenie, ale może też ukryć kontekst zmieniający jego znaczenie.

Zapoznaj się z oficjalnymi przykładami: ocena uszkodzenia, porównanie z katalogiem i lokalizacja uszkodzenia. Nasz proponowany proces zwrotu dodaje zabezpieczenia po stronie aplikacji; nie jest relacją z przeprowadzonego testu.

Ramka nie potrafi stwierdzić, że nie ma czego szukać

Najważniejszy szczegół kontraktu Box w TypeSafe: brak wyjścia oznaczającego nieobecność poszukiwanego obiektu. Pytanie Box zwraca cztery krawędzie nawet wtedy, gdy żądany obiekt nie występuje. Prostokąt wokół całego, nieuszkodzonego kubka nie dowodzi więc sam z siebie, że istnieje uszkodzenie.

Zapytaj osobnym pytaniem Noul o obecność szukanego elementu. W tym przepływie rozróżnij widoczność kubka od widoczności uszkodzenia. Odpowiedź twierdząca, że kubek jest widoczny, nie wystarczy, by wyświetlić ramkę uszkodzenia. Proponowaną ramkę uszkodzenia zignoruj, jeśli odpowiednie kontrole obecności nie przejdą zweryfikowanych reguł.

Taka bramka obecności nie usuwa błędów. Obie oceny mogą pomylić się jednocześnie. Jasne odbicie może wyglądać jak wyszczerbienie, a prawdziwe pęknięcie może zniknąć na wzorzystym szkliwie. Zanim dobierzesz progi, przetestuj zdjęcia bez kubka, z całym kubkiem, z niejednoznacznym odbiciem, z wieloma obiektami i z wyraźnie widocznym uszkodzeniem.

Kontrole obecności kubka i widocznego uszkodzenia warunkują użycie proponowanej ramki; brak dowodów, niepewność lub błędne współrzędne kierują zdjęcie do weryfikacji przez człowieka bez nakładki

Oryginalny diagram decyzyjny: poprawny prostokąt można wykorzystać dopiero po przejściu kontroli obecności obiektu. Po niepowodzeniu lub niepewności oryginalne zdjęcie trafia do weryfikacji; nie prowadzi to do automatycznego odrzucenia zgłoszenia.

Potraktuj prostokąt jak wskaźnik, nie werdykt.

Współrzędne traktuj jak geometrię, a potem sprawdź ich znaczenie

Box zwraca left, right, top i bottom jako ułamki wymiarów obrazu, liczone od lewego górnego rogu. Wartości mieszczą się w przedziale od 0 do 1, a warunki to left < right i top < bottom. Jedno pytanie zwraca jedną ramkę, nie listę wykrytych obiektów. Kontrakt odpowiedzi Box

Dla przykładowego obrazu o wymiarach 1200 x 900 krawędzie left 0.20, top 0.30, right 0.60 i bottom 0.70 odpowiadają krawędziom pikseli 240, 270, 720, 630. To przykład obliczenia, nie odpowiedź Jev. API przycinania często oczekuje kolejności left, top, right, bottom, dlatego przypisuj nazwane pola świadomie, zamiast polegać na kolejności właściwości JSON.

Przed rysowaniem sprawdź, czy liczby są skończone, mieszczą się w zakresie i mają właściwą kolejność. Potem oceń, czy region rzeczywiście wskazuje uszkodzenie. Jeśli zmieniasz rozmiar, obracasz, dodajesz marginesy albo kafelkujesz zdjęcie, zachowaj transformację potrzebną do odwzorowania współrzędnych z powrotem; w przeciwnym razie pozornie wiarygodna ramka może wskazywać niewłaściwe piksele.

Przygotuj obraz przed żądaniem, nie dopiero po błędzie

Oficjalne limity obrazów są precyzyjne i włączne. Obraz poza zakresem zostaje odrzucony, a nie automatycznie przeskalowany; odrzucenie jednego obrazu powoduje niepowodzenie całego żądania.

OgraniczenieOpublikowany limit
FormatNieruchomy PNG lub JPEG; animowany PNG jest odrzucany
Pojedynczy plik16 MiB, po dekodowaniu base64, jeśli dotyczy
Każdy wymiarOd 280 do 1568 pikseli
Łączna liczba pikseliOd 78 400 do 2 458 624
Treść żądania32 MiB, łącznie z JSON i opakowaniem przesyłania
Przetworzone obrazy razem32 MiB
Rozwinięte żądanie32 MiB po zastąpieniu odwołań do obrazów

Powtórzone referencje są ponownie liczone w rozwiniętym żądaniu. Rozmiar pliku, wymiary i długość kontekstu to osobne kontrole. Limity obrazów

Kontrole przygotowania obrazu: format PNG lub JPEG, od 280 do 1568 pikseli na bok, 16 MiB na obraz i trzy osobne limity 32 MiB na poziomie żądania

Oryginalny diagram limitów na podstawie dokumentacji obrazów TypeSafe, sprawdzonej 18 października 2026 r. Limity rozmiaru pojedynczego pliku, obrazów po przetworzeniu, rozwiniętego żądania i treści żądania obowiązują niezależnie.

TypeSafe zaleca także obrócić piksele do pionu przed wysłaniem: API usuwa metadane i nie stosuje orientacji EXIF. Wcześniej przekonwertuj nieobsługiwane formaty. Wskazówki przygotowania

Na potrzeby prototypu przygotuj wyraźnie oznaczoną kopię zdjęcia, do którego masz prawa, i pozostaw oryginał nietknięty. Lokalnie sprawdź wymiary i wyświetl dokładnie tę kopię, która zostanie wysłana. Wąski kadr może wymagać dodania marginesu, aby spełnić minimalny wymiar; zapisz to rozszerzenie przed interpretacją współrzędnych.

Przypnij wersję 1.14 i jawnie włącz funkcję eksperymentalną

Według stanu na 18 października opublikowana tabela aliasów mapuje jev-latest na jev-1.13.0, a jev-preview na jev-1.14.0. W przykładzie Box przypnij jev-1.14.0, zamiast zakładać, że alias latest oznacza najnowszą wersję preview. Aliasy modeli

Poniższa procedura tworzy lokalny przykład przeznaczony wyłącznie do weryfikacji. Wykonanie ostatniego polecenia wysyła płatne żądanie inferencji, które SDK może ponowić; nie zatwierdza zwrotu ani nie zmienia konta. Użyj przygotowanego zdjęcia, do którego masz prawa, bez ludzi, etykiet przesyłek, adresów i prywatnych dokumentów.

  1. Uzyskaj dostęp i wybierz właściwą organizację. TypeSafe informuje, że rejestracja nie wymaga już zgody z listy oczekujących. Utwórz klucz API w konsoli i przed testem sprawdź kredyty organizacji. Dostęp do konta, ustawienia kredytów

  2. Użyj Node.js 22 lub nowszego. Wersja SDK JavaScript obsługująca obrazy to 0.7.0, wydana 14 października. Przypięcie jej jawnie określa zależność przykładu. Dziennik zmian SDK

BashUruchom w: Terminal
node --version
mkdir jev-photo-check
cd jev-photo-check
npm init -y
npm install @typesafe-ai/[email protected]

  1. Ustaw klucz tylko na czas bieżącej sesji. W Windows PowerShell użyj pierwszego bloku, a w Bash/Zsh w macOS lub Linuksie — drugiego. Lokalnie zastąp placeholder i nie zatwierdzaj prawdziwego klucza w repozytorium.
PowerShellUruchom w: PowerShell
$env:TYPESAFE_API_KEY = "your-api-key"

BashUruchom w: Terminal
export TYPESAFE_API_KEY="your-api-key"

  1. Przygotuj owned-mug.jpg i utwórz inspect-return.mjs. Ta oryginalna adaptacja korzysta z udokumentowanych funkcji pomocniczych SDK. Nagłówek eksperymentalny jest konfigurowany przed każdym żądaniem obrazu. Oba poniższe progi prawdopodobieństwa są przykładowymi regułami aplikacji, a nie zaleceniami TypeSafe. Każdy wynik nadal wymaga weryfikacji przez człowieka. Użycie SDK
JavaScript
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,
});

  1. Uruchom tylko wtedy, gdy możesz wysłać zdjęcie i ponieść opłatę. We wszystkich trzech systemach operacyjnych polecenie brzmi node inspect-return.mjs. Wyjątek lub wynik suggestedBox: null powinny pozostawić oryginalny obraz do weryfikacji, a nie uruchamiać automatyczne ponawianie.

Pytania współdzielą jedno żądanie, ale ramka zostanie zignorowana, jeśli bramka nie przejdzie. Nie zmniejsza to kosztu obliczenia nieużytej ramki. W późniejszym projekcie można wykonać lokalizację jako drugie żądanie, dopiero po kontrolach obecności, wymieniając dodatkową rundę komunikacji na uniknięcie niepotrzebnych wywołań lokalizacyjnych.

Niska cena tokena nie jest ceną za zdjęcie

Opublikowana stawka dla obu wersji wynosi 0,042 USD za milion tokenów wejściowych, a tokeny wyjściowe są bezpłatne. To oznacza, że 10 milionów rozliczanych tokenów wejściowych kosztuje 0,42 USD przy podanej stawce; nie oznacza, że tyle kosztuje dziesięć milionów obrazów. Opublikowany cennik

Obrazy są rozliczane jako tokeny wejściowe według stawki tekstowej, bez osobnej opłaty za obraz. TypeSafe nie podało jeszcze w dokumentacji wzoru szacowania liczby tokenów obrazu. Przy budżetowaniu autoryzowanej ewaluacji użyj usage.input_tokens z odpowiedzi, zamiast wymyślać koszt jednego zdjęcia. Rozliczanie obrazów

Budżet powinien uwzględniać nieudane próby, ponowienia, przygotowanie, przechowywanie i czas recenzenta. Zestawiaj koszty z oceną jakości: oszczędność ułamka centa nie pomaga, jeśli zbyt ciasny kadr sprawia, że każdy recenzent musi ponownie otwierać oryginał. Porównaj całe zadanie kontroli z prostym ręcznym punktem odniesienia.

Projektuj z myślą o niepewności, prywatności i przeciążonej usłudze

Noul zwraca prawdopodobieństwo bez osobnego pola confidence. Choice i Score zawierają rozkłady oraz wyliczone wartości pewności. Opisują one niepewność modelu; nie są ogólnym certyfikatem poprawności. Dokumentacja pewności

Dla procesu z kubkami sprawdź bramkę na odłożonych zdjęciach z uzgodnionymi etykietami. Grupuj podobne wyniki i porównuj je z zaobserwowaną poprawnością, aby ocenić kalibrację w danym zadaniu. Mierz osobno przeoczone uszkodzenia i fałszywe alarmy; odróżniaj źle umieszczoną nakładkę od błędnej decyzji o zwrocie. Ponownie oceniaj progi po zmianie modelu, oświetlenia, kategorii produktu lub sposobu robienia zdjęć.

Nie traktuj każdego zdjęcia niespełniającego kryteriów jako dowodu winy klienta. Fotografia może być nieodpowiednia z powodu słabego aparatu, odblaskowego obiektu albo wady wymagającej innego kąta. Przydatny stan weryfikacji umożliwia przesłanie kolejnego zdjęcia i ręczną kontrolę, nie obciążając klienta niepewnością modelu.

TypeSafe informuje, że żądania klientów i odpowiedzi nie są używane do trenowania Jev. Centrum pomocy wyjaśnia także, że przetwarzanie może obejmować świadczenie usługi, rozliczenia, zapobieganie nadużyciom i telemetrię; retencja zależy od rodzaju danych, umów i ewentualnego porozumienia o zerowej retencji danych. Brak treningu nie oznacza braku retencji. Zasady przetwarzania danych

Publiczna strona statusu usługi podaje region geograficzny USA i lokalizacje us-east-1, us-east-2 oraz us-west-2. Zespoły objęte wymogami rezydencji danych powinny uzgodnić miejsce przetwarzania przed przesłaniem zdjęć klientów; dostęp do konsoli nie jest umową o rezydencji danych.

Przed wysłaniem stosuj minimalizację danych. Jeśli etykieta adresowa nie ma znaczenia, wykadruj ją z przygotowanej kopii; ogranicz dostęp do oryginałów i nie umieszczaj obrazów ani sekretów w zwykłych logach. Niezależnie od zasad dostawcy określ okres przechowywania własnych zapisów z weryfikacji.

Limity organizacji obejmują żądania i tokeny na sekundę. API opisuje kod 429 jako ograniczenie szybkości, a 529 jako przeciążenie; wadliwe lub zbyt duże dane wejściowe wymagają korekty, nie ponowienia bez zmian. Limity szybkości, błędy API

Domyślna polityka ponowień SDK JavaScript obejmuje dwie próby i respektuje obsługiwane nagłówki czasu oczekiwania. Unikaj dodawania nieograniczonej pętli ponowień na zewnątrz. Ustal limit czasu, zachowaj użyteczny stan błędu i oddziel ewentualne przyszłe działanie biznesowe, aby ponowiona inferencja nie zleciła podwójnego zwrotu. Polityka ponowień

Pytania przed pierwszym przepływem pracy ze zdjęciem

Czy Jev edytuje albo generuje zdjęcie zwrotu?

Nie. Obraz jest dowodem dla oceny lub proponowanego regionu. Nakładkę rysuje albo kadr tworzy aplikacja za pomocą zwykłego kodu przetwarzania obrazu. Zachowaj osobno nietknięte źródło; użyteczny prostokąt nie zastępuje oryginalnego materiału dowodowego.

Dlaczego przykład przypina wersję 1.14 zamiast używać latest?

Opublikowana tabela aliasów wskazuje obecnie 1.13 dla jev-latest, podczas gdy Box wymaga 1.14. Przypięcie jev-1.14.0 jawnie określa tę zależność. Przed zmianą wersji sprawdź informacje o wydaniu i własny zestaw testów, zamiast zakładać, że zmiana aliasu zachowa działanie.

Czy wysokie prawdopodobieństwo uszkodzenia może uruchomić zwrot pieniędzy?

Nie na podstawie samych tych danych. Prawdopodobieństwo dotyczy odpowiedzi na zadane pytanie o przesłany obraz; nie uwierzytelnia zamówienia, nie ustala odpowiedzialności i nie stosuje polityki zwrotów. Zacznij od pomocy przy weryfikacji, oceń reprezentatywne przykłady i zachowaj decyzję człowieka w działaniach o istotnych konsekwencjach.

Czy bezpłatne wyjście oznacza, że żądanie zawierające obraz nic nie kosztuje?

Nie. Rozliczane są tokeny wejściowe, w tym tokeny obrazu. Opublikowana stawka nie pozwala wycenić pojedynczego zdjęcia, ponieważ wzór szacowania tokenów obrazu nie został jeszcze udokumentowany. Podczas autoryzowanego pilotażu sprawdzaj raportowane zużycie i uwzględnij ponowienia oraz czas weryfikacji.

Czy mogę bezpośrednio wysłać film produktu albo PDF?

Nie przez udokumentowany interfejs nieruchomych obrazów. Aplikacja musi najpierw wyodrębnić odpowiednie kadry, tekst lub wyrenderowane strony i mieć zgodę na ich przetwarzanie. Wyodrębniony kadr traci informacje o czasie i dźwięku, więc pytaj tylko o to, na co dostarczony materiał może odpowiedzieć.

Konkluzja: kieruj uwagę, zanim przekażesz uprawnienia

Podgląd obsługi obrazów w Jev stawia praktyczną tezę: przekształcaj dowody wizualne w małe odpowiedzi, które oprogramowanie może sprawdzić. Narzędzie do zwrotów kubków może zweryfikować tę tezę, oddzielając obecność przedmiotu, uszkodzenie, lokalizację i weryfikację. Najcenniejszym pierwszym wynikiem nie jest automatyczny zwrot pieniędzy, lecz lepiej uzasadniona decyzja recenzenta, który musi wykonać mniej poszukiwań.

Warto mierzyć właśnie to: czy proponowany region pomaga człowiekowi zrozumieć oryginalne dowody, również wtedy, gdy model się myli?

Źródła i zakres

Źródła pierwotne sprawdzone 18 października 2026 r.: ogłoszenie TypeSafe z 14 października, modele i cennik, limity obrazów i rozliczenia, kontrakt Box, przykłady JavaScript i informacje o wydaniu SDK. Dodatkowe źródła dotyczące zasad i niezawodności podlinkowano przy omawianych twierdzeniach. Przykładowy przepływ i diagramy służą objaśnieniu, nie są wynikiem praktycznego benchmarku; na potrzeby artykułu nie wykonano płatnego wywołania modelu. Diagramy są oryginalne, nie skopiowano materiałów dostawcy.

Zachowaj źródło obok wniosku

W swoich badaniach modeli przechowuj oryginalne źródła oddzielnie od wyciągniętych z nich wniosków. Utwórz konto Telli.sh, aby porządkować materiały badawcze i notatki pochodne wraz z kontekstem źródłowym.


← Wróć do bloga