Weryfikacja atestów materiałowych sztuczną inteligencją polega w opisywanym wdrożeniu na tym, że dział jakości wgrywa atest w formacie PDF, a model porównuje go z wzorcem wymagań i zwraca wyniki cecha po cesze. Końcowy werdykt przelicza kod z tych wyników, a każdy raport przypomina, że ocenę potwierdza człowiek.
Kontroler jakości ma przed sobą atest w formacie PDF i wzorzec wymagań. Zamiast czytać dokument wiersz po wierszu, wgrywa plik na ekran weryfikacji i dostaje raport cecha po cesze. Model językowy tylko opisuje to, co przeczytał w atescie, a o werdykcie rozstrzyga kod. Każdy raport przypomina, że ocenę potwierdza człowiek.
Dział jakości wgrywa atest i wskazuje materiał
Ekran weryfikacji atestów jest pozycją "Weryfikacja certyfikaty" w menu kontroli jakości. Pozycja jest też w menu wskazanej roli logistyki. Ekran ma wymagane pole "Materiał" i strefę wgrywania plików. Skąd bierze się dokument, który kontroler wgrywa, opisuje tekst o dokumentach jakościowych przy pozycji zamówienia.
Po wyborze materiału system odszukuje przypisaną do niego konfigurację agenta. Gdy jej nie ma, pojawia się dymek z informacją o braku konfiguracji dla klienta, a strefa wgrywania pozostaje ukryta. Główna instrukcja oceny znajduje się po stronie usługi modelu, a nie w aplikacji.
Strefa wgrywania ma napis "Przeciągnij tutaj plik PDF lub kliknij, aby wybrać". Okno wyboru pliku jest ograniczone do PDF i przyjmuje do 4 plików naraz. Przy większej liczbie okno "Komunikat" mówi "Możesz wybrać maksymalnie 4 pliki na raz."
Pliki są przetwarzane po kolei. Każdy trafia na serwer do folderu przypisanego do bieżącego otwarcia ekranu (nazwa pliku bez polskich znaków i spacji), a potem jest wysyłany do oceny. W trakcie pracy pole materiału i strefa plików są wyłączone, a obok widać wskaźnik oczekiwania. Po ostatnim pliku na kilka sekund pojawia się napis o zakończeniu oceny, po czym strefa wraca do stanu wyjściowego.
Dokument trafia do modelu jako tekst albo obrazy stron
Aplikacja wysyła do usługi modelu krótkie polecenie z plikiem. Plik może mieć najwyżej 5 MB, a przy większym ekran pokazuje komunikat zaczynający się od słowa "Błąd" i fragmentu "Plik przekracza maksymalny rozmiar 5 MB". Samo polecenie może mieć najwyżej 200 000 znaków.
Sposób przekazania zależy od tego, czy w PDF jest tekst. PDF z warstwą tekstową, czyli z co najmniej 50 znakami, z których ponad 40 % to litery lub cyfry, trafia do usługi jako plik. PDF bez użytecznego tekstu, czyli skan, jest zamieniany na obrazy stron. Plik tymczasowy w usłudze jest usuwany po odpowiedzi, a obrazy stron po stronie serwera także.
Przeglądarka czeka na odpowiedź najwyżej 120 sekund. Po przekroczeniu tego czasu pokazuje komunikat zaczynający się od słowa "Błąd" i fragmentu "Przekroczono limit czasu oczekiwania".
Instrukcja dla modelu rozdziela źródła. Pliki wzorców to wymagania, a nie atest, a przesłany plik jest jedynym źródłem danych o dostawie. Plik może zawierać także faktury i listy pakowe, więc model ocenia tylko strony będące atestem i podaje ich numery. Jak zapisano wymagania, z którymi model porównuje atest, opisuje tekst o wzorcu wymagań materiałowych.
Model zwraca wyłącznie ustrukturyzowane wyniki
Model ma odpowiedzieć wyłącznie obiektem JSON o ustalonym układzie. Układ ma cztery części.
- Nagłówek - producent, numer certyfikatu, użyty wzorzec i rewizja, powód wyboru, cytat kontrolny, strony atestu oraz numer partii.
- Tablica cech - dla każdej cechy jej nazwa, wymaganie ze wzorca, wartość z atestu, wynik i uzasadnienie.
- Trzy listy - braki, niezgodności i pozycje do weryfikacji.
- Wniosek - krótkie podsumowanie oceny napisane przez model.
Wynik każdej cechy jest jednym z pięciu, a tabela pokazuje, co każdy z nich znaczy i jak wpływa na werdykt.
| Wynik cechy | Znaczenie | Wpływ na werdykt |
|---|---|---|
| zgodny | Wartość z atestu spełnia wymaganie wzorca. | Nie obniża werdyktu. |
| niezgodny | Wartość nie spełnia wymagania. | Werdykt niezgodny. |
| brak danych | Atest powinien zawierać wartość, a jej nie ma. | Werdykt częściowo zgodny. |
| do weryfikacji | Przypadek graniczny lub wymagający decyzji działu jakości. | Werdykt częściowo zgodny. |
| nie dotyczy | Cechy nie da się potwierdzić samym atestem. | Nie obniża werdyktu. |
Odpowiedź jest oczyszczana. Zdejmowane jest ogrodzenie bloku kodu, a po sparsowaniu z wartości tekstowych usuwane są znaczniki cytowań typu [1]. Przy uszkodzonym JSON ocena jest ponawiana raz, z dopiskiem o poprawnej składni, który zaczyna się od słów "Odpowiedź AI miała uszkodzoną strukturę. Ponawiam ocenę". Po drugiej porażce ekran pokazuje "AI nie zwróciło poprawnego JSON-a. Ponowienie również się nie powiodło." i surową odpowiedź modelu.
Werdykt wylicza kod, a nie model
Gdy model zwrócił listę cech, werdykt przelicza kod. Jedna cecha "niezgodny" daje werdykt "niezgodny". Przy braku niezgodności cecha "brak danych" albo "do weryfikacji" daje "częściowo zgodny". W pozostałych przypadkach wynik to "zgodny", a "nie dotyczy" nie obniża oceny.
Model czyta dokument i opisuje cechy, a o statusie całej oceny rozstrzyga kod na podstawie wyników cech.
Kod nie sprawdza wartości liczbowych. Liczby porównuje model, a kod tylko agreguje wyniki cech. Gdy deklaracja modelu różni się od przeliczonego werdyktu, raport pokazuje kartę "Korekta werdyktu". Plakietka "BRAK MOŻLIWOŚCI OCENY" pojawia się wtedy, gdy model nie przekazał oceny, na przykład nie dobrał wzorca.
Raport zaczyna się od tego, co wymaga uwagi
Raport otwiera pasek z producentem i numerem certyfikatu oraz plakietka werdyktu: "ZGODNY Z WZORCEM", "CZĘŚCIOWO ZGODNY", "NIEZGODNY" albo "BRAK MOŻLIWOŚCI OCENY", z jednozdaniowym opisem. Dalej są kafle z liczbą cech w każdym wyniku i karta "Wymaga uwagi (N)". Pod nimi stoją trzy listy: "Niezgodności", "Do weryfikacji przez QA" i "Braki w dokumencie", a dalej karty "Dane dokumentu" i "Zastosowany wzorzec" z "Cytatem kontrolnym z wzorca".
Pełne zestawienie cech jest podzielone na karty tematyczne, rozpoznawane po słowach w nazwie cechy: m.in. skład chemiczny, właściwości mechaniczne, wymiary i badania, a pozostałe cechy trafiają do karty "Pozostałe". Tabela każdej karty ma kolumny Cecha, Wymaganie wzorca, Wartość z atestu i Wynik. Przycisk "Drukuj / PDF" składa raport na stronach A4 z numeracją "Strona N z M".
Każdy plik jest oceniany osobno, a ekran pokazuje wynik ostatniego z nich. Wiele plików nie daje więc jednego zbiorczego raportu.
Ocenę zawsze potwierdza człowiek
Stopka każdego raportu brzmi "Ocena wygenerowana automatycznie - wymaga potwierdzenia przez dział QA." i zawiera datę. Wyniki ocen nie są zapisywane w bazie. Raport istnieje na ekranie i w wydruku, a ekran nie wiąże oceny z awizacją, pozycją ani decyzją kontroli jakości. Decyzję o akceptacji pozycji kontroler podejmuje w kolejce opisanej w tekście o kontroli jakości pozycja po pozycji.
Przykład z danymi fikcyjnymi: kontroler wybiera w polu "Materiał" pozycję "Materiał Testowy" i przeciąga do strefy plik "atest-ITEM-0001.pdf". System odczytuje konfigurację agenta i wysyła plik do modelu, po czym pokazuje raport. Model oznaczył jedną cechę jako "do weryfikacji", ale w odpowiedzi wpisał werdykt "zgodny", więc kod koryguje go na "częściowo zgodny" i pokazuje kartę "Korekta werdyktu". Kontroler czyta najpierw kartę "Wymaga uwagi", drukuje raport do PDF, a decyzję o akceptacji pozycji podejmuje sam, bo stopka przypomina o potwierdzeniu przez dział QA.
Podobny podział ról, z modelem jako czytelnikiem dokumentu i procedurą jako sędzią, można zaprojektować po stronie bazy danych. Taki wzorzec architektury, a nie opis wdrożenia, przedstawia artykuł o ocenie atestu w T-SQL. Ogólne ujęcie sztucznej inteligencji w logistyce daje strona o sztucznej inteligencji w logistyce.
Pytania do analizy przed podobnym wdrożeniem
Zanim w innym zakładzie ktoś zleci taką weryfikację, ustalamy cztery sprawy.
- Ostatnie słowo - kto rozstrzyga o werdykcie, model czy człowiek, i jak raport ma to jasno pokazywać.
- Skany - co robić z dokumentami bez warstwy tekstowej i jakie limity rozmiaru oraz czasu są akceptowalne.
- Zapis wyników - czy wyniki oceny mają być zapisywane i porównywane z poprawkami działu jakości, czy wystarczy raport do wydruku.
- Podział pracy - które części oceny można policzyć deterministycznie, a które wymagają czytania opisu przez model.