TypeSafe Jev / System One API
TypeSafe Jev는 텍스트, 구조화 데이터 및 이미지를 확률적으로 판단합니다. 한 요청에서 noul, choice, score 질문을 함께 사용할 수 있으며 Jev 1.14는 Box 위치 확인도 지원합니다. 범용 채팅 완성 API가 아니며 Chat 도구 호출은 지원하지 않습니다.
엔드포인트, 인증 및 고정 모델
POST https://api.icodeeasy.cc/v1/systemone
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
TypeSafe Jev 1.14만 공개하며 고정 모델 ID는 jev-1.14.0입니다. 릴리스에 따라 바뀌는 별칭은 제공하지 않습니다.
| 모델 ID | 이미지 입력 | Box | 262K 긴 컨텍스트 |
|---|---|---|---|
jev-1.14.0 | 지원 | 지원 | 지원 |
jev-latest, jev-preview 및 기타 모델명은 공개 카탈로그에 없습니다. 응답은 비스트리밍 JSON입니다. stream을 본내지 말고 System One을 /v1/chat/completions, /v1/messages, /v1/responses로 사용하지 마세요.
텍스트와 구조화 state
state는 문자열, 객체 또는 배열일 수 있습니다. 각 질문에 이름을 지정하면 응답의 answers에서도 같은 이름과 유형이 사용됩니다. 다음 예시는 예/아니오 판단, 고정 선택, 순서형 점수를 함께 요청합니다.
curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "jev-1.14.0",
"state": "I was charged twice for my subscription. Please refund the extra charge today.",
"questions": {
"is_billing": {
"type": "noul",
"instructions": "Is this message about billing?"
},
"department": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"billing": "Duplicate charges, invoices, refunds, and payment failures",
"technical": "Product functionality and technical troubleshooting",
"other": "Requests outside billing and technical support"
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is the request?",
"criteria": [
"No deadline and no immediate impact",
"Needs attention soon but service remains usable",
"Immediate financial or service impact requires urgent handling"
]
}
}
}'
noul은 0~1의 예/아니오 확률, choice는 선택지와 확률 분포, score는 수준 사이의 위치·확률·신뢰 정보를 반환합니다. 확률과 신뢰도는 정확성을 보장하지 않으므로 자체 샘플로 임계값을 정하세요. 결과를 사용하기 전에 응답의 model, 답변 키와 유형, usage.input_tokens / usage.output_tokens를 검증하세요.
SDK 호환성
공식 TypeSafe SDK로 텍스트를 호출할 때는 반드시 compression: false를 명시하고 기본 압축 협상에 의존하지 마세요. 현재 이미지는 이 문서의 JSON + Base64 형식만 지원하며 SDK 기본 multipart 이미지 업로드는 지원하지 않습니다. 이미지를 사용할 때는 SDK의 이미지 업로드 기능 대신 이 문서의 HTTP 요청을 사용하세요.
PNG / JPEG 이미지 입력
이미지 요청에는 TypeSafe-Danger-Zone-Images: true가 필요합니다. 다음은 PNG를 Base64 JSON으로 업로드하는 예입니다. photo-001은 요청 내 참조이며 state, 질문 지시 또는 조건에 나타나야 합니다. JPEG는 format을 jpg 또는 jpeg로 지정합니다.
curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--header 'TypeSafe-Danger-Zone-Images: true' \
--data '{
"model": "jev-1.14.0",
"state": {"photo": "photo-001"},
"assets": {
"photo-001": {
"type": "image",
"format": "png",
"data_base64": "<BASE64_PNG_WITHOUT_DATA_PREFIX>"
}
},
"questions": {
"mug_visible": {
"type": "noul",
"instructions": "Is there a coffee mug in `photo`?"
}
}
}'
Base64에 data: 접두사나 줄 바꿈을 넣지 마세요. 정지 PNG/JPEG만 지원하며 디코딩 후 파일당 최대 16 MiB, 너비와 높이는 각각 280~1568픽셀, 전체 요청 본문은 최대 32 MiB입니다. 이미지는 자동으로 크기가 조정되지 않으며 잘못된 asset이 하나라도 있으면 전체 요청이 실패합니다. 이미지 토큰은 usage.input_tokens에 포함됩니다.
Box 위치 확인(Jev 1.14 전용)
Box는 실험 기능입니다. TypeSafe-Danger-Zone-Images: true를 지정하고 공개 고정 버전 jev-1.14.0을 사용하세요. criteria는 사용하지 않으며 대상 존재 여부를 확인하는 noul을 함께 사용하세요.
{
"model": "jev-1.14.0",
"state": {"photo": "photo-001"},
"assets": {
"photo-001": {
"type": "image",
"format": "jpeg",
"data_base64": "<BASE64_JPEG_WITHOUT_DATA_PREFIX>"
}
},
"questions": {
"mug_visible": {
"type": "noul",
"instructions": "Is there a coffee mug in `photo`?"
},
"mug": {
"type": "box",
"instructions": "the coffee mug in `photo`"
}
}
}
이 JSON 본문을 인증, JSON, Images 헤더와 함께 같은 엔드포인트로 전송하세요. Box의 top, bottom, left, right는 이미지 너비와 높이에 대한 0~1 비율입니다. 대상이 없어도 상자가 반환될 수 있으므로 존재 판단 및 신뢰 정보와 함께 사용하고 정밀 탐지 결과로 간주하지 마세요.
262K 긴 컨텍스트
Jev 1.14는 긴 컨텍스트를 지원합니다. 기본값은 요청당 64K, 질문당 32K입니다. 262K가 필요한 요청에는 다음 헤더를 명시하세요.
TypeSafe-Danger-Zone-Long-Context: true
curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--header 'TypeSafe-Danger-Zone-Long-Context: true' \
--data '{
"model": "jev-1.14.0",
"state": "<LONG_DOCUMENT_OR_STRUCTURED_RECORD>",
"questions": {
"has_early_termination": {
"type": "noul",
"instructions": "Does the state include a clause allowing either party to terminate early?"
}
}
}'
이 헤더를 사용하면 요청과 질문 모두 262K 등급이 적용됩니다. 긴 컨텍스트 추가 요금은 없지만 일반적으로 더 느립니다. 긴 문서와 비영어 입력의 판단 품질은 실제 데이터로 평가하고, 짧은 요청의 성공을 정확한 262K 경계나 문서 처음과 끝의 보존에 대한 증거로 간주하지 마세요.
과금 및 실험 기능의 경계
- 공식 기본 가격은 입력 $0.042 / MTok, 현재 사이트 가격은 입력 ¥0.30 / MTok이며 출력은 0입니다. 계산식은
usage.input_tokens × ¥0.30 / 1,000,000입니다. - 출력 토큰은
usage에 표시되지만 현재 요금이 부과되지 않습니다. 별도 캐시 읽기·쓰기 가격이나 긴 컨텍스트 추가 요금은 없습니다. 이미지도 입력 토큰으로 과금됩니다. - System One은 비스트리밍 구조화 판단 API이며 Chat 도구 호출과 Chat playground를 지원하지 않습니다.
- 이미지와 Box는 실험 기능으로 요청 형식, 답변 및 제한이 버전에 따라 달라질 수 있습니다. Box는 1.14 전용입니다. 프로덕션 전에 자체 이미지, 언어, 임계값 및 실패 사례로 검증하세요.
- 긴 컨텍스트도 컨텍스트, 본문, 이미지 및 속도 제한이 적용됩니다. 고정 버전, 응답 모델, 답변 구조 및
usage검증을 유지하세요.
최신 가격은 가격 페이지에서, 기능 상태는 모델 기능 카탈로그에서 확인하세요.
관련 가이드
모델 기능 카탈로그
공개 텍스트, 이미지 및 동영상 모델의 정규화된 요청 ID, 호환 프로토콜, 지원 클라이언트, 도구 호출, 미디어 입력·출력 기능, 제한 사항과 검토 날짜를 비교합니다.
위안화 가격, 잔액, 사용 내역은 어디서 확인하나요?
공개 화면과 대시보드에서 실시간 위안화 가격, 잔액, 요청 로그, 토큰 사용량, 청구 내역, 현재 결제 가능 여부를 확인하는 안내입니다.
API 요청 내용과 메타데이터는 어떻게 처리되나요?
API 내용과 메타데이터가 라우팅, 사용량, 보안, 지원에 사용되는 방식을 설명하고 전체 개인정보 처리방침으로 연결합니다.