Przepuścilibyście taką odpowiedź?
„Bilet kosztuje 35 zł”. Krótko, konkretnie, można planować wieczór. Tylko że w opisie wydarzenia nie ma ani słowa o cenie. Asystent ją dopisał. Ten błąd łatwo złapać, ale za chwilę dostaniecie mniej oczywiste odpowiedzi: poprawną godzinę koncertu z pominiętym pytaniem o plecak albo bezpłatny wstęp, który nagle ma oznaczać brak rezerwacji.
Zebraliśmy 12 takich sytuacji i wysłaliśmy je do JEV 1.13 oraz GPT-6 Luna. Zanim zajrzycie do wyników, spróbujcie sami. W ćwiczeniu powyżej są źródło, pytanie i odpowiedź. Wybieracie „Przepuść” albo „Zatrzymaj”, a dopiero potem pojawia się wzorcowa ocena, uzasadnienie i wyniki modeli.
Miejsca i wydarzenia są fikcyjne. Przykłady oraz oceny wzorcowe przygotowaliśmy z pomocą AI; nie pochodzą od klientów ani z niezależnej oceny ludzi. Chodzi o to, żeby zobaczyć, jak działa taki sędzia i gdzie można się z nim nie zgodzić. Dwanaście przykładów nie wystarczy do ogłoszenia najlepszego modelu.
Co właściwie kazaliśmy im sprawdzić
Oba modele miały sprawdzić to samo: czy odpowiedź obejmuje wszystkie części pytania, trzyma się źródła i niczego nie dopisuje. Jeśli źródło czegoś nie podaje, można to wprost przyznać. Przy brakującym cenniku odpowiedź „nie podano ceny” jest więc w porządku. Zgadywanie kwoty już nie.
Przez OpenRouter wysłaliśmy tylko źródło, pytanie i odpowiedź — pola source, question i answer. Nasze rozstrzygnięcia oraz uzasadnienia zostały u nas. Modele nie dostały tytułów przykładów ani pól reference i reason, z których mogłyby odczytać podpowiedź.
Jest też różnica w samych liczbach. JEV zwrócił Noul przez Decisions API, a Lunę poprosiliśmy o liczbę probability w JSON przez API czatu. Kryterium było wspólne, sposób uzyskania oceny inny. Nie sprawdzaliśmy kalibracji tych skal, czyli tego, czy liczby odpowiadają rzeczywistej częstości poprawnych ocen. Dlatego 0,9 nie czytamy jako obietnicy 90% trafności.
Przy 0,5 remis. Teraz ruszcie suwakiem
Po quizie przejdźcie do „Ustaw próg”. Odpowiedź przechodzi, gdy ocena modelu jest równa progowi lub wyższa. Na początek ustawiliśmy 0,5. Oba modele zgodziły się wtedy z naszymi wzorcowymi ocenami we wszystkich 12 przypadkach.
Obniżcie próg do 0,2 i zobaczcie, co się stanie. Każdy model przepuści jeden błąd, ale inny. JEV zaakceptuje przykład 10, w którym asystent uznał, że skoro udział jest bezpłatny, to rezerwacja nie jest potrzebna. Dał mu 0,25. Luna tyle samo przyznała przykładowi 4: godzina koncertu się zgadza, ale odpowiedź pomija pytanie o duży plecak.
A teraz w drugą stronę: 0,95. JEV zatrzyma poprawną odpowiedź o galerii obok kawiarni, czyli przykład 12 z oceną 0,94. Luna nadal przepuści wszystkie sześć poprawnych odpowiedzi, którym przyznała 1,0. Widać tu koszt zaostrzenia reguły: razem z błędami możemy zatrzymać coś, co było dobre. Suwak pomaga zobaczyć tę decyzję na konkretnych tekstach.
Możecie zabrać całe ćwiczenie ze sobą
W ZIP-ie są przykłady, wyniki, zapis wywołań API, kod, instrukcja i wersja laboratorium działająca offline. Wystarczy otworzyć laboratorium.html w przeglądarce. Quiz i suwak korzystają z zapisanych liczb, więc nie wymagają konta ani klucza i niczego ponownie nie wysyłają do modeli.
Jeśli chcecie zmienić przykłady i zapytać modele jeszcze raz, potrzebujecie Pythona 3, klucza OpenRouter i środków na koncie. Skrypt evaluate.py nie wymaga dodatkowych bibliotek. Rozpakujcie paczkę i otwórzcie terminal w jej katalogu. Pierwsze polecenie poniżej sprawdza dane bez sieci. Drugie uruchamia płatne wywołania i zapisuje nowy wynik.
Przed drugim poleceniem ustawcie OPENROUTER_API_KEY w środowisku terminala. W README pokazujemy, jak wczytać klucz bez wyświetlania go na ekranie. Nie dopisujcie go do kodu ani plików, które potem komuś wyślecie.
A gdyby zmienić tylko jedno zdanie?
Weźcie przykład o rezerwacji i dopiszcie do źródła, że rzeczywiście nie jest wymagana. Albo uzupełnijcie odpowiedź o plecak. Wtedy warto ponownie zapytać modele: czy ta jedna zmiana wystarczyła, żeby przesunąć ocenę?
Przykłady edytujecie w cases.json. Nowy potrzebuje unikalnego id oraz pól title, type, source, question, answer, reason i logicznej oceny reference. Najpierw zapiszcie własne rozstrzygnięcie i uzasadnienie, potem uruchomcie modele. Dla kolejnego przebiegu wybierzcie nową nazwę pliku — skrypt nie nadpisuje wcześniejszych wyników.
W wynikach znajdziecie również czasy wywołań. To pojedyncze pomiary obejmujące sieć i OpenRouter, więc nie robimy z nich wyścigu szybkości. Jeśli chcecie najpierw lepiej zrozumieć sam pomysł oceniania AI przez AI, zajrzyjcie do powiązanego poradnika „AI ocenia AI”.
Źródła i dalsza lektura
Materiały, na których opiera się ten tekst. Instrukcje i przykładowe scenariusze są propozycjami redakcji.
- Cookie Analytics: zapisane wyniki JEV i GPT-6 Luna — 3 października 2026 (otwiera nową kartę)qkianalytics.pl
- Cookie Analytics: pełna paczka laboratorium, dane i kod (otwiera nową kartę)qkianalytics.pl
- Cookie Analytics: AI ocenia AI — co JEV potrafi powiedzieć o odpowiedzi modelu (otwiera nową kartę)qkianalytics.pl
- OpenRouter: Decisions API — format odpowiedzi Noul (otwiera nową kartę)openrouter.ai
- TypeSafe: System One i znaczenie kalibracji (otwiera nową kartę)docs.typesafe.ai