jev-latest
TypeSafe sprendimų modelis: nekuria teksto, o atsako į tipizuotus klausimus apie tekstą arba JSON — pasirenka variantą, įvertina pagal skalę arba pateikia „taip / ne“ su tikimybėmis. Tinka maršrutui parinkti, kreipiniams rūšiuoti, moderavimui ir vertinimui balais; visi vienos užklausos klausimai vertinami lygiagrečiai.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Jev — pagrindinis TypeSafe modelis ir pirmasis naujos klasės System One modelis. Jis nekuria teksto, o greitai priima sprendimus, kuriuos programa gali iš karto naudoti: perduodate būseną (state) — tekstą arba JSON — ir klausimų rinkinį, o atsakyme gaunate tipizuotas reikšmes su kalibruotomis tikimybėmis.
Kalbos modeliai rašo žodžius žmonėms, o Jev, TypeSafe teigimu, artimesnis kodui: atsakymas iš karto yra kodui reikiamos formos, veikimas greitas ir nėra nė vienos reikšmės už nustatytų variantų ribų. Modelis sumanytas taip, kad pakartotinėse užklausose pateiktų stabilius atsakymus.
Kuo System One skiriasi nuo kalbos modelio
- Negeneruoja. Jev nerašo atsakymų naudotojui, nekuria kodo ir nepaaiškina samprotavimo eigos. Galimus atsakymus nustatote jūs — per vieną iš trijų klausimų tipų.
- Mokytas kalibruotiems sprendimams. TypeSafe moko modelį RLCD (Reinforcement Learning for Calibrated Decisions) metodu: tikimybės derinamos prie tikrųjų baigčių ir atspindi neapibrėžtumą. Iš daugelio atsakymų, kurių tikimybė 0,8, maždaug 80% turėtų būti teisingi. Kalibravimas — didelės imties savybė, o ne atskiro atsakymo teisingumo garantija.
- Kitoks mokymo tikslas. Pokalbių modeliai mokomi patikti žmonėms (RLHF), o tai, TypeSafe pastebėjimu, skatina pataikavimą ir užtikrintai skambančias klaidas. Vienas iš RLHF bendraautorių, Diogo Almeida, yra TypeSafe vienas iš įkūrėjų.
Pavadinimas nurodo „Sistemą 1“ iš Danielio Kahnemano knygos „Mąstymas, greitas ir lėtas“: greitą intuityvų vertinimą, priešingą lėtam apgalvotam „Sistemos 2“ mąstymui. Jev sukurtas greitiems siauriems vertinimams.
Trys klausimų tipai
Klausimas — vienas būsenos vertinimas, atsakymas — reikšmė, kurią kodas lygina su slenksčiu, rūšiuoja arba perduoda toliau.
- Choice — varianto pasirinkimas. Kreipiniui skirtas skyrius, prekės kategorija, kodo fragmento kalba. Variantai — žodynas „variantas → aprašymas“, iki 255 variantų. Atsakyme — pasirinktas
choice, visų variantų tikimybėsprobabilities(jų suma 1) ir užtikrintumasconfidence. Jei sąrašas gali neapimti visų atvejų, pridėkite „kita“ arba „nė vienas iš išvardytų“. - Score — įvertinimas pagal skalę. Vieta jūsų aprašytoje sutvarkytoje skalėje: klaidos rimtumas, kliento susierzinimas, įgūdžio lygis. Nuo 2 iki 10 lygių, nuo žemiausio iki aukščiausio; kiekvieną lygį modelis vertina atskirai, nematydamas jo numerio ir kaimyninių lygių. Atsakyme —
score(lygių numerių, padaugintų iš jų tikimybių, suma, todėl reikšmė gali būti tarp lygių),legendsu lygių aprašymais,probabilitiesirconfidence. - Noul — taip arba ne. Ar teiginys teisingas. Atsakymas
noul— „taip“ tikimybė nuo 0 iki 1: arti 1 — užtikrintas „taip“, arti 0 — užtikrintas „ne“, arti 0,5 — modelis abejoja. Atskiroconfidencenėra: vienas skaičius visiškai apibūdina atsakymą. Neprivalomascriteriapatikslina, ką laikyti „taip“, o ką — „ne“.
Kaip pasirinkti: žinomi variantai be tvarkos — choice; spektro pakopos — score; grynas „taip / ne“, kur svarbi pati tikimybė, — noul. Noul 0,5 — vienodos „taip“ ir „ne“ tikimybės, o ne „vidutinis lygis“: laipsnį matuoja score. Iš dviejų tinkamų tipų rinkitės tą, pagal kurį kodas iš karto veikia: choice — šakos, score — slenkstis, noul — if.
Tipus galima maišyti vienoje užklausoje. Atsakymas visada apribotas jūsų variantais ir nepriklauso nuo kitų klausimų: klausimus galima pridėti ir pašalinti nekeičiant likusių atsakymų.
Būsena
Būsena — tai, ką modelis vertina: kliento pranešimas, dokumento fragmentas, duomenų bazės įrašas arba jūsų programos būsena.
- Eilutė — kai tekstas vienas: pranešimas, straipsnis, ištrauka.
- Objektas — pavadinti laukai, susiję įrašai, programos būsena. TypeSafe pataria daugumai užklausų naudoti objektą: kiekviena dalis turi aiškų pavadinimą.
- Masyvas — pranešimų arba įrašų seka.
Renkite jį kaip medžiagą ekspertams: susirašinėjimą, užsakymą ir grąžinimo taisykles pateikite kartu, jei sprendimui reikia juos palyginti. Turinį laikykite būsenoje, vertinimus — klausimuose. Jei klausimas susijęs su viena būsenos dalimi, jame nurodykite kelią iki jos tarp atvirkštinių kabučių, pavyzdžiui, ticket.messages[0].text.
Kaip pateikti klausimus
- Vienas greitas vertinimas kiekvienam klausimui. Geras klausimas — toks, į kurį išmanantis žmogus, turintis reikiamą kontekstą, atsakytų per sekundę: „Ar pranešimas skubus?“. „Išanalizuok pranešimą ir nuspręsk, ką daryti“ — jau lėtas samprotavimas, jį reikia išskaidyti į paprastus klausimus.
- Visas klausimas —
instructions. Klausimo raktas, pavyzdžiui,refund_requested, reikalingas tik jūsų kodui ir modeliui neperduodamas. - Visi klausimai apie vieną būseną — viena užklausa. Modelis juos vertina lygiagrečiai: TypeSafe duomenimis, papildomi klausimai beveik nepailgina atsakymo laiko ir kainuoja tik savo tokenus. Klausimas „dėl visa ko“ beveik nieko nekainuoja — kodas pats nuspręs, kurių atsakymų reikia.
- Sudėtingas vertinimas — dalimis. Užuot prašę „įvertink startuolio paraišką“, atskirai klauskite apie rinkos dydį, techninį įgyvendinamumą ir skirtumus nuo konkurentų, o galutinį įvertinimą apskaičiuokite kode su svoriais. Pasikeitus prioritetams keiskite svorius, o ne perrašykite klausimą.
- Priklausomi klausimai — antra užklausa. Vienos užklausos atsakymai nėra vienas kito kontekstas. Antros užklausos reikia tik tada, jei jos neįmanoma sudaryti be pirmojo atsakymo: reikia įkelti duomenis arba pasirinkti kito klausimo variantus.
- Ilgas klausimas — objektu.
instructionsircriteriapaprastai yra eilutės, bet gali būti objektas arba masyvas: klausimas viename lauke, duomenys — kituose. Taip patogu vienu klausimu lyginti gyvenimo aprašymą su duomenų bazės įrašais.
Užtikrintumas
Choice ir score confidence nuo 0 iki 1 parodo, kiek tikimybė sutelkta viename atsakyme: 1 — visa viename variante, 0 — po lygiai visuose. Score atveju kaimyninis lygis mažina užtikrintumą mažiau nei tolimas. Noul atveju užtikrintumas — pati reikšmė: kuo toliau nuo 0,5, tuo tvirtesnis atsakymas.
TypeSafe pataria naudoti tris intervalus:
- Didelis užtikrintumas — veikite automatiškai.
- Vidutinis — veikite atsargiai, pavyzdžiui, paprašykite naudotojo patvirtinti.
- Mažas — perduokite atvejį žmogui, patikslinkite užklausą arba prijunkite atsarginį kelią, pavyzdžiui, galingesnį modelį su samprotavimu.
Kuo brangesnė klaida, tuo griežtesnis slenkstis: negrįžtamiems veiksmams — aukštesnis nei skaitymui. Atsakymas pasako, ką pasirinkti, o užtikrintumas — ar verta veikti. Slenksčius parinkite pagal savo duomenis, lygindami užtikrintumą su tikslumu.
Kaip kurti sistemą aplink Jev
Jev skirtas ne agentams, kurie patys pasirenka kitą žingsnį ir kiekviename cikle gali nukrypti, o programoms, kuriose procesą valdo kodas, o modelis atsako į siaurus prasmės klausimus. Aštuoni projektavimo žingsniai pagal TypeSafe:
- Viską, ką galima padaryti kodu, darykite kodu — patikimai ir pigiai.
- Į būseną — tik tai, ko reikia dabartiniams klausimams; nauji faktai — iš savo žinių bazės, o ne iš modelio atminties.
- Struktūra būsenoje: įdėtinis JSON, o klausime — kelias iki reikiamo lauko tarp atvirkštinių kabučių, jei taip sumažėja dviprasmybė.
- Kuo siauresni ir konkretesni klausimai — TypeSafe teigimu, tai galbūt svarbiausia taisyklė: platus klausimas po vienu atsakymu paslepia kelis vertinimus.
- Struktūra klausimuose: pats klausimas trumpas; paaiškinimai, pavyzdžiai ir jūsų bazės reikšmės — gretimuose objekto
instructionsarbacriterialaukuose, o ne vienoje ilgoje eilutėje. - Daug nepriklausomų klausimų apie vieną būseną vienoje užklausoje — daugiau naudos už kiekvieną dolerį.
- Atsakymus sujungia kodas: taisyklėmis, svertine suma arba kaip požymius klasikiniam mašininio mokymosi modeliui.
- Šakojimas pagal užtikrintumą: neužtikrinti atvejai — žmogui arba modeliui su samprotavimu.
Jev nėra pokalbių ar kodo automatinio užbaigimo modelis, todėl jo negalima įdėti į programavimo agentą vietoje kalbos modelio. Tačiau agentas gali jums parašyti kodą, kuris kviečia Jev ten, kur reikia greito kalibruoto atsakymo.
Kur taikomas
- Foninė automatizacija — sprendimai, paleidžiami milijoną kartų be šalia esančio žmogaus.
- Tikrasis laikas — TypeSafe duomenimis, dauguma užklausų įvykdomos maždaug per 100 ms: pakanka apdorojimui realiuoju laiku ir sąsajoms.
- Didieji duomenys — paieška milžiniškuose tekstynuose, agentų darbo žurnalų žymėjimas, prognozių požymiai.
- Kitų modelių tikrinimas — užklausos, išgauti duomenys, samprotavimas, įrankių kvietimai: ribojimų apėjimas, citavimo klaidos, išgalvota informacija.
- Paieška ir reitingavimas — poros „užklausa — kandidatas“ atitiktis, pakartotinis reitingavimas, konteksto atranka.
- Šakojimas pagal ketinimą — ko nori naudotojas ir kokio apdorojimo reikia: paprastos logikos, specializuoto modelio ar žmogaus; tema, sudėtingumas ir rizika lemia, kuriam kalbos modeliui perduoti užklausą.
- Apsauginės patikros — kalbos modelio įvestis, išvestis ir įrankių kvietimai: įterptos instrukcijos, taisyklių pažeidimai, asmens duomenų nutekėjimas.
- Pagalba klientams — kreipinio tema ir ketinimas, skubumas, susierzinimas, pasitraukimo rizika, prašymas grąžinti pinigus, eilė.
- Moderavimas — pagal jūsų platformos taisykles: toksiškumas, patyčios, šlamštas, sukčiavimas, pavojingi patarimai, asmens duomenys; pagal rimtumą ir užtikrintumą — praleisti, įspėti, patikrinti arba užblokuoti.
- Sritys — draudžiamieji įvykiai, finansiniai tyrimai ir KYC, sutartys ir reklama, prekių kortelės, darbuotojų atranka, potencialūs klientai, žaidimai, rizika, paklausos prognozė, žinių grafai, mokslinės apžvalgos, semantinės kodo patikros CI sistemoje.
Charakteristikos
jev-latest— naujausios stabilios versijos pseudonimas, dabar Jev 1.13; atsakiusi versija pateikiama laukemodel, pavyzdžiui,jev-1.13.0. Atsiradus naujai versijai pseudonimas nukreipiamas į ją, o atsakymai gali pasikeisti be jūsų pakeitimų — stebėkite šį lauką, jei slenksčiai parinkti konkrečiai versijai.- Kontekstas — 64K tokenų vienai užklausai: būsena ir visi klausimai kartu; būsena su ilgiausiu klausimu — iki 32K. Modelis būseną perskaito vieną kartą ir visus klausimus tikrina pagal ją lygiagrečiai.
- Įvestis — tik tekstas: eilutė, JSON objektas arba tekstų masyvas. Vaizdai, garsas ir vaizdo įrašai kol kas nepalaikomi — iš anksto paverskite juos tekstu.
- Kalba — pagrindinė mokymo kalba yra anglų, ja tikslumas šiuo metu didžiausias. Kitas kalbas, įskaitant kinų, japonų ir korėjiečių, modelis priima, tačiau tikslumas mažesnis — patikrinkite pagal savo duomenis.
- Ailoot API kainos ir atsiskaitymas — sąlygos priklauso nuo pasirinkto metodo ir yra nurodytos jo kortelėje.
- Pritaikymas — Jev papildomai nemokomas pagal užsakovo duomenis: savo medžiagą pateikite
state, dalykinės srities taisykles —instructionsircriteria. - Duomenys — TypeSafe praneša, kad Jev nemokomas naudojant klientų užklausas ir atsakymus.
Žinomos silpnosios Jev 1.13 vietos
TypeSafe atvirai išvardija dabartinės versijos silpnąsias vietas ir žada daug ką pataisyti kitose versijose. Modelis greitas, kalibruotas ir gerai vertina vadovaudamasis sveiku protu, tačiau:
- Skaito pažodžiui. Atsako į parašytą, o ne numanomą klausimą: išlygas, neiginius ir neišreikštas sąlygas supranta pažodžiui. Tikslų kriterijų ir ribinius atvejus rašykite
criteria; neišvengiamą interpretavimą išskaidykite į du pažodinius klausimus. - Ne skaičiuotuvas. Simbolių, pasikartojimų ir sąrašo elementų skaičiavimas nepatikimas, klaida didėja didėjant apimčiai — skaičiuokite kode, pateikite po klausimą kiekvienam kandidatui. Spalvas hex arba RGB formatu modelis supranta prasčiau nei pavadinimus.
scoretinka slenksčiui, bet ne tiksliam skaičiui tarp lygių. - Datos ir laikas. Kuri data ankstesnė, kiek laiko tarp jų, ar data patenka į laikotarpį — nepatikima, ypač maišant formatus ir santykines datas. Datos dalis išgaukite per choice (su variantu „nenurodyta“), lyginkite kode.
- Netiesioginiai klausimai. Dvigubi neiginiai ir klausimai apie savybės savybę mažina tikslumą. Rašykite tiesiai, būsenos dalis vadinkite jų pavadinimais.
- Perteklinė būsena. Pašalinis tekstas mažina tikslumą. Filtruokite kode, o jei negalima — atsijokite nereikšmingą turinį noul klausimais.
- Priešiškas tekstas. Pagal numatymą modelis nesitiki spąstų būsenoje: įterpta instrukcija arba tekstas, ginčijantis savo klasifikaciją, gali pakeisti atsakymą. Rašykite tikslius kriterijus ir prieš paleisdami tikrinkite ribinius atvejus.
- Prieštaravimai. Jei
instructionsircriteriaprašo skirtingų dalykų — pavyzdžiui, noul „taip“ aprašyta kaip „ne“, — tikslumas mažėja. Kriterijai — klausimo tęsinys. - Variantų tvarka. Kartais modelis linksta prie pirmojo choice varianto. Sukeiskite variantus ir patikrinkite, ar atsakymas nesikeičia.
- Generavimas. Jev nemokytas rašyti tekstą. Duomenims išgauti raskite kandidatus reguliariąja išraiška arba generatyviu modeliu, o Jev tegul pasirenka teisingą per choice.
Ailoot · System One POST /v1/systemone jev-latest
jev-latestPradžia
TypeSafe sprendimų modelis: nekuria teksto, o atsako į tipizuotus klausimus apie tekstą arba JSON — pasirenka variantą, įvertina pagal skalę arba pateikia „taip / ne“ su tikimybėmis. Tinka maršrutui parinkti, kreipiniams rūšiuoti, moderavimui ir vertinimui balais; visi vienos užklausos klausimai vertinami lygiagrečiai.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- structured
Prieinama Ailoot · įvestys ir metodai
Ailoot · System One POST /v1/systemone
- Įvestis
text- Išvestis
structured- Kontekstas
- 64 000 tokens
- Išvesties formatas
- json
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos jev-latest | Numatyta— |
Laukasstate | Tipasstring|object|array | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasquestions | Tipasobject | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias objekto laukų skaičius: 1 | Numatyta— |
Laukasquestions.<id>.type | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos noul, choice, score | Numatyta— |
Laukasquestions.<id>.instructions | Tipasstring|object|array|null | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasquestions.<id>.criteria | Tipasobject|array|null | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: noul: neprivalomi true/false aprašai, kurie gali būti null; choice: kriterijų objektas; score: netuščias kriterijų masyvas | Numatyta— |
Laukasstream | Tipasboolean|null | ReikalavimasNeprivaloma | Reikšmės ir ribos false, null | Numatyta— |
Įvesties medžiagos deriniai
noul · Privaloma: state, questions.<id>.type=noul
choice · Privaloma: state, questions.<id>.type=choice, criteria object
score · Privaloma: state, questions.<id>.type=score, nonemptycriteriaarray
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrasmaterial_types | Specifikacijatext |
Parametrasrequired | Specifikacijamodel, state, questions |
Parametrasoptional_controls | Specifikacijanull |
Parametrascontent_type | Specifikacijaapplication/json |
Gyvavimo ciklas: exact retained published method
Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.
Planai
Ailoot metodų įkainiai
POST /v1/systemone- Įvestis
- ≈0,000084 USD / 1K
- Išvestis
- 0,00 USD / 1K
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot · System One
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "jev-latest", "state": "", "questions": {"is_urgent": {"type": "noul", "instructions": "Does the supplied customer message express urgency?"}}}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["state"]=text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Gauti ir išsaugoti rezultatus
Ailoot · System One
json
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite kiekvieną atsakymą pagal pateiktą klausimo ID, tikimybę ir legendą; pasikliovimo formulei, kurioje naudojamas n, reikia n>1, tačiau tai nenustato API taisyklės dėl mažiausio pasirinkimų skaičiaus.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasanswers.<id>.type | Tipasstring |
Laukasanswers.<id>.noul | Tipasnumber |
Laukasanswers.<id>.choice | Tipasstring |
Laukasanswers.<id>.score | Tipasnumber |
Laukasanswers.<id>.confidence | Tipasnumber |
Laukasanswers.<id>.probabilities | Tipasobject |
Laukasanswers.<id>.legend | Tipasobject |
Laukasusage | Tipasobject |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
Pseudonimai
Modelių pseudonimai
Ailoot jev-latest
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · jev-latest
- Kokios įvestys ir rezultatai prieinami?
POST /v1/systemone·jev-latest:text→structured- Kokius laukus naudoja užklausa?
POST /v1/systemone·jev-latest:model,state,questions,stream- Kokie apribojimai taikomi?
POST /v1/systemone·jev-latest:ctx:64000