---
title: Jev AI v LiteTMS: kde všude pomáhá
description: Zjistěte, jak model Jev AI od TypeSafe pomáhá v LiteTMS vyhodnocovat zprávy od řidičů, místa a importy. Včetně ukázek v JSON a Javě.
slug: where-jev-helps-in-litetms
locale: cs
date: 2026-09-24
updated: 2026-09-25
category: technology
tags: jev, ai, transport, driver-chat, data-import
author: LiteTMS Team
draft: false
---

Model umělé inteligence Jev od společnosti [TypeSafe AI](https://typesafe.ai/blog/introducing-system-one-models-and-jev?utm_source=litetms.eu) jsme integrovali do několika pracovních postupů v LiteTMS. Pomáhá zachytit zprávy od řidičů, které vyžadují pozornost, ověřit, zda dva různé názvy míst označují stejné město, navrhnout způsob načtení importního souboru a zabránit zbytečnému překladu zprávy, která už je v jazyce příjemce. Jde o dílčí vyhodnocení přímo uvnitř dopravního systému (TMS), nikoli o dalšího chatovacího asistenta pro dispečink.

Pokud se s tímto názvem setkáváte poprvé, základní princip vysvětluje [náš první článek o Jev](/en/blog/jev-ai-decisions-transport). Zatímco generativní AI vytváří textovou odpověď na zadaný prompt, Jev je navržen tak, aby odpovídal na konkrétní, úzce vymezené otázky, například: „Vyžaduje tato zpráva odpověď?“ LiteTMS pak toto vyhodnocení využívá v příslušném pracovním postupu.

## Zprávy od řidičů, které si zaslouží zvýšenou pozornost

Řidič může poslat běžnou stavovou zprávu, položit dotaz nebo nahlásit problém. Dispečink by neměl mít povinnost přistupovat ke každé zprávě se stejnou naléhavostí. Do chatu s řidičem jsme proto přidali kontrolu pomocí modelu Jev, která příchozí zprávy třídí podle tématu a posuzuje, zda dispečer musí zasáhnout. Funguje jak s psaným textem, tak s hlasovými zprávami po jejich přepisu.

Hlášení „Mám defekt na autě“ má zkrátka jinou váhu než „Jsem na místě“. Zpráva vyhodnocená jako vyžadující akci se může zobrazit v přehledu prioritních úkolů a technická závada vozidla může navíc spustit urgentní notifikaci. Dispečer má stále k dispozici celou konverzaci, může odpovědět a označit záležitost za vyřízenou. Jev řidiči sám neodpovídá ani nerozhoduje o způsobu řešení poruchy.

U zprávy o defektu pneumatiky může vyhodnocení umělou inteligencí vypadat ve formátu JSON následovně:

```json
{
  "input": { "driver_message": "I have a flat tyre and cannot continue." },
  "jev_assessment": {
    "category": "vehicle_problem",
    "needs_action_probability": 0.94
  }
}
```

LiteTMS načte kategorii i skóre nutnosti akce. Problém s vozidlem s takto vysokým skóre se může označit jako urgentní, takže dispečink ihned ví, že má reagovat.

## Názvy míst v objednávkách a přepravních dokladech

V dokladu může být uvedeno „Köln“, zatímco v objednávce přepravy stojí „Cologne“. Doslovné porovnání textu vidí dvě různá slova, ačkoli obě označují totéž město. Přesně pro tyto případy jsme kontrolu pomocí Jev zařadili do příjmu objednávek s asistencí AI a do ověřování míst v nákladních listech CMR.

Při zadávání objednávky pomáhá vybrat z navržených míst nebo ponechat nejistou shodu k ruční kontrole. Při kontrole CMR dokáže přesvědčivé potvrzení stejného města vyřešit *neshodu v názvu místa*, která by jinak vyvolala upozornění. Samotný doklad vytěžuje samostatný krok AI, zatímco Jev posuzuje, zda si názvy míst odpovídají.

U dvou názvů měst může vyhodnocení vypadat takto:

```json
{
  "input": { "document_place": "Köln", "order_city": "Cologne" },
  "jev_assessment": { "same_city_probability": 0.92 }
}
```

Vysoké skóre shody měst může nesoulad v názvech vyřešit. Ostatní části kontroly CMR zůstávají oddělené.

## Import souborů s neznámým záhlavím

Převod dat do nového systému často začíná tabulkou. V jednom souboru je „registrační značka“, v jiném „SPZ“ a třetí má záhlaví sloupců, která se rozpoznávají jen stěží. LiteTMS nejprve použije standardní pravidla pro párování. Tam, kde tato pravidla nestačí, dokáže Jev navrhnout, jaké záznamy soubor obsahuje a které sloupce odpovídají daným polím.

Návrhy jsou označeny jako vytvořené s pomocí AI a uživatel importující data si může mapování před vytvořením záznamů zkontrolovat. Tento přístup jsme zapojili do obecného průvodce importem i do importu obchodních případů v CRM a nákladů. Související kontrola navíc dokáže rozpoznat firmu, která už je v adresáři partnerů, i přes odlišný zápis, a při dostatečné jistotě shody pomáhá předcházet vzniku duplicit.

Představme si tabulku vozového parku, kde sloupec „Unit ref.“ označuje registrační značky a „Internal ID“ interní kódy vozidel dopravce. Ukázkové hodnoty pomohou modelu Jev oba sloupce rozlišit. Pokud běžná pravidla pro záhlaví ponechají pole pro registrační značku nevyplněné, vyhodnocení může vypadat takto:

```json
{
  "input": {
    "columns": {
      "col_0": { "header": "Unit ref.", "examples": ["WX 4821A", "PO 7619K"] },
      "col_1": { "header": "Internal ID", "examples": ["FLEET-17", "FLEET-42"] }
    },
    "field_to_match": "registration_number"
  },
  "jev_assessment": { "column": "col_0", "probability": 0.93 }
}
```

LiteTMS pak může pro registrační značky navrhnout první sloupec. Dispečink či administrativa toto přiřazení před importem záznamů zkontroluje. Pokud žádný sloupec neodpovídá, Jev zvolí hodnotu „none“ a ponechá pole na ručním namapování uživatelem, místo aby shodu vynucoval.

## Drobná kontrola před překladem v chatu

Někdy je zpráva již napsána v jazyce osoby, která ji čte. Než LiteTMS spustí úplný překlad chatu, může požádat model Jev o kontrolu. Spolehlivá shoda umožní systému zobrazit původní zprávu, zatímco nejistá odpověď ji pošle běžnou cestou překladu. Rozhodovací proces tak zůstává přímočarý: čtenář překlad dostane vždy, když si systém není přeskočením stoprocentně jistý.

Vezměme si řidiče, který píše „Jestem na miejscu, czekam na załadunek“, což znamená „Jsem na místě, čekám na nakládku“. Pro uživatele v polštině může kontrola přinést toto vyhodnocení:

```json
{
  "input": {
    "message": "Jestem na miejscu, czekam na załadunek.",
    "reader_language": "pl"
  },
  "jev_assessment": { "language": "pl", "probability": 0.96 }
}
```

Zjištěný jazyk odpovídá jazyku čtenáře, takže LiteTMS může zobrazit originál. Pro čtenáře v angličtině tatáž polská zpráva překlad stále vyžaduje. Krátká odpověď typu „OK“ nese méně informací: pokud nelze jazyk spolehlivě určit, zůstává k dispozici standardní překladová cesta.

## Jak vyhodnocení modelem Jev zapadá do LiteTMS

Jev dává systému LiteTMS užitečný signál, dispečink má však práci stále plně pod kontrolou. Integrace jsou přímo vestavěné a spouštějí se při aktivaci rozhodovací vrstvy platformy podle nastavení společnosti. Pokud je Jev nedostupný, běžné pracovní postupy pro chat, dokumenty a import pokračují beze změny.

## Technický pohled: TypeSafe Jev, JSON a Java

Pro čtenáře, kteří chtějí vidět technické pozadí, je vhodným výchozím bodem samotný odesílaný dotaz. Jak ukazuje [rychlý průvodce od TypeSafe](https://docs.typesafe.ai/introduction/quickstart?utm_source=litetms.eu), požadavek obsahuje `state`, tedy informace k posouzení, a `questions`, což jsou vyhodnocení, která se mají provést. Otázka typu `noul` vrací číslo mezi 0 a 1 představující pravděpodobnost, že dané tvrzení platí. Otázka typu `choice` vybírá z pojmenovaných možností, což využíváme pro určení kategorie zprávy.

Zde je samotná akční otázka s použitím identifikátoru modelu nakonfigurovaného v naší integraci přes OpenRouter:

```json
{
  "model": "typesafe/jev-1.13",
  "state": {
    "driver_message": "I have a flat tyre and cannot continue."
  },
  "questions": {
    "needs_action": {
      "type": "noul",
      "instructions": "The dispatcher must act on driver_message today: reply, give instructions, inform the customer or arrange help. Routine updates and thanks need no action."
    }
  }
}
```

Příslušná část odpovědi může vypadat následovně:

```json
{
  "answers": {
    "needs_action": {
      "type": "noul",
      "noul": 0.94
    }
  }
}
```

Aplikace přečte hodnotu `answers.needs_action.noul` a uplatní pravidlo. LiteTMS používá pro vyžádání pozornosti u zprávy řidiče prahovou hodnotu `0.55`. Po dekódování JSONu lze stejnou kontrolu zapsat v Javě:

```java
Double probability = 0.94; // Value from answers.needs_action.noul
boolean needsAttention = probability != null
    && Double.isFinite(probability)
    && probability >= 0.55
    && probability <= 1.0;

if (needsAttention) {
    System.out.println("Flag the message for dispatcher review");
}
```

Kód před porovnáním s prahovou hodnotou ověří, zda je hodnota použitelná. V LiteTMS dodává druhou část pravidla posouzení kategorie: technický problém na vozidle, který vyžaduje pozornost, se kvalifikuje i pro urgentní upozornění. Model zprávu vyhodnotí, aplikace určí akci. Pokud odpověď chybí, pokračuje běžný proces chatu.

Prahová hodnota závisí na tom, co následuje. Pro návrh sloupce při importu akceptuje LiteTMS vybraný sloupec s pravděpodobností alespoň `0.60`; pro přeskočení překladu musí být jazyk čtenáře vybrán s jistotou nejméně `0.90`. Skóre `0.85` proto může stačit pro návrh sloupce, který ještě zkontroluje člověk, ale nestačí k přeskočení překladu chatu. Každé pravidlo odráží důsledky daného konkrétního rozhodnutí.

## Často kladené otázky

### Kdo vyvinul Jev AI?

Společnost TypeSafe AI vyvinula Jev jako model typu System One pro strukturovaná rozhodnutí. LiteTMS jej integruje do specifických pracovních postupů, jako je vyhodnocování zpráv od řidičů a porovnávání názvů míst.

### K čemu se Jev AI v LiteTMS používá?

Jev je napojen na třídění zpráv od řidičů, kontrolu shody měst při zadávání objednávek a v CMR, návrhy při importu a kontrolu shodného jazyka před překladem v chatu. Nastavení platformy a firmy určují, zda je konkrétní funkce v daném pracovním prostoru aktivní.

### Odpovídá Jev řidičům nebo schvaluje CMR dokumenty?

Ne. Dokáže označit zprávu od řidiče k vyřízení a posoudit, zda dva názvy míst odkazují na stejné město. Zprávu řeší člověk a výsledek shody měst neschvaluje celý CMR dokument.

### Co se stane, když je Jev nejistý nebo nedostupný?

LiteTMS zachová stávající pracovní postup. Pokud je například kontrola jazyka nejistá, použije se běžný překlad chatu, a při nejistém návrhu importu zůstane mapování k ruční kontrole uživatelem.
