การประเมินแบบมีโครงสร้าง (Jev)
การประเมินแบบมีโครงสร้าง (Jev)
Jev ประเมินสถานะ JSON ตามคำถามที่ตั้งชื่อไว้ และส่งคำตอบชนิด boolean, choice หรือ score ใช้เมื่อต้องการผลประเมินที่โปรแกรมอ่านได้จากเกณฑ์ที่ชัดเจน
ใช้เพื่อประเมินและตัดสินเท่านั้น
Jev ไม่รองรับแชต ส่งคำขอ Jev ไปที่ POST /v1/evaluations หากส่งไปที่ POST /v1/chat/completions จะได้รับ HTTP 400
POST/v1/evaluations
เรียก endpoint นี้ด้วย API key ของ BazaarLink URL เต็มคือ https://api.bazaarlink.ai/v1/evaluations
คำอธิบายฟิลด์
model
string
ไม่บังคับ หากละไว้จะใช้ typesafe-ai/jev เป็นค่าเริ่มต้น โมเดล ID อื่นจะตอบ HTTP 400 พร้อมรหัส model_not_available
state
string | object | array
จำเป็น ระบุสถานะที่ต้องการประเมินเป็น JSON string, object หรือ array หาก state และ questions หลัง serialize รวมกันเกิน 32,000 tokens จะตอบ context_length_exceeded
questions
record<string, Question>
จำเป็น ต้องเป็น object ที่ไม่ว่างและมีคำถามระบุชื่อ ชื่อคำถามแต่ละข้อจะเป็น key ใน object answers ของการตอบกลับ
type
boolean | choice | score
จำเป็นสำหรับทุกคำถาม เลือก boolean, choice หรือ score
instructions
string | object | array
จำเป็นสำหรับทุกคำถาม เป็น JSON string, object หรือ array ที่อธิบายสิ่งที่ต้องตัดสิน
criteria
object | array
ขึ้นกับ type: boolean ไม่จำเป็นต้องระบุ หากระบุต้องเป็น object ที่มี key true หรือ false เท่านั้น; choice ต้องเป็น object ที่ไม่ว่าง; score ต้องเป็น array ตามลำดับที่มีอย่างน้อยสองรายการ
ชนิดคำตอบ
boolean — criteria ไม่จำเป็นต้องระบุ หากระบุ จะรับเฉพาะคีย์ true และ false คำตอบมีค่า probability เป็นตัวเลขchoice — criteria ต้องเป็นออบเจ็กต์ที่ไม่ว่างซึ่งจับคู่ชื่อ option กับ JSON criteria คำตอบมี choice เป็นสตริง และ probabilities ใช้ชื่อ option เป็นคีย์score — criteria ต้องเป็นอาร์เรย์เรียงลำดับที่มีอย่างน้อยสองรายการ score เป็นตัวเลขและเป็นค่าคาดหมายของดัชนี 0..N-1 ตามลำดับในอาร์เรย์ criteria ส่วน probabilities ใช้ดัชนีเหล่านี้ในรูปสตริงเป็นคีย์
ตัวอย่างคำขอ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
curl --fail-with-body https://api.bazaarlink.ai/v1/evaluations \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe-ai/jev",
"state": "The support agent issued a full refund and apologised for the delay.",
"questions": {
"refunded": {
"type": "boolean",
"instructions": "Was a refund issued?"
},
"tone": {
"type": "choice",
"instructions": "Tone of the agent?",
"criteria": {
"apologetic": "The agent apologises",
"neutral": "No emotional language",
"hostile": "The agent is rude"
}
},
"quality": {
"type": "score",
"instructions": "How complete was the resolution?",
"criteria": [
"poor",
"partial",
"complete"
]
}
}
}'
ตัวอย่างการตอบกลับเมื่อสำเร็จ
ตัวอย่างการตอบกลับมี id, object, model, answers, usage, rounding และ warnings โดย answers ใช้ชื่อคำถามเป็นคีย์ usage มี input_tokens, output_tokens และ total_tokens ส่วน rounding แสดง probabilityDecimals และ scoreDecimals warnings เป็นอาร์เรย์และว่างเปล่าในตัวอย่างนี้ ภายใน answers, probabilities ของ choice ใช้ชื่อ option เป็นคีย์ ส่วน probabilities ของ score ใช้ดัชนี criteria ในรูปสตริงเป็นคีย์
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"id": "eval-a3d350e5-2705-4a9b-be7c-838fa4e4eb2b",
"object": "evaluation",
"model": "typesafe-ai/jev",
"answers": {
"refunded": {
"type": "boolean",
"probability": 0.99
},
"tone": {
"type": "choice",
"choice": "apologetic",
"probabilities": {
"apologetic": 1,
"neutral": 0,
"hostile": 0
}
},
"quality": {
"type": "score",
"score": 1.98,
"probabilities": {
"0": 0,
"1": 0.02,
"2": 0.98
}
}
},
"usage": {
"input_tokens": 394,
"output_tokens": 74,
"total_tokens": 468
},
"rounding": {
"probabilityDecimals": 2,
"scoreDecimals": 2
},
"warnings": []
}
การตอบกลับเมื่อปลายทางแชตเกิดข้อผิดพลาด
เมื่อส่ง Jev ไปยังปลายทางแชต จะได้รับ HTTP 400 ฟิลด์และค่าด้านล่างตรงกับโค้ดจัดการคำขอ โดย message ใช้ข้อความแทน และเซิร์ฟเวอร์เป็นผู้ส่งข้อความจริง
{
"error": {
"message": "<server-generated message>",
"type": "invalid_request_error",
"code": 400
}
}