Jev là một loại mô hình mới từ TypeSafe AI. Nó không viết văn bản. Bạn cung cấp cho nó một phần trạng thái chương trình, khai báo các câu hỏi bạn cần trả lời, và nó sẽ trả về các câu trả lời có kiểu với xác suất đã hiệu chỉnh: xác suất có/không, một lựa chọn từ danh sách, hoặc một điểm trên bảng tiêu chí. TypeSafe gọi đây là "Mô hình Hệ thống Một" (System One Model), và thông điệp rất đơn giản: hầu hết các cuộc gọi AI trong phần mềm không yêu cầu văn xuôi, mà là yêu cầu một quyết định. Nếu bạn đã tích hợp một LLM vào một bộ phân loại và sau đó viết một trình phân tích để trích xuất nhãn từ câu trả lời của nó, Jev được xây dựng chính xác cho công việc đó, theo cách mà đầu ra có cấu trúc là bước đầu tiên hướng tới điều đó.
Nó đã ra mắt trên Vercel AI Gateway vào ngày 16 tháng 9 năm 2026, điều này đã đưa nó đến với hầu hết các nhà phát triển. Hướng dẫn này bao gồm Jev là gì, cách nó khác biệt với một mô hình ngôn ngữ, ba loại câu hỏi, cách gọi nó trực tiếp và thông qua Gateway, cũng như cách kiểm thử và mô phỏng nó trong Apidog trước khi nó chạm đến logic định tuyến của bạn.
Jev là gì
Bài đăng ra mắt của TypeSafe mô tả Jev là "một lời gọi hàm thông minh tiên tiến: trạng thái không có cấu trúc đầu vào, các quyết định có xác suất đã được gán kiểu đầu ra." Ba thuộc tính định nghĩa nó.
Đầu ra được gán kiểu, và được khai báo trước khi gọi. Bạn định nghĩa hình dạng của mỗi câu hỏi ngay từ đầu. Mô hình chỉ có thể trả lời trong hình dạng đó, vì vậy không có gì để phân tích và không có sự không khớp lược đồ nào để bắt lỗi. Từ của TypeSafe cho điều này là Jev "không bao giờ mắc lỗi kiểu dữ liệu."

Mỗi câu trả lời đều có xác suất. Một câu hỏi có/không không trả về true; nó trả về một số như 0.97. Một lựa chọn trả về toàn bộ phân phối trên các tùy chọn. TypeSafe đã huấn luyện mô hình bằng một phương pháp mà họ gọi là Học tăng cường cho các Quyết định đã Hiệu chỉnh (Reinforcement Learning for Calibrated Decisions), và tuyên bố là sự tự tin cao hơn có nghĩa là độ chính xác cao hơn, vì vậy bạn có thể đặt ngưỡng: tự động hóa các trường hợp rõ ràng, chuyển các trường hợp không chắc chắn cho con người xử lý.

Các câu hỏi được trả lời song song, trong một yêu cầu duy nhất. Một mô hình ngôn ngữ tạo ra từng token một. Jev đánh giá tất cả các câu hỏi đã khai báo cùng một lúc dựa trên cùng một trạng thái, đó là lý do tại sao TypeSafe đưa ra thời gian phản hồi end-to-end từ 70ms đến 500ms. Đó là những con số của nhà cung cấp; hãy coi chúng là một tuyên bố cần xác minh dựa trên khối lượng công việc của bạn, không phải là một điểm chuẩn.
Jev khác với mô hình ngôn ngữ như thế nào
| Mô hình ngôn ngữ | Jev | |
|---|---|---|
| Đầu ra | Văn bản tự do bạn phân tích | Giá trị đã gán kiểu bạn đã khai báo |
| Lấy mẫu | Tuần tự, từng token một | Tất cả các câu hỏi song song |
| Độ tin cậy | Không được hiển thị mặc định | Xác suất trên mỗi câu trả lời |
| Tốt nhất ở | Viết, trò chuyện, tóm tắt | Quyết định, định tuyến, chấm điểm, xác minh |
| Đầu vào | Tin nhắn | Trạng thái có cấu trúc: một chuỗi, đối tượng, hoặc mảng |
| Hình ảnh | Thường được hỗ trợ | Chỉ văn bản, hiện tại |
Sự đánh đổi rất rõ ràng: Jev hoàn toàn từ bỏ việc tạo chuỗi. Nó không phải là một mô hình trò chuyện và nó sẽ không tóm tắt một tài liệu. Nơi nó phù hợp là "câu lệnh if thông minh" bên trong một ứng dụng: đội nào xử lý phiếu này, lỗi này nghiêm trọng đến mức nào, phản hồi này có an toàn để gửi không, bản dựng đã thành công chưa.

