คู่มือและชุมชนอิสระสำหรับนักพัฒนา
ข้อมูลทางการเกี่ยวกับ 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 และแสดงวิธีส่งหลายคำถามในคำขอเดียว

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

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 เป็นเพียงตัวอย่าง