Ocena i kod źródłowy
AI HACKATHON 2026 TOKYO · Finalista · 56 zespołów
Daj modelowi strukturę, którą aplikacja może sprawdzić
Zdjęcie zamienia się w opis pól i rekordów. Aplikacja sprawdza tę strukturę, a następnie buduje ekran.
Wybierz etap, aby prześledzić diagram. To ilustracja działania, nie rzeczywiste odczytywanie dokumentu.
Jak to działa i co sprawdzono
Model tworzy AppSpec, czyli opis aplikacji w formacie JSON. AppSpec określa typy pól, kolumny tabeli, pierwszy rekord i jego pozycje. Komponenty React interpretują ten opis za pomocą z góry określonego renderera. Ten podział odpowiedzialności istniał już w pierwszej implementacji — był wyborem architektonicznym od samego początku.
Aplikacja sprawdza kompletny wynik pod kątem zgodności ze schematem, w tym dozwolone klucze i typy wartości. Odrzuca również pustą nazwę aplikacji lub specyfikację bez pól. Kontrola odbywa się po zakończeniu generowania, ponieważ częściowo odebrany obiekt jest z natury niekompletny. Poprawny strukturalnie obiekt nadal wymaga sprawdzenia treści: schemat rozpozna, że pole zawiera liczbę, ale nie ustali, czy została poprawnie odczytana z papieru.
Zmiany podlegają tym samym regułom
Po wygenerowaniu aplikacji można poprosić tekstowo o zmianę za pośrednictwem SpecDiff. Dostępne operacje obejmują dodanie pola, zmianę jego nazwy, ustawienie limitu liczbowego i dodanie definicji etapu zatwierdzania. Model wybiera spośród obsługiwanych operacji, a deterministyczny reduktor stosuje je do istniejącej specyfikacji. Odrzucona zmiana pozostawia pierwotną specyfikację. To aplikacja nadal kontroluje, jak dana operacja zmienia interfejs.
Niepewność odczytu ma osobną ścieżkę obsługi. Kod używany podczas rzeczywistej analizy znajduje pierwsze pole, którego deklarowana pewność jest poniżej progu, i pyta, czy je uwzględnić. To okazja do sprawdzenia wyniku przez człowieka, a nie dowód kalibracji wartości pewności. Ramki źródłowe mogą wskazywać obszar obrazu powiązany z polem, lecz dokładności ich położenia na rzeczywistych zdjęciach nie oceniono ilościowo.
Poprawne wartości nie oznaczają jeszcze kompletnego dokumentu
Sprawdzaj razem zgodność wartości i ocenę całego dokumentu. Poprawnie odczytane wartości nie dowodzą, że dokument jest kompletny.
| Zapisany wskaźnik | v1 | v2 |
|---|---|---|
| Dokumenty spełniające kryteria oceny | 38 / 50 | 48 / 50 |
| Częściowo poprawne / nieudane | 11 / 1 | 2 / 0 |
| Wartości ocenione jako poprawne | 704 / 707 | 1 516 / 1 518 |
| Wartości uznane za zmyślone | 0 | 0 |
Jak to działa i co sprawdzono
W pierwszej zapisanej ocenie 704 z 707 wyodrębnionych wartości uznano za poprawne. Mimo to tylko 38 z 50 dokumentów otrzymało pozytywny werdykt. Jedenaście oceniono jako częściowo poprawne, a w jednym przypadku rzeczywista analiza przełączyła się na dane demonstracyjne, co zaliczono jako niepowodzenie. Wysoki wynik dla wartości przesłaniał istotne ograniczenie: sprawdzając wyłącznie to, co znalazło się w wyodrębnionym rekordzie, nie można odzyskać informacji, które do niego w ogóle nie trafiły.
Powtarzające się pozycje dokumentu ujawniły tę lukę. Pierwotna reprezentacja była w dużej mierze płaska; notatki z oceny wskazują, że dalsze wiersze były często pomijane. W kolejnej wersji dodano definicję tabeli i tablicę wierszy. Zmieniły się również limit odpowiedzi oraz instrukcje odczytywania separatorów dziesiętnych, więc ta rewizja obejmowała kilka zmian technicznych. Wyniki nie pozwalają wyodrębnić wpływu samej zmiany modelu danych.
Czytaj oba wyniki razem
Porównaj dwie zapisane oceny tych samych 50 dokumentów. To zachowane wyniki, a nie nowy test odczytu danych.
Zapisana ocena i zgodność wartości dla każdego przypadku
| Przypadek | v1 | v2 | Wartości v1 | Wartości v2 |
|---|---|---|---|---|
| K01 | Częściowo poprawny | Zaliczony | 17 / 17 | 36 / 36 |
| K02 | Zaliczony | Zaliczony | 9 / 9 | 33 / 33 |
| K03 | Częściowo poprawny | Zaliczony | 11 / 11 | 48 / 48 |
| K04 | Zaliczony | Zaliczony | 10 / 10 | 13 / 13 |
| K05 | Częściowo poprawny | Zaliczony | 9 / 9 | 20 / 20 |
| K06 | Częściowo poprawny | Zaliczony | 14 / 14 | 35 / 35 |
| K07 | Zaliczony | Zaliczony | 13 / 13 | 15 / 15 |
| K08 | Częściowo poprawny | Zaliczony | 19 / 19 | 112 / 112 |
| K09 | Zaliczony | Zaliczony | 4 / 4 | 4 / 4 |
| K10 | Częściowo poprawny | Zaliczony | 16 / 16 | 124 / 124 |
| K11 | Zaliczony | Zaliczony | 24 / 24 | 51 / 51 |
| K12 | Zaliczony | Zaliczony | 26 / 26 | 68 / 69 |
| K13 | Zaliczony | Zaliczony | 21 / 21 | 59 / 59 |
| K14 | Zaliczony | Zaliczony | 23 / 23 | 35 / 35 |
| K15 | Zaliczony | Zaliczony | 22 / 22 | 41 / 41 |
| K16 | Częściowo poprawny | Zaliczony | 23 / 24 | 65 / 65 |
| K17 | Zaliczony | Zaliczony | 21 / 21 | 56 / 56 |
| K18 | Zaliczony | Zaliczony | 26 / 26 | 35 / 35 |
| K19 | Zaliczony | Częściowo poprawny | 23 / 23 | 41 / 41 |
| K20 | Zaliczony | Zaliczony | 22 / 22 | 26 / 26 |
| K21 | Zaliczony | Zaliczony | 14 / 14 | 16 / 16 |
| K22 | Zaliczony | Zaliczony | 13 / 13 | 15 / 15 |
| K23 | Zaliczony | Zaliczony | 14 / 14 | 18 / 18 |
| K24 | Zaliczony | Zaliczony | 14 / 14 | 16 / 16 |
| K25 | Zaliczony | Zaliczony | 14 / 14 | 16 / 16 |
| K26 | Zaliczony | Zaliczony | 10 / 10 | 33 / 33 |
| K27 | Zaliczony | Zaliczony | 14 / 14 | 20 / 20 |
| K28 | Zaliczony | Zaliczony | 13 / 13 | 15 / 15 |
| K29 | Zaliczony | Zaliczony | 15 / 15 | 20 / 20 |
| K30 | Zaliczony | Zaliczony | 15 / 15 | 20 / 20 |
| K31 | Zaliczony | Zaliczony | 9 / 9 | 13 / 13 |
| K32 | Zaliczony | Zaliczony | 9 / 9 | 10 / 10 |
| K33 | Zaliczony | Zaliczony | 9 / 9 | 13 / 13 |
| K34 | Zaliczony | Zaliczony | 9 / 9 | 13 / 13 |
| K35 | Zaliczony | Zaliczony | 9 / 9 | 14 / 14 |
| K36 | Zaliczony | Zaliczony | 9 / 9 | 11 / 11 |
| K37 | Częściowo poprawny | Częściowo poprawny | 8 / 9 | 10 / 11 |
| K38 | Zaliczony | Zaliczony | 9 / 9 | 12 / 12 |
| K39 | Zaliczony | Zaliczony | 9 / 9 | 10 / 10 |
| K40 | Częściowo poprawny | Zaliczony | 8 / 9 | 12 / 12 |
| K41 | Częściowo poprawny | Zaliczony | 5 / 5 | 60 / 60 |
| K42 | Zaliczony | Zaliczony | 14 / 14 | 44 / 44 |
| K43 | Niezaliczony | Zaliczony | Nie oceniono | 17 / 17 |
| K44 | Zaliczony | Zaliczony | 15 / 15 | 22 / 22 |
| K45 | Zaliczony | Zaliczony | 18 / 18 | 35 / 35 |
| K46 | Zaliczony | Zaliczony | Nie oceniono | Nie oceniono |
| K47 | Zaliczony | Zaliczony | 20 / 20 | 22 / 22 |
| K48 | Częściowo poprawny | Zaliczony | 16 / 16 | 36 / 36 |
| K49 | Zaliczony | Zaliczony | 21 / 21 | 22 / 22 |
| K50 | Zaliczony | Zaliczony | 18 / 18 | 34 / 34 |
Jak to działa i co sprawdzono
Zachowane oceny v2 odnotowują 48 dokumentów spełniających kryteria oceny, dwa wyniki częściowe i żadnego niepowodzenia. Za poprawne uznano 1 516 z 1 518 wartości; zapisano też 196 oczekiwanych i 196 wyodrębnionych pozycji. Porównanie tych samych przypadków pokazuje, że dziesięć wyników częściowych oraz jedno niepowodzenie zmieniły się w wyniki pozytywne. Widać też jeden przypadek pogorszenia z wyniku pozytywnego na częściowy. On również należy do tego porównania.
„Wynik pozytywny” oznacza zapisany werdykt według przyjętych kryteriów. Nie oznacza poprawności każdego szczegółu: K12 uzyskał taki wynik przy 68 poprawnych wartościach z 69. Z kolei K19 otrzymał ocenę częściową mimo zgodności wszystkich 41 ocenianych wartości, ponieważ werdykt dla dokumentu uwzględniał także pominięte informacje. Tabela przypadków zachowuje obie kolumny, aby tę różnicę można było zobaczyć bezpośrednio.
Co można potwierdzić na podstawie tych zapisów
W żadnym z dwóch przebiegów modele LLM oceniające wyniki nie odnotowały zmyślonych wartości. Łączna liczba 2 225 ocenianych wartości obejmuje dwa przebiegi na tych samych 50 dokumentach. Nie jest to liczba niezależnych testów, a zero odnotowanych wykryć nie gwarantuje, że system nie może zmyślić wartości. Nie zmierzono zgodności ocen modeli z ocenami ludzi.
W zapisie oceny widnieje data 6 lipca 2026 i bezpośrednie połączenie z dostawcą modelu. Tabelę utworzono, ponownie zliczając wyniki z zachowanych plików werdyktów. Oryginalne obrazy użyte do oceny są niedostępne, a identyfikator modelu oceniającego nie został zachowany. Czytelnik może przeliczyć to zestawienie liczbowe, ale nie może na jego podstawie ponownie ocenić dokumentów ani odtworzyć pierwotnego przebiegu na tym zestawie. Wyników nie można też przenosić na inny model lub wdrożenie korzystające z innej ścieżki połączenia bez przeprowadzenia nowej oceny.
KAMIWAZA pozostaje prototypem o określonym zakresie. Etapy zatwierdzania są wyświetlane jako projekt procesu, bez wykonywania zatwierdzeń ani odrzuceń. Wygenerowane dane nie są zachowywane po ponownym wczytaniu strony. Te braki wyznaczają różnicę między działającą demonstracją tworzenia aplikacji z papierowego dokumentu a systemem gotowym do stałego użytku operacyjnego.
Podstawy i metoda weryfikacji
Uwagi do weryfikacji
Model nie oznaczył żadnej wartości jako zmyślonej spośród 707 wartości w v1 i 1 518 w v2. Wynik dotyczy tych dokumentów; zaliczenie według kryteriów nie oznacza poprawności każdego pola.
Finalista spośród 56 zespołów.

