คู่มือเอาต์พุตที่มีโครงสร้าง JSON
คู่มือเอาต์พุตที่มีโครงสร้าง JSON
ตัวเลขทั้งหมดในหน้านี้เกี่ยวกับJSON structured output guideตรวจสอบโดยตรงจาก HuggingFace API และ config.json ต้นฉบับของคลังที่เกี่ยวข้อง โดยเก็บข้อมูลเมื่อพฤศจิกายน 2026 ไม่มีการแต่งคะแนน benchmarks ราคา หรือชื่อคลัง สิ่งที่ config พิสูจน์ไม่ได้จะถูกระบุว่าต้องวัดเอง
สรุปสั้น ๆ
บน EXAIV ให้ยึดแคตตาล็อก /models แบบเรียลไทม์เป็นหลัก ปัจจุบันเรียกใช้ได้เพียง kimi-k3 ผ่าน endpoint ที่เข้ากันได้กับ OpenAI ที่ https://exaiv.com/api/ai/v1 การเชื่อมต่อเปลี่ยนเพีย
ข้อมูลจำเพาะที่ตรวจสอบแล้ว
response_format | Behavior | When to use |
|---|---|---|
{"type": "text"} | Plain text (default) | Free-form answers, prose, chat |
{"type": "json_object"} | The output must be valid JSON | Quick win when you do not need a fixed shape |
{"type": "json_schema"} | The output must match your schema | Anything feeding a parser |
Reference table
| Check | Why |
|---|---|
content is not None | A refusal may leave the content empty |
| The string parses as JSON | Defensive; costs nothing |
| The parsed object matches your business rules | The schema permits values you may not want |
finish_reason is stop | length means the output was cut off |
| Required fields are meaningful, not just present | {"verdict": ""} satisfies a string schema |
Reference table
| Symptom | Likely cause | Response |
|---|---|---|
| Empty content | The request was refused or filtered | Inspect the finish reason and the raw body; handle as a refusal |
| Truncated JSON | The output hit max_tokens | Raise the limit, or shorten the requested content |
| Wrong shape despite the schema | A model that does not support the constraint | Fall back to json_object, or parse defensively |
| Schema rejected at request time | Strict-mode requirements not met | Read the error body; fix additionalProperties and required |
| Hallucinated values | The schema permits them | Add an enum, a format, or a validation rule |
Reference table
| Structured output | Tool calling | |
|---|---|---|
| Purpose | Return data | Perform an action |
| Output | JSON matching a schema | A call with arguments |
| The model chooses | Only whether to comply | Which tool, and with what arguments |
| Best for | Extraction, classification, summaries | Lookups, actions, multi-step work |
Reference table
| Situation | Use |
|---|---|
| A fixed set of fields you always need | json_schema with a strict schema |
| Free-form JSON where the shape can vary | json_object |
| A short answer that should stay prose | text |
ตัวเลขยืนยันอะไรได้บ้าง
การแยกข้อเท็จจริงออกจากคำกล่าวอ้างสำคัญมากสำหรับคำว่าหลายโมดาเลติ การมี vision_config และ image_placeholder ใน config ทางการยืนยันได้เพียงว่าสถาปัตยกรรมเป็นแบบ conditional generation ที่รับภาพได้ ไม่ได้ยืนยันการสร้างวิดีโอ รูปแบบคำขอเฉพาะ หรือคะแนน benchmarks ใด ๆ ป้าย image-text-to-text ของ HuggingFace บอกทิศทางของข้อมูลเข้า ให้ยึด model card ทางการเป็นแหล่งสุดท้ายเสมอ
Configuration and error handling
การวางแผนหน่วยความจำของ MoE ระดับล้านล้านพารามิเตอร์ใช้กฎเดียวกันคือค่าคอมพิวต์ตามพารามิเตอร์ที่ทำงานจริง แต่หน่วยความจำตามพารามิเตอร์รวม โมเดล 1T แม้ควอนไทซ์ 4 บิตยังต้องใช้น้ำหนักราว 500GB และรุ่น 2.78T ยิ่งใหญ่กว่า จึงเป็นงานสำหรับเซิร์ฟเวอร์หลายการ์ด ไม่ใช่การ์ดผู้บริโภคใบเดียว ถ้ามีการ์ดใบเดียวให้ดูตระกูลน้ำหนักเบา เส้นทางในเครื่องคือ vLLM หรือ SGLang กับน้ำหนักทางการ และควรตรวจสอบที่มาและป้ายควอนไทเซชันของไฟล์ชุมชนก่อนใช้
ขอบเขตที่ใช้งานได้จริง
บน EXAIV ให้ยึดแคตตาล็อก /models แบบเรียลไทม์เป็นหลัก ปัจจุบันเรียกใช้ได้เพียง kimi-k3 ผ่าน endpoint ที่เข้ากันได้กับ OpenAI ที่ https://exaiv.com/api/ai/v1 การเชื่อมต่อเปลี่ยนเพียง base_url, api_key และ model ส่วน streaming กับ tool calling ใช้รูปแบบ OpenAI มาตรฐาน ราคาอยู่ที่หน้า /pricing เสมอและไม่มีการเขียนตัวเลขตายตัวในบทความนี้ ควรเก็บ log ของ ID โมเดล จำนวนโทเค็น และเวลาตอบสนอง เพื่อให้การเปลี่ยนโมเดลในอนาคตมีเส้นฐานเดียวกันเปรียบเทียบได้
การแก้ปัญหาที่พบบ่อย
อาการแรกคือ 401 Unauthorized ซึ่งเกือบทุกครั้งเกิดจากคีย์หมดอายุ ใส่ผิด header หรือลืมใส่คำนำหน้า Bearer ให้ตรวจสอบค่าจากหน้าคอนโซลแล้วลองใหม่ด้วยคำขอสั้น ๆ ก่อน อย่าเพิ่งสงสัยโมเดล อาการถัดมาคือ 404 หรือข้อความว่าไม่พบโมเดล ซึ่งหมายความว่า ID ที่ส่งไปไม่มีอยู่ในแคตตาล็อก ณ เวลานั้น ให้เปิดหน้า /models เพื่อดูชื่อจริงแล้วแก้ค่า model ในโค้ด อาการ 429 คือการจำกัดอัตรา ให้เพิ่ม exponential backoff และแยกคำขอที่ทำซ้ำได้ออกจากคำขอที่ทำซ้ำไม่ได้
สำหรับ streaming อย่าลืมว่าผลลัพธ์มาเป็นชิ้นส่วน ไม่ใช่ข้อความสมบูรณ์ ฝั่ง client ต้องต่อชิ้นส่วนเหล่านั้นเข้าด้วยกันและจัดการกรณีที่ chunk สุดท้ายไม่มี content ส่วน tool calling ให้ใช้รูปแบบเดียวกับ OpenAI ทุกประการ หากเครื่องมือไม่ถูกเรียก มักเกิดจากคำอธิบายฟังก์ชันไม่ชัดเจนหรือระบบ prompt ไม่ได้อนุญาตให้ใช้เครื่องมือ มากกว่าจะเป็นข้อจำกัดของโมเดล
ต้นทุน โควตา และข้อควรระวัง
การเรียกใช้งานคิดตามจำนวนโทเค็นขาเข้าและขาออก ไม่ใช่ตามจำนวนคำขอ ดังนั้นการยัดเอกสารยาวเข้าไปทั้งเล่มทุกครั้งจะทำให้ต้นทุนสูงขึ้นอย่างรวดเร็ว วิธีที่แนะนำคือตัดหรือสรุปส่วนที่ไม่เกี่ยวข้องก่อนส่ง และใช้ streaming เฉพาะจุดที่ผู้ใช้ต้องการเห็นผลทันที ราคาและแพ็กเกจเครดิตที่เป็นปัจจุบันให้ดูที่หน้า /pricing เสมอ เพราะตัวเลขในบทความใด ๆ อาจล้าสมัยได้
ควรแยกแคชผลลัพธ์สำหรับคำถามที่ถามซ้ำ และเก็บ log ของ ID โมเดล จำนวนโทเค็น และเวลาตอบสนองไว้เป็นชุดข้อมูลสำหรับตรวจสอบย้อนหลัง เมื่อเปลี่ยนโมเดลจาก kimi-k3 ไป glm-5.3-flash หรือกลับกัน ให้รันชุดทดสอบเดิมซ้ำอีกครั้ง เพราะพฤติกรรมการเรียกเครื่องมือและความยาวคำตอบต่างกัน แม้รูปแบบคำขอจะเหมือนกันทุกประการ
FAQ
ควรใช้ ID โมเดลใดบน EXAIV?
ตัวเลขในบทความตรวจสอบแล้วหรือไม่?
config พิสูจน์การสร้างวิดีโอได้ไหม?
ต้องเปลี่ยน SDK ไหม?
ดูราคาได้ที่ไหน?
ใช้น้ำหนักในเครื่องได้ไหม?
อ่านต่อ
- Kimi K3 API guide — first API call
- GLM family overview — callable catalog
- Claude Code third-party models — support boundary
- pricing — live credit packs
แหล่งข้อมูล
ข้อมูลพารามิเตอร์และไฟล์เก็บเมื่อพฤศจิกายน 2026 และเปลี่ยนแปลงได้ตามเวลา
คำศัพท์และรายการตรวจสอบก่อนใช้งานจริง
พารามิเตอร์รวม พารามิเตอร์ที่ทำงานจริง และ KV cache เป็นคนละปริมาณกัน พารามิเตอร์รวมคือน้ำหนักทั้งหมดที่ต้องโหลดเข้าหน่วยความจำ ส่วนพารามิเตอร์ที่ทำงานจริงคือส่วนที่ใช้คำนวณหนึ่งโทเค็น KV cache เป็นหน่วยความจำชั่วคราวที่โตตามความยาวบริบทแบบเส้นตรง ดังนั้นหน้าต่าง 1M จึงเป็นเพดานไม่ใช่ค่าที่ใช้ได้ฟรี ๆ การควอนไทเซชันลดความแม่นยำของน้ำหนักที่เก็บเพื่อให้ไฟล์เล็กลง ไม่ได้ลดจำนวนพารามิเตอร์ และ vision_config ใน config.json อธิบายสถาปัตยกรรม ไม่ใช่รูปแบบคำขอที่คุณอาจแต่งขึ้นเองได้
ก่อนนำสิ่งที่สร้างจากบันทึกนี้ไปใช้งานจริง ให้ตรวจหกอย่าง หนึ่ง อ่านตัวเลขจากแหล่งเรียลไทม์ในวันที่คุณเผยแพร่ เพราะตัวนับยอดดาวน์โหลดเปลี่ยนทุกสัปดาห์ สอง เปิดแคตตาล็อก /models แล้วยืนยันว่า ID ที่จะเรียกยังอยู่ there สาม เปิดหน้า /pricing แทนการก็อปราคาใส่แอปพลิเคชัน สี่ อย่าเขียนรูปแบบคำขอตายตัวจนกว่าจะตรวจกับเอกสารอ้างอิงทางการแล้ว ห้า บันทึก ID โมเดล จำนวนโทเค็นขาเข้าขาออก และเวลาตอบสนองด้วยชุดคำถามตัวแทน แล้วเก็บชุดนั้นไว้ไม่เปลี่ยน เพื่อให้การสลับโมเดลในภายหลังอ่านเทียบกันได้ หก อ่านสัญญาอนุญาตบน model card ก่อนใช้เชิงพาณิชย์ เพราะเงื่อนไขของผู้ให้บริการไม่ใช่ค่าเริ่มต้นที่อนุญาตกว้าง ๆ เพิ่ม exponential backoff สำหรับคำขอที่ลองใหม่ได้ ตั้ง timeout และแยก log ตามประเภทข้อผิดพลาด เพื่อให้ 401, 404 และ 429 ไม่ถูกจัดการเหมือนกัน ควรมีเส้นทางหมุนเวียนคีย์ด้วย อย่าเก็บคีย์ไว้ในโค้ด และควรมีแผนย้อนกลับเมื่อย้ายไประบบจัดการคีย์ ถ้าโมเดลโหลดได้แต่ข้อความเพี้ยน ให้สงสัยเทมเพลตการสนทนาก่อนน้ำหนัก เก็บเทมเพลตไว้คู่กับน้ำหนักเพื่อตรวจสอบร่วมกันได้ง่าย นิสัยนี้ใช้เวลาไม่กี่นาทีแต่ช่วยตัดรายงานบั๊กผิด ๆ ที่พบบ่อยที่สุดออกไปได้