Cẩm nang và cộng đồng độc lập dành cho nhà phát triển
Thông tin chính thức về Jev: typesafe.ai

Dùng thử Jev miễn phí

Đặt một câu hỏi hoặc ba câu hỏi khác nhau cho cùng một tình huống. Chọn ví dụ, chỉnh sửa dữ liệu đầu vào rồi xem từng câu trả lời có cấu trúc.

Khám phá dự án trên GitHub
01 / Chọn một quyết định

Bắt đầu với một ví dụ cụ thể

typesafe/jev-1.13

Thử lần lượt từng kiểu câu trả lời. Mỗi lần chạy sẽ dùng một lượt trong hạn mức hằng ngày.

1. Choice
questions.decision
Xem trước yêu cầu API

Bản xem trước không chứa khóa API hay mã xác minh. Mỗi ID câu hỏi sẽ có một câu trả lời mang cùng tên.

{
  "model": "typesafe/jev-1.13",
  "state": {
    "input": "Tôi đã bị tính phí hai lần cho đăng ký của mình. Bạn có thể giúp được không?"
  },
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "Bộ phận nào nên xử lý việc này?",
      "criteria": {
        "billing": "Thanh toán và hoàn tiền",
        "technical": "Lỗi và tích hợp",
        "general": "Yêu cầu khác"
      }
    }
  }
}

Mỗi tài khoản được dùng thử miễn phí 6 lần mỗi ngày theo UTC, đặt lại lúc 00:00 UTC. Tổng số lượt của trang cũng có giới hạn. Nội dung nhập được gửi tới OpenRouter; chúng tôi chỉ lưu dữ liệu sử dụng, không lưu nội dung bạn nhập.

02 / Đọc câu trả lời

Sẵn sàng để bạn thử

Chạy ví dụ để xem câu trả lời có cấu trúc cho từng câu hỏi: Choice chọn phương án, Score đặt kết quả trên thang điểm và Probability trả về giá trị từ 0 đến 1.

Làm thế nào để tích hợp

Thêm Jev vào mã của bạn.

Biểu mẫu gửi văn bản của bạn dưới dạng state.input cùng một hoặc ba câu hỏi có tên. Mỗi kết quả nằm trong answers.<question_id>.

Ý nghĩa của từng trường

Yêu cầu xác định các câu hỏi và định dạng trả lời. Phản hồi trả về một kết quả cho từng câu hỏi. Dưới đây là các trường JSON được dùng trong ví dụ.

Các trường yêu cầu

model
ID mô hình. Ví dụ này cố định phiên bản Jev 1.13 để phiên bản được sử dụng luôn rõ ràng.
state
Văn bản hoặc dữ liệu có cấu trúc cần đánh giá, chẳng hạn như tin nhắn gửi tới bộ phận hỗ trợ.
questions
Danh sách các quyết định được đặt tên. Những tên này cũng xuất hiện trong trường answers của phản hồi.
<question_id>
Tên như action hoặc urgency; câu trả lời sẽ dùng đúng tên đó.
type
Định dạng câu trả lời: choice chọn một phương án, score đánh giá theo thang mức có thứ tự, còn noul xử lý câu hỏi có/không.
instructions
Nội dung đánh giá cụ thể mà bạn yêu cầu mô hình thực hiện.
criteria
Các phương án Choice được phép, các mức Score theo thứ tự hoặc ý nghĩa của false và true trong Noul.

Trường phản hồi

answers
Một kết quả cho mỗi câu hỏi, được trả về dưới cùng một tên.
choice
Khóa phương án do choice chọn: phương án có xác suất cao nhất.
probabilities
Xác suất của từng phương án; tổng các giá trị này bằng 1.
confidence
Giá trị độ tin cậy riêng được tính từ phân bố xác suất; đây không phải xác suất của phương án được chọn.
score
Vị trí trên thang có thứ tự được tính theo xác suất; có thể nằm giữa hai mức.
legend
Ánh xạ vị trí số của Score về phần mô tả các mức do bạn xác định.
noul
Một số từ 0 (không) đến 1 (có) cho câu hỏi có/không.

Một ngữ cảnh chung, ba câu hỏi độc lập: Choice, Score và Probability. Mỗi lần chạy sẽ dùng một lượt trong hạn mức hằng ngày. Một câu trả lời được định dạng đúng vẫn có thể sai. Kiểm tra các trường hợp đại diện và đặt ngưỡng định tuyến cho quy trình làm việc của riêng bạn.

Endpoint

OpenRouter

Playground này gọi một phiên bản Jev cố định qua OpenRouter. Xem trang mô hình để biết giá và tình trạng hiện tại.

Endpoint
POST https://openrouter.ai/api/alpha/decisions
model
typesafe/jev-1.13
Khóa API
Gửi khóa API từ máy chủ dưới dạng token Bearer.
OpenRouter ↗
API trực tiếp chính thức

TypeSafe

TypeSafe có endpoint và khóa API riêng. Hướng dẫn chính thức dùng jev-latest và cho thấy cách gửi nhiều câu hỏi trong một yêu cầu.

Endpoint
POST https://api.typesafe.ai/v1/systemone
model
jev-latest
Khóa API
Gửi khóa API từ máy chủ dưới dạng token Bearer.

TypeScript phía máy chủ

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);
Đọc câu trả lời

Ba loại câu hỏi, ba dạng câu trả lời

Chọn dạng câu trả lời mà mã của bạn cần. Nếu gửi nhiều câu hỏi, mỗi ID sẽ có một kết quả riêng.

TypeSafe: Choice · Score · Noul ↗

Choice

choice · probabilities · confidence

Khóa phương án do choice chọn: phương án có xác suất cao nhất.

Score

score · legend · probabilities · confidence

Vị trí trên thang có thứ tự được tính theo xác suất; có thể nằm giữa hai mức.

Noul

noul

Một số từ 0 (không) đến 1 (có) cho câu hỏi có/không.

Trước khi sử dụng nó trong sản xuất

Trước khi dùng trong môi trường production, hãy kiểm thử với các phiếu hỗ trợ mang tính đại diện, ghi lại phiên bản mô hình và chuyển những trường hợp không chắc chắn hoặc có tác động lớn cho con người xem xét. Giá trị 0,8 chỉ là ví dụ.