OpenAI Decisions API와 TypeSafe의 Jev는 동일한 작업을 수행합니다: 입력과 일련의 질문을 보내면, 파싱해야 하는 텍스트 대신 확률이 포함된 유형화된 답변을 받으며, 입력 토큰에 대해서만 비용을 지불합니다. Decisions는 1백만 입력 토큰당 0.10달러이며, 공개 베타 중이고, 텍스트와 이미지를 모두 허용하며, GPT-6 Luna에서 실행됩니다. Jev는 1백만 입력 토큰당 0.042달러이며, TypeSafe 콘솔 계정 뒤의 얼리 액세스 상태이고, 텍스트 전용이며, 각 요청을 64k 토큰으로 제한합니다.
기본 사항은 Decisions API가 무엇인지와 Jev 사용법부터 시작하세요. 이 게시물은 이들을 항목별로 비교한 다음, 하나의 신뢰도 규칙 뒤에 있는 하나의 Apidog 프로젝트에 모두 연결합니다.
나란히 비교
모든 셀은 참조에 있는 공급업체 페이지에서 가져왔습니다.
| OpenAI Decisions API | TypeSafe Jev | |
|---|---|---|
| 엔드포인트 | POST /v1/decisions |
POST /v1/systemone |
| 모델 | gpt-6-luna만 해당 |
jev-1.13.0 (jev-latest) |
| 상태 | 공개 베타, GA는 “향후 몇 주 내” | 얼리 액세스 (출시 게시물), 콘솔 계정을 통한 직접 액세스 제한 |
| 입력 | 텍스트 + 이미지 (base64 데이터 URL; 참조에는 공개 URL도 나열됨) | 텍스트 전용, 요청당 64k |
| 질문 유형 | predicate / choice (2~255개 옵션) / score |
noul / choice / score |
| 질문 형태 | 선택적 name을 포함한 배열 |
ID로 키가 지정된 객체 |
| 출력 필드 | probability; choice 또는 score + probabilities + confidence; refusal |
noul; choice 또는 score + confidence + probabilities |
| 가격 | 입력 1백만 개당 0.10달러, 출력 요금 없음 | 입력 1백만 개당 0.042달러, 출력 요금 없음 |
| 캐싱 | 아직 없음 (OpenAI 포럼) | 미공개 |
| 속도 제한 | 조직별 제한 페이지 | 100K TPS / 80 RPS, 동적 |
| 속도 주장 | “Responses API보다 약 10배 빠름” (OpenAI) | 70~500ms 엔드 투 엔드 (TypeSafe) |
| 데이터 | ZDR + 적격 고객을 위한 HIPAA; 미국/EU 거주 | 기업용 ZDR; 요청으로 학습되지 않음 |
Decisions는 모델이 아니라 엔드포인트입니다. GPT-6 Luna에서 실행됩니다. Jev는 TypeSafe의 "System One 모델"로, 보정된 결정을 반환하도록 RLCD로 훈련되었으며, 일반적인 LLM이 아닙니다.
두 가지 형태로 동일한 티켓 라우팅 요청
지원 티켓이 도착했습니다. 부서와 고객이 환불을 원하는지에 대한 예/아니오를 원합니다. Decisions부터: 질문은 배열이며, 각 질문에는 type, instructions, 그리고 API가 다시 에코하는 선택적 name이 있습니다.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "I was charged twice for my order.",
"questions": [
{
"type": "choice",
"name": "department",
"instructions": "Which team should handle this ticket?",
"choices": [
{"value": "billing", "description": "Charges, refunds"},
{"value": "technical", "description": "Bugs, errors"},
{"value": "other"}
]
},
{
"type": "predicate",
"name": "wants_refund",
"instructions": "Is the customer asking for money back?"
}
]
}'
이제 Jev입니다: 입력 필드는 state이고, 질문은 선택한 ID로 키가 지정된 객체이며, choice는 옵션 설명을 위한 criteria 맵을 사용하고, 예/아니오 유형은 noul입니다.
curl https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "I was charged twice for my order.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Charges, refunds",
"technical": "Bugs, errors",
"other": "Anything else"
}
},
"wants_refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'
돌아오는 것
Decisions는 model, answers, 그리고 usage를 반환합니다. 답변은 요청된 순서대로 각 name과 함께 도착하며, 옵션별 확률은 객체 배열입니다. output_tokens: 0에 주목하세요.
{
"model": "gpt-6-luna",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{"value": "billing", "probability": 0.95},
{"value": "technical", "probability": 0.02},
{"value": "other", "probability": 0.03}
],
"confidence": 0.93
},
{"type": "predicate", "name": "wants_refund", "probability": 0.95}
],
"usage": {
"input_tokens": 42,
"input_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0},
"output_tokens": 0,
"output_tokens_details": {"reasoning_tokens": 0},
"total_tokens": 42
}
}
Jev는 model (버전 ID), 질문 ID로 키가 지정된 answers 객체, 그리고 input_tokens 및 output_tokens를 포함하는 usage를 반환합니다. answers.department.choice, 해당 confidence, 옵션 이름으로 키가 지정된 probabilities, 그리고 answers.wants_refund.noul을 읽습니다. OpenAI 측에서만 refusal 답변이 질문별로 나타날 수 있으며, 다른 답변은 계속 제공됩니다.
1백만 개당 가격, 그리고 1백만 개 티켓의 비용
OpenAI의 설명: gpt-6-luna의 경우 입력 비용은 1백만 토큰당 0.10달러이며, 캐시 읽기, 캐시 쓰기, 출력 토큰 요금은 없습니다. TypeSafe는 1백만 입력 토큰당 0.042달러와 무료 출력을 명시합니다.
위의 두 가지 질문이 있는 500토큰 티켓을 예로 들어보겠습니다.
- Decisions: 500 / 1,000,000 x $0.10 = 요청당 $0.00005. 1백만 개 티켓 = $50.
- Jev: 500 / 1,000,000 x $0.042 = 요청당 $0.000021. 1백만 개 티켓 = $21.
OpenAI 측에는 두 가지 승수가 적용됩니다: 긴 컨텍스트 입력(272K 토큰 초과)은 2배이며, 따라서 1백만 개당 0.20달러이며, 가격 페이지에서 파생됩니다. 지역 처리 시 10%가 추가됩니다. /v1/decisions에 대한 Batch, Flex, 또는 Fast 계층은 문서화되어 있지 않으며, OpenAI 포럼에 따르면 아직 프롬프트 캐싱은 없지만, usage에는 cached_tokens 및 cache_write_tokens 필드가 포함되어 있습니다. Jev는 캐싱에 대해 아무것도 게시하지 않습니다.
입력: 한쪽은 이미지, 다른 쪽은 텍스트
Decisions는 문자열 또는 input_text와 input_image 부분을 혼합한 사용자 메시지 배열을 사용합니다. 가이드는 이미지가 인라인 base64 데이터 URL이어야 한다고 명시합니다. API 참조는 또한 공개 HTTP(S) URL과 요청당 최대 128개의 이미지를 나열하므로, base64를 안전한 경로로 취급하고 호스팅된 URL에 의존하기 전에 테스트하세요. file_id, 파일, 오디오는 지원되지 않습니다.
Jev는 텍스트 전용입니다: TypeSafe의 모델 페이지에 따르면 이미지, 오디오 또는 비디오 입력 없이 문자열, JSON 객체 또는 텍스트 배열입니다. OpenAI 포럼에서 sam.saffron은 Jev가 아직 이미지 이해를 지원하지 않는다고 분명히 밝혔습니다. 의사 결정이 사진에 따라 달라진다면 Decisions만이 그것을 볼 수 있습니다.
컨텍스트 및 속도 제한
Jev는 요청당 64k 토큰 제한을 게시하며, state와 가장 긴 질문에 대해 32k를 사용하며, 한 번 상태를 수집하고 모든 질문을 병렬로 평가한다고 말합니다. 모델 페이지는 초당 100K 토큰과 초당 80개 요청을 나열하며, 동적으로 조정되며, 한계를 초과하면 429 오류가 발생합니다. 이 수치는 9월 이후로 변경되었으므로, 실시간 페이지를 읽어보세요.
OpenAI는 컨텍스트 창 수치나 Decisions별 속도 제한을 게시하지 않습니다. Luna의 1,050,000토큰 창은 모델 페이지 수치이며, 엔드포인트 수치가 아닙니다. 설정 > 조직 > 제한(속도 제한 가이드)을 확인하세요. 당사의 속도 제한 가이드는 양측의 429 처리 방법을 다룹니다.
상태 및 액세스
Decisions는 2026년 10월 6일 공개 베타에 들어갔으며, 공지에 따라 모든 개발자에게 공개되었습니다. 가이드에는 OpenAI가 GA를 "향후 몇 주 내"에 예상한다고 명시되어 있지만, 날짜는 없습니다.
Jev는 TypeSafe의 출시 게시물에 따라 얼리 액세스 상태이며, 대기자 명단이 언급되어 있고, api.typesafe.ai에 대한 직접 액세스는 TypeSafe 콘솔 계정 뒤에 있습니다. Jev에 액세스하는 방법은 경로를 안내하고 Jev API 키는 키 생성을 다룹니다. 두 번째 경로는 Vercel AI Gateway이며, Jev는 typesafe-ai/jev로, AI SDK(7.0.105 이상)에서 experimental_evaluate를 통해 호출됩니다(Vercel 변경 로그에 따름). Vercel의 평가 문서에 따르면 Gateway의 OpenAI 호환 엔드포인트에는 노출되지 않으며, 거기서 예/아니오 유형은 boolean으로, 참일 확률을 반환합니다.
데이터 제어
OpenAI는 Decisions가 적격 고객을 위해 Zero Data Retention 및 HIPAA 사용을 지원하며, 미국 및 유럽(EEA + 스위스)에 데이터 상주 및 지역 처리를 제공한다고 말합니다. 데이터 제어 페이지는 /v1/decisions에 대한 오용 모니터링 로그가 기본적으로 최대 30일 동안 보관된다고 덧붙입니다. TypeSafe는 Jev가 고객 요청이나 응답으로 훈련되지 않으며, 기업 고객을 위한 ZDR을 제공하고, 모든 계정에 동일한 가중치를 사용한다고 말합니다.
두 공급업체 모두 정확도 또는 보정 수치를 게시하지 않습니다. OpenAI의 가이드는 자체 레이블이 지정된 예시에서 임계값을 설정하도록 알려주며, 이는 Jev에도 적용됩니다.
속도, 그리고 무엇을 선택할 것인가
OpenAI는 Decisions가 Responses API보다 약 10배 빠르다고 말하며 절대적인 지연 시간 수치를 게시하지 않습니다. OpenAI 포럼의 한 개발자는 느린 연결에서 이미지 입력 결정이 약 0.8초 만에 이루어졌다고 보고했습니다. TypeSafe는 Jev의 엔드 투 엔드 시간이 70ms에서 500ms 사이라고 인용합니다. 이들은 비교할 수 없는 측정값이므로, 자신의 티켓으로 둘 다 시간을 측정해보세요.
입력에 이미지가 포함될 때, 이미 OpenAI를 사용 중이며 하나의 키와 하나의 청구서만 원할 때, 또는 OpenAI BAA 하에 HIPAA 적용 범위가 필요할 때 Decisions를 선택하세요. 입력이 텍스트일 때, 볼륨에서 토큰당 가격이 낮아야 할 때, 또는 이미 Vercel AI Gateway를 사용 중일 때 Jev를 선택하세요.
몇 주 동안 둘 다 실행하는 것이 합리적입니다: 동일한 레이블이 지정된 세트에 대해 각각 점수를 매기고, 더 나은 임계값 곡선을 유지하며, 다른 하나는 폴백으로 보관하세요. 실제 질문이 Decisions 대 구조화된 출력 레이블이라면 Decisions vs Responses를 참조하세요. 만약 어떤 공급업체도 데이터 정책에 맞지 않는다면, 오픈 소스 Jev 대안이 있습니다.
하나의 Apidog 프로젝트에서 둘 다 테스트
두 가지 환경. OPENAI_API_KEY가 있는 OpenAI와 TYPESAFE_API_KEY가 있는 TypeSafe를 생성하고, 각각 로컬 필드에 값을 넣어 팀에 동기화되지 않도록 합니다(환경 및 비밀 변수가 범위 지정을 다룹니다).
두 가지 저장된 요청. Bearer {{OPENAI_API_KEY}}와 첫 번째 본문을 포함한 POST https://api.openai.com/v1/decisions; Bearer {{TYPESAFE_API_KEY}}와 두 번째 본문을 포함한 POST https://api.typesafe.ai/v1/systemone.
두 번 적용되는 하나의 어설션 규칙. 비즈니스 규칙: 신뢰도가 0.8을 초과하면 티켓이 자동으로 라우팅되고, 그보다 낮으면 검토 대기열로 이동합니다. Decisions 요청에서는 상태가 200인지, $.answers[0].choice가 billing과 같은지, $.answers[0].confidence가 0.8보다 큰지, 그리고 $.usage.output_tokens가 0과 같은지 어설션합니다. Jev 요청에서는 $.answers.department.choice가 billing과 같고 $.answers.department.confidence가 0.8보다 큰지 어설션합니다.
데이터 기반 시나리오. 예상 부서가 포함된 레이블이 지정된 티켓 20개를 CSV에 넣고, 이를 테스트 시나리오로 사용하여 두 요청을 모두 실행한 다음, 모호한 행에서 어떤 API의 신뢰도가 0.8 미만으로 떨어지는지 확인하세요. 이것이 임계값을 선택하는 방법이며, 티켓이 잘못 라우팅되기 전에 모델 변경 사항을 파악하는 데 도움이 됩니다.
두 가지 형태를 모두 모의(mock)합니다. Decisions 응답과 Jev 응답을 모의로 저장하여 프런트엔드가 안정적인 answers 배열 및 answers 객체에 대해 빌드될 수 있도록 합니다. 조건부 API 응답 모의는 검토 대기열 분기를 연습하기 위해 요청 시 낮은 신뢰도 사례를 반환합니다.
CI에서 실행합니다. 모든 배포 시 Apidog CLI(cli 또는 junit 리포터와 함께 apidog run)를 사용하여 시나리오를 실행하여, GA에서의 필드 변경이나 jev-latest 업데이트가 지원 대기열이 아닌 빌드를 실패하게 합니다. 이를 설정하려면 Apidog를 다운로드하세요.
자주 묻는 질문
Jev는 GPT-6 Luna와 같은 LLM인가요? 아닙니다. TypeSafe는 Jev를 보정된 결정을 반환하도록 RLCD로 훈련된 System One 모델로 설명합니다. 텍스트를 생성하지 않습니다. Decisions는 범용 Luna 모델의 엔드포인트입니다.
OpenAI가 Jev에 대응하여 Decisions API를 만들었나요? OpenAI 페이지에는 그렇게 명시되어 있지 않으며, 저희도 그렇게 주장하지 않습니다. 둘 다 동일한 아이디어를 제공합니다: 입력 기준으로 청구되는 확률이 포함된 유형화된 답변.
어느 것이 더 저렴한가요? Jev가 1백만 입력 토큰당 0.042달러 대 0.10달러로 더 저렴합니다. 1백만 개의 500토큰 티켓의 경우 21달러 대 50달러입니다.
둘 중 하나가 사용자 정의 JSON 스키마를 반환할 수 있나요? 아닙니다. 둘 다 고정된 답변 형태를 반환합니다. 추출된 필드 또는 서면 설명의 경우 Responses API에서 구조화된 출력을 사용하세요.
다음 단계
위의 두 curl 요청을 동일한 티켓으로 보내고, 둘 다 Apidog에 저장한 다음, 각각에 0.8 신뢰도 어설션을 추가하세요. 그런 다음 자신의 티켓 20개를 교체하고 어떤 API가 임계값을 더 자주 넘는지 확인하세요. 사용 방법 가이드에는 Python 및 JavaScript 버전이 있습니다.
