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 Trường hợp sử dụng
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.

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
Khóa API
Gửi khóa API từ máy chủ dưới dạng token Bearer.
LangChain · Python

Đưa Jev vào harness của agent LangChain

Harness điều phối các lần gọi mô hình và công cụ. Tại điểm cần quyết định, Jev đọc tin nhắn, lệnh gọi công cụ sắp chạy hoặc trạng thái agent rồi trả về kết quả có kiểu xác định. Mã của bạn quyết định bước tiếp theo; các việc mở vẫn do mô hình hội thoại xử lý.

ModelRouterMiddlewarebefore_agent → wrap_model_call

Phân loại tin nhắn mới nhất của người dùng trước khi chạy để chọn mô hình, rồi giữ lựa chọn đó trong suốt lượt chạy. Kết quả chọn, xác suất và độ tin cậy vẫn có trong trạng thái agent.

AutoModeMiddlewarewrap_tool_call

Kiểm tra lệnh gọi công cụ được chỉ định trước khi thực thi. Nếu Jev nhận thấy rủi ro hoặc thiếu quyền, middleware sẽ chặn lệnh và trả về ToolMessage báo lỗi. Nó không tự xin phê duyệt của con người.

TypeSafeClassifierChoice · Score · Noul

Bạn cũng có thể thêm điểm kiểm tra riêng bằng middleware tùy chỉnh: gửi tin nhắn hoặc trạng thái agent cho TypeSafeClassifier, dùng Choice, Score hoặc Noul để rẽ nhánh trong mã hay chuyển trường hợp chưa chắc chắn cho người kiểm tra.

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 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ụ.

Cập nhật từ cộng đồng

Theo dõi hệ sinh thái Jev theo cách phù hợp với bạn.

Cập nhật dự án mới, mô hình System One từ cộng đồng và các tình huống ứng dụng thực tế qua kho công khai được cập nhật thường xuyên hoặc email tuyển chọn gửi không định kỳ.

Cập nhật công khai thường xuyên

Jev AI Radar

Bộ sưu tập nguồn mở để lập trình viên, tập lệnh và AI agent có thể đọc, tái sử dụng và theo dõi thay đổi theo thời gian.

Gắn sao trên GitHub
Bản tuyển chọn không định kỳ

Bản tin

Thỉnh thoảng nhận tuyển chọn từ cộng đồng: dự án GitHub nổi bật, ví dụ mã hữu ích và cách ứng dụng Jev vào thực tế.

Khi đăng ký, bạn đồng ý thỉnh thoảng nhận email từ Jev AI Dev.