Ba loại câu hỏi
API trực tiếp của Jev cung cấp ba kiểu dữ liệu cơ bản. Mỗi kiểu là một đối tượng JSON dưới một khóa bạn chọn.
Noul: xác suất có/không. Tên của TypeSafe cho kiểu boolean. Nó trả về xác suất rằng câu trả lời là có, và bạn đặt ngưỡng nó trong code.
{ "is_urgent": { "type": "noul", "instructions": "Does this message express urgency?" } }
Phản hồi: { "type": "noul", "noul": 0.99 }.
Choice: chọn một tùy chọn từ một tập hợp được đặt tên. criteria ánh xạ tên tùy chọn với mô tả, tối đa 255 tùy chọn. Câu trả lời mang theo lựa chọn hàng đầu cùng với phân phối đầy đủ và một chỉ số độ tin cậy.
{ "department": { "type": "choice", "instructions": "Which team should handle this?",
"criteria": { "billing": "Charges, invoices, payment problems",
"shipping": "Delivery status, delays, lost packages",
"returns": "Exchanges, refunds, damaged items" } } }
Phản hồi: { "type": "choice", "choice": "returns", "confidence": 1.0, "probabilities": { "returns": 1.0, "shipping": 0.0, "billing": 0.0 } }.
Score: một vị trí trên một thang đo có thứ tự. criteria là một mảng gồm 2 đến 10 mô tả cấp độ, cấp thấp nhất trước. Điểm là vị trí được trọng số xác suất, vì vậy nó có thể nằm giữa các bậc thang.
{ "bug_severity": { "type": "score", "instructions": "How severe is the reported issue?",
"criteria": [ "Cosmetic; no impact to functionality",
"Broken feature, but a workaround exists",
"Blocking issue; no workaround" ] } }
Phản hồi: { "type": "score", "score": 1.3, "confidence": 0.54, "probabilities": { "0": 0.0, "1": 0.7, "2": 0.3 }, "legend": { "0": "Cosmetic...", "1": "Broken...", "2": "Blocking..." } }.
Một điểm khác biệt về tên gọi: thông qua Vercel AI SDK, kiểu yes/no được gọi là boolean và trường trả lời là probability. Đối với API của TypeSafe, nó là noul. Cùng một ý tưởng, khóa khác nhau.
Hai cách gọi Jev
Trực tiếp. Lấy khóa tại console.typesafe.ai/settings/keys, sau đó gửi POST https://api.typesafe.ai/v1/systemone với token Bearer. ID mô hình là jev-latest, hiện tại phân giải thành jev-1.13.0; jev-preview trỏ đến bản dựng mới nhất, dù chính thức hay không. Các SDK Python và JavaScript tồn tại, theo hướng dẫn bắt đầu nhanh, nhưng điểm cuối thô là một yêu cầu POST duy nhất, đó là dạng chúng ta sẽ sử dụng trong Apidog.
Thông qua Vercel AI Gateway. ID mô hình là typesafe-ai/jev và bạn gọi nó bằng experimental_evaluate từ AI SDK (phiên bản 7 trở lên). Một lưu ý từ tài liệu đánh giá: đánh giá chỉ khả dụng thông qua AI SDK, không phải thông qua các điểm cuối tương thích OpenAI hoặc Anthropic của Gateway. Nếu bạn đã định tuyến các mô hình thông qua Gateway, như trong hướng dẫn GPT-5.6 Sol trên AI Gateway của chúng tôi, đây là con đường tự nhiên; hướng dẫn Vercel AI SDK của chúng tôi bao gồm phần thiết lập.
import { experimental_evaluate as evaluate } from 'ai';
const result = await evaluate({
model: 'typesafe-ai/jev',
state: 'The support agent issued a full refund to the customer.',
questions: { refunded: { type: 'boolean', instructions: 'Was a refund issued?' } },
});
// result.answers.refunded -> { type: 'boolean', probability: 0.99 }
Yêu cầu đầu tiên của bạn với curl
Điều này phân loại một tin nhắn hỗ trợ với cả ba loại trong một cuộc gọi:
export TYPESAFE_API_KEY="..."
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "My card was charged twice for one order and I need this fixed today.",
"questions": {
"department": { "type": "choice", "instructions": "Which team handles this?",
"criteria": { "billing": "charges and refunds", "shipping": "delivery", "technical": "bugs" } },
"urgency": { "type": "score", "instructions": "How urgent is this?",
"criteria": ["low", "medium", "high"] },
"wants_refund": { "type": "noul", "instructions": "Is the customer asking for money back?" }
}
}'
Phản hồi có model, một đối tượng answers được khóa bởi các ID câu hỏi của bạn, và usage với input_tokens và output_tokens. Đọc answers.department.choice, answers.urgency.score, và answers.wants_refund.noul, sau đó áp dụng các ngưỡng của bạn.
Kiểm thử và mô phỏng Jev trong Apidog
Một mô hình trả về xác suất làm thay đổi cách một bài kiểm thử trông như thế nào. Bạn không còn khẳng định một chuỗi; bạn khẳng định rằng một số vượt qua một ngưỡng. Apidog biến điều đó thành một kiểm tra đã lưu, có thể lặp lại thay vì một lệnh curl dùng một lần.

