การสร้างคำตอบในบทสนทนา
การสร้างคำตอบแชทที่เข้ากันได้กับ OpenAI รองรับการสตรีม รูปภาพ การเรียกใช้เครื่องมือ และการควบคุมการใช้เหตุผล
POST /v1/chat/completions
curl https://api.unquant.io/v1/chat/completions \
-H "Authorization: Bearer $UNQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash",
"messages":[{"role":"user","content":"Hello!"}]}'ฟิลด์ในคำขอ
modelสตริงจำเป็นglm-5.3-flash หรือ qwen-3.8-flash-next
messagesอาร์เรย์จำเป็นรองรับบทบาท system, user, assistant และ tool เนื้อหาเป็นสตริงหรืออาร์เรย์ที่ประกอบด้วยส่วน text และ image_url
streamบูลีนสตรีมคำตอบเป็นเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์
stream_optionsออบเจ็กต์{"include_usage": true} จะเพิ่มข้อมูลส่วนสุดท้ายที่ระบุจำนวนโทเคน
max_tokensจำนวนเต็มขีดจำกัดความยาวสูงสุดของคำตอบ
max_completion_tokensจำนวนเต็มเหมือนกับ max_tokens
temperatureตัวเลขระดับความสุ่มในการเลือกโทเคน
top_pตัวเลขสุ่มเลือกจากกลุ่มโทเคนที่มีความน่าจะเป็นสูงสุด โดยจำกัดตามผลรวมความน่าจะเป็น
top_kจำนวนเต็มสุ่มเลือกจากโทเคนที่มีความน่าจะเป็นสูงสุด k อันดับ
min_pตัวเลขค่าความน่าจะเป็นสัมพัทธ์ขั้นต่ำของโทเคน
seedจำนวนเต็มค่าเริ่มต้นสำหรับการสุ่มที่ให้ผลซ้ำได้
stopสตริงหรืออาร์เรย์ลำดับข้อความที่ให้หยุดสร้างคำตอบเมื่อพบ
frequency_penaltyตัวเลขลดโอกาสเลือกโทเคนตามความถี่ที่เคยปรากฏ
presence_penaltyตัวเลขลดโอกาสเลือกโทเคนที่เคยปรากฏแล้ว ไม่ว่าจะกี่ครั้งก็ตาม
repetition_penaltyตัวเลขลดโอกาสเกิดโทเคนซ้ำโดยใช้ตัวคูณ
toolsอาร์เรย์ฟังก์ชันที่โมเดลเรียกใช้ได้ ระบุในรูปแบบของ OpenAI
tool_choiceสตริงหรือออบเจ็กต์auto, none, required หรือระบุฟังก์ชันตามชื่อ
parallel_tool_callsบูลีนอนุญาตให้เรียกใช้เครื่องมือหลายครั้งในการตอบหนึ่งรอบ
response_formatออบเจ็กต์ผลลัพธ์ในรูปแบบ JSON
logprobsบูลีนส่งค่าลอการิทึมของความน่าจะเป็นของโทเคนกลับมา
top_logprobsจำนวนเต็มจำนวนตัวเลือกอื่นที่จะส่งกลับมาต่อโทเคน
nจำนวนเต็มต้องเป็น 1: สร้างคำตอบหนึ่งชุดต่อคำขอ
reasoning_effortสตริงทั้งสองโมเดลรองรับ none, low หรือ high ส่วน GLM-5.3-Flash รองรับ max ด้วย
chat_template_kwargsออบเจ็กต์ตัวเลือกเปิดหรือปิดการทำงานในเทมเพลต เช่น {"enable_thinking": false}
ระบบจะข้ามฟิลด์อื่นทั้งหมด
การตอบกลับ
response.choices[0].message.contentระบบส่งจำนวนการใช้งานกลับมาเพื่อให้คุณติดตามการใช้งานของตนเองเท่านั้น ไม่มีการนำไปคิดค่าบริการ
การสตรีม
เมื่อกำหนด "stream": true คำตอบจะทยอยส่งมาเป็นเหตุการณ์จากเซิร์ฟเวอร์ โดยแบ่งข้อมูลเป็นส่วนย่อยตามรูปแบบของ OpenAI และสิ้นสุดด้วย data: [DONE] อ่านข้อความได้จาก choices[0].delta.content
รูปภาพ
ทั้งสองโมเดลรับรูปภาพผ่านส่วน image_url ที่มี URL ข้อมูลแบบ base64 (data:image/png;base64,..., JPEG หรือ WebP) ระบบจะไม่ดึงรูปภาพจากลิงก์ URL และจะตอบกลับด้วยรหัส 400
{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}การเรียกใช้เครื่องมือ
ส่ง tools ในรูปแบบเดียวกับ API ของ OpenAI เมื่อโมเดลเรียกใช้เครื่องมือ การตอบกลับจะมี finish_reason: "tool_calls" และ message.tool_calls ให้เรียกใช้เครื่องมือนั้น เพิ่มข้อความ tool ที่มีผลลัพธ์พร้อม tool_call_id ที่ตรงกันต่อท้าย แล้วเรียก API อีกครั้ง
การใช้เหตุผล
ทั้งสองโมเดลใช้เหตุผลก่อนตอบและรองรับ reasoning_effort: ใช้ none เพื่อตอบโดยตรง low เพื่อใช้เหตุผลเล็กน้อย หรือ high สำหรับปัญหาที่ยากขึ้น GLM-5.3-Flash ยังรองรับ max และมีค่าเริ่มต้นเป็น high กระบวนการคิดจะถูกส่งกลับมาแยกต่างหากใน reasoning_content โดยไม่ปะปนกับ content นอกจากนี้ยังปิดการใช้เหตุผลได้ด้วย "thinking": {"type": "disabled"} และ "chat_template_kwargs": {"enable_thinking": false}
การทำงานพร้อมกัน
แพ็กเกจของคุณกำหนดจำนวนคำขอที่ทำงานพร้อมกันได้ โดยนับรวมทุกคีย์ของคุณ คำขอที่เกินขีดจำกัดจะได้รับรหัส 429 ทันทีและจะไม่ถูกนำเข้าคิว คำขอที่กำลังทำงานอยู่จะไม่ได้รับผลกระทบ