모델 가이드고급 사용자업데이트

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이미지 입력Box262K 긴 컨텍스트
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 검증을 유지하세요.

최신 가격은 가격 페이지에서, 기능 상태는 모델 기능 카탈로그에서 확인하세요.