Panduan dan komunitas independen untuk pengembang
Informasi resmi tentang Jev: typesafe.ai

Coba Jev gratis

Ajukan satu pertanyaan atau tiga pertanyaan berbeda untuk situasi yang sama. Pilih contoh, ubah inputnya, lalu periksa setiap jawaban terstruktur.

Jelajahi proyek di GitHub Kasus penggunaan
01 / Pilih keputusan

Mulai dari contoh yang nyata

typesafe/jev-1.13

Coba satu jenis jawaban setiap kali. Setiap kali menjalankan contoh, jatah harian berkurang satu.

1. Choice
questions.decision
Pratinjau permintaan API

Pratinjau tidak menampilkan kunci API atau token verifikasi. Setiap ID pertanyaan memiliki jawaban dengan nama yang sama.

{
  "model": "typesafe/jev-1.13",
  "state": {
    "input": "Saya ditagih dua kali untuk langganan saya. Bisakah Anda membantu?"
  },
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "Tim manakah yang harus menangani hal ini?",
      "criteria": {
        "billing": "Pembayaran dan pengembalian dana",
        "technical": "Bug dan integrasi",
        "general": "Pertanyaan lainnya"
      }
    }
  }
}

Setiap akun mendapat 6 percobaan gratis per hari UTC, diatur ulang pukul 00.00 UTC. Kapasitas harian situs juga terbatas. Masukan Anda dikirim ke OpenRouter; kami menyimpan data penggunaan, bukan isi masukan.

02 / Baca jawabannya

Siap saat Anda siap

Jalankan contoh untuk melihat satu jawaban terstruktur per pertanyaan: Choice memilih opsi, Score menempatkan hasil pada skala, dan Probability menghasilkan angka antara 0 dan 1.

Bagaimana cara mengintegrasikan

Tambahkan Jev ke kode Anda.

Formulir ini mengirim teks Anda sebagai state.input dan satu atau tiga pertanyaan bernama. Setiap hasil ada di answers.<question_id>.

Arti setiap bidang

Permintaan menentukan pertanyaan dan format jawaban. Respons mengembalikan satu hasil untuk setiap pertanyaan. Berikut bidang JSON yang digunakan dalam contoh.

Bidang permintaan

model
ID model. Contoh ini menetapkan versi Jev 1.13 agar versi yang digunakan selalu jelas.
state
Teks atau data terstruktur yang akan dievaluasi, misalnya pesan kepada tim dukungan.
questions
Kumpulan keputusan yang diberi nama. Nama yang sama digunakan dalam bidang answers pada respons.
<question_id>
Nama seperti action atau urgency; jawaban memakai nama yang sama.
type
Format jawaban: choice memilih satu opsi, score menilai pada skala berurutan, dan noul mengevaluasi pertanyaan ya/tidak.
instructions
Penilaian spesifik yang ingin Anda minta dari model.
criteria
Opsi Choice yang diizinkan, tingkat Score yang berurutan, atau arti false dan true untuk Noul.

Bidang respons

answers
Satu hasil per pertanyaan, dikembalikan dengan nama yang sama.
choice
Kunci opsi yang dipilih oleh choice: opsi dengan probabilitas tertinggi.
probabilities
Probabilitas untuk setiap opsi; seluruh nilainya berjumlah 1.
confidence
Nilai keyakinan tersendiri yang dihitung dari distribusi probabilitas; ini bukanlah probabilitas pilihan yang dipilih.
score
Posisi pada skala berurutan yang dibobot menurut probabilitas; nilainya bisa berada di antara dua tingkat.
legend
Pemetaan posisi angka Score kembali ke deskripsi tingkat yang Anda tentukan.
noul
Angka dari 0 (tidak) hingga 1 (ya) untuk pertanyaan ya/tidak.

Satu konteks yang sama, tiga pertanyaan terpisah: Choice, Score, dan Probability. Setiap kali menjalankan contoh, jatah harian berkurang satu. Jawaban dengan format yang benar masih bisa salah. Uji kasus yang representatif dan tetapkan ambang routing yang sesuai dengan alur kerja Anda.

Endpoint

OpenRouter

Playground ini memanggil versi Jev yang ditetapkan melalui OpenRouter. Periksa halaman model untuk harga dan ketersediaan terbaru.

Endpoint
POST https://openrouter.ai/api/alpha/decisions
model
typesafe/jev-1.13
Kunci API
Kirim kunci API dari server sebagai token Bearer.
OpenRouter ↗
API langsung resmi

TypeSafe

TypeSafe memiliki endpoint dan kunci API sendiri. Panduan resminya memakai jev-latest dan menunjukkan cara mengirim beberapa pertanyaan dalam satu permintaan.

Official published price
$0.042per 1M input tokens

Output tokens are free.

Eligible accounts may receive promotional credits. TypeSafe does not publish a fixed amount on its public pages; check the console for your balance and terms.

Endpoint
POST https://api.typesafe.ai/v1/systemone
model
jev-latest
Kunci API
Kirim kunci API dari server sebagai token Bearer.
LangChain · Python

