Decisions API 소개: 텍스트 및 이미지 평가 기능
요약
Decisions API는 텍스트 또는 이미지를 평가하여 유형화된 답변을 빠르고 정확하게 반환하는 새로운 기능입니다. 이 API를 사용하면 특정 조건의 확률, 고정 옵션 선택, 루브릭 점수 등을 얻어 콘텐츠 분류나 작업 우선순위 지정에 활용할 수 있습니다.
핵심 포인트
- Decisions API는 Responses API보다 10배 빠르게 답변을 반환합니다.
- 주요 질문 유형은 'predicate'(조건 확인), 'choice'(옵션 선택), 'score'(점수 평가)가 있습니다.
- 자체 JSON 스키마 생성은 Structured Outputs를, 함수 호출은 Function Calling을 사용해야 합니다.
- 현재는 `gpt-6-luna` 모델과 전용 엔드포인트를 사용합니다.
Decisions API는 텍스트 또는 이미지를 평가하고 Responses API보다 10배 빠르게 유형화된 답변을 반환합니다. 특정 조건이 참일 확률, 고정된 세트에서 선택할 수 있는 옵션, 또는 루브릭에 대한 점수를 얻을 수 있습니다. 이러한 답변을 사용하여 콘텐츠를 분류하고, 요청을 라우팅하며, 애플리케이션 내 작업의 우선순위를 지정하세요.
코드 작성 전에 Playground에서 Decisions API를 사용해 질문과 입력을 실험해 보세요.
Decisions API는 현재 public beta 단계이며, 몇 주 안에 GA(General Availability)가 될 것으로 예상됩니다.
gpt-6-luna
현재 사용 가능한 유일한 모델입니다. 전용 POST /v1/decisions 엔드포인트를 사용하세요.
아래 SDK 예제를 실행하려면 다음 OpenAI SDK 버전 이상을 사용해야 합니다: Python 3.26.0, JavaScript 7.30.0, Go 3.73.0, Ruby 0.101.0, Java 4.78.0. 설치 지침은 OpenAI SDK를 참조하세요.
Decisions 작동 방식
요청(request)은 세 부분으로 구성됩니다:
| 필드 | 용도 |
|---|---|
model | 요청을 평가하는 모델입니다. 현재 gpt-6-luna만 지원합니다. |
input | 질문에 대한 공유 증거: 텍스트 문자열 또는 텍스트와 이미지를 포함하는 사용자 메시지입니다. |
questions | 평가할 내용으로, 각 질문의 유형, 지침, 허용되는 선택 항목 또는 점수 수준을 포함합니다. |
응답(response)에는 answers 배열이 포함됩니다. 각 질문에 고유한 name을 부여하여 답변을 식별하세요. API는 이 이름을 응답에서 반향(echo)합니다.
질문 유형 선택
| 유형 | 사용 용도 | 주요 결과 |
|---|---|---|
predicate | 가시적 손상이나 내용의 관련성 같은 조건을 확인합니다. | probability: 조건이 참일 확률을 0에서 1 사이로 추정합니다. |
choice | 부서나 콘텐츠 카테고리처럼 하나의 옵션을 선택합니다. | choice: 제공된 값 중 하나입니다. |
score | 이슈 심각도와 같이 순서가 있는 수준에 따라 입력을 평가합니다. | score: 수준 인덱스의 확률 가중 평균값입니다. |
choice와 score 모두 이산적인 옵션에 대한 확률을 반환합니다. 부서와 같이 순서가 없는 카테고리에는 choice를 사용하세요. score는
순서가 있는 레벨(ordered levels), 예를 들어 심각도(severity)와 같은 경우, 해당 레벨들의 숫자 인덱스에 대한 확률 가중 평균을 계산하여 레벨 사이에 위치할 수 있는 점수를 산출합니다.
애플리케이션에서 이러한 유형의 답변 중 하나가 필요한 경우 Decisions를 사용하십시오. 추출된 필드나 작성된 설명과 같이 자체 JSON 스키마를 따르는 객체를 생성해야 하는 경우에는 Responses API와 Structured Outputs를 사용하고, 모델이 인자(arguments)와 함께 도구 호출(tool call)을 요청하도록 해야 하는 경우에는 함수 호출(function calling)을 사용하십시오.
시각적 손상 여부 이미지 확인하기
predicate 질문을 사용하여 제품 사진에서 눈에 띄는 손상이 있는지 확인할 수 있습니다. 이 요청은 이미지를 결합하여 균열, 찢어짐 또는 찌그러짐을 찾는 지침과 함께 작동합니다.
IMAGE_BASE64="$(base64 < product.png | tr -d '\r\n')"
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
...
예시 응답 발췌:
{
"answers": [
{
...
probability는 해당 조건이 참일 확률에 대한 모델의 추정치입니다. 이 값을 사용하여 사용자가 선택한 임계값(threshold)을 기반으로 사진을 검토 대상으로 플래그 지정할 수 있습니다.
이미지는 인라인 base64 데이터 URL이어야 합니다. 호스팅된 HTTP 또는 HTTPS 이미지 URL과 file_id 입력은 이 엔드포인트에서 지원되지 않습니다. input_text와 input_image 부분을 사용자 메시지(user message)에 결합하여 지침이나 다른 컨텍스트와 함께 이미지를 평가하십시오.
고정된 옵션 중에서 선택하기
choice 질문은 제공하는 옵션 중 하나의 값을 선택합니다. 각 옵션이 언제 적용되는지 설명하는 고유한 값과 설명을 사용하십시오.
이 요청은 고객 불만 사항을 분류합니다:
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
...
예시 응답 발췌:
{
"answers": [
{
...
답변의 choice 필드에는 제공된 값, 여기서는 `
카테고리가 모든 가능한 입력을 포괄하지 못할 때가 있습니다. 이 경우 애플리케이션은 해당 결과를 일반 검토 큐(general review queue)로 보낼 수 있습니다.
루브릭에 따른 점수화 (Score against a rubric)
score는 입력값을 순서가 지정된 levels에 따라 평가합니다. 각 레벨의 기준을 정의하고 가장 낮은 것부터 높은 순서로 배열해야 합니다.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
...
예시 응답 발췌:
{
"answers": [
{
...
레벨 인덱스는 0부터 시작합니다. 여기서는 0은 미용적(cosmetic)을 의미하고, 1은 해결 방법이 사용 가능하다는 것을 의미하며, 2는 완전히 차단됨(fully blocked)을 의미합니다. 반환되는 score는 확률 가중 평균(probability-weighted average)이므로 레벨 사이에 떨어질 수 있습니다. 이 예시에서는 각각 0.1, 0.7, 0.2의 확률이 점수 1.1을 생성합니다.
답변에는 또한 confidence와 각 레벨별 probabilities가 포함됩니다. 점수는 레벨 전반에 걸친 분포를 요약합니다. 단일 카테고리를 선택하려면 choice를 사용하세요.
여러 질문하기 (Ask multiple questions)
공유된 입력을 평가하기 위해 독립적인 질문들을 동일한 questions 배열에 넣으세요. 제품 사진의 경우, 하나의 요청으로 손상 여부를 확인하고 제품 카테고리를 분류할 수 있습니다. 각 질문은 다른 유형을 사용할 수 있습니다.
이전 답변에 의존하는 결정의 경우, 별도의 요청을 보내야 합니다. 예를 들어, 먼저 손상 여부를 확인한 다음 그 결과를 사용하여 수리 카테고리를 요청할지 결정합니다.
관찰 가능한 기준을 중심으로 질문을 작성하세요. 서로 다른 관심사는 서로 다른 질문으로 분리하고, 선택지에 명확히 구분되는 의미를 부여하며, 인접 레벨이 뚜렷하게 다른 기준을 갖도록 점수 레벨을 정의해야 합니다.
답변 해석하기 (Interpret the answers)
Predicates는 특정 조건이 참일 확률 추정치를 반환합니다. Choice와 Score 답변은 확률 분포와 별도의 confidence 필드를 반환합니다.
애플리케이션에서 레이블링된 예시를 사용하여 라우팅, 필터링 또는 검토에 대한 임계값(thresholds)을 설정하세요. 거짓 양성(false positives)과 거짓 음성(false negatives)의 비용을 기반으로 임계값을 선택해야 합니다.
가격 책정 및 가용성 (Pricing and availability)
gpt-6-luna와 함께
, 입력 토큰당 비용은 $0.10 per 1M tokens입니다. 입력 토큰에 대해서만 비용을 지불하며, 캐시 읽기(cache-read), 캐시 쓰기(cache-write) 또는 출력 토큰에 대한 요금은 없습니다.
지역별 처리 프리미엄 및 장문 컨텍스트 입력 가격 승수(pricing multipliers)가 적용됩니다. 이 요율은 /v1/decisions를 사용하는 경우에 적용되며;
다른 요청의 경우 gpt-6-luna 모델을 사용하며
해당 모델과 처리 등급별(processing-tier) 가격 정책을 따릅니다.
Decisions API는 적격 고객에게 제로 데이터 보존(Zero Data Retention, ZDR) 및 HIPAA 사용을 지원합니다. 데이터 거주지(Data residency) 및 지역별 처리는 미국과 유럽(EEA + 스위스)에서 지원됩니다. 자격 요건, 필수 계약 및 제한 사항은 데이터 관리(data controls)를 참조하십시오.
음성 제어 추가하기
Live API의 클라이언트 위임(client delegation)을 사용하여 음성 요청으로부터 동작을 선택하고 그 결과를 사용자에게 보고할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Code Generation의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기