curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
Jev
Jev 의사결정 인터페이스
- 동기식 의사결정 인터페이스이며, 채팅 인터페이스가 아니므로 스트리밍 출력을 지원하지 않습니다
- 자료
state와 여러 판단 질문questions를 제출하면 한 번의 응답으로 각 질문의 확률, 선택지 또는 점수를 반환합니다 - 호출 시 모델명에
jev를 입력합니다
POST
/
api
/
v1
/
systemone
curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
Authorizations
string
필수
API 키, Bearer Token 형식API Key 발급:API Key 관리 페이지에 접속하여 API Key를 확인하세요
Authorization: Bearer YOUR_API_KEY
Body
string
필수
모델 이름입니다.
jev로 고정하여 입력합니다.응답의 result.result.model은 업스트림에서 실제로 사용하는 버전 번호(예: jev-1.13.0)입니다. 이 필드는 업스트림에서 반환되므로 요청에 버전 번호를 입력하지 마세요.object
필수
판단 내용입니다.
state와 questions를 포함합니다.표시 필드 설명
표시 필드 설명
string | object | array
필수
판단할 대상 자료입니다. 한 문장일 수도 있고 객체나 배열일 수도 있습니다. 판단 완료에 필요한 데이터만 포함하고 API Key, 비밀번호 등 민감한 정보는 포함하지 마세요.
object
필수
질문 목록이며 비워둘 수 없습니다. 키 이름은 직접 정의하며 각 질문은 객체입니다.모든 질문에는
type과 instructions가 있어야 합니다.noul— 진위형(OX) 질문입니다. 0에서 1 사이의noul을 반환하며 ‘예’일 확률을 나타냅니다.criteria는 선택 사항이며, 형태는{ "true": "어떤 경우가 참인지", "false": "어떤 경우가 거짓인지" }와 같습니다.choice— 객관식 단일 선택입니다.criteria는 필수이며, ‘선택지 이름 → 설명’ 형태의 객체입니다. 반환되는choice는 선택된 선택지 이름입니다.score— 점수 매기기입니다.criteria는 필수이며, 낮은 항목부터 높은 항목 순으로 최소 2개 항목의 정렬된 배열입니다. 반환되는score는 해당하는 구간의 숫자이며, 첫 번째 항목은 0이고 소수일 수 있습니다. 예를 들어 3개 등급일 때1.99는 거의 세 번째 항목에 해당함을 나타냅니다.
noul, choice, score를 동시에 포함할 수 있습니다. stream을 전달하지 마세요. 이 엔드포인트는 한 번에 완전한 JSON만 반환합니다.
Response
응답 본문은 업스트림 원본 JSON이며, 본 인터페이스는 이를 수정하지 않습니다. 판단 결과는result.result.answers에 있습니다.
boolean
이번 요청의 성공 여부
array
오류 목록입니다. 성공 시 빈 배열입니다.
array
추가 메시지입니다. 메시지가 없을 경우 빈 배열입니다.
object
업스트림 실행 결과
표시 필드 설명
표시 필드 설명
string
실행 상태입니다.
Completed는 완료되었음을 나타냅니다.object
모델 응답
표시 필드 설명
표시 필드 설명
string
업스트림에서 실제로 사용된 버전 번호입니다 (예:
jev-1.13.0).object
각 문항의 결과입니다. 키 이름은 요청의 문항 이름과 일치합니다.
noul:{ "type": "noul", "noul": 0.49 }.0.8이상은 “예”,0.2이하는 “아니오”로 간주할 수 있으며,0.5에 가까우면 불확실함을 나타냅니다.choice:choice는 선택된 옵션 이름,probabilities는 각 옵션의 확률,confidence는 신뢰도입니다.score:score는 점수이며,legend는 등급 인덱스를 제출한 텍스트로 다시 매핑합니다.
使用示例
curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
다중 질문 예시
choice와 score는 noul과 함께 동일한 요청에 포함할 수 있습니다.
{
"model": "jev",
"input": {
"state": {
"ticket": "결제 인터페이스 간헐적 타임아웃 발생, 데이터베이스 커넥션 풀 거의 고갈."
},
"questions": {
"next_action": {
"type": "choice",
"instructions": "가장 안전한 다음 조치 선택",
"criteria": {
"rollback": "최근 변경 사항 롤백",
"observe": "지속적인 관찰 및 로그 샘플링"
}
},
"risk": {
"type": "score",
"instructions": "이번 장애의 위험도 평가",
"criteria": ["낮음", "중간", "높음", "매우 높음"]
},
"escalate": {
"type": "noul",
"instructions": "수동 에스컬레이션 필요 여부"
}
}
}
}
注意事项
- 본 인터페이스는 채팅 인터페이스가 아니므로
messages를 전달할 수 없으며stream도 전달할 수 없습니다. - 컨텍스트 윈도우는 32000 tokens입니다.
- 비즈니스 실패 시 HTTP 상태 코드가 여전히 200일 수 있으므로
success와errors를 함께 확인해 주세요. 인증 실패 시401을 반환하며,model누락 또는 유효하지 않은 JSON의 경우400을 반환하고, 모델이 존재하지 않는 경우404를 반환합니다.