Noul (ya/tidak), Score (level berurutan), dan Choice (pilihan dari opsi tetap) di dspy.experimental. Signature yang sama jalan di model LLM dengan kapabilitas JSON seperti gemini-3.8-flash lewat Neosantara hari ini, lalu bisa dipindah ke Jev tanpa mengubah task definition.
Setup
Cara Kerja
triagemenjawab tiga pertanyaan tertutup dalam satu request: perlu eskalasi atau tidak, seberapa parah, dan tim mana yang menangani. Model mengembalikan probabilitas untuk tiap jawaban.- DSPy menurunkan hasil dari probabilitas.
escalate.valuebernilaiTruesaatprobability >= threshold.severity.leveldipilih daricuts.team.valueadalah opsi denganprobability * weighttertinggi. - Kode Python memutuskan langkah berikutnya. Tiket yang dieskalasi langsung masuk antrian agen tanpa memakai token generasi.
drafterhanya jalan untuk tiket yang bisa dibalas otomatis.muse-spark-1.3-contributor(0.2 per 1M token) adalah model reasoning, jadi berimax_tokensyang cukup untuk reasoning plus jawaban.
threshold 0.3 membuat tiket lebih mudah dieskalasi. weights 1.2 untuk pembayaran memberi prioritas ke tim pembayaran saat model ragu, karena tiket soal uang yang salah route lebih mahal dampaknya.
Tipe Decision
Setiap output decision wajib punya
desc yang ditulis sebagai pertanyaan. DSPy menolak signature tanpa desc sebelum request dikirim. Choice selalu memilih salah satu opsi walaupun tidak ada yang cocok. Tambahkan Noul terpisah kalau kode perlu menolak tiket di luar semua opsi.
Pembagian Kerja
Kalibrasi dengan ReAnchor
ReAnchor mencocokkan threshold, cuts, dan weights ke metrik kamu. Probabilitas tiap contoh dihitung sekali dan di-cache. Pencarian setting berikutnya tidak mengirim request baru. Instruksi, deskripsi, dan demo tidak diubah.
ReAnchor cenderung menurunkan threshold. ReAnchor hanya menyimpan setting baru kalau skornya lebih baik dan lolos fold check untuk mengurangi risiko overfit ke sebagian kecil data.
Pindah ke Jev
Jev tersedia di Neosantara dengan model IDjev. Arahkan client TypeSafe ke base URL Neosantara dan pakai NEOSANTARA_API_KEY yang sama. Signature, setting hasil kalibrasi, dan kode Python tetap sama. Cukup ganti client di predictor triage.
ReAnchor setelah pindah karena distribusi probabilitas Jev berbeda dari LLM. drafter tetap memakai muse-spark-1.3-contributor karena Jev tidak menghasilkan teks.
Panggil endpoint langsung tanpa DSPy: