← Wybrane projekty

KAMIWAZA

Zamień zdjęcie formularza w aplikację.

Zobacz, jak formularz staje się aplikacją ↓
  • TypeScript
  • React
  • Next.js
Jak to działa
AppSpec / JSON
Opisuje pola, tabele i rekordy odczytane z formularza.
React
Na podstawie tej specyfikacji tworzy interfejs do wprowadzania i edycji danych.
TypeScript / Next.js
Definiuje typy danych i łączy interfejs z API analizy dokumentów.
Na tej stronie
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.

Poprawność struktury i zgodność z faktami wymagają osobnych kontroli.
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.

Dwie zapisane oceny tych samych 50 dokumentów
Zapisany wskaźnikv1v2
Dokumenty spełniające kryteria oceny38 / 5048 / 50
Częściowo poprawne / nieudane11 / 12 / 0
Wartości ocenione jako poprawne704 / 7071 516 / 1 518
Wartości uznane za zmyślone00
Ponowne zliczenie zapisanych ocen LLM. Oryginalne obrazy są niedostępne; nie jest to nowe odczytanie dokumentów ani ponowna ocena.
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.

50 / 50

Zapisana ocena i zgodność wartości dla każdego przypadku

Przypadekv1v2Wartości v1Wartości v2
K01Częściowo poprawnyZaliczony17 / 1736 / 36
K02ZaliczonyZaliczony9 / 933 / 33
K03Częściowo poprawnyZaliczony11 / 1148 / 48
K04ZaliczonyZaliczony10 / 1013 / 13
K05Częściowo poprawnyZaliczony9 / 920 / 20
K06Częściowo poprawnyZaliczony14 / 1435 / 35
K07ZaliczonyZaliczony13 / 1315 / 15
K08Częściowo poprawnyZaliczony19 / 19112 / 112
K09ZaliczonyZaliczony4 / 44 / 4
K10Częściowo poprawnyZaliczony16 / 16124 / 124
K11ZaliczonyZaliczony24 / 2451 / 51
K12ZaliczonyZaliczony26 / 2668 / 69
K13ZaliczonyZaliczony21 / 2159 / 59
K14ZaliczonyZaliczony23 / 2335 / 35
K15ZaliczonyZaliczony22 / 2241 / 41
K16Częściowo poprawnyZaliczony23 / 2465 / 65
K17ZaliczonyZaliczony21 / 2156 / 56
K18ZaliczonyZaliczony26 / 2635 / 35
K19ZaliczonyCzęściowo poprawny23 / 2341 / 41
K20ZaliczonyZaliczony22 / 2226 / 26
K21ZaliczonyZaliczony14 / 1416 / 16
K22ZaliczonyZaliczony13 / 1315 / 15
K23ZaliczonyZaliczony14 / 1418 / 18
K24ZaliczonyZaliczony14 / 1416 / 16
K25ZaliczonyZaliczony14 / 1416 / 16
K26ZaliczonyZaliczony10 / 1033 / 33
K27ZaliczonyZaliczony14 / 1420 / 20
K28ZaliczonyZaliczony13 / 1315 / 15
K29ZaliczonyZaliczony15 / 1520 / 20
K30ZaliczonyZaliczony15 / 1520 / 20
K31ZaliczonyZaliczony9 / 913 / 13
K32ZaliczonyZaliczony9 / 910 / 10
K33ZaliczonyZaliczony9 / 913 / 13
K34ZaliczonyZaliczony9 / 913 / 13
K35ZaliczonyZaliczony9 / 914 / 14
K36ZaliczonyZaliczony9 / 911 / 11
K37Częściowo poprawnyCzęściowo poprawny8 / 910 / 11
K38ZaliczonyZaliczony9 / 912 / 12
K39ZaliczonyZaliczony9 / 910 / 10
K40Częściowo poprawnyZaliczony8 / 912 / 12
K41Częściowo poprawnyZaliczony5 / 560 / 60
K42ZaliczonyZaliczony14 / 1444 / 44
K43NiezaliczonyZaliczonyNie oceniono17 / 17
K44ZaliczonyZaliczony15 / 1522 / 22
K45ZaliczonyZaliczony18 / 1835 / 35
K46ZaliczonyZaliczonyNie ocenionoNie oceniono
K47ZaliczonyZaliczony20 / 2022 / 22
K48Częściowo poprawnyZaliczony16 / 1636 / 36
K49ZaliczonyZaliczony21 / 2122 / 22
K50ZaliczonyZaliczony18 / 1834 / 34
„Zaliczony” oznacza zapisaną ocenę według przyjętych kryteriów, a nie poprawność każdego pola. Identyfikatory przypadków nie zawierają nazw ani treści dokumentów. CSV ↓ · JSON ↓
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.

Przeczytaj artykuł techniczny po japońsku ↗

W trakcie prac

KAMIWAZA w chmurze

Rozbudowuję przepływ pracy od dokumentu do aplikacji o wdrożenie w chmurze.