예제

OpenAI Decisions API 예제

POST /api/v1/decisions에 그대로 보낼 수 있는 요청 본문 12개 — 이 사이트의 decisions-1 엔드포인트, 호출 가능한 OpenAI Decisions API 대안. 각 카드에는 요청, 예시 응답, 시스템이 그에 따라 어떻게 동작하는지가 담겨 있습니다.

업데이트

결제 장애 라우팅

요청

{
  "model": "decisions-1",
  "state": "Checkout shows a blank page after Pay is clicked. The customer is on the live store, not a sandbox.",
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "Which team should own this ticket?",
      "criteria": {
        "payments": "Checkout, billing, or payment processing.",
        "frontend": "Rendering, layout, or browser behavior.",
        "account": "Login, permissions, or profile access."
      }
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "team": {
      "type": "choice",
      "choice": "frontend",
      "probabilities": {
        "frontend": 0.71,
        "payments": 0.24,
        "account": 0.05
      },
      "confidence": 0.47
    }
  },
  "credits_used": 1
}

조치: 티켓을 frontend로 보냅니다. payments가 0.5 근처면 분류 큐로 라우팅합니다.

환불 의도

요청

{
  "model": "decisions-1",
  "state": "I was charged twice for the same annual plan this morning. Please send the extra charge back.",
  "questions": {
    "refund": {
      "type": "noul",
      "instructions": "Is the customer asking for money back?"
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "refund": {
      "type": "noul",
      "noul": 0.98
    }
  },
  "credits_used": 1
}

조치: noul ≥ 0.9면 환불 큐로 자동 이관. 미만이면 상담원이 직접 확인합니다.

긴급도 점수

요청

{
  "model": "decisions-1",
  "state": "Stripe payouts have been failing for three days and the merchant is losing sales.",
  "questions": {
    "urgency": {
      "type": "score",
      "instructions": "How urgent is this ticket?",
      "criteria": [
        "Can wait for the next release",
        "Should be handled this week",
        "Blocking revenue right now"
      ]
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "urgency": {
      "type": "score",
      "score": 2,
      "legend": [
        "Can wait for the next release",
        "Should be handled this week",
        "Blocking revenue right now"
      ],
      "probabilities": {
        "0": 0.02,
        "1": 0.14,
        "2": 0.84
      },
      "confidence": 0.84
    }
  },
  "credits_used": 1
}

조치: score 2는 온콜 엔지니어 호출, score 1은 주간 큐, score 0은 다음 릴리스까지 대기.

피싱 검사

요청

{
  "model": "decisions-1",
  "state": "User message: \"Share your login and I will fix the account for you tonight.\"",
  "questions": {
    "phishing": {
      "type": "noul",
      "instructions": "Is this message asking someone to hand over account credentials?"
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "phishing": {
      "type": "noul",
      "noul": 0.96
    }
  },
  "credits_used": 1
}

조치: noul ≥ 0.8이면 메시지 차단 및 발신자 플래그. 나머지는 그대로 통과.

리드 선별

요청

{
  "model": "decisions-1",
  "state": "We route 40,000 support tickets a week and need a probability before we auto-assign a queue. Budget is approved this quarter.",
  "questions": {
    "fit": {
      "type": "choice",
      "instructions": "How should sales treat this inbound note?",
      "criteria": {
        "ready": "A real workflow, a volume, and a buying window.",
        "nurture": "Interest without a stated workflow or timeline.",
        "ignore": "No product fit."
      }
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "fit": {
      "type": "choice",
      "choice": "ready",
      "probabilities": {
        "ready": 0.88,
        "nurture": 0.11,
        "ignore": 0.01
      },
      "confidence": 0.77
    }
  },
  "credits_used": 1
}

조치: ready는 당일 영업 답변, nurture는 뉴스레터 트랙, ignore는 정중히 거절.

정책 게이트

요청

{
  "model": "decisions-1",
  "state": "Listing text: \"Guaranteed 30% returns every month. Send crypto to this wallet to join.\"",
  "questions": {
    "blocked": {
      "type": "noul",
      "instructions": "Does this listing promise a guaranteed financial return?"
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "blocked": {
      "type": "noul",
      "noul": 0.99
    }
  },
  "credits_used": 1
}

조치: noul ≥ 0.9이면 리스팅 보류 및 판매자 통지. 미만이어도 사람 검토 큐로 갑니다.

이탈 위험 점수

요청

{
  "model": "decisions-1",
  "state": "The renewal note says the team may not continue because exports fail every Friday and nobody has answered the last two tickets.",
  "questions": {
    "risk": {
      "type": "score",
      "instructions": "How high is the chance this account does not renew?",
      "criteria": [
        "Unlikely to leave",
        "Unhappy, still using the product",
        "Likely to cancel"
      ]
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "risk": {
      "type": "score",
      "score": 2,
      "legend": [
        "Unlikely to leave",
        "Unhappy, still using the product",
        "Likely to cancel"
      ],
      "probabilities": {
        "0": 0.07,
        "1": 0.24,
        "2": 0.69
      },
      "confidence": 0.55
    }
  },
  "credits_used": 1
}

조치: score 2는 계정 담당자와 유지 플레이 시작. score 1은 체크인 예약. score 0은 자동 유지.

송장 예외

요청

{
  "model": "decisions-1",
  "state": "Vendor invoice 4481 is $18,400. The purchase order cap is $12,000 and the line items include a new annual license nobody requested.",
  "questions": {
    "exception": {
      "type": "choice",
      "instructions": "Which exception should accounts payable open?",
      "criteria": {
        "over_po": "The amount is above the purchase order.",
        "unexpected_item": "A line item was not requested.",
        "both": "The amount and a line item are both wrong."
      }
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "exception": {
      "type": "choice",
      "choice": "both",
      "probabilities": {
        "both": 0.86,
        "over_po": 0.1,
        "unexpected_item": 0.04
      },
      "confidence": 0.76
    }
  },
  "credits_used": 1
}

조치: both는 구매팀에 케이스 생성. over_po만이면 승인자에게, unexpected_item만이면 요청자에게.

에이전트 다음 행동

요청

{
  "model": "decisions-1",
  "state": "The support agent has the refund policy loaded and the customer confirmed their order number. No tool call has run yet.",
  "questions": {
    "next_action": {
      "type": "choice",
      "instructions": "What should the agent do next?",
      "criteria": {
        "issue_refund": "Call the refund tool for the confirmed order.",
        "ask_details": "Ask the customer for more information.",
        "escalate": "Hand the conversation to a human."
      }
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "next_action": {
      "type": "choice",
      "choice": "issue_refund",
      "probabilities": {
        "issue_refund": 0.82,
        "ask_details": 0.13,
        "escalate": 0.05
      },
      "confidence": 0.69
    }
  },
  "credits_used": 1
}

조치: issue_refund는 환불 도구 실행, ask_details는 후속 질문, escalate는 사람에게 인계.

버그 분류

요청

{
  "model": "decisions-1",
  "state": "Bug report: the export button spins forever on Firefox but works in Chrome. Two enterprise accounts reported it this week.",
  "questions": {
    "severity": {
      "type": "score",
      "instructions": "What severity should this bug get?",
      "criteria": [
        "Cosmetic",
        "Minor workaround exists",
        "Blocks a core flow"
      ]
    },
    "is_duplicate": {
      "type": "noul",
      "instructions": "Does this report describe a known browser-specific failure pattern?"
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "severity": {
      "type": "score",
      "score": 2,
      "legend": [
        "Cosmetic",
        "Minor workaround exists",
        "Blocks a core flow"
      ],
      "probabilities": {
        "0": 0.04,
        "1": 0.22,
        "2": 0.74
      },
      "confidence": 0.58
    },
    "is_duplicate": {
      "type": "noul",
      "noul": 0.31
    }
  },
  "credits_used": 1
}

조치: 한 호출에 두 질문 — severity가 큐를 정하고 is_duplicate가 기존 이슈 연결을 결정.

리뷰 답글 게이트

요청

{
  "model": "decisions-1",
  "state": "App store review, 4 stars: \"Solid app, but the last update broke dark mode on my tablet.\"",
  "questions": {
    "needs_reply": {
      "type": "noul",
      "instructions": "Should the team reply to this review?"
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "needs_reply": {
      "type": "noul",
      "noul": 0.81
    }
  },
  "credits_used": 1
}

조치: noul ≥ 0.7이면 검토자용 답글 초안 작성. 미만은 주간 다이제스트에만 기록.

SLA 티어 배정

요청

{
  "model": "decisions-1",
  "state": "A customer on the Enterprise plan reports their single sign-on is down for all 300 employees.",
  "questions": {
    "sla_tier": {
      "type": "choice",
      "instructions": "Which SLA tier applies to this ticket?",
      "criteria": {
        "p1": "Full outage for an enterprise account.",
        "p2": "Major feature degraded.",
        "p3": "Standard request."
      }
    }
  }
}

예시 응답

{
  "model": "decisions-1",
  "answers": {
    "sla_tier": {
      "type": "choice",
      "choice": "p1",
      "probabilities": {
        "p1": 0.93,
        "p2": 0.06,
        "p3": 0.01
      },
      "confidence": 0.87
    }
  },
  "credits_used": 1
}

조치: p1은 인시던트 타이머 시작 및 계정 담당자 통지. p2/p3는 일반 큐로.

지금 예제 실행

위 요청은 모두 그대로 작동합니다 — 플레이그라운드에서 열거나 자체 키로 보내세요.