Langsung ke konten

Decisions

POST /v1/decisions ditujukan untuk pemanggilan model yang tujuannya mengambil keputusan: mengarahkan tiket, memeriksa apakah sebuah pesan mendesak, memberi skor pada sebuah teks, atau mengklasifikasikan sebuah catatan. Alih-alih teks bebas yang harus Anda parse, Anda mendapatkan jawaban bertipe beserta probabilitas untuk menetapkan ambang batas. Ini mengikuti Decisions API dari OpenAI.

Model untuk Decisions antara lain gpt-6-luna-decisions dan microsoft-decision-1.

Mengajukan pertanyaan

curl https://api.inferray.com/v1/decisions \
  -H "Authorization: Bearer $INFERRAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna-decisions",
    "input": "Help! My payouts have been failing for 3 days.",
    "questions": [
      {
        "type": "choice",
        "name": "department",
        "instructions": "Which team should handle this?",
        "choices": [
          { "value": "billing", "description": "Payments, invoicing, refunds" },
          { "value": "technical", "description": "Bugs, outages, integrations" }
        ]
      },
      { "type": "predicate", "name": "is_urgent", "instructions": "Does this convey urgency?" },
      {
        "type": "score",
        "name": "impact",
        "instructions": "Rate the operational impact.",
        "levels": [{ "label": "None" }, { "label": "Limited" }, { "label": "Critical" }]
      }
    ]
  }'

Jenis pertanyaan

JenisMenanyakanJawaban
predicateApakah sesuatu benarprobability dari 0 hingga 1
choiceMana dari choices Anda yang berlakuchoice, probabilitas untuk tiap opsi, dan confidence
scorePenilaian pada levels terurut Anda, dimulai dari yang terendahscore, probabilitas, dan confidence

Respons

{
  "model": "gpt-6-luna-decisions",
  "answers": [
    {
      "type": "choice",
      "name": "department",
      "choice": "billing",
      "probabilities": [
        { "value": "billing", "probability": 0.88 },
        { "value": "technical", "probability": 0.12 }
      ],
      "confidence": 0.81
    },
    { "type": "predicate", "name": "is_urgent", "probability": 0.93 },
    { "type": "score", "name": "impact", "score": 1.7, "confidence": 0.74 }
  ]
}

Jawaban dikembalikan sesuai urutan pertanyaan Anda, masing-masing dengan name dari pertanyaannya. Sebuah choice mempertahankan tipe nilai yang Anda berikan — string atau boolean. Pertanyaan yang ditolak oleh model dikembalikan sebagai {"type": "refusal", "name": ...}, sementara pertanyaan lainnya tetap dijawab.

Menggunakan jawaban

const byName = Object.fromEntries(result.answers.map((answer) => [answer.name, answer]));

if (byName.is_urgent.probability > 0.8) escalate(ticket);
route(ticket, byName.department.choice);

Tetapkan ambang batas berdasarkan data Anda sendiri: beri label pada beberapa ratus contoh, amati probabilitasnya, lalu pilih titik potong yang menyeimbangkan antara yang terlewat dan alarm palsu.

Harga

Decisions ditagih berdasarkan token input; jawabannya sendiri tidak dikenakan biaya output. Harga tercantum di halaman masing-masing model.