OpenAI
หน้านี้แปลด้วยระบบอัตโนมัติ ดูต้นฉบับภาษาอังกฤษ.

การควบคุมความยาวของคำตอบจากโมเดล OpenAI

เรียนรู้วิธีตั้งขีดจำกัดเอาต์พุตสำหรับโมเดล OpenAI โดยใช้การตั้งค่าโทเค็น คำสั่งที่ชัดเจน ตัวอย่าง และลำดับหยุด

อัปเดตล่าสุด: 23 days ago

ภาพรวม

การควบคุมความยาวของคำตอบจากโมเดลมีประโยชน์หลายอย่าง: ช่วยจัดการต้นทุน (เพราะคุณจ่ายตามจำนวนโทเค็น), ลดเวลาแฝง/เพิ่มประสิทธิภาพ (คำตอบที่สั้นกว่าจะส่งกลับได้เร็วกว่า) และทำให้เนื้อหาเกี่ยวข้องกับคำถามโดยหลีกเลี่ยงเอาต์พุตที่ยาวหรือเยิ่นเย้อเกินไป

คุณทำได้โดยใช้เพดานโทเค็น การตั้งค่าการให้เหตุผลและระดับรายละเอียด คำสั่งที่ชัดเจน ตัวอย่าง และลำดับหยุด สำหรับรายละเอียดล่าสุดและครบถ้วนที่สุด โปรดดูเอกสารอ้างอิง API อย่างเป็นทางการบน platform.openai.comเสมอ

กำหนดความยาวเอาต์พุตสูงสุด

Responses API

ใช้กับโมเดล GPT-5 และโมเดล o-series ส่วนใหญ่ โดยใช้ max_output_tokens เพื่อจำกัดจำนวน Token ที่โมเดลจะสร้าง สำหรับคำขอ compaction_trigger ให้ละ max_output_tokens ไว้หรือตั้งค่าเป็นอย่างน้อย 20000 ระบบจะปฏิเสธค่าที่ต่ำกว่านี้ Responses API ไม่รองรับการสร้าง completion หลายรายการ (n)

Chat Completions API

ใช้กับ GPT-3.5 และ GPT-4o รุ่นเก่า รวมถึง o-series ในบางกรณี

  • สำหรับโมเดลการให้เหตุผลอย่าง o3 และ o4-mini ให้ใช้ max_completion_tokens (ชื่อแทนของ max_tokens)

  • สำหรับโมเดลรุ่นก่อนหน้าหรือโมเดลที่ไม่ใช้การให้เหตุผล ยังใช้ max_tokens ได้

  • รองรับ stop และ n (การสร้าง completion หลายรายการ)

หมายเหตุ: ไม่มีการตั้งค่า “โทเค็นขั้นต่ำ” หากต้องการความยาวขั้นต่ำ ให้ระบุไว้ในคำสั่งของคุณ

ขีดจำกัดโทเค็นตามกลุ่มโมเดล

สำหรับขีดจำกัดโทเค็น ขนาดบริบท และเพดานเอาต์พุตล่าสุด โปรดดูเอกสารของโมเดลนั้นๆ

ตัวอย่างสั้นๆ

Responses API

{ "model": "gpt-5", "input": "สรุปผลการค้นพบในประมาณ 80 คำ", "max_output_tokens": 120 }

Chat Completions (โมเดลการให้เหตุผล)

{ "model": "o3-mini", "messages": [{"role": "user", "content": "Write five one-line options."}], "max_completion_tokens": 100 }

การควบคุมเฉพาะสำหรับโมเดล GPT-5: verbosity และ reasoning.effort

การควบคุมเหล่านี้ใช้ได้เฉพาะกับโมเดล GPT-5 เท่านั้น (gpt-5.2, gpt-5.2-chat-latest, gpt-5.2 pro เป็นต้น) โมเดล o-series และโมเดลรุ่นเก่าไม่รองรับการควบคุมเหล่านี้


verbosity รองรับค่า "low", "medium" (ค่าเริ่มต้น) หรือ "high" ค่านี้มีผลต่อระดับรายละเอียด แต่ไม่กระทบขีดจำกัดที่กำหนดไว้ตายตัว

{ "model": "gpt-5", "input": "อธิบาย PageRank แบบภาพรวม", "text": { "verbosity": "low" }, "max_output_tokens": 200 }

reasoning.effort ควบคุมจำนวน Token สำหรับการให้เหตุผลที่จะสร้างขึ้นก่อนให้คำตอบ GPT-5.2 รองรับ none, low, medium, high และ xhigh gpt-5.2-pro รองรับเฉพาะ medium, high และ xhigh โมเดลการให้เหตุผลรุ่นก่อนหน้ารองรับเฉพาะ low, medium และ high

{ "model": "gpt-5", "input": "ต้องใช้ทองคำเท่าไรในการเคลือบเทพีเสรีภาพด้วยชั้นหนา 1 มม.?", "reasoning": { "effort": "minimal" } }

คุณตั้งค่า reasoning.effort เป็น none ได้ เพื่อให้โมเดลทำงานเหมือนโมเดลที่ไม่ใช้การให้เหตุผลสำหรับกรณีใช้งานที่ให้ความสำคัญกับเวลาแฝง

ให้คำแนะนำที่เฉพาะเจาะจง

ระบุความยาวหรือรูปแบบที่ต้องการให้ชัดเจน ตัวอย่าง:

  • “แสดงตัวเลือกให้ครบห้าข้อ

  • “เขียนสรุปความยาว 50 คำ

  • “ไม่เกิน 100 โทเค็น. ถ้าต้องการพื้นที่เพิ่ม ให้ตอบว่า ‘ต้องการพื้นที่เพิ่ม’”

ใช้ตัวอย่างที่มีความยาวสม่ำเสมอ

ตัวอย่างแบบ few-shot ที่ตรงกับความยาวที่คุณต้องการ ช่วยให้โมเดลทำตามรูปแบบต่อไปได้

ใช้ลำดับการหยุดอย่างมีกลยุทธ์

ใช้ stop เพื่อหยุดการสร้างเมื่อโมเดลพบตัวคั่นหรือถึงขอบเขตของรายการลำดับเลข

{ "stop": ["\n###", "6."] }

ตัวเลือกผลลัพธ์หลายรายการ

  • Chat Completions: n ส่งคืน completion หลายรายการในการเรียกเพียงครั้งเดียว

  • Responses API: ไม่รองรับ n หากต้องการผลลัพธ์มากกว่าหนึ่งรายการ ให้เรียก API หลายครั้ง

บทความนี้มีประโยชน์หรือไม่