sparks
Backend yang mengubah LLM apa pun menjadi keputusan bertipe (ya/tidak, pilihan, skor) dari satu forward pass, tanpa teks yang perlu di-parse.
- Tahun
- 2026
- Dibangun dengan
- Go, Python, Docker, LLM
- Tautan
Kebanyakan “keputusan” dari LLM berupa teks yang harus di-parse, dan kita hanya bisa berharap hasilnya valid. sparks melewati teks sepenuhnya. Hanya ada satu endpoint, POST /v1/decide: kirim sebuah state beserta pertanyaan bertipe yang diberi nama, lalu dapatkan satu jawaban terkalibrasi untuk setiap pertanyaan, lengkap dengan distribusi probabilitasnya. Tidak ada teks yang dihasilkan selain label jawaban, sehingga token output berkurang sekitar 99%.
Tipe pertanyaan
| Tipe | Cara penilaian | Jawaban |
|---|---|---|
noul |
Ya/Tidak, dinilai dalam dua urutan lalu dirata-rata | P(ya), dari 0 sampai 1 |
choice |
Opsi diberi label A..Z, urutannya dirotasi lalu dirata-rata untuk menghilangkan bias posisi | Opsi yang terpilih |
score |
Rubrik berurutan dipetakan ke label dalam satu forward pass | Level rubrik yang diharapkan |
Cara kerja
Alih-alih menghasilkan teks, sparks membaca log-probability token label jawaban (A, B, C, …) dari satu forward pass ke backend bergaya OpenAI (/v1/chat/completions) yang mengembalikan logprobs. Setiap distribusi di-scale dengan temperatur yang dikalibrasi per pertanyaan, dan confidence adalah probabilitas label terbaik.
Format request dan response mengikuti primitif Typesafe (instructions + criteria).
Batasan
Backend harus lolos pengecekan 30 detik: satu panggilan logprobs wajib mengembalikan distribusi. Model reasoning yang menyembunyikan logprobs, atau berpikir dulu sebelum mengeluarkan label, tidak bisa dipakai.