Jev: model AI, który decyduje, zamiast gadać
Większość wywołań AI w aplikacjach nie potrzebuje akapitu tekstu. Potrzebuje odpowiedzi na proste pytanie: czy to zgłoszenie dotyczy płatności? Czy klient jest sfrustrowany? Czy ten plik zawiera dane osobowe?
Mimo to sięgamy po GPT-4, Claude’a albo Gemini — modele zaprojektowane do generowania tekstu dla ludzi. Są powolne (kilka sekund na odpowiedź), drogie i mają skłonność do odpowiadania nie tak, jak chcemy. Zamiast "billing" zwrócą "Najlepsza kategoria to billing." albo uszkodzony JSON.
Jev robi coś innego. To model od TypeSafe AI — firmy założonej przez Diogo Almeidę, byłego badacza OpenAI i współtwórcę RLHF/InstructGPT. Zamiast generować tekst, Jev podejmuje ustrukturyzowane decyzje programistyczne. Firma nazywa to „System One Model" — nawiązanie do podziału Kahnemana na szybkie, automatyczne osądy (System 1) i wolne wnioskowanie (System 2).
Jak to działa
Wysyłasz do Jev dwa elementy: stan (dowolny kontekst — tekst, JSON, kod) i pytania (do 50 naraz w jednym wywołaniu HTTP). W odpowiedzi dostajesz ustrukturyzowane dane, nie ciąg znaków.
Są trzy typy pytań:
- Choice — wybór jednej opcji z menu (do 255 wariantów). Zwraca wybraną opcję i rozkład prawdopodobieństwa dla wszystkich.
- Score — ocena na skali (np. 1–3 lub 2–10). Zwraca ułamkowy wynik jako średnią ważoną.
- Noul — pytanie tak/nie. Zwraca skalibrowane prawdopodobieństwo $P \in [0, 1]$, że dane stwierdzenie jest prawdziwe.
Format odpowiedzi jest zawsze zgodny ze zdefiniowanym typem. Nie ma co parsować.
Ile to kosztuje i jak szybko działa
| Jev | GPT-4 / Claude | |
|---|---|---|
| Tokeny wejściowe | $0,04–$0,042 / 1M | kilka dolarów / 1M |
| Tokeny wyjściowe | $0,00 (darmowe) | naliczane za każde słowo |
| Czas odpowiedzi | 70–500 ms | kilka do kilkunastu sekund |
| Gwarancja formatu | 100% | wymaga parsowania, podatne na błędy |
Codevolution zmierzył spadek czasu odpowiedzi z 8,6 s do 114 ms przy tym samym zadaniu klasyfikacyjnym.
Nazwa „Jev" pochodzi od Paradoksu Jevonsa: kiedy coś tanieje drastycznie, zużywa się go dużo więcej. Jeśli decyzja AI kosztuje ułamek centa i zajmuje 100 ms, można ją wbudować w tysiącach miejsc w kodzie, gdzie wcześniej było to nieopłacalne.
Przykład w Pythonie
Poniżej ocena wiadomości od klienta — trzy pytania w jednym wywołaniu:
import json
import urllib.request
API_URL = "https://api.typesafe.ai/v1/systemone"
API_KEY = "JEV_live_..." # klucz z console.typesafe.ai
payload = {
"model": "jev-latest",
"state": {
"message": "Kontaktowałem się już 3 razy i nadal czekam na zwrot środków za dubel płatności!"
},
"questions": {
"department": {
"type": "choice",
"instructions": "Do którego działu przekierować zgłoszenie?",
"criteria": {
"billing": "Płatności, zwroty, faktury i podwójne obciążenia",
"technical": "Błędy w aplikacji i problemy techniczne",
"sales": "Zapytania o ceny i nowe plany"
}
},
"urgency": {
"type": "score",
"instructions": "Jak pilna jest ta wiadomość?",
"criteria": {
"1": "Zwykłe zapytanie rutynowe",
"2": "Umiarkowanie pilne",
"3": "Bardzo pilne / wymagające szybkiej reakcji"
}
},
"is_frustrated": {
"type": "noul",
"instructions": "Czy klient brzmi na sfrustrowanego lub poirytowanego?"
}
}
}
req = urllib.request.Request(
API_URL,
data=json.dumps(payload).encode("utf-8"),
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
method="POST"
)
with urllib.request.urlopen(req) as resp:
result = json.load(resp)
answers = result["answers"]
dept = answers["department"]["choice"] # np. "billing"
is_frustrated_prob = answers["is_frustrated"]["noul"] # np. 0.95
if is_frustrated_prob > 0.8:
print(f"Przekierowanie do {dept} z priorytetem dla przełożonego.")
Wynik jest gotowy do sterowania logiką bez żadnego parsowania — dept to string, is_frustrated_prob to float.
Do czego to ma sens
Pierwsze projekty społeczności po premierze pokazują szerszy zakres zastosowań, niż można by się spodziewać:
- sterowanie przeglądarką bez zrzutów ekranu (7 sekund, 0,3 centa za sesję),
- pomijanie fragmentów sponsorowanych na YouTube w czasie rzeczywistym,
- klasyfikacja i porządkowanie pobieranych plików na dysku,
- ocena ryzyka start-upowego w 10 wymiarach jednocześnie,
- routing 57 konwencji kodowania w 14 modułach Pythona — Jev decyduje, który standard pasuje do kontekstu, a duży model tylko weryfikuje.
Jev nie zastępuje GPT-4 ani Claude’a. Robi co innego: wyciąga logikę decyzyjną z promptów i zamienia ją w typowany, szybki, tani interfejs. Jeśli twoja aplikacja pyta LLM o klasyfikację, scoring lub prostą bramkę logiczną — Jev jest tańszą i szybszą alternatywą.
Źródła: Cloud Codes, Codevolution, Omar Kamal, Thomas Reid / Towards Data Science, TypeSafe AI blog