Lewati ke konten
kenari.

System One

kenari menyediakan endpoint System One untuk model keputusan. Endpoint ini hanya melayani model yang ditandai sebagai model System One di katalog. Memanggilnya dengan model chat biasa akan mengembalikan status 400. System One tidak memakai wire chat OpenAI, jadi ini adalah kontrak kenari sendiri.

Daftar model System One bersifat dinamis. Jangan meng-hardcode id dari tulisan ini: panggil GET /v1/models?modality=systemone (publik, tanpa key) untuk membaca id yang sedang aktif. GET /v1/models tanpa parameter hanya mendaftar model chat, sehingga model System One tidak muncul di sana.

Per 24 September 2026 katalog publik menampilkan jev-1-13-free sebagai model System One gratis. Contoh di bawah memakai id itu. Kalau suatu saat id itu tidak lagi tersedia, ganti dengan id yang dikembalikan ?modality=systemone.

POST /v1/systemone

Kirim state dan questions. Gateway mengembalikan satu jawaban bertipe per pertanyaan, plus pemakaian token.

FieldTipeWajibKeterangan
modelstringyaId model System One dari katalog.
statestring, object, atau arrayyaTeks atau data yang dinilai.
questionsobjectyaSatu atau lebih pertanyaan. Setiap kunci adalah id pertanyaan. Maksimum 128 pertanyaan.

Setiap pertanyaan adalah object dengan field berikut:

FieldTipeWajibKeterangan
typestringyanoul, choice, atau score.
instructionsstring, object, atau arrayyaIsi pertanyaan.
criteriaobject atau arraytidakRubrik noul, peta pilihan, atau urutan skor.

Body request dibatasi 512 KiB.

Penagihan dihitung per token input. Gateway menahan biaya dari perkiraan lokal (kira-kira empat karakter per token pada state dan questions, atau pada seluruh body, diambil yang lebih besar), lalu menagih usage.input_tokens dari upstream jika angkanya positif dan tidak melebihi tahan itu. Token output dilaporkan dan tidak ditagih. Model gratis, termasuk jev-1-13-free, memotong Rp 0 dari saldo. Lihat Penagihan untuk detail saldo dan pemotongan.

Response hanya berisi model, answers, dan usage. model adalah id versi yang menjawab, bila id itu adalah id Jev yang sah. answers berisi satu entri per pertanyaan. Field lain dari upstream dibuang.

{
"model": "jev-1.13.0",
"answers": {
"q": { "type": "noul", "noul": 0.91 }
},
"usage": { "input_tokens": 12, "output_tokens": 20 }
}
Terminal window
curl https://kenari.id/v1/systemone \
-H "Authorization: Bearer kn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1-13-free",
"state": "kucing duduk di atas karpet",
"questions": {
"q": {
"type": "noul",
"instructions": "Apakah ini kalimat tentang hewan?"
}
}
}'
import requests
resp = requests.post(
"https://kenari.id/v1/systemone",
headers={"Authorization": "Bearer kn-..."},
json={
"model": "jev-1-13-free",
"state": "kucing duduk di atas karpet",
"questions": {
"q": {
"type": "noul",
"instructions": "Apakah ini kalimat tentang hewan?",
}
},
},
)
print(resp.json()["answers"])
const resp = await fetch("https://kenari.id/v1/systemone", {
method: "POST",
headers: {
Authorization: "Bearer kn-...",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev-1-13-free",
state: "kucing duduk di atas karpet",
questions: {
q: {
type: "noul",
instructions: "Apakah ini kalimat tentang hewan?",
},
},
}),
});
const { answers } = await resp.json();