dokumentasi
API

Jev — model pengambilan keputusan

Markdown

Model pengambilan keputusan Jev dari TypeSafe menjawab pertanyaan bertipe tentang teks atau JSON: memilih opsi, menilai pada skala, atau menjawab “ya/tidak” dengan probabilitas. Model ini bukan untuk chat atau generasi teks.

Panduan lengkap
POSThttps://api.ailoot.ai/v1/systemone
Jev — model pengambilan keputusan
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Tolong! Pencairan dana saya terus gagal selama 3 hari.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Apakah ini menunjukkan keadaan mendesak?"
      }
    }
  }' 
200 OK
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}

Jev adalah model pengambilan keputusan kelas System One dari TypeSafe. Model ini tidak menulis teks atau melakukan percakapan: Anda mengirimkan keadaan (state) — teks atau JSON — serta sekumpulan pertanyaan, lalu menerima nilai bertipe beserta probabilitasnya. Berdasarkan nilai tersebut, kode dapat langsung bercabang, mengurutkan, dan merutekan tanpa mengurai teks bebas.

Semua pertanyaan dalam satu permintaan dinilai secara paralel dan saling independen berdasarkan stateyang sama. Menurut TypeSafe, menambah pertanyaan hampir tidak mengubah waktu respons, dan setiap pertanyaan tidak mengganggu pertanyaan lainnya.

AspekRingkasan
Modeljev-latest — alias versi stabil Jev terkini; kartu dalam katalog
MetodePOST /v1/systemone. Ini bukan chat: format OpenAI, Anthropic, dan Gemini tidak sesuai untuk Jev. Respons dikirim sekaligus sebagai satu JSON
Input yang diterimaHanya teks: string, objek JSON, atau array teks. Ubah gambar, audio, dan video menjadi teks terlebih dahulu
Konteks64K token per permintaan — state dan semua pertanyaan digabung; state bersama pertanyaan terpanjang — hingga 32K
BahasaMenurut TypeSafe, model paling akurat dalam bahasa Inggris; bahasa lain diterima tetapi akurasinya lebih rendah — uji dengan data Anda
HargaInput $0.084 per 1 juta token, output gratis

Permintaan

Autentikasi

  • Authorizationheaderwajib

    Kunci Ailoot dalam format Bearer sk-….

Isi permintaan

  • modelstringwajib

    jev-latest.

  • statestring | object | arraywajib

    Yang akan dinilai: string teks atau JSON — pesan pelanggan, data dari basis data, percakapan, atau keadaan aplikasi saat ini. Objek dengan nama kolom yang jelas biasanya lebih praktis daripada satu string.

  • questionsobjectwajib

    Pertanyaan. Anda memilih kuncinya; respons dikembalikan dengan kunci yang sama. Kunci tidak memengaruhi jawaban — pertanyaannya ditentukan dalam instructions.

  • questions.*.typestringwajib

    noul, choice atau score — lihat di bawah.

  • questions.*.instructionsstring | object | arraywajib

    Pertanyaan itu sendiri. Pertanyaan panjang beserta data dapat dikirim sebagai objek: pertanyaan di satu kolom, data di kolom lainnya; rujuk kolom dengan namanya di dalam tanda backtick.

  • questions.*.criteriaobject | array

    Opsi jawaban, berbeda untuk setiap jenis: deskripsi “ya” dan “tidak” untuk noul (opsional), kamus opsi untuk choice, dan daftar tingkat berurutan untuk score.

Jenis pertanyaan

JenisYang ditanyakanYang dikembalikan
noulApakah pernyataan benar: ya atau tidaknoul — probabilitas “ya” dari 0 hingga 1
choiceOpsi mana yang sesuai dari pilihan yang diberikanchoice, probabilities, confidence
scorePosisi state pada skala tingkat Andascore, legend, probabilities, confidence

Berbagai jenis dapat digabungkan dalam satu permintaan.

noul — ya atau tidak