Memasukkan Jev ke harness agen LangChain

Harness mengatur pemanggilan model dan alat. Pada titik keputusan, Jev membaca pesan, rencana pemanggilan alat, atau status agen lalu mengembalikan jawaban bertipe. Kode Anda menentukan langkah berikutnya; tugas terbuka tetap ditangani model percakapan.

ModelRouterMiddlewarebefore_agent → wrap_model_call

Klasifikasikan pesan pengguna terbaru sebelum proses dimulai, pilih model, lalu gunakan pilihan itu selama proses berjalan. Pilihan, probabilitas, dan tingkat keyakinannya tetap tersedia dalam status agen.

AutoModeMiddlewarewrap_tool_call

Periksa pemanggilan alat tertentu sebelum dijalankan. Jika Jev menilai tindakan berisiko atau tidak cukup berwenang, middleware memblokirnya dan mengembalikan ToolMessage berisi kesalahan. Middleware ini tidak meminta persetujuan manusia.

TypeSafeClassifierChoice · Score · Noul

Anda juga bisa menambahkan pemeriksaan sendiri: kirim pesan atau status agen ke TypeSafeClassifier lewat middleware kustom, lalu gunakan Choice, Score, atau Noul untuk mengatur alur kode atau meminta peninjauan.

LangChain · Python · ModelRouterMiddleware
# pip install "langchain-typesafe[experimental]" langchain-openai
# Set TYPESAFE_API_KEY and OPENAI_API_KEY on your server.
from langchain.agents import create_agent
from langchain_typesafe.experimental.middleware import (
    ModelChoice, ModelRouterMiddleware,
)

router = ModelRouterMiddleware(
    choices={
        "fast": ModelChoice(
            model="openai:gpt-5.6-terra",
            criteria="Simple lookups and extraction.",
        ),
        "powerful": ModelChoice(
            model="openai:gpt-6-astra",
            criteria="Complex reasoning and high-stakes decisions.",
        ),
    },
    instructions="Choose the least costly model that can do the task safely.",
)
agent = create_agent("openai:gpt-5.6-terra", middleware=[router])
result = agent.invoke({"messages": [{"role": "user", "content": "Summarize this log."}]})
print(result["model_route"].choice)

TypeScript sisi server

TypeScript · fetch
// Run on your server. Keep the API key out of browser code.
const apiKey = process.env.OPENROUTER_API_KEY;
if (!apiKey) throw new Error("Set OPENROUTER_API_KEY");

const response = await fetch("https://openrouter.ai/api/alpha/decisions", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + apiKey,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "typesafe/jev-1.13",
    state: {input: "A customer reports a duplicate charge."},
    questions: {
      team: {
        type: "choice",
        instructions: "Which team should handle this?",
        criteria: {
          billing: "Payments and refunds",
          technical: "Bugs and integrations"
        }
      },
      urgency: {
        type: "score",
        instructions: "How urgent is the issue?",
        criteria: ["Can wait", "Needs attention today", "Immediate action"]
      },
      escalate: {
        type: "noul",
        instructions: "Should a human review this first?",
        criteria: {false: "No review needed", true: "Review before acting"}
      }
    }
  })
});

if (!response.ok) throw new Error("Decision request failed");
const {answers} = await response.json();
console.log(answers.team.choice, answers.urgency.score, answers.escalate.noul);
Baca jawabannya

Tiga jenis pertanyaan, tiga bentuk jawaban

Pilih bentuk jawaban yang dibutuhkan kode Anda. Jika mengirim beberapa pertanyaan, setiap ID mendapat hasil tersendiri.

TypeSafe: Choice · Score · Noul ↗

Choice

choice · probabilities · confidence

Kunci opsi yang dipilih oleh choice: opsi dengan probabilitas tertinggi.

Score

score · legend · probabilities · confidence

Posisi pada skala berurutan yang dibobot menurut probabilitas; nilainya bisa berada di antara dua tingkat.

Noul

noul

Angka dari 0 (tidak) hingga 1 (ya) untuk pertanyaan ya/tidak.

Sebelum menggunakannya dalam produksi

Sebelum digunakan di produksi, uji dengan tiket dukungan yang representatif, catat versi model, dan kirim kasus yang tidak pasti atau berdampak besar untuk ditinjau manusia. Nilai 0,8 hanya contoh.

Kabar komunitas

Ikuti ekosistem Jev dengan cara yang paling cocok.

Pantau proyek baru, model System One buatan komunitas, dan contoh penggunaan praktis lewat pembaruan publik yang rutin atau email pilihan yang dikirim sesekali.

Pembaruan publik rutin

Jev AI Radar

Koleksi sumber terbuka yang dapat dibaca, digunakan kembali, dan dipantau perubahannya oleh developer, skrip, serta agen AI.

Beri bintang di GitHub
Ringkasan pilihan sesekali

Newsletter

Sesekali dapatkan pilihan komunitas: proyek GitHub yang sedang ramai, contoh kode yang berguna, dan penerapan Jev dalam proyek nyata.

Dengan berlangganan, Anda setuju menerima email sesekali dari Jev AI Dev.