คู่มือและชุมชนอิสระสำหรับนักพัฒนา
ข้อมูลทางการเกี่ยวกับ Jev: typesafe.ai

ลองใช้ Jev ฟรี

ถามหนึ่งข้อหรือสามข้อที่ต่างกันเกี่ยวกับสถานการณ์เดียวกัน เลือกตัวอย่าง ปรับข้อมูลนำเข้า แล้วดูคำตอบแบบมีโครงสร้างของแต่ละข้อ

ดูโปรเจกต์บน GitHub กรณีการใช้งาน
01 / เลือกการตัดสินใจ

เริ่มจากตัวอย่างที่ชัดเจน

typesafe/jev-1.13

ลองดูรูปแบบคำตอบทีละแบบ การกดรันแต่ละครั้งใช้สิทธิ์ประจำวัน 1 ครั้ง

1. Choice
questions.decision
ดูตัวอย่างคำขอ API

ตัวอย่างคำขอไม่แสดงคีย์ API หรือโทเคนยืนยันตัวตน แต่ละ ID ของคำถามจะมีคำตอบชื่อเดียวกัน

{
  "model": "typesafe/jev-1.13",
  "state": {
    "input": "ฉันถูกเรียกเก็บค่าสมาชิกซ้ำสองครั้ง ช่วยตรวจสอบให้หน่อยได้ไหม"
  },
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "ทีมไหนควรจัดการเรื่องนี้?",
      "criteria": {
        "billing": "การชำระเงินและคืนเงิน",
        "technical": "ข้อผิดพลาดและการเชื่อมต่อระบบ",
        "general": "คำถามอื่น ๆ"
      }
    }
  }
}

แต่ละบัญชีทดลองฟรีได้ 6 ครั้งต่อวันตามเวลา UTC โดยรีเซ็ตเวลา 00:00 UTC เว็บไซต์มีจำนวนการใช้งานรวมต่อวันจำกัด ข้อมูลที่ป้อนจะส่งไปยัง OpenRouter เราเก็บเฉพาะข้อมูลการใช้งาน ไม่เก็บข้อความที่คุณป้อน

02 / อ่านคำตอบ

พร้อมให้ลองแล้ว

เมื่อรันตัวอย่าง คุณจะได้คำตอบแบบมีโครงสร้างสำหรับแต่ละข้อ: Choice เลือกตัวเลือก Score ให้ค่าบนมาตราส่วน และ Probability ให้ค่าระหว่าง 0 ถึง 1

วิธีเชื่อมต่อ API

เพิ่ม Jev ลงในโค้ดของคุณ

แบบฟอร์มนี้ส่งข้อความเป็น state.input พร้อมคำถามที่ตั้งชื่อไว้ 1 หรือ 3 ข้อ ผลลัพธ์แต่ละข้ออยู่ใน answers.<question_id>

แต่ละช่องหมายถึงอะไร

คำขอกำหนดรูปแบบคำถามและคำตอบ การตอบกลับจะส่งกลับผลลัพธ์สำหรับแต่ละรายการ นี่คือช่อง JSON ที่ใช้ในตัวอย่าง

ฟิลด์คำขอ

model
รหัสโมเดล ตัวอย่างนี้ล็อกไว้ที่ Jev 1.13 เพื่อระบุเวอร์ชันให้ชัดเจน
state
ข้อความหรือข้อมูลที่มีโครงสร้างสำหรับประเมิน เช่น ข้อความที่ส่งถึงฝ่ายสนับสนุน
questions
กลุ่มการตัดสินใจที่ตั้งชื่อไว้ โดยชื่อเหล่านี้จะปรากฏในฟิลด์ answers ของผลลัพธ์ด้วย
<question_id>
ชื่อ เช่น action หรือ urgency โดยคำตอบจะใช้ชื่อเดียวกัน
type
รูปแบบคำตอบ: choice เลือกตัวเลือก score ให้คะแนนตามระดับที่เรียงลำดับ และ noul ประเมินคำถามใช่หรือไม่
instructions
การตัดสินเฉพาะเจาะจงที่คุณต้องการให้โมเดลทำ
criteria
ตัวเลือกของ Choice ระดับที่เรียงลำดับของ Score หรือความหมายของ false และ true สำหรับ Noul

ฟิลด์ตอบกลับ

answers
หนึ่งผลลัพธ์ต่อคำถาม ส่งคืนภายใต้ชื่อเดียวกัน
choice
คีย์ตัวเลือกที่ choice เลือก ซึ่งเป็นตัวเลือกที่มีค่าความน่าจะเป็นสูงสุด
probabilities
ความน่าจะเป็นของทุกตัวเลือก ค่าเหล่านี้รวมกันเป็น 1
confidence
ค่าความเชื่อมั่นแยกต่างหากที่คำนวณจากการแจกแจงความน่าจะเป็น ไม่ใช่ความน่าจะเป็นของตัวเลือกที่เลือก
score
ตำแหน่งบนระดับคะแนนที่ถ่วงน้ำหนักตามความน่าจะเป็น ซึ่งอาจอยู่ระหว่างสองระดับ
legend
การจับคู่ตำแหน่งตัวเลขของ Score กลับไปยังคำอธิบายระดับที่คุณกำหนด
noul
ตัวเลขตั้งแต่ 0 (ไม่) ถึง 1 (ใช่) สำหรับคำถามใช่/ไม่ใช่

ใช้บริบทเดียวกันกับคำถามอิสระ 3 ข้อ ได้แก่ Choice, Score และ Probability การกดรันแต่ละครั้งใช้สิทธิ์ประจำวัน 1 ครั้ง คำตอบที่มีรูปแบบถูกต้องยังอาจผิดได้ ควรทดสอบกับกรณีที่เป็นตัวแทนของงานและกำหนดเกณฑ์การจัดเส้นทางให้เหมาะกับเวิร์กโฟลว์ของคุณ

