Câu trả lời ngắn gọn: jev-1.13 không tạo ra văn bản. Bạn gửi một đoạn văn bản cùng với một tập hợp các câu hỏi có tên đến https://aihubmix.com/v1/systemone, và bạn nhận lại các câu trả lời đã được gõ theo tên câu hỏi của bạn — một danh mục, một điểm số, hoặc một xác suất. Không cần phân tích. Dưới đây là một yêu cầu hoạt động, định dạng phản hồi đầy đủ, và một sai sót thiết kế sẽ âm thầm làm giảm độ chính xác của bạn.
Jev dùng để làm gì
Sử dụng nó khi bạn cần một phán đoán, không phải một đoạn văn: định tuyến một vé hỗ trợ, đánh giá mức độ nghiêm trọng, đánh dấu tính cấp bách, kiểm soát nội dung. Trang mô hình nói rõ ràng — "Không tạo văn bản, không có gì để phân tích."
Sử dụng một mô hình trò chuyện bình thường thay vào đó khi bạn cần giải thích, tóm tắt, hoặc bất kỳ đầu ra tự do nào. jev không thể tạo ra những điều đó.
Trước khi bạn bắt đầu
- [ ] Python 3 đã được cài đặt (thư viện tiêu chuẩn là đủ)
- [ ] Một tài khoản AiHubMix và khóa API
- [ ] Khóa được xuất ra dưới dạng
AIHUBMIX_API_KEY, không bao giờ được mã hóa cứng trong mã nguồn
Bạn không cần một SDK OpenAI, LangChain, hoặc gói requests.
Bước 1 — Biết điểm cuối
POST https://aihubmix.com/v1/systemone
Authorization: Bearer YOUR_KEY
Content-Type: application/json
Đây là một tuyến đường cụ thể cho mô hình, không /v1/chat/completions. Các khách hàng tương thích với OpenAI không thể gọi nó. Sử dụng HTTP thông thường.
Bước 2 — Chọn loại câu hỏi của bạn
Có ba loại, và bạn có thể kết hợp chúng tự do trong một yêu cầu:
| Loại | Sử dụng cho | Bạn cung cấp |
|---|---|---|
choice | Chọn một danh mục | criteria như một dict: nhãn → định nghĩa |
score | Đánh giá trên một thang điểm có thứ tự | criteria như một danh sách, từ thấp đến cao |
noul | Một phán đoán có/không | không có gì ngoài instructions |
Bước 3 — Xây dựng yêu cầu
state là văn bản cần được đánh giá. questions khóa là những tên bạn tự đặt; phản hồi sử dụng cùng tên.
payload = {
"model": "jev-1.13",
"state": "Chào, tôi đã cố gắng kết nối tài khoản Stripe của mình trong 3 ngày "
"và nó cứ thất bại. Tôi đang mất doanh thu. Xin hãy giúp đỡ càng sớm càng tốt.",
"questions": {
"department": {
"type": "choice",
"instructions": "Nhóm nào nên xử lý việc này",
"criteria": {
"billing": "Vấn đề thanh toán hoặc đăng ký",
"technical": "Lỗi hoặc vấn đề tích hợp",
"sales": "Câu hỏi về giá cả hoặc tài khoản",
},
},
"frustration": {
"type": "score",
"instructions": "Khách hàng có vẻ thất vọng như thế nào",
"criteria": [
"Điềm tĩnh, chỉ nêu rõ sự thật",
"Thất vọng nhưng lịch sự",
"Rất tức giận, ngôn ngữ mạnh mẽ",
],
},
"is_urgent": {
"type": "noul",
"instructions": "Tin nhắn truyền đạt tính cấp bách hoặc nhạy cảm về thời gian",
},
},
}
Bước 4 — Gửi nó bằng thư viện tiêu chuẩn
import json, os, urllib.error, urllib.request
def ask(payload):
req = urllib.request.Request(
"https://aihubmix.com/v1/systemone",
data=json.dumps(payload).encode(),
headers={"Authorization": "Bearer " + os.environ["AIHUBMIX_API_KEY"],
"Content-Type": "application/json"},
method="POST",
)
try:
with urllib.request.urlopen(req, timeout=60) as r:
return json.loads(r.read())
except urllib.error.HTTPError as e:
raise SystemExit(f"HTTP {e.code}: {e.read().decode(errors='replace')[:500]}")
Giữ việc xây dựng yêu cầu bên trong một hàm. Nếu bạn xây dựng và gửi ở cấp độ mô-đun, việc nhập tệp sẽ kích hoạt lại cuộc gọi và tiêu tốn token.
Bước 5 — Đọc các câu trả lời
Mỗi câu trả lời lưu trữ giá trị của nó dưới một khóa tương ứng với type, vì vậy một bộ truy cập bao phủ cả ba:
data = ask(payload)
for name, ans in data["answers"].items():
kind = ans["type"]
print(name, kind, ans[kind], ans.get("confidence"))
print("usage:", data.get("usage"))
Đầu ra đã được xác minh:
department choice billing 0.51
frustration score 1 1
is_urgent noul 1 None
usage: {'input_tokens': 424, 'output_tokens': 73}
Bước 6 — Hiểu toàn bộ thông điệp
Vòng lặp in ẩn các trường hữu ích. JSON thô cho một câu trả lời score:
{
"type": "score",
"score": 1,
"legend": {"0": "Điềm tĩnh, chỉ nêu rõ sự thật", "1": "Thất vọng nhưng lịch sự", "2": "Rất tức giận, ngôn ngữ mạnh mẽ"},
"probabilities": {"0": 0, "1": 1, "2": 0},
"confidence": 1
}
legendliên kết chỉ số trở lại với cách diễn đạt của bạn — số nguyên tự mô tả, vì vậy bạn không cần bảng tra cứu trong mã của mình.probabilitiescung cấp phân phối đầy đủ, hữu ích cho việc phát hiện một sự gần như hòa.noulkhông có trườngconfidence. Xác suất của nó là tín hiệu.
Cấp cao nhất cũng trả về usage, id, provider (TypeSafe), và phiên bản backend đã được giải quyết typesafe/jev-1.13-20260917.
Sai lầm làm giảm độ chính xác của bạn
Trong yêu cầu ở trên, department trả về billing với độ tin cậy là 0.51. Lặp lại yêu cầu giống hệt đã trả về cùng một nhãn với 0.38 — câu trả lời ổn định, nhưng độ chắc chắn được nêu không phải vậy.
Nguyên nhân nằm ở các tiêu chí, không phải mô hình. billing là "Vấn đề thanh toán hoặc đăng ký" và technical là "Lỗi hoặc vấn đề tích hợp." Một tích hợp Stripe cứ thất bại thực sự phù hợp với cả hai. Mô hình đang báo cáo một sự mơ hồ đã được viết vào sơ đồ.
Hai quy tắc trước khi sản xuất:
- Viết
choicetiêu chí mà là loại trừ lẫn nhau. Nếu một con người sẽ do dự giữa hai nhãn, mô hình cũng sẽ như vậy. - Đặt ngưỡng độ tin cậy và định tuyến các kết quả có độ tin cậy thấp đến hàng đợi của con người thay vì chấp nhận chúng như những quyết định. Một mô hình thừa nhận sự không chắc chắn có giá trị hơn một mô hình che giấu nó.
Danh sách kiểm tra trước khi ra mắt
- [ ] Khóa được tải từ môi trường hoặc một tệp
600chế độ mà VCS của bạn bỏ qua - [ ]
choicetiêu chí đã được xem xét để tìm sự chồng chéo - [ ] Ngưỡng độ tin cậy đã được xác định, với một con đường dự phòng bên dưới nó
- [ ] Các câu trả lời
noulđược xử lý riêng — chúng không mang theoconfidence - [ ] Các câu hỏi không sử dụng đã được loại bỏ (3 câu hỏi tiêu tốn 424 token đầu vào; 2 câu tiêu tốn 355)
- [ ] Các phản hồi không phải 2xx đã được ghi lại với nội dung thô
Câu hỏi thường gặp
Tôi có thể sử dụng SDK OpenAI không? Không. /v1/systemone là một tuyến đường không tương thích với OpenAI.
Jev có thể trả về một câu hoặc tóm tắt không? Không. Nó chỉ trả lời các câu hỏi đã được gõ mà bạn định nghĩa.
Có bao nhiêu câu hỏi cho mỗi yêu cầu? Các bài kiểm tra đã được xác minh sử dụng hai và ba. Mỗi câu hỏi thêm token đầu vào và đầu ra, vì vậy chỉ bao gồm những gì bạn sẽ hành động.
Có một bí danh phiên bản không? Trang mô hình liệt kê một jev-latest bí danh bên cạnh jev-1.13. Ghi rõ phiên bản nếu khả năng tái sản xuất là quan trọng.
Nó tốn bao nhiêu? Trang mô hình công bố $0.0462 / M token đầu vào và $0 / M token đầu ra. Đây là số liệu của nhà cung cấp — xác nhận giá cả hiện tại trước khi lập ngân sách.
Cửa sổ ngữ cảnh là gì? Trang mô hình không nhất quán: 64K trong tiêu đề của nó, 32K trong bảng nhà cung cấp. Xác minh với đầu vào dài nhất của riêng bạn trước khi dựa vào bất kỳ điều nào.
Phạm vi của hướng dẫn này
Tất cả những điều trên đã được xác minh với ba cuộc gọi trực tiếp đối với một đầu vào duy nhất. Nó không đề cập đến độ trễ, gộp, thông lượng, hoặc hành vi trên các đầu vào không giống như ví dụ. Sự trôi dạt độ tin cậy là một quan sát đã được tái hiện, không phải là tỷ lệ lỗi đã đo — lặp lại nó trên dữ liệu của riêng bạn trước khi thiết lập ngưỡng.
Bắt đầu trên AiHubMix
jev-1.13 có sẵn thông qua AiHubMix, và trang mô hình mang tất cả những gì hướng dẫn này đã tham khảo: điểm cuối /v1/systemone, ba loại câu hỏi với định dạng criteria của chúng, các trường phản hồi đầy đủ, và giá cả đã công bố của $0.0462 / M token đầu vào với $0 / M token đầu ra. Bí danh jev-latest giải quyết đến phiên bản mới nhất, vì vậy nó luôn cập nhật khi các phiên bản thay đổi.
Bắt đầu ở đây: https://aihubmix.com/model/jev-latest
Các bước tiếp theo:
- Tạo một tài khoản AiHubMix và tạo một khóa API
- Sao chép yêu cầu từ Bước 3 và hàm
ask()từ Bước 4 - Thay thế
statebằng một bản ghi thực tế từ hàng đợi của bạn - So sánh kết quả với cách bạn phân loại bản ghi đó hôm nay
Nếu hướng dẫn này hữu ích, hãy đăng ký để nhận các bài viết trong tương lai về các mô hình đầu ra có cấu trúc và quy trình phân loại.



