OpenAI Decisions API เป็นปลายทาง POST /v1/decisions ที่ทำงานบน GPT-6 Luna ซึ่งรับข้อความหรือรูปภาพพร้อมรายการคำถาม และส่งคืนคำตอบที่มีชนิดข้อมูลแทนการตอบแบบความเรียง: เช่น ความน่าจะเป็นแบบ predicate, choice พร้อมความน่าจะเป็นต่อตัวเลือก หรือ score เหนือระดับที่จัดลำดับไว้ อินพุตมีค่าใช้จ่าย $0.10 ต่อ 1 ล้านโทเค็น โดยไม่มีค่าใช้จ่ายสำหรับเอาต์พุต, การอ่านแคช หรือการเขียนแคช และปลายทางนี้ได้เปิดให้ใช้งานในรุ่นเบต้าสาธารณะตั้งแต่ 2026-10-06 โดย OpenAI ระบุว่าคาดว่าจะเปิดให้ใช้งานทั่วไป (GA) "ในอีกไม่กี่สัปดาห์ข้างหน้า"
โพสต์นี้ครอบคลุมถึงสิ่งที่ปลายทางส่งคืน ค่าใช้จ่ายของมัน ตำแหน่งที่เกี่ยวข้องกับ Structured Outputs และ function calling และวิธีการทดสอบ สำหรับการแนะนำการใช้งานด้วย curl, Python และ JavaScript ให้อ่าน วิธีการใช้ OpenAI Decisions API ต่อไป; หากคุณใช้งาน Responses API อยู่แล้ว การ เปรียบเทียบ Decisions กับ Responses จะแสดงงานเดียวกันที่ทำได้ทั้งสองวิธี ตลอดโพสต์นี้ เราจะใช้ Apidog เพื่อจัดเก็บคีย์ บันทึกคำขอ และยืนยันอาร์เรย์ answers เพื่อให้การเปลี่ยนแปลงพฤติกรรมของโมเดลทำให้การทดสอบล้มเหลวแทนที่จะส่งตั๋วผิดที่
โครงสร้างของคำขอและคำตอบของ Decisions
สามฟิลด์สำหรับคำขอ สามฟิลด์สำหรับคำตอบ ไม่มี id, ไม่มีข้อความที่สร้างขึ้น, ไม่มีอะไรให้แยกวิเคราะห์
| ส่วน | ฟิลด์ | สิ่งที่เก็บไว้ |
|---|---|---|
| คำขอ | model |
gpt-6-luna ซึ่งเป็นโมเดลเดียวที่มีให้ใช้ในปัจจุบัน |
| คำขอ | input |
สตริง หรืออาร์เรย์ของข้อความผู้ใช้ที่เนื้อหามีส่วนผสมของ input_text และ input_image |
| คำขอ | questions |
อาร์เรย์ของคำถาม แต่ละคำถามมี type, instructions ที่จำเป็น และ name ที่เป็นทางเลือก |
| คำขอ | safety_identifier |
ID ผู้ใช้ปลายทางที่เป็นทางเลือก ความยาวสูงสุด 128 ตัวอักษร |
| คำตอบ | model |
สะท้อนกลับ gpt-6-luna |
| คำตอบ | answers |
หนึ่งรายการต่อคำถาม ตามลำดับที่คุณถาม พร้อม type และ name |
| คำตอบ | usage |
input_tokens, input_tokens_details, output_tokens, output_tokens_details, total_tokens |
ข้อสังเกตสิ่งที่ขาดหายไป: ไม่มี temperature, reasoning, stream, store, tools หรือ text.format สำหรับสิ่งเหล่านี้คุณต้องใช้ Responses API และ output_tokens เป็น 0 ในตัวอย่างอ้างอิงของ OpenAI ซึ่งเป็นสาเหตุที่การกำหนดราคาด้านล่างไม่มีบรรทัดสำหรับเอาต์พุต
ประเภทคำถามทั้งสาม
คำถามแต่ละข้อมี type ของตัวเอง และคุณสามารถผสมประเภทในอินพุตเดียวกันได้ ใส่คำถามที่เป็นอิสระต่อกันในคำขอเดียวกัน; สำหรับการตัดสินใจที่ขึ้นอยู่กับคำตอบก่อนหน้า คู่มือของ OpenAI ระบุให้ส่งคำขอแยกกัน
predicate: ความน่าจะเป็นใช่/ไม่ใช่
predicate ถามว่าเงื่อนไขเป็นจริงหรือไม่ และส่งคืนความน่าจะเป็นจาก 0 ถึง 1 ว่าเป็นจริง
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "The box arrived crushed and the screen is cracked.",
"questions": [
{"type": "predicate", "name": "damaged",
"instructions": "Is the product described as damaged?"}
]
}'
ตัวอย่างอ้างอิงของ OpenAI สำหรับรูปแบบนี้ส่งคืน:
{
"model": "gpt-6-luna",
"answers": [
{"type": "predicate", "name": "damaged", "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
}
}
choice: หนึ่งป้ายกำกับจากชุดที่ไม่จัดเรียง
choice เพิ่มอาร์เรย์ choices ของออบเจกต์ {value, description}: 2 ถึง 255 ตัวเลือกที่ไม่ซ้ำกัน โดยที่ value เป็นสตริงหรือบูลีน (true และ "true" แตกต่างกัน) OpenAI แนะนำให้ใช้ตัวเลือกสำรอง เช่น other เมื่อหมวดหมู่ของคุณไม่ครอบคลุมอินพุตทั้งหมด
{
"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"}, {"value":"technical"},
{"value":"shipping"}, {"value":"other"}
]}
]
}
คำตอบตัวอย่างจากคู่มือสำหรับอินพุตนี้:
{"type": "choice", "name": "department", "choice": "billing",
"probabilities": [
{"value":"billing","probability":0.95},
{"value":"technical","probability":0.02},
{"value":"shipping","probability":0.01},
{"value":"other","probability":0.02}
],
"confidence": 0.93}
score: ตำแหน่งบนมาตราส่วนที่จัดลำดับ
score เพิ่ม levels ซึ่งเป็นอาร์เรย์ของออบเจกต์ {label, description} ที่จัดเรียงจากต่ำสุดไปสูงสุด ดัชนีเริ่มต้นที่ 0 และ score ที่ส่งคืนคือค่าเฉลี่ยถ่วงน้ำหนักด้วยความน่าจะเป็นของดัชนีเหล่านั้น ดังนั้นจึงสามารถอยู่ระหว่างระดับได้
{
"model": "gpt-6-luna",
"input": "Export fails in Safari but works in Chrome.",
"questions": [
{"type": "score", "name": "severity",
"instructions": "How badly does this bug block the user?",
"levels": [
{"label":"Cosmetic"},
{"label":"Workaround available"},
{"label":"Fully blocked"}
]}
]
}
ในตัวอย่างของคู่มือ ความน่าจะเป็นคือ 0.1, 0.7 และ 0.2 ในสามระดับ ทำให้ได้ score เท่ากับ 1.1 และ confidence เท่ากับ 0.55 อ่านค่า 1.1 ว่า "อยู่ระหว่างระดับ 1 และระดับ 2 ใกล้ระดับ 1" กฎของคู่มือ: ใช้ choice สำหรับหมวดหมู่ที่ไม่จัดเรียง เช่น แผนก; ใช้ score สำหรับระดับที่จัดเรียง เช่น ความรุนแรง
ประเภทคำตอบที่สี่คือ refusal สามารถปรากฏสำหรับคำถามเดียวในรูปแบบ {"type":"refusal","name":...} คำถามอื่นๆ ในคำขอเดียวกันยังคงได้รับคำตอบ ดังนั้นให้แยกสาขาตาม type ก่อนที่จะอ่านฟิลด์
ความเร็ว ตามที่ OpenAI อธิบาย
OpenAI ระบุว่า Decisions API เร็วกว่า Responses API ประมาณ 10 เท่า; คำประกาศระบุว่าเร็วกว่า GPT-6 Luna ผ่าน Responses สูงสุด 10 เท่า OpenAI ไม่ได้เผยแพร่ตัวเลขความหน่วงสัมบูรณ์ นักพัฒนาคนหนึ่งในฟอรัม OpenAI รายงานว่าการตัดสินใจจากอินพุตภาพส่งคืนในเวลาประมาณ 0.8 วินาทีในการเชื่อมต่อที่ช้า: เป็นเพียงเกร็ดเล็กเกร็ดน้อย ไม่ใช่เกณฑ์มาตรฐาน วัดค่า p95 ของคุณเองก่อนที่จะให้คำมั่นสัญญาใดๆ
ราคา: $0.10 ต่อล้านโทเค็นอินพุต ไม่มีอะไรอื่น
ด้วย gpt-6-luna อินพุตมีค่าใช้จ่าย $0.10 ต่อ 1 ล้านโทเค็น คุณจ่ายเฉพาะสำหรับโทเค็นอินพุต: ไม่มีค่าใช้จ่ายสำหรับการอ่านแคช, การเขียนแคช หรือโทเค็นเอาต์พุต ออบเจกต์ usage มีฟิลด์ cached_tokens และ cache_write_tokens แต่ตามการตอบกลับในฟอรัมนักพัฒนาของ OpenAI ยังไม่มีการแคชบน Decisions ดังนั้นคาดว่าจะเป็น 0
มีตัวคูณสองตัวที่ใช้ อินพุตที่เกิน 272K โทเค็นจะถูกเรียกเก็บเงินเป็น 2 เท่า ซึ่งเท่ากับ $0.20 ต่อ 1 ล้าน (มาจากตัวคูณสำหรับบริบทที่ยาวบนหน้าการกำหนดราคา) การประมวลผลในภูมิภาคผ่านปลายทางข้อมูลที่พักในสหรัฐอเมริกาหรือสหภาพยุโรปเพิ่ม 10% ไม่มี Batch, Flex หรือ Fast tier ที่ระบุสำหรับ /v1/decisions ดังนั้นอย่าวางแผนโดยอาศัยส่วนลดที่มีอยู่เฉพาะใน Responses เท่านั้น
นี่คือการคำนวณสำหรับปริมาณงานการกำหนดเส้นทางสนับสนุน ตั๋ว 500 โทเค็นพร้อมคำถามสามข้อในคำขอเดียวมีค่าใช้จ่าย 500 / 1,000,000 x $0.10 = $0.00005 หนึ่งล้านตั๋วเช่นนี้มีค่าใช้จ่าย $50 ตั๋วเดียวกันผ่าน Responses API พร้อมป้ายกำกับ JSON 40 โทเค็นที่ราคา $0.50 ต่อ 1 ล้านเอาต์พุต จะเพิ่ม 40 / 1,000,000 x $0.50 = $0.00002 ต่อคำขอ นอกเหนือจากอินพุต ก่อนโทเค็นการให้เหตุผล ซึ่ง Luna คิดค่าบริการเป็นเอาต์พุตบน Responses และ Decisions ไม่คิดค่าบริการเลย การกำหนดกรอบที่ซื่อสัตย์คือ "Decisions ไม่คิดค่าบริการโทเค็นเอาต์พุต" ไม่ใช่เปอร์เซ็นต์ สำหรับอัตราเต็มของ Luna และสิ่งที่ prompt caching ทำบน Responses โปรดดู GPT-6 Luna คืออะไร
เมื่อใดที่ควรใช้ Decisions, Structured Outputs หรือ function calling
OpenAI กำหนดเส้นแบ่งไว้เอง: ใช้ Structured Outputs กับ Responses API เมื่อคุณต้องการออบเจกต์ที่สอดคล้องกับ JSON schema ของคุณเอง เช่น ฟิลด์ที่ดึงมาหรือคำอธิบายที่เป็นข้อความ หรือใช้ function calling เมื่อคุณต้องการให้โมเดลร้องขอการเรียกใช้เครื่องมือพร้อมอาร์กิวเมนต์ Decisions ใช้สำหรับการจำแนกเนื้อหา การกำหนดเส้นทางคำขอ และการจัดลำดับความสำคัญของงาน
| คุณต้องการ | ใช้ |
|---|---|
| ป้ายกำกับ, ความน่าจะเป็น, หรือความรุนแรงพร้อมความเชื่อมั่น | Decisions API |
| ออบเจกต์ใน JSON schema ของคุณเอง (ฟิลด์ที่ดึงมา, คำอธิบาย) | Structured Outputs บน Responses |
| โมเดลเลือกเครื่องมือและเติมอาร์กิวเมนต์ | Function calling บน Responses |
| การสตรีม, สถานะการสนทนา, เครื่องมือ, การแคช, หรือ Batch | Responses API |
An enum ใน Structured Outputs สามารถส่งคืนป้ายกำกับได้ แต่ไม่สามารถส่งคืนการกระจายความน่าจะเป็นหรือฟิลด์ confidence ได้ เว้นแต่คุณจะขอให้โมเดลเขียนขึ้นมา ซึ่งในกรณีนั้นมันจะเป็นข้อความที่สร้างขึ้น ไม่ใช่ความน่าจะเป็นที่วัดได้ Decisions ให้ตัวเลขที่คุณสามารถกำหนดเกณฑ์ได้ OpenAI แนะนำให้คุณกำหนดเกณฑ์เหล่านั้นจากตัวอย่างที่มีป้ายกำกับในแอปพลิเคชันของคุณเอง โดยพิจารณาค่าใช้จ่ายของผลบวกปลอมเทียบกับผลลบปลอม เนื่องจากไม่มีการเผยแพร่ตัวเลขความแม่นยำหรือการปรับเทียบ หากกำลังพิจารณาผู้จำหน่ายการตัดสินใจประเภทที่สอง การ เปรียบเทียบ Decisions กับ Jev ครอบคลุมราคา อินพุต และรูปแบบเอาต์พุตเคียงข้างกัน
รูปภาพ และข้อควรระวังเกี่ยวกับ base64
input ยอมรับข้อความผู้ใช้ที่มีเนื้อหาผสมผสานส่วน input_text และ input_image โดยมี detail ที่เป็นทางเลือกคือ low, high, auto (ค่าเริ่มต้น) หรือ original คู่มือระบุว่ารูปภาพต้องเป็น URL ข้อมูล base64 แบบอินไลน์; ไม่รองรับ URL ที่โฮสต์และ file_id การอ้างอิง API ยังระบุ URL HTTP(S) ที่เข้าถึงได้สาธารณะ สูงสุด 128 รูปภาพต่อคำขอ พิจารณา base64 เป็นเส้นทางที่ระบุในเอกสาร และทดสอบ URL ที่โฮสต์ก่อนที่จะพึ่งพามัน
การควบคุมข้อมูล
Decisions API รองรับ Zero Data Retention และการใช้งาน HIPAA สำหรับลูกค้าที่มีสิทธิ์ การจัดเก็บข้อมูลในประเทศและการประมวลผลตามภูมิภาคได้รับการสนับสนุนในสหรัฐอเมริกาและยุโรป (EEA บวกสวิตเซอร์แลนด์) ผ่าน us.api.openai.com และ eu.api.openai.com ปลายทางสามารถเข้าถึงได้จากทุกภูมิภาค API ที่รองรับ แม้ว่าความพร้อมใช้งานในภูมิภาคหนึ่งไม่ได้หมายความว่าการอนุมานจะทำงานที่นั่น บันทึกการตรวจสอบการใช้งานที่ไม่เหมาะสมจะถูกเก็บไว้สูงสุด 30 วันโดยค่าเริ่มต้น หากคุณกำลังกำหนดเส้นทางข้อความผู้ป่วย โปรดอ่าน คู่มือการปฏิบัติตาม HIPAA API ของเราก่อน
ความพร้อมใช้งาน: ตอนนี้เป็นเบต้า จะ GA ในไม่ช้า
ปลายทางได้เข้าสู่รุ่นเบต้าสาธารณะสำหรับนักพัฒนาทุกคนเมื่อ 2026-10-06 และอยู่ภายใต้ “Beta APIs” ในเอกสารอ้างอิง คู่มือของ OpenAI ระบุว่าคาดว่าจะเปิดให้ใช้งานทั่วไป (GA) "ในอีกไม่กี่สัปดาห์ข้างหน้า" แต่ไม่มีการระบุวันที่ ตัวอย่าง SDK ต้องการ Python 3.26.0, JavaScript 7.30.0, Go 3.73.0, Ruby 0.101.0 หรือ Java 4.78.0 หรือใหม่กว่า; การเรียกใช้คือ client.decisions.create(...) ใน Python และ JavaScript Playground ที่ platform.openai.com/decisions ช่วยให้คุณลองถามคำถามก่อนเขียนโค้ด ไม่มีขีดจำกัดอัตราเฉพาะสำหรับ Decisions ที่เผยแพร่; ตรวจสอบหน้าขีดจำกัดขององค์กรของคุณ ไม่มี Decisions tier ฟรี; สำหรับการเข้าถึง Luna โดยไม่มีค่าใช้จ่าย โปรดดู โพสต์เส้นทางฟรี Luna ของเรา
การทดสอบการเรียก Decisions ใน Apidog
คำตอบที่มีชนิดข้อมูลง่ายต่อการยืนยัน ซึ่งเป็นจุดประสงค์หลัก สามขั้นตอนครอบคลุมทีมส่วนใหญ่
จัดเก็บคีย์เพียงครั้งเดียว ใส่ OPENAI_API_KEY ใน ตัวแปรสภาพแวดล้อม Apidog และอ้างอิง {{OPENAI_API_KEY}} ในส่วนหัว Authorization: Bearer เพื่อไม่ให้คีย์จริงปรากฏในคำขอที่ใช้ร่วมกัน
บันทึกคำขอหนึ่งรายการต่อประเภทคำถาม พร้อมการยืนยัน JSONPath: สถานะ 200, $.answers[0].type เท่ากับ choice, $.answers[0].choice เท่ากับ billing, $.answers[0].confidence มากกว่า 0.8, $.answers[?(@.name=='damaged')].probability มากกว่า 0.9, และ $.usage.output_tokens เท่ากับ 0 ซึ่งจะช่วยตรวจจับความผิดพลาดในการเรียกเก็บเงินก่อนที่คุณจะได้รับใบแจ้งหนี้
เลือกเกณฑ์จากชุดข้อมูลที่มีป้ายกำกับ สร้างสถานการณ์การทดสอบใน Apidog ที่รันคำขอเดียวกันกับไฟล์ CSV ของข้อความตั๋วและแผนกที่คาดหวัง จากนั้นตั้งค่าเกณฑ์การกำหนดเส้นทางอัตโนมัติที่ค่าใช้จ่ายผลบวกปลอมข้ามค่าใช้จ่ายในคิวการตรวจสอบ รันใน CI ด้วย Apidog CLI เพื่อให้การเปลี่ยนแปลงโมเดลหรือชื่อแทนทำให้การทดสอบล้มเหลวแทนที่จะส่งผลกระทบต่อลูกค้า คู่มือการใช้งาน ครอบคลุมแต่ละขั้นตอน รวมถึงการจำลองอาร์เรย์ answers เพื่อให้ส่วนหน้าสามารถสร้างได้ก่อนที่เราเตอร์จะเสร็จสมบูรณ์
คำถามที่พบบ่อย
Decisions API เป็นโมเดลใหม่หรือไม่? ไม่ใช่ เป็นปลายทาง POST /v1/decisions ที่ทำงานบน GPT-6 Luna Luna เปิดตัวเมื่อ 2026-09-22; ปลายทางเข้าสู่รุ่นเบต้าสาธารณะเมื่อ 2026-10-06
Decisions API มีค่าใช้จ่ายเท่าไร? $0.10 ต่อ 1 ล้านโทเค็นอินพุต โดยไม่มีค่าใช้จ่ายสำหรับเอาต์พุต, การอ่านแคช หรือการเขียนแคช อินพุตที่เกิน 272K โทเค็นคิดเป็น 2 เท่า และการประมวลผลในภูมิภาคเพิ่ม 10%
มันส่งคืน JSON schema ของฉันเองหรือไม่? ไม่ใช่ มันส่งคืน answers พร้อมฟิลด์ probability, choice หรือ score สำหรับ schema ของคุณเอง ให้ใช้ Structured Outputs บน Responses API
มีความแม่นยำแค่ไหน? OpenAI ไม่ได้เผยแพร่ตัวเลขความแม่นยำหรือการปรับเทียบ กำหนดเกณฑ์จากข้อมูลที่มีป้ายกำกับของคุณเอง; สถานการณ์การทดสอบ LLM ที่ขับเคลื่อนด้วยข้อมูลเป็นวิธีที่ใช้ได้จริง
เริ่มต้นที่ไหนดี
เลือกการตัดสินใจในการกำหนดเส้นทางหนึ่งรายการที่แอปของคุณทำอยู่ในปัจจุบันด้วย regex หรือลูป prompt-and-parse เขียนเป็นคำถาม choice เดียวพร้อมตัวเลือกสำรอง other และรันกับตัวอย่างที่มีป้ายกำกับ 50 รายการ หากการกระจายความเชื่อมั่นแยกจากกันอย่างชัดเจน คุณจะมีเกณฑ์และวิธีการทดสอบ หากไม่เป็นเช่นนั้น คำถามต้องมีเกณฑ์ที่คมชัดขึ้น ในการทดลองนี้ด้วยคำขอที่บันทึกไว้และการยืนยัน ดาวน์โหลด Apidog และนำเข้า curl ด้านบน
