Pokaz techniczny · Jak AI odczytuje czas
Pełne przejście przez proces ekstrakcji w 3 etapach, rozpoznawanie norweskich formatów dat, schemat klasyfikacji wydarzeń, transmisja SSE na żywo oraz eksport do formatu Word.
Architektura
Pipeline jest celowo sekwencyjny — Przejście 1 jest oparte na regułach i niemal natychmiastowe; Przejście 2 to ekstrakcja LLM; Przejście 3 przetwarza i ocenia wynik.
Deterministyczne przejście dopasowujące wzory działa przed jakimkolwiek wywołaniem LLM. Skanuje pełne wejście w poszukiwaniu dat pasujących do 12+ norweskich formatów i normalizuje je do ISO 8601:
dd.mm.yyyy → YYYY-MM-DDZnormalizowane kotwice są wstrzykiwane do promptu LLM, aby zredukować halucynacje lub błędnie odczytane daty.
LLM odczytuje pełny dokument wraz z kotwicami z pre-pasu. Dla każdego odniesienia czasowego zwraca strukturalny obiekt JSON wydarzenia:
date — resolved ISO date, or verbatim string if unresolvabledate_type — absolute | relative | recurring | conditional | periodconfidence — high | medium | lowactor — attributed entity (from source text, not inferred)description — one-sentence event summarysource_excerpt — verbatim text fragment (max 200 chars)Prompt wyraźnie instruuje model, aby nie wymyślał dat ani aktorów, którzy nie są obecni w źródle. Temperatura jest ustawiona na 0,1 dla deterministycznego wyniku.
PHP stosuje wszystkie aktywne filtry przed zwróceniem wyniku:
Post-processer następnie zestawia listę what_remains_uncertain oraz rekomendację next_practical_step.
Rozpoznawanie dat
Norweskie dokumenty prawne używają szerokiej gamy notacji dat. Pre-pas 1 rozpoznaje wszystkie z nich deterministycznie; LLM zajmuje się resztą w Pasie 2.
| Format | Przykład | Uwagi |
|---|---|---|
dd.mm.yyyy |
30.07.2015 | Standardowa norweska liczba |
dd.mm.yy |
09.04.25 | Dwu-cyfrowy rok → zawsze 20YY |
d. månedsnavn yyyy |
3. mars 2024 | Napisany miesiąc w bokmål/nynorsk |
d. månedsnavn |
15. januar | Rok wnioskowany na podstawie skanowania bliskości |
yyyy-mm-dd |
2024-03-12 | ISO 8601 |
månedsnavn yyyy |
mars 2024 | Tylko miesiąc + rok |
yyyy |
2024 | Odniesienie tylko do roku |
| Season + year | høsten 2023 | Odniesienie sezonowe → Q3/Q4 |
| Diary-format line | 18.09.2025: Møte avholdt | Data + dwukropek → automatycznie oznaczona jako wydarzenie |
| Relative reference | tre uker etter vedtaket | Przywiązana do najbliższego rozwiązania wydarzenia |
| Recurring pattern | hver mandag | Klasyfikowana jako powtarzająca się |
| Period / range | fra mars til juni 2024 | Generuje start_date + end_date |
Schemat klasyfikacji
| date_type | Definicja | Przykład |
|---|---|---|
absolute |
Specyficzna, rozwiązywalna data kalendarzowa | 30.07.2015 → 2015-07-30 |
relative |
Data wyrażona w odniesieniu do innego wydarzenia | tre uker etter vedtaket |
recurring |
Wzór, który powtarza się według harmonogramu | each Monday, every 6 months |
conditional |
Data uzależniona od spełnienia warunku | if no response within 14 days |
period |
Zakres dat lub czas trwania z początkiem i końcem | fra mars til juni 2024 |
| pewność | Znaczenie | Wizualizacja w osi czasu |
|---|---|---|
high |
Data jest wyraźnie i jednoznacznie podana w tekście źródłowym | Zielona odznaka |
medium |
Data jest wnioskowana, przybliżona lub podana z niewielką niejednoznacznością | Bursztynowa odznaka |
low |
Data jest sugerowana, niepodana lub wyciągnięta z zdegenerowanego/niejednoznacznego fragmentu | Szara odznaka |
| Zasada | Przykład |
|---|---|
| Nazwana jednostka w tym samym zdaniu | “Trude [saksbehandler] ringte 14. mars” → actor: Trude |
| Etykieta roli bez imienia | “Barnevernet fattet vedtak” → actor: Barnevernet |
| Brak wyraźnego przypisania w zdaniu | actor: [unattributed] |
| Domyślne na poziomie dokumentu | Jeśli brak aktora dla konkretnego zdarzenia, domyślnie przypisuje się nadawcę dokumentu/ciała wydającego |
Silniki
Oba silniki zwracają ten sam schemat JSON — post-processer obsługuje je identycznie. Wybór silnika wpływa tylko na prędkość, jakość i koszt kredytów.
| Engine | Model | Opóźnienie | Najlepszy dla |
|---|---|---|---|
| Azure gpt-4o-mini ★ | gpt-4o-mini (Azure West Europe) |
~15 s | Domyślny. Szybki, efektywny kosztowo, dobrze radzi sobie z większością dokumentów prawnych. |
| Azure gpt-4o | gpt-4o (Azure West Europe) |
~45 s | Złożone dokumenty, nakładające się zdarzenia, tekst źródłowy o słabej jakości lub gęsty. |
Aktualizacje na żywo i eksport
Oś czasu używa Server-Sent Events (SSE) do strumieniowania komunikatów o stanie na żywo do przeglądarki podczas ekstrakcji. Zamiast patrzeć na spinner przez 30–60 sekund, widzisz „Przygotowywanie dokumentu…", „Wywołanie gpt-4o-mini…", „Analiza wydarzeń…" w czasie rzeczywistym.
Po zakończeniu ekstrakcji kliknij Eksportuj do Word, aby pobrać sformatowany .docx z każdym wydarzeniem jako oznaczony akapit, cytaty ze źródeł i linię separatora między wydarzeniami.
Prywatność i bezpieczeństwo
Prywatność przez projekt
gpt-4o, gpt-4o-mini) jest skonfigurowany w regionie Europa Zachodnia. Dane przetwarzane za pośrednictwem Azure OpenAI nie są wykorzystywane do szkolenia modelu w ramach domyślnej umowy przedsiębiorstwa.Darmowe dla członków Do Better Norge. Wszystkie silniki dostępne dla każdego członka.