YMS

Sztuczna inteligencja czyta atest, a werdykt wylicza kod

Weryfikacja atestów materiałowych sztuczną inteligencją w opisywanym wdrożeniu Studio VSS.net opiera się na prostym podziale pracy: model językowy czyta plik PDF i opisuje cechy, ale o werdykcie decyduje kod. Pokazujemy, co kontroler jakości wgrywa, a co dostaje w raporcie.

W skrócie

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.

Schemat: od atestu PDF przez odczyt modelu i kontrolę JSON do werdyktu liczonego przez kod i raportu do druku.
Schemat w opisywanym wdrożeniu: model opisuje cechy, a kod ustala werdykt.

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 cechyZnaczenieWpływ na werdykt
zgodnyWartość z atestu spełnia wymaganie wzorca.Nie obniża werdyktu.
niezgodnyWartość nie spełnia wymagania.Werdykt niezgodny.
brak danychAtest powinien zawierać wartość, a jej nie ma.Werdykt częściowo zgodny.
do weryfikacjiPrzypadek graniczny lub wymagający decyzji działu jakości.Werdykt częściowo zgodny.
nie dotyczyCechy 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".

Makieta poglądowa raportu weryfikacji atestu z plakietką werdyktu oraz tabelą wyników cech.
Makieta poglądowa, dane przykładowe: raport z plakietką werdyktu i licznikami cech.

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.
FAQ

Pytania i odpowiedzi o odczyt atestu przez model

01

Czy sztuczna inteligencja zastępuje dział jakości?

Nie. Model opisuje cechy, kod przelicza werdykt, a stopka każdego raportu przypomina, że ocena wymaga potwierdzenia przez dział QA. Decyzję o akceptacji pozycji podejmuje kontroler.

02

Co się dzieje, gdy atest jest skanem bez tekstu?

PDF bez użytecznego tekstu, czyli z mniej niż 50 znakami albo z co najwyżej 40 % liter i cyfr, jest zamieniany na obrazy stron i w takiej postaci trafia do usługi modelu. Obrazy stron są po stronie serwera usuwane.

03

Co robi system, gdy model zwróci uszkodzoną odpowiedź?

Ocena jest ponawiana raz, z dopiskiem o poprawnej składni. Po drugiej porażce ekran pokazuje komunikat, że ponowienie się nie powiodło, i surową odpowiedź modelu.

04

Gdzie zapisuje się wynik oceny?

Nigdzie w bazie. Raport istnieje na ekranie i w wydruku, a ocena nie jest powiązana z awizacją, pozycją ani decyzją kontroli jakości.

05

Skąd model zna wymagania, z którymi porównuje atest?

Pliki wzorców są dla modelu źródłem wymagań, a przesłany atest jedynym źródłem danych o dostawie. Szczegóły opisuje osobny tekst o wzorcu wymagań materiałowych.

Słownik

Słownik pojęć

AAtest materiałowy
Dokument odbioru dostarczonego materiału, który dostawca dołącza do dostawy. Ekran weryfikacji czyta go jako plik PDF.
WWzorzec wymagań
Dokument z wymaganiami, z którymi model porównuje atest. Nie jest atestem producenta i nie wolno z niego brać danych o dostawie.
CCecha
Jedna sprawdzana pozycja oceny, na przykład parametr albo dokument. Każda cecha ma wymaganie ze wzorca oraz wartość z atestu, z której powstaje wynik.
WWerdykt
Wynik całej oceny: zgodny, częściowo zgodny, niezgodny albo brak możliwości oceny. Przelicza go kod z wyników cech.
JJSON
Ustrukturyzowany format odpowiedzi modelu: nagłówek z tablicą cech oraz listy. Kod czyta z niego wyniki i liczy werdykt.
PPonowienie oceny
Jeden powtórny przebieg oceny po odpowiedzi z uszkodzonym JSON, z dopiskiem o poprawnej składni.
KKorekta werdyktu
Karta w raporcie, która pojawia się, gdy werdykt zadeklarowany przez model różni się od przeliczonego przez kod.