Lưu khóa. Mở Quản lý Môi trường (Environment Management), tạo một môi trường tên TypeSafe, và thêm TYPESAFE_API_KEY với giá trị thực vào trường cục bộ, để nó nằm trên máy của bạn và không bao giờ đồng bộ với nhóm. Hướng dẫn của chúng tôi về môi trường và biến bí mật bao gồm các quy tắc phạm vi.
Xây dựng yêu cầu. Yêu cầu mới, POST https://api.typesafe.ai/v1/systemone, loại xác thực Bearer Token với {{TYPESAFE_API_KEY}}, thân JSON từ ví dụ curl. Gửi nó và đọc các câu trả lời trong bảng phản hồi.
Khẳng định trên quyết định, không phải văn bản. Thêm các khẳng định hậu xử lý như answers.department.choice bằng billing, answers.wants_refund.noul lớn hơn 0.9, và answers.urgency.score lớn hơn 1.5. Bây giờ, một lỗi hồi quy trong hành vi của Jev, hoặc trong cách diễn đạt tiêu chí của riêng bạn, sẽ làm cho một kiểm tra thất bại thay vì âm thầm định tuyến sai các phiếu.
Mô phỏng nó cho giao diện người dùng. Lưu phản hồi dưới dạng mô phỏng, và giao diện người dùng phiếu của bạn có thể được xây dựng và trình diễn dựa trên một đối tượng answers ổn định mà không tốn token hoặc chờ đợi mô hình. Vì hình dạng đã được khai báo, mô phỏng và phản hồi thực không thể lệch nhau.
Lưu nó dưới dạng một kịch bản. Chuỗi một vài trạng thái, một tin nhắn bình tĩnh, một tin nhắn tức giận, một tin nhắn mơ hồ, và khẳng định rằng độ tin cậy giảm trong trường hợp mơ hồ. Đó là kiểm tra cho bạn biết ngưỡng của bạn đang hoạt động tốt. Tải xuống Apidog để thiết lập điều này; gói miễn phí bao gồm một nhóm bốn người.
Giá cả, giới hạn và lỗi
Từ trang mô hình của TypeSafe:
- Giá: 0,042 USD cho mỗi triệu token đầu vào. Token đầu ra không bị tính phí. Gateway cũng liệt kê mức 0,042 USD cho mỗi triệu token đầu vào.
- Giới hạn tốc độ: 250.000 token mỗi giây và 1.200 yêu cầu mỗi phút, được điều chỉnh linh hoạt.
- Ngữ cảnh: 64k token mỗi yêu cầu, trong đó 32k dành cho
statecộng với câu hỏi dài nhất. - Đầu vào: chỉ văn bản. Một chuỗi, một đối tượng JSON, hoặc một mảng văn bản. Không có hình ảnh, âm thanh hoặc video.
- Ngôn ngữ: Tiếng Anh là tốt nhất; các ngôn ngữ khác hoạt động với độ chính xác thấp hơn.
Lỗi được trả về dưới dạng mã trạng thái HTTP: 401 cho khóa bị thiếu hoặc không hợp lệ, 422 khi phần thân không vượt qua xác thực (một Score với một cấp độ, một Choice không có tiêu chí), 429 cho giới hạn tốc độ, và 529 khi dịch vụ bị quá tải. Lùi lại và thử lại hai lỗi cuối; các SDK làm điều này theo mặc định.
Câu hỏi thường gặp
Jev có phải là một sự thay thế cho một LLM không?
Không. Nó thay thế phần gọi LLM mà bạn đang yêu cầu một quyết định và phân tích văn bản để lấy nó. Việc tạo, trò chuyện và tóm tắt vẫn cần một mô hình ngôn ngữ.
Jev có thể bị ảo giác không?
Nó có thể sai, nhưng nó không thể tạo ra câu trả lời nằm ngoài lược đồ bạn đã khai báo. Lập luận của TypeSafe là việc khớp lược đồ được đảm bảo, vì vậy một nhãn "ảo giác" là không thể; một nhãn sai với độ tin cậy thấp vẫn có thể xảy ra, đó là lý do tại sao xác suất quan trọng.
"Đã hiệu chỉnh" có ý nghĩa gì trong thực tế?
Nếu mô hình nói 0.9, nó sẽ đúng khoảng 90% thời gian với loại câu hỏi đó. Đó là điều cho phép bạn chọn một ngưỡng và tự động hóa trên ngưỡng đó. Hãy kiểm thử nó trên dữ liệu của riêng bạn trước khi tin vào con số; một kịch bản đã lưu trong Apidog với các trạng thái được gán nhãn là một cách rẻ tiền để làm điều đó.
Tôi có cần Vercel để sử dụng Jev không?
Không. API trực tiếp tại api.typesafe.ai hoạt động độc lập với khóa Bearer. Vercel AI Gateway là một tiện ích nếu bạn đã sử dụng AI SDK, và nó là con đường duy nhất hỗ trợ experimental_evaluate. Dù bằng cách nào, các kiến thức cơ bản về JSON Schema đằng sau các hình dạng đã khai báo đều đáng để biết.
Jev phù hợp ở đâu
Hãy tìm đến Jev khi câu hỏi có một tập hợp các câu trả lời cố định và bạn cần xác suất đi kèm với nó: định tuyến, phân loại, chấm điểm, xác minh, rào chắn. Giữ mô hình ngôn ngữ của bạn cho mọi thứ cần từ ngữ. Khai báo hình dạng, kiểm tra các ngưỡng trong Apidog, và để con số tin cậy quyết định những gì được tự động hóa.
