구조화 평가(Jev)
구조화 평가(Jev)
Jev는 JSON 상태를 이름이 지정된 질문으로 평가하고 boolean, choice 또는 score 유형의 답변을 반환합니다. 명확한 기준을 프로그램에서 처리할 수 있는 평가 결과로 바꿀 때 사용하세요.
평가 및 판단 전용
Jev는 채팅을 지원하지 않습니다. Jev 요청은 POST /v1/evaluations로 보내세요. POST /v1/chat/completions로 보내면 HTTP 400을 반환합니다.
POST/v1/evaluations
BazaarLink API 키로 다음 엔드포인트를 호출하세요. 전체 URL: https://api.bazaarlink.ai/v1/evaluations.
필드 설명
model
string
선택 사항입니다. 생략하면 typesafe-ai/jev가 기본값입니다. 다른 모델 ID는 HTTP 400과 model_not_available 코드를 반환합니다.
state
string | object | array
필수입니다. 평가할 상태를 JSON 문자열, 객체 또는 배열로 제공합니다. 직렬화된 state와 questions의 합계가 32,000 tokens를 넘으면 context_length_exceeded를 반환합니다.
questions
record<string, Question>
필수이며 이름이 지정된 질문을 하나 이상 포함하는 객체입니다. 각 질문 이름은 응답 answers 객체의 키가 됩니다.
type
boolean | choice | score
각 질문에 필수이며 boolean, choice 또는 score 중 하나입니다.
instructions
string | object | array
각 질문에 필수입니다. 판단할 내용을 설명하는 JSON 문자열, 객체 또는 배열입니다.
criteria
object | array
type에 따라 다릅니다. boolean에서는 선택 사항이며, 제공할 경우 키는 true 또는 false만 허용됩니다. choice에는 비어 있지 않은 객체가 필요하고 score에는 순서가 있는 항목 두 개 이상의 배열이 필요합니다.
답변 유형
boolean — criteria는 생략할 수 있으며, 지정하는 경우 true와 false 키만 허용됩니다. 답변에는 숫자 probability가 포함됩니다.choice — criteria는 선택지 이름을 JSON 기준에 연결하는 비어 있지 않은 객체여야 합니다. 답변에는 문자열 choice가 포함되며 probabilities의 키는 선택지 이름입니다.score — criteria는 두 항목 이상을 순서대로 담은 배열이어야 합니다. 숫자 score는 criteria 배열 순서에 따른 인덱스 0..N-1의 기댓값이며, 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에서 choice의 probabilities는 선택지 이름을 키로 사용하고, score의 probabilities는 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
}
}