Kolom criteria bersifat opsional: Anda dapat menjelaskan arti “ya” (true) dan “tidak” (false). Jawaban noul — angka dari 0 (tidak) hingga 1 (ya).

"is_urgent": {
  "type": "noul",
  "instructions": "Apakah ini menunjukkan keadaan mendesak?",
  "criteria": {
    "true": "Secara eksplisit membutuhkan penanganan tepat waktu",
    "false": "Tidak ada urgensi yang diungkapkan"
  }
}

choice — memilih opsi

criteria — kamus “opsi → deskripsi”; jika deskripsi tidak diperlukan, isi dengan null. Hingga 255 opsi. Dalam respons, choice — opsi yang paling mungkin, probabilities — probabilitas setiap opsi (totalnya 1), confidence — tingkat keyakinan dari 0 hingga 1.

"department": {
  "type": "choice",
  "instructions": "Tim mana yang seharusnya menangani ini?",
  "criteria": {
    "billing": "Pembayaran, penagihan, pengembalian dana",
    "technical": "Bug, gangguan layanan, integrasi",
    "sales": "Harga, peningkatan layanan, pelanggan baru"
  }
}

score — penilaian pada skala

criteria — tingkat dari terendah ke tertinggi, maksimal 10 (TypeSafe menyarankan setidaknya dua). Dalam respons, score — nilai yang dibobot berdasarkan probabilitas tingkat (dapat berada di antara dua tingkat), legend — nomor tingkat dan deskripsinya, probabilities dan confidence. Menurut TypeSafe, score cocok untuk dibandingkan dengan ambang batas, tetapi bukan sebagai angka pasti di antara tingkat.

"frustration": {
  "type": "score",
  "instructions": "Seberapa tinggi tingkat frustrasi pelanggan?",
  "criteria": ["Tenang", "Frustrasi", "Sangat marah"]
}

Respons

  • modelstring

    Versi model yang memberikan respons. Alias jev-latest beralih ke versi baru seiring waktu: jika Anda telah menyesuaikan ambang confidence untuk versi tertentu, pantau kolom ini.

  • answersobject

    Satu jawaban untuk setiap pertanyaan, dengan kunci yang sama. Setiap jawaban memiliki type, sedangkan choice dan score juga memiliki confidence.

  • usageobject

    input_tokens dan output_tokens. Hanya token input yang dikenai biaya.

Beberapa pertanyaan dalam satu permintaan

Ajukan semua pertanyaan untuk satu state dalam satu permintaan: penilaiannya berlangsung paralel dan state hanya dikirim sekali. Menurut TypeSafe, pada contoh mereka dengan 13 pertanyaan, satu permintaan gabungan 12,2 kali lebih murah dan 10 kali lebih cepat daripada 13 permintaan terpisah yang dikirim berurutan, dengan jawaban yang sama.

Penilaian kompleks sebaiknya dipecah menjadi pertanyaan sederhana, lalu jawaban digabungkan dalam kode: misalnya, alih-alih “nilai pengajuan ini”, lakukan penilaian terpisah atas pasar, kelayakan, dan perbedaannya dari pesaing. Bobot kemudian diubah dalam kode, bukan dalam teks pertanyaan.

{
  "model": "jev-latest",
  "state": "Tolong! Pencairan dana saya terus gagal selama 3 hari.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Tim mana yang seharusnya menangani ini?",
      "criteria": {
        "billing": "Pembayaran, penagihan, pengembalian dana",
        "technical": "Bug, gangguan layanan, integrasi",
        "sales": "Harga, peningkatan layanan, pelanggan baru"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "Seberapa tinggi tingkat frustrasi pelanggan?",
      "criteria": ["Tenang", "Frustrasi", "Sangat marah"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "Apakah ini menunjukkan keadaan mendesak?"
    }
  }
}