เอนด์พอยต์

OpenRouter

Playground นี้เรียกใช้ Jev เวอร์ชันที่กำหนดผ่าน OpenRouter ดูราคาและสถานะล่าสุดได้ที่หน้าโมเดล

เอนด์พอยต์
POST https://openrouter.ai/api/alpha/decisions
model
typesafe/jev-1.13
คีย์ API
ส่งคีย์ API จากเซิร์ฟเวอร์ในรูปแบบ Bearer token
OpenRouter ↗
API ทางตรงอย่างเป็นทางการ

TypeSafe

TypeSafe มีจุดเชื่อมต่อและคีย์ API ของตนเอง คู่มือเริ่มต้นอย่างเป็นทางการใช้ jev-latest และแสดงวิธีส่งหลายคำถามในคำขอเดียว

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.

เอนด์พอยต์
POST https://api.typesafe.ai/v1/systemone
model
jev-latest
คีย์ API
ส่งคีย์ API จากเซิร์ฟเวอร์ในรูปแบบ Bearer token
LangChain · Python

ใช้ Jev ใน harness ของเอเจนต์ LangChain

Harness ควบคุมลำดับการเรียกโมเดลและเครื่องมือ เมื่อถึงจุดที่ต้องตัดสินใจ Jev จะอ่านข้อความ คำสั่งเรียกเครื่องมือที่กำลังจะทำ หรือสถานะเอเจนต์ แล้วส่งคำตอบแบบมีชนิดข้อมูลกลับมา โค้ดของคุณเป็นผู้กำหนดขั้นตอนถัดไป ส่วนงานปลายเปิดยังให้โมเดลแชตจัดการ

ModelRouterMiddlewarebefore_agent → wrap_model_call

จำแนกข้อความล่าสุดของผู้ใช้ก่อนเริ่มงานเพื่อเลือกโมเดล และใช้โมเดลนั้นตลอดการทำงาน ผลการเลือก ความน่าจะเป็น และค่าความมั่นใจยังดูได้จากสถานะเอเจนต์

AutoModeMiddlewarewrap_tool_call

ตรวจคำสั่งเรียกเครื่องมือที่ระบุก่อนลงมือทำ หาก Jev พบความเสี่ยงหรือสิทธิ์ไม่เพียงพอ middleware จะบล็อกคำสั่งและส่ง ToolMessage ที่เป็นข้อผิดพลาดกลับมา โดยไม่ได้ขออนุมัติจากคน

TypeSafeClassifierChoice · Score · Noul

เพิ่มจุดตรวจของคุณเองได้ด้วย middleware แบบกำหนดเอง: ส่งข้อความหรือสถานะเอเจนต์ให้ TypeSafeClassifier แล้วใช้ผล Choice, Score หรือ Noul เพื่อแยกทางในโค้ดหรือส่งกรณีไม่แน่ชัดให้คนตรวจ

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 ฝั่งเซิร์ฟเวอร์

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);
อ่านคำตอบ

คำถาม 3 ประเภท คำตอบ 3 รูปแบบ

เลือกชนิดคำตอบที่โค้ดของคุณต้องใช้ หากส่งหลายคำถาม แต่ละ ID จะได้รับผลลัพธ์แยกกัน

TypeSafe: Choice · Score · Noul ↗

Choice

choice · probabilities · confidence

คีย์ตัวเลือกที่ choice เลือก ซึ่งเป็นตัวเลือกที่มีค่าความน่าจะเป็นสูงสุด

Score

score · legend · probabilities · confidence

ตำแหน่งบนระดับคะแนนที่ถ่วงน้ำหนักตามความน่าจะเป็น ซึ่งอาจอยู่ระหว่างสองระดับ

Noul

noul

ตัวเลขตั้งแต่ 0 (ไม่) ถึง 1 (ใช่) สำหรับคำถามใช่/ไม่ใช่

ก่อนที่จะนำไปใช้ในการผลิต

ก่อนใช้ในระบบจริง ควรทดสอบกับเคสฝ่ายสนับสนุนที่เป็นตัวแทนของงาน บันทึกเวอร์ชันโมเดล และส่งเคสที่ไม่แน่นอนหรือมีผลกระทบสูงให้เจ้าหน้าที่ตรวจสอบ ค่า 0.8 เป็นเพียงตัวอย่าง

อัปเดตจากชุมชน

ติดตามระบบนิเวศ Jev ในแบบที่เหมาะกับคุณ

ติดตามโปรเจกต์ใหม่ โมเดล System One จากชุมชน และกรณีใช้งานจริง ผ่านคลังข้อมูลสาธารณะที่อัปเดตสม่ำเสมอหรืออีเมลคัดสรรที่ส่งเป็นครั้งคราว

อัปเดตสาธารณะอย่างสม่ำเสมอ

Jev AI Radar

คลังโอเพนซอร์สที่นักพัฒนา สคริปต์ และ AI Agent สามารถอ่าน นำไปใช้ต่อ และติดตามการเปลี่ยนแปลงได้

ให้ดาวบน GitHub
เนื้อหาคัดสรรเป็นครั้งคราว

จดหมายข่าว

รับอีเมลเป็นครั้งคราวที่คัดสรรโปรเจกต์จากชุมชน โปรเจกต์ GitHub ที่กำลังได้รับความสนใจ ตัวอย่างโค้ดที่ใช้ได้จริง และแนวทางนำ Jev ไปใช้

เมื่อสมัคร คุณยินยอมรับอีเมลจาก Jev AI Dev เป็นครั้งคราว