
분류, 간단한 선택, 정해진 기준에 따른 점수 매기기를 매번 긴 모델 응답으로 처리하고 계신가요? OpenAI Decisions API는 이런 제한된 판단을 질문 유형으로 선언하고, 입력에 대한 답을 구조화해 돌려주는 베타 API입니다. 2026년 10월 6일 공개된 문서에서는 실제 요청 형식과 이미지 입력, 음성 앱 연결 방법까지 확인할 수 있습니다.
이 글은 새 API를 직접 호출하고 운영 조건을 살펴보는 데 초점을 맞춥니다. DevDay 최초 발표와 속도 비교, Jev 이야기는 기존 Decisions API 소개 글에서 이어 볼 수 있습니다.
Decisions API는 어떤 일을 하나요?
일반적인 생성 API가 폭넓은 답변을 만드는 데 쓰인다면, Decisions API는 입력에 대해 미리 정한 형태의 질문을 평가합니다. 요청은 model, 공통 input, 순서가 있는 questions로 이뤄지며, 현재 문서는 gpt-6-luna 모델을 예시로 듭니다. 정식 경로는 POST /v1/decisions입니다. 아래 세 유형을 한 요청에 함께 넣으면 입력을 공유하면서 각각 다른 결과를 받을 수 있죠.
- predicate: 입력에 대한 명제가 참일 가능성을 숫자로 반환합니다.
- choice: 개발자가 정한 값 중 하나를 고르고 후보별 확률과 confidence를 제공합니다.
- score: 순서가 있는 등급을 기준으로 정수 점수와 단계별 확률을 돌려줍니다.
질문 순서가 답변 순서에 반영되므로 애플리케이션에서 대응시키기 쉽습니다. 다만 각 답은 거부(refusal)로 돌아올 수 있어, 성공한 값만 온다고 가정하지 말고 응답 유형도 확인해야 합니다.
DECISIONS · INTERACTIVE EXAMPLES
질문 유형을 눌러 결과 형태를 살펴보세요
같은 입력도 질문을 어떻게 정의하느냐에 따라 확률, 선택값, 점수로 달라집니다. 항목을 펼쳐 요청의 핵심과 응답 모양을 비교해 보세요.
예시와 구조는 OpenAI Decisions 공식 가이드를 참고해 자체 구성했습니다. 표시한 수치·결과는 가이드의 예시이며 실시간 API 응답이 아닙니다.
요청과 응답 예시
다음 예시는 고객 메시지가 파손 신고인지 판별하고, 처리 경로를 선택하며, 정해진 세 단계 기준으로 긴급도를 평가합니다. 실제 입력에 맞게 지시문과 선택지를 좁혀 주세요.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "상자가 찌그러져 도착했고 안의 유리병도 깨졌습니다.",
"questions": [
{
"type": "predicate",
"name": "damage_report",
"instructions": "고객이 배송 중 상품 파손을 명시적으로 신고했나요?"
},
{
"type": "choice",
"name": "route",
"instructions": "메시지에 가장 적합한 처리 경로 하나를 고르세요.",
"choices": [
{ "value": "replacement", "description": "상품 파손 또는 결함" },
{ "value": "tracking", "description": "배송 위치 문의" },
{ "value": "other", "description": "그 밖의 문의" }
]
},
{
"type": "score",
"name": "urgency",
"instructions": "고객의 즉시 대응 필요도를 평가하세요.",
"levels": [
{ "label": "low", "description": "긴급하지 않음" },
{ "label": "normal", "description": "일반적인 확인이 필요함" },
{ "label": "high", "description": "빠른 조치가 필요함" }
]
}
]
}'응답의 answers에는 질문 유형별 결과가 입력 순서로 담깁니다. predicate는 probability, choice는 고른 choice와 confidence 및 후보별 probabilities, score는 정수 score와 단계별 확률을 반환하는 형태입니다. 따라서 임계값을 적용하거나 낮은 confidence를 사람에게 넘기는 규칙을 애플리케이션 쪽에서 명시할 수 있습니다. Decisions는 결과를 내며, 주문 취소나 환불 같은 실제 작업은 기존 앱의 권한·검증 로직이 맡아야 합니다.
응답에는 사용량 정보도 포함됩니다. 공식 예시에서 output_tokens는 0으로 표시되지만, 이를 모든 요청의 무료 처리나 무과금 근거로 해석해서는 안 됩니다. 요청별 비용과 실제 청구는 조직의 사용량·청구 내역에서 확인하세요.
이미지도 입력할 수 있습니다
입력은 문자열 또는 user 메시지 배열이며, 메시지 본문에는 텍스트와 인라인 이미지를 함께 넣을 수 있습니다. 예컨대 고객 설명과 제품 파손 사진을 한 입력으로 보내 판정하게 할 수 있습니다. 이미지에는 외부 URL이나 파일 ID가 아니라 data URL을 사용하며, 요청 전체에서 최대 128개까지 허용됩니다.
{
"model": "gpt-6-luna",
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "사진에 상품 파손이 보이나요?" },
{
"type": "input_image",
"image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
"detail": "auto"
}
]
}
],
"questions": [
{
"type": "predicate",
"name": "visible_damage",
"instructions": "이미지에 배송 상품의 파손이 명확히 보이나요?"
}
]
}이 입력 경로가 오디오나 임의 파일까지 받는 것은 아닙니다. 문서상 지원 입력은 user 역할의 텍스트와 인라인 이미지이며, 오디오·파일·도구 호출·비-user 메시지·이전 item 참조는 지원하지 않습니다. 이미지도 API가 허용하는 data URL 형식인지 확인해야 합니다.
GPT-Live 음성 앱과는 어떻게 연결하나요?
Decisions API가 음성을 직접 듣는 방식은 아닙니다. 음성 대화는 GPT-Live가 처리하고, 애플리케이션이 대화 transcript와 현재 상태를 Decisions에 전달해 제한된 선택을 받는 구조입니다.
OpenAI 가이드의 브라우저 예에서는 앱이 발화 내용과 현재 페이지 상태를 함께 보내 back, reload, noop 중 하나를 고르게 합니다. 앱은 응답이 현재 상태에서도 유효한지 검사한 뒤 동작을 실행하고, 결과를 Live 세션에 돌려줍니다. 사용자가 취소했거나 상태가 바뀌었다면 오래된 선택을 실행하지 않도록 처리합니다. 복잡한 설명이나 계획이 필요한 경우에는 별도의 모델 호출로 넘기는 분기도 둘 수 있습니다.
즉, GPT-Live는 자연스러운 실시간 대화를 담당하고 Decisions API는 앱이 넘긴 텍스트 맥락 안에서 정해진 선택지를 평가합니다. 권한 확인과 실제 동작은 애플리케이션이 통제합니다. 음성 연결 공식 가이드와 GPT-Live 가이드에서 전체 흐름을 볼 수 있습니다.
가격표에서 확인할 수 있는 범위
2026년 10월 7일 확인한 OpenAI API 가격표에는 GPT-6 Luna의 표준 입력이 백만 토큰당 $0.10, 캐시 입력이 $0.01, 캐시 쓰기가 $0.125, 출력이 $0.50으로 표시돼 있습니다. 그러나 공개 가격표에는 Decisions API 전용 단가가 별도 항목으로 명시돼 있지 않습니다.
따라서 위 Luna 가격을 Decisions 전용 확정 요금이라고 부를 수는 없습니다. Decisions 응답의 usage 정보를 확인하고, 실제 적용 단가와 캐시 조건은 프로젝트 사용량 및 청구 내역으로 대조하는 편이 안전합니다. 가격은 바뀔 수 있으므로 도입 시점의 공식 API 가격표를 다시 확인하세요.
ZDR, HIPAA, 데이터 지역은 각각 확인해야 합니다
민감한 정보를 다룬다면 API 사용 가능 여부만으로 조직의 데이터 정책을 판단하기 어렵습니다. OpenAI 문서는 보관 설정과 처리 지역을 별도 항목으로 설명합니다.
- HIPAA: 적격 사용은 OpenAI와 BAA 및 Healthcare Addendum을 체결하고 조직 설정 요건을 충족하는 경우에 한정됩니다. 모든 계정에 자동 적용되는 자격이 아닙니다.
- ZDR: 데이터 보관을 줄이기 위한 조직·프로젝트 설정과 endpoint별 조건을 확인해야 합니다. 이미지·파일 관련 안전 검토에는 별도 보존 예외가 적용될 수 있습니다.
- 지역 저장과 지역 추론: 특정 지역에 저장할 수 있다는 표시는 해당 지역에서 추론 처리된다는 뜻과 다릅니다. 현재 문서의 Decisions 지역 추론 표기는 미국과 유럽(EEA 및 스위스)으로 구분돼 있습니다.
OpenAI 데이터 제어 표에서 한국은 regional storage 지원(Yes), regional processing 미지원(No)으로 구분됩니다. Decisions API의 지역 내 추론 처리는 미국과 유럽(EEA 및 스위스) 지원으로 안내돼 있어, 한국에 저장하는 설정과 한국에서 추론하는 지원을 혼동하면 안 됩니다. 실제 적용 전에는 조직 계약과 프로젝트 설정, endpoint의 최신 제한을 함께 확인하세요.



