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.
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ście | Obsługa opisana w dokumentacji | Co musi zapewnić aplikacja |
|---|---|---|
| Wejście obrazu | Eksperymentalne nieruchome obrazy PNG/JPEG | Zgoda na przetworzenie obrazu i przygotowanie go przed wysłaniem |
| Wejście audio | Brak natywnego wejścia audio | Transkrypcja lub ustrukturyzowane pola utworzone gdzie indziej |
| Wejście wideo | Brak natywnego wejścia pliku wideo | Wybrane nieruchome kadry lub wyodrębniony tekst, nie przesłany film |
| Wejście dokumentu | Tekst/JSON; skan strony można potraktować jako obraz | Parsowanie PDF/DOCX lub renderowanie stron poza Jev |
| Wyjście | Zdefiniowane etykiety, oceny, prawdopodobieństwa i współrzędne Box | Renderowanie, 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.
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.
| Ograniczenie | Opublikowany limit |
|---|---|
| Format | Nieruchomy PNG lub JPEG; animowany PNG jest odrzucany |
| Pojedynczy plik | 16 MiB, po dekodowaniu base64, jeśli dotyczy |
| Każdy wymiar | Od 280 do 1568 pikseli |
| Łączna liczba pikseli | Od 78 400 do 2 458 624 |
| Treść żądania | 32 MiB, łącznie z JSON i opakowaniem przesyłania |
| Przetworzone obrazy razem | 32 MiB |
| Rozwinięte żądanie | 32 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
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.
-
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
-
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
node --version
mkdir jev-photo-check
cd jev-photo-check
npm init -y
npm install @typesafe-ai/[email protected]
- 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.
$env:TYPESAFE_API_KEY = "your-api-key"
export TYPESAFE_API_KEY="your-api-key"
- Przygotuj
owned-mug.jpgi utwórzinspect-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
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,
});
- 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 wyniksuggestedBox: nullpowinny 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.