Kapan cocok digunakan

  • Perutean. Kirim pesan ke departemen yang tepat dan permintaan ke penangan yang sesuai: kode sederhana, model besar, atau manusia.
  • Pengurutan dan prioritas. Urgensi, sentimen, risiko — dinilai pada skala, dengan ambang dalam kode.
  • Moderasi dan pemeriksaan. Periksa apakah pesan melanggar aturan, sumber mendukung kutipan, atau dokumen memuat jawaban sebelum teks diproses lebih lanjut.
  • Penilaian dan pemeringkatan. Nilai dokumen, kandidat, atau cuplikan yang ditemukan berdasarkan rubrik Anda, lalu tentukan langkah berikutnya dalam kode.
  • Pengganti instruksi “kembalikan JSON” yang rentan gagal. Panggilan yang secara bawaan mengembalikan nilai bertipe, bukan teks yang perlu diurai.

Kapan tidak cocok digunakan

  • Chat, jawaban kepada pengguna, generasi teks atau kode. Jev tidak menulis teks — untuk itu tersedia model teks.
  • Model untuk Claude Code, Cursor, dan agen lainnya. jev-latest tidak dapat menggantikan model agen: agen memerlukan model yang menulis teks dan memanggil alat. Jev dapat dipanggil dari kode yang ditulis agen untuk Anda.
  • Aritmetika, penghitungan, perbandingan tanggal. Menurut TypeSafe, hal tersebut lebih andal dilakukan dalam kode; tanyakan hanya aspek semantis kepada model — misalnya, ekstrak bagian tanggal melalui choice.
  • Gambar, audio, dan video. Model hanya menerima teks — ubah data tersebut menjadi teks terlebih dahulu.

Harga

Hanya token input yang dikenai biaya — kolom usage.input_tokens dalam respons: $0.084 per 1 juta. Token output gratis.

Permintaan pada contoh di halaman ini (296 token input) berbiaya kurang dari $0.0001.

Sebelum permintaan, Ailoot menahan dana dari saldo; setelah respons diterima, biaya didebit sekali berdasarkan penggunaan aktual — cara kerjanya.

Batas

AspekBatas
Seluruh permintaan: state dan semua pertanyaan64K token
state bersama pertanyaan terpanjang32K token
Opsi dalam satu choicehingga 255
Tingkat dalam satu scoredari 2 hingga 10
Inputhanya teks: string, objek JSON, atau array teks

Batas model berdasarkan informasi TypeSafe. Batasan kunci dan saldo Anda berlaku seperti pada model Ailoot lainnya: Kesalahan dan batas.

Kesalahan

Kesalahan dikembalikan dalam format umum Ailoot API: kode, pesan yang jelas, dan Request ID. Kesalahan yang paling sering terjadi pada metode ini:

KodeKapanTindakan
400 invalid_requestIsi permintaan gagal validasi: state, model, atau questions tidak ada; type tidak dikenal; choice memiliki lebih dari 255 opsi; score memiliki lebih dari 10 tingkatPerbaiki permintaan sesuai pesan kesalahan: tanpa perubahan, validasi akan tetap gagal
400 context_length_exceededGabungan state dan pertanyaan melebihi batas modelSaring state dalam kode, sisakan data yang dibutuhkan pertanyaan
401 invalid_api_keyKunci tidak ada atau tidak validKirim kunci melalui header Authorization
402 insufficient_balanceSaldo bebas tidak cukup untuk saldo yang ditahanIsi ulang saldo
404 model_not_found, unsupported_endpointID salah atau model dipanggil melalui metode yang tidak sesuai, misalnya /v1/chat/completionsPanggil jev-latest hanya melalui POST /v1/systemone
429 rate_limit_exceededTerlalu banyak permintaanTunggu selama jumlah detik pada header Retry-After, lalu coba lagi
503 model_overloaded, model_unavailableModel sementara kelebihan beban atau tidak tersediaJika X-Should-Retry: true — coba lagi setelah jumlah detik pada Retry-After; jika false — periksa dahulu Request ID dalam riwayat
504 model_timeoutModel tidak merespons tepat waktuJangan kirim ulang permintaan sebelum memeriksa Request ID dalam riwayat

Daftar kode lengkap tersedia di halaman Kesalahan dan batas.

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.Hubungi dukungan