Choice, Score i Noul

Porównaj Choice, Score i Noul przed napisaniem żądania.

Każde wywołanie Jev jest mapą typowanych pytań dotyczących jednego stanu. Choice wybiera ze zdefiniowanego zestawu obejmującego maksymalnie 255 opcji. Score umieszcza stan na 2–10 uporządkowanych poziomach i może wskazać wartość między dwoma poziomami. Noul zwraca P(tak) jako noul w [0, 1] i nie ma osobnego pola pewności. Wybierz Primitives pasujące do decyzji, a działania arytmetyczne, daty i generowanie pozostaw innym narzędziom.

Jak wybrać Primitives

Użyj Choice, gdy odpowiedzią jest jedna nazwana opcja: kolejka, umiejętność, etykieta klasy lub następny link. Pytanie zadawane przez TypeSafe brzmi: „Która z tych opcji?”. Zwracane są wybór, prawdopodobieństwa i pewność. Criteria to mapa zawierająca maksymalnie 255 opcji. Jeśli masz setki linków do Wikipedii, nie zmieścisz ich w jednym Choice; demo Wikiracing najpierw przyznaje im wyniki, a potem wybiera z krótkiej listy.

Użyj Score, gdy odpowiedź jest stopniem na krótkiej, uporządkowanej skali: spokojny / sfrustrowany / bardzo sfrustrowany albo dotkliwość 1-5. Zwracane są wynik, legenda, prawdopodobieństwa i pewność. Kryteria mają postać uporządkowanej tablicy od 2 do 10 poziomów. Nie interpoluj wyniku do dokładnej wielkości. Poziomy Jev 1.13 słabo nadają się do odtwarzania liczby między dwoma szczeblami; wartości oczekiwanej używaj wyłącznie do kontroli progu.

Użyj Noul, gdy odpowiedzią na pytanie jest „tak” lub „nie”, np. „Czy to prawda?”. Zwraca wartość noul od 0 do 1. Kryteria mogą opcjonalnie opisywać prawdę i fałsz. Nie ma pola poziomu pewności. Noul blisko 0.5 oznacza niepewność, a nie średnie natężenie. Nie zakładaj, że Noul jest równoważny dwuwariantowemu Choice, ani nie przenoś między nimi progu dostrojonego dla jednego z nich. Strona jaggedness w TypeSafe pokazuje na tym samym zgłoszeniu Noul zwrotu środków o wartości 0.22 obok twierdzącego Choice o wartości 0.01.

Choice, Score, and Noul primitives with return fields and limits
Choice, Score i Noul wraz ze zwracanymi polami i limitami.

Choice

pole typu
choice
question
Która z tych opcji?
returns
wybór, prawdopodobieństwa, pewność
criteria
mapa obejmująca maksymalnie 255 opcji
maksymalna liczba opcji
255

Score

pole typu
score
question
Który poziom?
returns
wynik, legenda, prawdopodobieństwa, pewność
criteria
uporządkowana tablica od 2 do 10 poziomów
minimalne poziomy
2
maksymalna liczba poziomów
10

Noul

pole typu
noul
question
Czy to prawda?
returns
noul (od 0 do 1)
ma poziom pewności
false
criteria
opcjonalne opisy prawdy/fałszu

Wspólne pola odpowiedzi

Identyfikator żądania
Identyfikator wywołania używany do łączenia śladów i ponowień w dziennikach.
timestamp
Czas serwera dołączony do obudowy odpowiedzi, a nie powód do ponownego zadania pytania.
latency
Zmierzony czas trwania tej oceny. TypeSafe podaje dla Jev pełny czas 70ms-500ms od początku do końca.
metadata
Opcjonalne dodatkowe dane obok typowanych odpowiedzi. Dane produktu przechowuj w stanie, nie tutaj.

Pytania równoległe i identyfikatory

Pytania w jednym żądaniu korzystają z tego samego stanu, działają niezależnie i równolegle, a dodawanie kolejnych niemal nie wpływa na opóźnienie. W jednej mapie możesz łączyć Choice, Score i Noul. Klucze określasz samodzielnie: pilność, dział, frustracja. Odpowiedź wraca pod tym samym kluczem. Klucz nie jest wysyłany do modelu bazowego ani używany podczas wnioskowania.

Ta reguła dotycząca identyfikatorów jest ważna podczas generowania kluczy w pętli. Przykład zliczania na stronie jaggedness zadaje po jednym Noul dla każdego elementu listy (item_0, item_1, …), po czym sumuje odpowiedzi w Python. Jev nigdy nie widzi tych nazw jako tokenów. Zachowuj stałe nazwy w logach, aby móc powiązać ponowione próby z pierwotną mapą.

Wspólne metadane zwracane w każdej odpowiedzi Primitives obejmują requestId, timestamp, latency i metadata. Używaj requestId do łączenia śladów. timestamp i latency traktuj jako informacje o transmisji, a nie powód do ponownego zadania pytania. metadata to opcjonalna zawartość dołączona do głównych danych. Najpierw porównaj trzy Primitives, a następnie odczytuj wspólne pola jako obudowę typowanej odpowiedzi.

Limity w praktyce

Limit 255 opcji w Choice jest nieprzekraczalny, a nie jedynie zalecany. Wikiracing obchodzi go, tworząc krótką listę za pomocą Score, a następnie używając Choice. Jeśli taksonomia obejmuje 400 etykiet, potrzebujesz takiego samego dwuetapowego schematu albo hierarchii Choice. Nie licz na to, że API zaakceptuje 256.

Od 2 do 10 poziomów Score służy do krótkich skal, które człowiek może przeczytać na głos. 100-punktowa skala jakości to niewłaściwe Primitives; podziel ją na niepodzielne Scores i dodaj je w kodzie. Wyniki między poziomami, takie jak 1.4, są oczekiwane. Odtwarzanie z tych ułamków kwoty w dolarach — nie.

Noul nie ma pola poziomu pewności, więc decyzja o przepuszczeniu wyniku musi opierać się na wartości noul oraz ewentualnym drugim pytaniu. Typowa para to Noul dla pytania „czy to mieści się w zakresie” oraz Choice dla pytania „do której kategorii to należy”, zadawanego tylko przy wysokiej wartości noul. Rejestr niezmienników jaggedness ostrzega, by nie traktować tych dwóch liczb jako tej samej statystyki.

Żądanie łączące wszystkie trzy Primitives dla jednego zgłoszenia to zwykła struktura, a nie zaawansowana sztuczka. Pilność jako Noul, dział jako Choice, frustracja jako Score, a potem kod. Tę samą mapę pokazuje szybki start w curl. Porównanie na tej stronie ma pomóc wybrać typ przed napisaniem JSON-u.

Wspólne pola obudowy nie są czwartym Primitives. requestId, timestamp, latency i metadata są przesyłane z każdą odpowiedzią, aby umożliwić śledzenie wywołania. Dane produktu należą do stanu. Jeśli umieszczasz zasady w metadata, przenieś je do obiektu faktycznie odczytywanego przez Jev.

Pisz kryteria tak, jakby jutro miał je przeczytać nowy członek zespołu. Nazwy opcji w Choice i poziomów w Score są częścią pytania. Niejasne etykiety prowadzą na produkcji do przesadnie dosłownej interpretacji.

Noul to nazwa własna. Zachowaj jej pisownię, nawet gdy reszta żądania jest napisana po angielsku.

Źródła