{
  "aboutHtml": "<p>Kimi K3 เป็นโมเดลเอเจนต์หลายสื่อแบบเปิดน้ำหนักของ Moonshot AI สำหรับการเขียนโค้ดระยะยาว งานความรู้ และการใช้เหตุผล ผสานข้อความกับความเข้าใจภาพและวิดีโอในตัว แล้วให้คำตอบข้อความหรือคำขอเครื่องมือ ผู้ผลิตเน้นเซสชันวิศวกรรมที่ยาว คลังโค้ดใหญ่ และงานที่ใช้ภาพหน้าจอหรือข้อมูลป้อนกลับภาพร่วมกับโค้ด บรีฟที่มีประโยชน์กำหนดชิ้นงานที่ต้องการ หลักฐานที่จะใช้ และเงื่อนไขที่ถือว่างานเสร็จ</p><h4>สถาปัตยกรรมและบริบทยาว</h4><p>การ์ดโมเดลอธิบาย Mixture of Experts แบบ sparse ที่มีพารามิเตอร์รวม 2.8 ล้านล้านตัวและพารามิเตอร์ที่เปิดใช้ 104 พันล้านตัว การออกแบบ Stable LatentMoE เลือกผู้เชี่ยวชาญ 16 จาก 896 ตัวต่อโทเค็น โดยใช้ Kimi Delta Attention และ Attention Residuals ร่วมกับ gated attention ความยาวบริบทที่แน่นอนคือ 1,048,576 โทเค็น นี่เป็นพื้นที่สำหรับบริบทงานจำนวนมาก ไม่ใช่เหตุผลให้ละขอบเขตต้นทางหรือพื้นที่ที่ผลต้องใช้</p><p>ชิ้นงานดั้งเดิมที่เผยแพร่ใช้การฝึกที่คำนึงถึง quantization พร้อมน้ำหนัก MXFP4 และ activations MXFP8 นั่นเป็นรูปแบบเผยแพร่ของผู้ผลิต แยกจากรุ่น quantized ที่ให้มาต่างหากหรือข้ออ้างว่าเส้นทางใดให้บริการโมเดลอย่างไร น้ำหนักเปิดและจำนวนพารามิเตอร์มากไม่ได้ทำให้ตัวเลขพารามิเตอร์ที่ทำงานกลายเป็นข้อกำหนดพื้นที่เก็บหรือฮาร์ดแวร์ทั้งหมด</p><h4>เตรียมงานโค้ดขนาดใหญ่</h4><p>ให้เนื้อหาคลังโค้ดที่เกี่ยวข้อง พฤติกรรมเดิม การเปลี่ยนที่ขอ และข้อจำกัดความเข้ากันได้ ระบุไฟล์หรืออินเทอร์เฟซที่ผลต้องกระทบ การตรวจที่ตัดสินความสำเร็จ และข้อผิดพลาดหรือข้อมูลเข้าที่ให้มาซึ่งเผยปัญหา ผลที่มีประโยชน์อาจเป็นการแก้โค้ดเฉพาะจุดพร้อมคำอธิบายและหลักฐานจากการตรวจที่รันจริง แทนคำอธิบายการกระทำที่ไม่เคยทำ</p><p>สำหรับงานพัฒนาภาพ ให้ภาพหน้าจอหรือภาพผลที่ตั้งใจชัดเจนพร้อมโค้ดที่เกี่ยวข้องและความคลาดเคลื่อนเฉพาะ ผู้ผลิตอธิบายเวิร์กโฟลว์ที่ครอบคลุมงานส่วนหน้า เกม และ CAD ซึ่งใช้ข้อมูลป้อนกลับภาพ ขอการเปลี่ยนที่เชื่อมโค้ดกับผลที่สังเกต และเก็บภาพอ้างอิงเพื่อให้ตรวจชิ้นงานที่ส่งเทียบได้</p><h4>การเตรียมภาพ วิดีโอ และงานความรู้</h4><p>คู่มือเริ่มต้นผู้ผลิตใช้อ็อบเจ็กต์ content ที่ระบุชนิดสำหรับข้อความภาพ content เป็นอาร์เรย์ ไม่ใช่การแทนอาร์เรย์นั้นในรูปข้อความที่ serialize แล้ว เวิร์กโฟลว์ภาพใช้ข้อมูลภาพที่เข้ารหัสหรือการอ้างอิงไฟล์ที่รองรับ แทนที่อยู่ภาพสาธารณะ ตัวอย่างวิดีโออัปโหลดไฟล์วิดีโอแล้วให้การอ้างอิงที่ได้พร้อมคำถามเนื้อหา ให้ต้นทางอ่านได้และระบุข้อสังเกต ช่วงเวลา หรือความสัมพันธ์ที่สำคัญ เวิร์กโฟลว์ภาพผู้ผลิตรับภาพ JPEG, PNG, GIF, WebP, BMP, HEIC และ HEIF กับวิดีโอ MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV และ 3GPP ภาพเคลื่อนไหว GIF หรือ WebP ถอดรหัสเป็นวิดีโอได้ ให้ซอร์ส SVG เป็นข้อความ ผู้ผลิตแนะนำภาพสูงสุด 4096 × 2160 และวิดีโอสูงสุด 1920 × 1080 นี่เป็นคำแนะนำความละเอียด ไม่ใช่เกณฑ์ปฏิเสธ รักษาเนื้อหาคำขอภายในขอบเขตขนาด 100M ที่ระบุ และอัปโหลดสื่อใหญ่หรือใช้ซ้ำเป็นไฟล์</p><p>สำหรับวิจัยที่มีเอกสารมาก ติดป้ายแหล่งและระบุคำถามที่รายงานสุดท้ายควรตอบ สำหรับคำอธิบายวิดีโอ ระบุเหตุการณ์หรือลำดับที่จะวิเคราะห์แทนขอคำบรรยายไร้ข้อจำกัด K3 ใช้เนื้อหาภาพเป็นหลักฐานใช้เหตุผลและส่งข้อความหรือคำขอเครื่องมือกลับ แอปพลิเคชันสามารถส่งคำขอเหล่านั้นให้เครื่องมือสื่อเพื่อสร้างชิ้นงานภาพหรือวิดีโอแยก</p><h4>การคิดเปิดอยู่เสมอ</h4><p>อินเทอร์เฟซผู้ผลิต K3 เปิด thinking เสมอ การตั้งค่า reasoning_effort ระดับบนสุดรับ low, high และ max โดยมี max เป็นค่าเริ่มต้น ตัวเลือกเหล่านี้เฉพาะโมเดล ไม่ควรสมมติว่ามีการตั้งค่าไม่คิดหรือค่าระดับจากตระกูลอื่น แนวทางย้ายรุ่นผู้ผลิตแยก K3 จาก K2.x ด้วยการใช้ reasoning_effort แทนการนำคอนฟิก thinking เก่ามาใช้ต่อ</p><p>ผู้ผลิตระบุ reasoning_content แยกจากเนื้อหาคำตอบสุดท้ายในผลสตรีม สำหรับบทสนทนาหลายรอบหรือเวิร์กโฟลว์เครื่องมือ กำหนดให้ส่งข้อความผู้ช่วยที่ได้รับกลับไปครบและไม่เปลี่ยน รวม reasoning_content และ tool_calls การเก็บเพียงคำตอบสุดท้ายที่มองเห็นทำให้เสียข้อมูลที่เวิร์กโฟลว์เก็บการคิดของโมเดลคาดว่าจะใช้ในขั้นถัดไป</p><h4>คำตอบสุดท้ายแบบมีโครงสร้างและการเขียนต่อบางส่วน</h4><p>คู่มือเริ่มต้นระบุผลลัพธ์ JSON-schema แบบเคร่งครัดสำหรับเนื้อหาข้อความสุดท้าย กำหนดฟิลด์และความหมายตามชิ้นงานที่แอปพลิเคชันต้องใช้ และแยกวิเคราะห์เนื้อหาสุดท้ายนั้นแทนรวมกับฟิลด์การใช้เหตุผล ผลแบบมีโครงสร้างแทนข้อมูลที่ดึงจากเนื้อหาที่ให้หรือรูปแบบรายงานที่กำหนดได้ สคีมาจำกัดรูปทรง ส่วนหลักฐานต้นทางตัดสินว่าค่าถูกหรือไม่</p><p>โหมด partial สามารถเขียนต่อจาก prefix ข้อความที่ให้ ตัวอย่างผู้ผลิตวางข้อความผู้ช่วยแบบ partial ไว้ท้ายประวัติ แล้วรวม prefix นั้นกับส่วนที่เขียนต่อที่ส่งกลับเพื่อแสดง ใช้เมื่อชิ้นงานที่ต้องการมีจุดเริ่มต้นคงที่ที่มีความหมาย โดยแยก prefix จากส่วนที่สร้างต่อ</p><h4>เครื่องมือและความต่อเนื่องของผล</h4><p>K3 รองรับเครื่องมือฟังก์ชันกำหนดเอง ตัวอย่างผู้ผลิตบังคับใช้เครื่องมือในรอบแรก เก็บข้อความผู้ช่วยครบ รันทุกการเรียกที่ส่งกลับ และเพิ่มผลเครื่องมือที่ตรงกันก่อนขอคำตอบสุดท้าย การเรียกที่เสนอไม่ใช่หลักฐานว่าการดำเนินการสำเร็จ ผลจริงที่ส่งกลับเป็นหลักฐานสำหรับขั้นถัดไป</p><p>เวิร์กโฟลว์โหลดแบบไดนามิกเพิ่มนิยามเครื่องมือครบที่จุดเฉพาะในประวัติข้อความ นิยามต้องมีชื่อ วัตถุประสงค์ และพารามิเตอร์ และต้องคงอยู่ในประวัติถัดไป เพราะเซิร์ฟเวอร์ไม่เก็บการประกาศนั้นแยกเอง เก็บความสามารถเครื่องมือ อาร์กิวเมนต์ที่ให้ และข้อสังเกตจริงคู่กัน เพื่อให้งานยาวทำต่อจากสิ่งที่เสร็จแล้วได้</p><h4>ตัวควบคุมผลลัพธ์และบริบทที่ซ้ำ</h4><p>ผู้ผลิตระบุเพดาน completion เริ่มต้น 131,072 โทเค็น ซึ่งตั้งได้สูงสุด 1,048,576 ภายในข้อจำกัดบริบทรวมของโมเดล K3 API ปัจจุบันกำหนด temperature คงที่ 1.0, top_p 0.95 ผลหนึ่งรายการ และ presence กับ frequency penalties เป็นศูนย์ โดยสั่งให้ผู้เรียกละตัวควบคุมการสุ่มเหล่านั้น นี่เป็นการตั้งค่ารุ่นของผู้ผลิตโดยตรง ไม่ใช่รายการตัวควบคุมที่ปรับได้ซึ่งนำไปใช้ทั่วไป</p><p>การแคชบริบทเป็นอัตโนมัติสำหรับ prefix ซ้ำที่เข้าเกณฑ์ โดยเอกสารมีตัวเลือก TTL 5 นาทีและ 1 ชั่วโมง พร้อมค่าเริ่มต้น 5 นาที บล็อกแคชที่ไม่ครบยังนับเป็น cache miss รักษาบริบทที่ใช้ซ้ำให้คงที่และตรวจการใช้งานจริง แทนยืนยัน cache hit จากข้อความซ้ำเพียงอย่างเดียว สำหรับชิ้นงานสุดท้าย เก็บแหล่งที่ให้ หลักฐานเครื่องมือจริง และโครงสร้างผลที่ต้องการ แล้วตรวจว่าคำตอบยาวหรือผลวิศวกรรมตรงเกณฑ์เสร็จที่ระบุ</p>",
  "aboutText": "Kimi K3 เป็นโมเดลเอเจนต์หลายสื่อแบบเปิดน้ำหนักของ Moonshot AI สำหรับการเขียนโค้ดระยะยาว งานความรู้ และการใช้เหตุผล ผสานข้อความกับความเข้าใจภาพและวิดีโอในตัว แล้วให้คำตอบข้อความหรือคำขอเครื่องมือ ผู้ผลิตเน้นเซสชันวิศวกรรมที่ยาว คลังโค้ดใหญ่ และงานที่ใช้ภาพหน้าจอหรือข้อมูลป้อนกลับภาพร่วมกับโค้ด บรีฟที่มีประโยชน์กำหนดชิ้นงานที่ต้องการ หลักฐานที่จะใช้ และเงื่อนไขที่ถือว่างานเสร็จ\n\n### สถาปัตยกรรมและบริบทยาว\n\nการ์ดโมเดลอธิบาย Mixture of Experts แบบ sparse ที่มีพารามิเตอร์รวม 2.8 ล้านล้านตัวและพารามิเตอร์ที่เปิดใช้ 104 พันล้านตัว การออกแบบ Stable LatentMoE เลือกผู้เชี่ยวชาญ 16 จาก 896 ตัวต่อโทเค็น โดยใช้ Kimi Delta Attention และ Attention Residuals ร่วมกับ gated attention ความยาวบริบทที่แน่นอนคือ 1,048,576 โทเค็น นี่เป็นพื้นที่สำหรับบริบทงานจำนวนมาก ไม่ใช่เหตุผลให้ละขอบเขตต้นทางหรือพื้นที่ที่ผลต้องใช้\n\nชิ้นงานดั้งเดิมที่เผยแพร่ใช้การฝึกที่คำนึงถึง quantization พร้อมน้ำหนัก MXFP4 และ activations MXFP8 นั่นเป็นรูปแบบเผยแพร่ของผู้ผลิต แยกจากรุ่น quantized ที่ให้มาต่างหากหรือข้ออ้างว่าเส้นทางใดให้บริการโมเดลอย่างไร น้ำหนักเปิดและจำนวนพารามิเตอร์มากไม่ได้ทำให้ตัวเลขพารามิเตอร์ที่ทำงานกลายเป็นข้อกำหนดพื้นที่เก็บหรือฮาร์ดแวร์ทั้งหมด\n\n### เตรียมงานโค้ดขนาดใหญ่\n\nให้เนื้อหาคลังโค้ดที่เกี่ยวข้อง พฤติกรรมเดิม การเปลี่ยนที่ขอ และข้อจำกัดความเข้ากันได้ ระบุไฟล์หรืออินเทอร์เฟซที่ผลต้องกระทบ การตรวจที่ตัดสินความสำเร็จ และข้อผิดพลาดหรือข้อมูลเข้าที่ให้มาซึ่งเผยปัญหา ผลที่มีประโยชน์อาจเป็นการแก้โค้ดเฉพาะจุดพร้อมคำอธิบายและหลักฐานจากการตรวจที่รันจริง แทนคำอธิบายการกระทำที่ไม่เคยทำ\n\nสำหรับงานพัฒนาภาพ ให้ภาพหน้าจอหรือภาพผลที่ตั้งใจชัดเจนพร้อมโค้ดที่เกี่ยวข้องและความคลาดเคลื่อนเฉพาะ ผู้ผลิตอธิบายเวิร์กโฟลว์ที่ครอบคลุมงานส่วนหน้า เกม และ CAD ซึ่งใช้ข้อมูลป้อนกลับภาพ ขอการเปลี่ยนที่เชื่อมโค้ดกับผลที่สังเกต และเก็บภาพอ้างอิงเพื่อให้ตรวจชิ้นงานที่ส่งเทียบได้\n\n### การเตรียมภาพ วิดีโอ และงานความรู้\n\nคู่มือเริ่มต้นผู้ผลิตใช้อ็อบเจ็กต์ content ที่ระบุชนิดสำหรับข้อความภาพ content เป็นอาร์เรย์ ไม่ใช่การแทนอาร์เรย์นั้นในรูปข้อความที่ serialize แล้ว เวิร์กโฟลว์ภาพใช้ข้อมูลภาพที่เข้ารหัสหรือการอ้างอิงไฟล์ที่รองรับ แทนที่อยู่ภาพสาธารณะ ตัวอย่างวิดีโออัปโหลดไฟล์วิดีโอแล้วให้การอ้างอิงที่ได้พร้อมคำถามเนื้อหา ให้ต้นทางอ่านได้และระบุข้อสังเกต ช่วงเวลา หรือความสัมพันธ์ที่สำคัญ เวิร์กโฟลว์ภาพผู้ผลิตรับภาพ JPEG, PNG, GIF, WebP, BMP, HEIC และ HEIF กับวิดีโอ MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV และ 3GPP ภาพเคลื่อนไหว GIF หรือ WebP ถอดรหัสเป็นวิดีโอได้ ให้ซอร์ส SVG เป็นข้อความ ผู้ผลิตแนะนำภาพสูงสุด 4096 × 2160 และวิดีโอสูงสุด 1920 × 1080 นี่เป็นคำแนะนำความละเอียด ไม่ใช่เกณฑ์ปฏิเสธ รักษาเนื้อหาคำขอภายในขอบเขตขนาด 100M ที่ระบุ และอัปโหลดสื่อใหญ่หรือใช้ซ้ำเป็นไฟล์\n\nสำหรับวิจัยที่มีเอกสารมาก ติดป้ายแหล่งและระบุคำถามที่รายงานสุดท้ายควรตอบ สำหรับคำอธิบายวิดีโอ ระบุเหตุการณ์หรือลำดับที่จะวิเคราะห์แทนขอคำบรรยายไร้ข้อจำกัด K3 ใช้เนื้อหาภาพเป็นหลักฐานใช้เหตุผลและส่งข้อความหรือคำขอเครื่องมือกลับ แอปพลิเคชันสามารถส่งคำขอเหล่านั้นให้เครื่องมือสื่อเพื่อสร้างชิ้นงานภาพหรือวิดีโอแยก\n\n### การคิดเปิดอยู่เสมอ\n\nอินเทอร์เฟซผู้ผลิต K3 เปิด thinking เสมอ การตั้งค่า reasoning_effort ระดับบนสุดรับ low, high และ max โดยมี max เป็นค่าเริ่มต้น ตัวเลือกเหล่านี้เฉพาะโมเดล ไม่ควรสมมติว่ามีการตั้งค่าไม่คิดหรือค่าระดับจากตระกูลอื่น แนวทางย้ายรุ่นผู้ผลิตแยก K3 จาก K2.x ด้วยการใช้ reasoning_effort แทนการนำคอนฟิก thinking เก่ามาใช้ต่อ\n\nผู้ผลิตระบุ reasoning_content แยกจากเนื้อหาคำตอบสุดท้ายในผลสตรีม สำหรับบทสนทนาหลายรอบหรือเวิร์กโฟลว์เครื่องมือ กำหนดให้ส่งข้อความผู้ช่วยที่ได้รับกลับไปครบและไม่เปลี่ยน รวม reasoning_content และ tool_calls การเก็บเพียงคำตอบสุดท้ายที่มองเห็นทำให้เสียข้อมูลที่เวิร์กโฟลว์เก็บการคิดของโมเดลคาดว่าจะใช้ในขั้นถัดไป\n\n### คำตอบสุดท้ายแบบมีโครงสร้างและการเขียนต่อบางส่วน\n\nคู่มือเริ่มต้นระบุผลลัพธ์ JSON-schema แบบเคร่งครัดสำหรับเนื้อหาข้อความสุดท้าย กำหนดฟิลด์และความหมายตามชิ้นงานที่แอปพลิเคชันต้องใช้ และแยกวิเคราะห์เนื้อหาสุดท้ายนั้นแทนรวมกับฟิลด์การใช้เหตุผล ผลแบบมีโครงสร้างแทนข้อมูลที่ดึงจากเนื้อหาที่ให้หรือรูปแบบรายงานที่กำหนดได้ สคีมาจำกัดรูปทรง ส่วนหลักฐานต้นทางตัดสินว่าค่าถูกหรือไม่\n\nโหมด partial สามารถเขียนต่อจาก prefix ข้อความที่ให้ ตัวอย่างผู้ผลิตวางข้อความผู้ช่วยแบบ partial ไว้ท้ายประวัติ แล้วรวม prefix นั้นกับส่วนที่เขียนต่อที่ส่งกลับเพื่อแสดง ใช้เมื่อชิ้นงานที่ต้องการมีจุดเริ่มต้นคงที่ที่มีความหมาย โดยแยก prefix จากส่วนที่สร้างต่อ\n\n### เครื่องมือและความต่อเนื่องของผล\n\nK3 รองรับเครื่องมือฟังก์ชันกำหนดเอง ตัวอย่างผู้ผลิตบังคับใช้เครื่องมือในรอบแรก เก็บข้อความผู้ช่วยครบ รันทุกการเรียกที่ส่งกลับ และเพิ่มผลเครื่องมือที่ตรงกันก่อนขอคำตอบสุดท้าย การเรียกที่เสนอไม่ใช่หลักฐานว่าการดำเนินการสำเร็จ ผลจริงที่ส่งกลับเป็นหลักฐานสำหรับขั้นถัดไป\n\nเวิร์กโฟลว์โหลดแบบไดนามิกเพิ่มนิยามเครื่องมือครบที่จุดเฉพาะในประวัติข้อความ นิยามต้องมีชื่อ วัตถุประสงค์ และพารามิเตอร์ และต้องคงอยู่ในประวัติถัดไป เพราะเซิร์ฟเวอร์ไม่เก็บการประกาศนั้นแยกเอง เก็บความสามารถเครื่องมือ อาร์กิวเมนต์ที่ให้ และข้อสังเกตจริงคู่กัน เพื่อให้งานยาวทำต่อจากสิ่งที่เสร็จแล้วได้\n\n### ตัวควบคุมผลลัพธ์และบริบทที่ซ้ำ\n\nผู้ผลิตระบุเพดาน completion เริ่มต้น 131,072 โทเค็น ซึ่งตั้งได้สูงสุด 1,048,576 ภายในข้อจำกัดบริบทรวมของโมเดล K3 API ปัจจุบันกำหนด temperature คงที่ 1.0, top_p 0.95 ผลหนึ่งรายการ และ presence กับ frequency penalties เป็นศูนย์ โดยสั่งให้ผู้เรียกละตัวควบคุมการสุ่มเหล่านั้น นี่เป็นการตั้งค่ารุ่นของผู้ผลิตโดยตรง ไม่ใช่รายการตัวควบคุมที่ปรับได้ซึ่งนำไปใช้ทั่วไป\n\nการแคชบริบทเป็นอัตโนมัติสำหรับ prefix ซ้ำที่เข้าเกณฑ์ โดยเอกสารมีตัวเลือก TTL 5 นาทีและ 1 ชั่วโมง พร้อมค่าเริ่มต้น 5 นาที บล็อกแคชที่ไม่ครบยังนับเป็น cache miss รักษาบริบทที่ใช้ซ้ำให้คงที่และตรวจการใช้งานจริง แทนยืนยัน cache hit จากข้อความซ้ำเพียงอย่างเดียว สำหรับชิ้นงานสุดท้าย เก็บแหล่งที่ให้ หลักฐานเครื่องมือจริง และโครงสร้างผลที่ต้องการ แล้วตรวจว่าคำตอบยาวหรือผลวิศวกรรมตรงเกณฑ์เสร็จที่ระบุ",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b9557d10cfc5501434b08621d20d3061391a18d6b6b3283986501417c65bacbe",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "th",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">MoonshotAI: Kimi K3 (batch)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"ปิด\">×</button></div><div class=\"idline\"><span>MoonshotAI /</span><code>moonshotai/kimi-k3:batch</code><button type=\"button\" id=\"copy-id\">คัดลอก ID</button></div><nav class=\"card-jump-nav\" aria-label=\"ส่วนต่าง ๆ ของการ์ดโมเดล\"><button type=\"button\" data-card-jump=\"overview\">เริ่มต้น</button><button type=\"button\" data-card-jump=\"methods\">อินพุตและเมธอด</button><button type=\"button\" data-card-jump=\"pricing\">ราคา</button><button type=\"button\" data-card-jump=\"examples\">ตัวอย่าง</button><button type=\"button\" data-card-jump=\"results\">ผลลัพธ์</button><button type=\"button\" data-card-jump=\"aliases\">ชื่ออื่น</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"เมธอด API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|batches|/v1/batches|moonshotai%2Fkimi-k3%3Abatch\">แบตช์</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">เริ่มต้น</h3><p class=\"mdesc-full\">Kimi K3 เป็นโมเดลใช้เหตุผลหลายสื่อในตัวของ Moonshot AI สำหรับงานโค้ดยาวและงานความรู้ อ่านข้อความ ภาพ และวิดีโอ สร้างข้อความ และรองรับเวิร์กโฟลว์ที่ใช้เครื่องมือด้วยบริบท 1,048,576 โทเค็นและประวัติการคิดที่เก็บข้ามขั้นตอน</p><dl class=\"card-io\" data-card-io><div><dt>อินพุตที่รองรับ</dt><dd>ข้อความ</dd></div><div><dt>ผลลัพธ์</dt><dd>ข้อความ</dd></div></dl><details class=\"card-about\"><summary>เกี่ยวกับโมเดล</summary><p class=\"note-s\" data-model-method-boundary>คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก</p><div class=\"mabout\" id=\"m-about\"><p>Kimi K3 เป็นโมเดลเอเจนต์หลายสื่อแบบเปิดน้ำหนักของ Moonshot AI สำหรับการเขียนโค้ดระยะยาว งานความรู้ และการใช้เหตุผล ผสานข้อความกับความเข้าใจภาพและวิดีโอในตัว แล้วให้คำตอบข้อความหรือคำขอเครื่องมือ ผู้ผลิตเน้นเซสชันวิศวกรรมที่ยาว คลังโค้ดใหญ่ และงานที่ใช้ภาพหน้าจอหรือข้อมูลป้อนกลับภาพร่วมกับโค้ด บรีฟที่มีประโยชน์กำหนดชิ้นงานที่ต้องการ หลักฐานที่จะใช้ และเงื่อนไขที่ถือว่างานเสร็จ</p><h4>สถาปัตยกรรมและบริบทยาว</h4><p>การ์ดโมเดลอธิบาย Mixture of Experts แบบ sparse ที่มีพารามิเตอร์รวม 2.8 ล้านล้านตัวและพารามิเตอร์ที่เปิดใช้ 104 พันล้านตัว การออกแบบ Stable LatentMoE เลือกผู้เชี่ยวชาญ 16 จาก 896 ตัวต่อโทเค็น โดยใช้ Kimi Delta Attention และ Attention Residuals ร่วมกับ gated attention ความยาวบริบทที่แน่นอนคือ 1,048,576 โทเค็น นี่เป็นพื้นที่สำหรับบริบทงานจำนวนมาก ไม่ใช่เหตุผลให้ละขอบเขตต้นทางหรือพื้นที่ที่ผลต้องใช้</p><p>ชิ้นงานดั้งเดิมที่เผยแพร่ใช้การฝึกที่คำนึงถึง quantization พร้อมน้ำหนัก MXFP4 และ activations MXFP8 นั่นเป็นรูปแบบเผยแพร่ของผู้ผลิต แยกจากรุ่น quantized ที่ให้มาต่างหากหรือข้ออ้างว่าเส้นทางใดให้บริการโมเดลอย่างไร น้ำหนักเปิดและจำนวนพารามิเตอร์มากไม่ได้ทำให้ตัวเลขพารามิเตอร์ที่ทำงานกลายเป็นข้อกำหนดพื้นที่เก็บหรือฮาร์ดแวร์ทั้งหมด</p><h4>เตรียมงานโค้ดขนาดใหญ่</h4><p>ให้เนื้อหาคลังโค้ดที่เกี่ยวข้อง พฤติกรรมเดิม การเปลี่ยนที่ขอ และข้อจำกัดความเข้ากันได้ ระบุไฟล์หรืออินเทอร์เฟซที่ผลต้องกระทบ การตรวจที่ตัดสินความสำเร็จ และข้อผิดพลาดหรือข้อมูลเข้าที่ให้มาซึ่งเผยปัญหา ผลที่มีประโยชน์อาจเป็นการแก้โค้ดเฉพาะจุดพร้อมคำอธิบายและหลักฐานจากการตรวจที่รันจริง แทนคำอธิบายการกระทำที่ไม่เคยทำ</p><p>สำหรับงานพัฒนาภาพ ให้ภาพหน้าจอหรือภาพผลที่ตั้งใจชัดเจนพร้อมโค้ดที่เกี่ยวข้องและความคลาดเคลื่อนเฉพาะ ผู้ผลิตอธิบายเวิร์กโฟลว์ที่ครอบคลุมงานส่วนหน้า เกม และ CAD ซึ่งใช้ข้อมูลป้อนกลับภาพ ขอการเปลี่ยนที่เชื่อมโค้ดกับผลที่สังเกต และเก็บภาพอ้างอิงเพื่อให้ตรวจชิ้นงานที่ส่งเทียบได้</p><h4>การเตรียมภาพ วิดีโอ และงานความรู้</h4><p>คู่มือเริ่มต้นผู้ผลิตใช้อ็อบเจ็กต์ content ที่ระบุชนิดสำหรับข้อความภาพ content เป็นอาร์เรย์ ไม่ใช่การแทนอาร์เรย์นั้นในรูปข้อความที่ serialize แล้ว เวิร์กโฟลว์ภาพใช้ข้อมูลภาพที่เข้ารหัสหรือการอ้างอิงไฟล์ที่รองรับ แทนที่อยู่ภาพสาธารณะ ตัวอย่างวิดีโออัปโหลดไฟล์วิดีโอแล้วให้การอ้างอิงที่ได้พร้อมคำถามเนื้อหา ให้ต้นทางอ่านได้และระบุข้อสังเกต ช่วงเวลา หรือความสัมพันธ์ที่สำคัญ เวิร์กโฟลว์ภาพผู้ผลิตรับภาพ JPEG, PNG, GIF, WebP, BMP, HEIC และ HEIF กับวิดีโอ MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV และ 3GPP ภาพเคลื่อนไหว GIF หรือ WebP ถอดรหัสเป็นวิดีโอได้ ให้ซอร์ส SVG เป็นข้อความ ผู้ผลิตแนะนำภาพสูงสุด 4096 × 2160 และวิดีโอสูงสุด 1920 × 1080 นี่เป็นคำแนะนำความละเอียด ไม่ใช่เกณฑ์ปฏิเสธ รักษาเนื้อหาคำขอภายในขอบเขตขนาด 100M ที่ระบุ และอัปโหลดสื่อใหญ่หรือใช้ซ้ำเป็นไฟล์</p><p>สำหรับวิจัยที่มีเอกสารมาก ติดป้ายแหล่งและระบุคำถามที่รายงานสุดท้ายควรตอบ สำหรับคำอธิบายวิดีโอ ระบุเหตุการณ์หรือลำดับที่จะวิเคราะห์แทนขอคำบรรยายไร้ข้อจำกัด K3 ใช้เนื้อหาภาพเป็นหลักฐานใช้เหตุผลและส่งข้อความหรือคำขอเครื่องมือกลับ แอปพลิเคชันสามารถส่งคำขอเหล่านั้นให้เครื่องมือสื่อเพื่อสร้างชิ้นงานภาพหรือวิดีโอแยก</p><h4>การคิดเปิดอยู่เสมอ</h4><p>อินเทอร์เฟซผู้ผลิต K3 เปิด thinking เสมอ การตั้งค่า reasoning_effort ระดับบนสุดรับ low, high และ max โดยมี max เป็นค่าเริ่มต้น ตัวเลือกเหล่านี้เฉพาะโมเดล ไม่ควรสมมติว่ามีการตั้งค่าไม่คิดหรือค่าระดับจากตระกูลอื่น แนวทางย้ายรุ่นผู้ผลิตแยก K3 จาก K2.x ด้วยการใช้ reasoning_effort แทนการนำคอนฟิก thinking เก่ามาใช้ต่อ</p><p>ผู้ผลิตระบุ reasoning_content แยกจากเนื้อหาคำตอบสุดท้ายในผลสตรีม สำหรับบทสนทนาหลายรอบหรือเวิร์กโฟลว์เครื่องมือ กำหนดให้ส่งข้อความผู้ช่วยที่ได้รับกลับไปครบและไม่เปลี่ยน รวม reasoning_content และ tool_calls การเก็บเพียงคำตอบสุดท้ายที่มองเห็นทำให้เสียข้อมูลที่เวิร์กโฟลว์เก็บการคิดของโมเดลคาดว่าจะใช้ในขั้นถัดไป</p><h4>คำตอบสุดท้ายแบบมีโครงสร้างและการเขียนต่อบางส่วน</h4><p>คู่มือเริ่มต้นระบุผลลัพธ์ JSON-schema แบบเคร่งครัดสำหรับเนื้อหาข้อความสุดท้าย กำหนดฟิลด์และความหมายตามชิ้นงานที่แอปพลิเคชันต้องใช้ และแยกวิเคราะห์เนื้อหาสุดท้ายนั้นแทนรวมกับฟิลด์การใช้เหตุผล ผลแบบมีโครงสร้างแทนข้อมูลที่ดึงจากเนื้อหาที่ให้หรือรูปแบบรายงานที่กำหนดได้ สคีมาจำกัดรูปทรง ส่วนหลักฐานต้นทางตัดสินว่าค่าถูกหรือไม่</p><p>โหมด partial สามารถเขียนต่อจาก prefix ข้อความที่ให้ ตัวอย่างผู้ผลิตวางข้อความผู้ช่วยแบบ partial ไว้ท้ายประวัติ แล้วรวม prefix นั้นกับส่วนที่เขียนต่อที่ส่งกลับเพื่อแสดง ใช้เมื่อชิ้นงานที่ต้องการมีจุดเริ่มต้นคงที่ที่มีความหมาย โดยแยก prefix จากส่วนที่สร้างต่อ</p><h4>เครื่องมือและความต่อเนื่องของผล</h4><p>K3 รองรับเครื่องมือฟังก์ชันกำหนดเอง ตัวอย่างผู้ผลิตบังคับใช้เครื่องมือในรอบแรก เก็บข้อความผู้ช่วยครบ รันทุกการเรียกที่ส่งกลับ และเพิ่มผลเครื่องมือที่ตรงกันก่อนขอคำตอบสุดท้าย การเรียกที่เสนอไม่ใช่หลักฐานว่าการดำเนินการสำเร็จ ผลจริงที่ส่งกลับเป็นหลักฐานสำหรับขั้นถัดไป</p><p>เวิร์กโฟลว์โหลดแบบไดนามิกเพิ่มนิยามเครื่องมือครบที่จุดเฉพาะในประวัติข้อความ นิยามต้องมีชื่อ วัตถุประสงค์ และพารามิเตอร์ และต้องคงอยู่ในประวัติถัดไป เพราะเซิร์ฟเวอร์ไม่เก็บการประกาศนั้นแยกเอง เก็บความสามารถเครื่องมือ อาร์กิวเมนต์ที่ให้ และข้อสังเกตจริงคู่กัน เพื่อให้งานยาวทำต่อจากสิ่งที่เสร็จแล้วได้</p><h4>ตัวควบคุมผลลัพธ์และบริบทที่ซ้ำ</h4><p>ผู้ผลิตระบุเพดาน completion เริ่มต้น 131,072 โทเค็น ซึ่งตั้งได้สูงสุด 1,048,576 ภายในข้อจำกัดบริบทรวมของโมเดล K3 API ปัจจุบันกำหนด temperature คงที่ 1.0, top_p 0.95 ผลหนึ่งรายการ และ presence กับ frequency penalties เป็นศูนย์ โดยสั่งให้ผู้เรียกละตัวควบคุมการสุ่มเหล่านั้น นี่เป็นการตั้งค่ารุ่นของผู้ผลิตโดยตรง ไม่ใช่รายการตัวควบคุมที่ปรับได้ซึ่งนำไปใช้ทั่วไป</p><p>การแคชบริบทเป็นอัตโนมัติสำหรับ prefix ซ้ำที่เข้าเกณฑ์ โดยเอกสารมีตัวเลือก TTL 5 นาทีและ 1 ชั่วโมง พร้อมค่าเริ่มต้น 5 นาที บล็อกแคชที่ไม่ครบยังนับเป็น cache miss รักษาบริบทที่ใช้ซ้ำให้คงที่และตรวจการใช้งานจริง แทนยืนยัน cache hit จากข้อความซ้ำเพียงอย่างเดียว สำหรับชิ้นงานสุดท้าย เก็บแหล่งที่ให้ หลักฐานเครื่องมือจริง และโครงสร้างผลที่ต้องการ แล้วตรวจว่าคำตอบยาวหรือผลวิศวกรรมตรงเกณฑ์เสร็จที่ระบุ</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">ใช้งานได้ใน Ailoot · อินพุตและเมธอด</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · การประมวลผลแบบชุด</b> <code>POST /v1/batches</code></summary><dl class=\"method-capabilities\"><div><dt>ขาเข้า</dt><dd><code>text</code></dd></div><div><dt>ขาออก</dt><dd><code>text</code></dd></div><div><dt>รูปแบบเอาต์พุต</dt><dd>JSON ของ results[].response.body ที่ส่งกลับโดยตรง</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>ฟิลด์</th><th>ประเภท</th><th>ข้อกำหนด</th><th>ค่าและข้อจำกัด</th><th>ค่าเริ่มต้น</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>/v1/chat/completions</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>moonshotai/kimi-k3:batch</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">requests</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>batch_item[]</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>จำนวนรายการขั้นต่ำ: 1</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">requests[].custom_id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">requests[].body.messages</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>message[]</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>จำเป็น</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">completion_window</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>24h</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>object|null</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">requests[].body.model</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>moonshotai/kimi-k3:batch, moonshotai/kimi-k3</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">provider.only</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>string[]</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>deepinfra/bf16</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">provider.allow_fallbacks</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span><code>boolean|null</code></td><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ไม่บังคับ</td><td data-cell-label=\"ค่าและข้อจำกัด\"><span class=\"card-cell-label\">ค่าและข้อจำกัด</span><div>false, null</div></td><td data-cell-label=\"ค่าเริ่มต้น\" data-default=\"unspecified\"><span class=\"card-cell-label\">ค่าเริ่มต้น</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>พารามิเตอร์และวงจรการทำงานของเมธอด</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>พารามิเตอร์</th><th>ข้อกำหนด</th></tr></thead><tbody><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>content_type</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>application/json</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>required</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>endpoint, model, requests</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>material_types</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>text</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>representation</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ส่ง requests[] ไว้ในคำขอโดยตรง โดยแต่ละรายการมี custom_id และ body</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>request_endpoint_profile</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>/v1/chat/completions</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>file_material</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>ผู้เรียกใช้อาจอ่านไฟล์ JSONL ที่เข้ารหัส UTF-8 จากเครื่องของตนลงใน requests[] ได้ ไม่มีการใช้ค่าระบุวัตถุประสงค์การอัปโหลด input_file_id หรือการอ้างอิงไฟล์ หากไม่มีข้อมูลของลูกค้าหรือข้อมูลว่าง ให้หยุดการเตรียมก่อนส่ง POST</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>serialization_order</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>endpoint, model, provider (หากระบุมา), completion_window (หากระบุมา), requests อยู่ท้ายสุด</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>optional_controls</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>provider.only, provider.allow_fallbacks, completion_window</td></tr><tr><th data-cell-label=\"พารามิเตอร์\" scope=\"row\"><span class=\"card-cell-label\">พารามิเตอร์</span><code>schema_scope</code></th><td data-cell-label=\"ข้อกำหนด\"><span class=\"card-cell-label\">ข้อกำหนด</span>เนื้อหาคำขอ Chat Completions แบบข้อความ ภายในโครงสร้างคำขอแบบชุดที่ส่งโดยตรงตามที่ระบุในเอกสาร</td></tr></tbody></table></div><p>วงจรการทำงาน: <code>asynchronous</code></p><p class=\"note-s\"><code>GET /v1/batches/{operation_id}</code> · ค่า response.id จริงจากการตอบกลับคำขอสร้างครั้งเดิม โดยใช้ผู้ใช้/คีย์/กลุ่มเดิม</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">ราคา</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก</p><dl data-price-conditions><dt>โหมดรวดเร็ว</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อเลือกโหมดรวดเร็ว</span></dd><dt>โหมดยืดหยุ่น</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อเลือกโหมด flex</span></dd><dt>ระดับการใช้เหตุผลสูงสุด</dt><dd>ไม่ได้ระบุ <span class=\"note-s\">เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด</span></dd><dt>การคิดราคาแคชแบบระบุชัด</dt><dd>ไม่ได้เปิดใช้ <span class=\"note-s\">เมื่อร้องขอแคชแบบระบุชัด</span></dd></dl></div><div data-declared-tariff-pricing><h4>อัตราค่าบริการ Ailoot</h4><h4>ราคาตามการตั้งค่า</h4><p class=\"note-s\">เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>การตั้งค่า</th><th>ตารางอัตราค่าบริการ</th><th>โทเค็นบริบท มากกว่า</th><th>โทเค็นบริบท ไม่เกินและรวมค่า</th><th>ค่าบริการ</th></tr></thead><tbody><tr><th data-cell-label=\"การตั้งค่า\" scope=\"row\"><span class=\"card-cell-label\">การตั้งค่า</span>อัตราราคาพื้นฐานของโทเคน</th><td data-cell-label=\"ตารางอัตราค่าบริการ\"><span class=\"card-cell-label\">ตารางอัตราค่าบริการ</span>อัตราพื้นฐาน</td><td data-cell-label=\"โทเค็นบริบท มากกว่า\"><span class=\"card-cell-label\">โทเค็นบริบท มากกว่า</span>—</td><td data-cell-label=\"โทเค็นบริบท ไม่เกินและรวมค่า\"><span class=\"card-cell-label\">โทเค็นบริบท ไม่เกินและรวมค่า</span>ไม่มีขีดจำกัดสูงสุด</td><td data-cell-label=\"ค่าบริการ\"><span class=\"card-cell-label\">ค่าบริการ</span><div><span>ขาเข้า · โทเค็นอินพุต</span> <b>$0.00456</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาออก · โทเค็นเอาต์พุต</span> <b>$0.0228</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การอ่านแคช</span> <b>$0.000456</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช, 1 ชั่วโมง</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div></td></tr><tr><th data-cell-label=\"การตั้งค่า\" scope=\"row\"><span class=\"card-cell-label\">การตั้งค่า</span>ระดับความยาวคำขอ 1</th><td data-cell-label=\"ตารางอัตราค่าบริการ\"><span class=\"card-cell-label\">ตารางอัตราค่าบริการ</span>—</td><td data-cell-label=\"โทเค็นบริบท มากกว่า\"><span class=\"card-cell-label\">โทเค็นบริบท มากกว่า</span>0</td><td data-cell-label=\"โทเค็นบริบท ไม่เกินและรวมค่า\"><span class=\"card-cell-label\">โทเค็นบริบท ไม่เกินและรวมค่า</span>ไม่มีขีดจำกัดสูงสุด</td><td data-cell-label=\"ค่าบริการ\"><span class=\"card-cell-label\">ค่าบริการ</span><div><span>ขาเข้า · โทเค็นอินพุต</span> <b>$0.00456</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาออก · โทเค็นเอาต์พุต</span> <b>$0.0228</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การอ่านแคช</span> <b>$0.000456</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div><div><span>ขาเข้า · การเขียนแคช, 1 ชั่วโมง</span> <b>—</b> <span class=\"price-unit\">/ 1K โทเค็น</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย <a href=\"/docs/th/billing/reserve/\">วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">ตัวอย่างคำขอ</h3><h4>Ailoot Ultra · การประมวลผลแบบชุด</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"ตัวเลือกโค้ด\"><button class=\"cg-tab\" id=\"model-code-1975-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1975-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · ข้อมูลทดสอบที่เก็บไว้</button><button class=\"cg-tab\" id=\"model-code-1975-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1975-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python HTTP · JSONL จริงของลูกค้า</button><button class=\"cg-tab\" id=\"model-code-1975-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1975-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · บันทึกผลลัพธ์ที่เสร็จสมบูรณ์ทุกรายการ</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"คัดลอกโค้ด\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1975-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1975-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json\nfrom pathlib import Path\nbody=json.loads(&#39;{&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;,&quot;model&quot;:&quot;moonshotai/kimi-k3:batch&quot;,&quot;requests&quot;:[{&quot;custom_id&quot;:&quot;req-0001&quot;,&quot;body&quot;:{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Hello!&quot;}],&quot;max_tokens&quot;:16}}]}&#39;)\nPath(&quot;batch-request.json&quot;).write_text(json.dumps(body,ensure_ascii=False),encoding=&quot;utf-8&quot;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1975-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1975-tab-1\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(&quot;Customer JSONL file is missing&quot;)\n    items = [json.loads(line) for line in path.read_text(encoding=&quot;utf-8&quot;).splitlines() if line.strip()]\n    if not items: raise ValueError(&quot;Customer JSONL contains no requests&quot;)\n    ids = set()\n    for item in items:\n        if set(item) != {&quot;custom_id&quot;, &quot;body&quot;}: raise ValueError(&quot;Each item needs custom_id and body&quot;)\n        cid = item[&quot;custom_id&quot;]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(&quot;custom_id must be nonempty and unique&quot;)\n        ids.add(cid)\n        if not isinstance(item[&quot;body&quot;], dict) or not item[&quot;body&quot;].get(&quot;messages&quot;): raise ValueError(&quot;Supply actual text messages&quot;)\n        supplied_model = item[&quot;body&quot;].get(&quot;model&quot;)\n        if supplied_model is not None and supplied_model not in [&#39;moonshotai/kimi-k3:batch&#39;, &#39;moonshotai/kimi-k3&#39;]: raise ValueError(&quot;body.model must be an exact documented caller or wire ID&quot;)\n    return {&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;, &quot;model&quot;:&quot;moonshotai/kimi-k3:batch&quot;, &quot;requests&quot;:items}\n\nif __name__ == &quot;__main__&quot;:\n    material = os.environ.get(&quot;AILOOT_BATCH_REQUESTS_JSONL&quot;, &quot;&quot;)\n    if not material: raise SystemExit(&quot;Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file&quot;)\n    body = prepare_requests(material)\n    key = os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;)\n    if not key: raise SystemExit(&quot;Set AILOOT_API_KEY&quot;)\n    request = Request(&quot;https://api.ailoot.ai/v1/batches&quot;, data=json.dumps(body, ensure_ascii=False).encode(&quot;utf-8&quot;), headers={&quot;Authorization&quot;:&quot;Bearer &quot; + key, &quot;Content-Type&quot;:&quot;application/json&quot;}, method=&quot;POST&quot;)\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(&quot;batch-create-response.json&quot;).write_bytes(raw)\n        print(raw.decode(&quot;utf-8&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1975-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1975-tab-2\" hidden><pre data-lang=\"python\"><code>import json\nfrom pathlib import Path\nraw = Path(&quot;batch-status-response.json&quot;).read_bytes()\nresponse = json.loads(raw)\nif response.get(&quot;status&quot;) != &quot;completed&quot;:\n    raise SystemExit(&quot;Keep the original operation; read its status without resubmitting&quot;)\nresults = response.get(&quot;results&quot;)\nif not isinstance(results, list) or not results:\n    raise SystemExit(&quot;Preserve the original response; completed results are missing&quot;)\nPath(&quot;batch-results.jsonl&quot;).write_text(&quot;&quot;.join(json.dumps(item, ensure_ascii=False) + &quot;\\n&quot; for item in results), encoding=&quot;utf-8&quot;)\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">รับและบันทึกผลลัพธ์</h3><h4>Ailoot Ultra · การประมวลผลแบบชุด</h4><p class=\"note-s\">JSON ของ results[].response.body ที่ส่งกลับโดยตรง</p><ul class=\"card-result-paths\"><li><code>GET /v1/batches/{operation_id}</code></li></ul><h5>ตรวจสอบสถานะงาน</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"ตัวเลือกโค้ด\"><button class=\"cg-tab\" id=\"model-code-1976-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1976-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · สถานะของการดำเนินการเดิม</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"คัดลอกโค้ด\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1976-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1976-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nBATCH_OPERATION_ID=&quot;$(python3 - &lt;&lt;&#39;PY_ID&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(&quot;batch-create-response.json&quot;).read_text(encoding=&quot;utf-8&quot;))\noperation = response.get(&quot;id&quot;)\nif not isinstance(operation, str) or not operation: raise SystemExit(&quot;No actual original operation ID; preserve the response and do not resubmit&quot;)\nprint(quote(operation, safe=&quot;&quot;))\nPY_ID\n)&quot;\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o batch-status-response.json\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด</h5><p class=\"note-s\">เก็บทุกการตอบกลับ ไฟล์ และส่วนเนื้อหาที่ส่งกลับมาอย่างครบถ้วน</p><p class=\"note-s\">เก็บ JSON สถานะเดิมให้ครบถ้วน รวมถึงผลลัพธ์/custom_id ทุกรายการ และเนื้อหาการตอบกลับหรือข้อผิดพลาดทั้งหมด บันทึก results[] ที่เสร็จสมบูรณ์เป็น JSONL โดยไม่กรองข้อมูล</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ</h5><p class=\"note-s\">เก็บ ID การดำเนินการเดิมไว้ การตอบกลับ 503 result_pending_check มี X-Should-Retry:false ห้ามส่งงานแบบชุดเดิมซ้ำเด็ดขาดเมื่อยังไม่ทราบสถานะของงาน</p></div><details class=\"card-about\" data-output-fields><summary>ฟิลด์การตอบกลับ</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>ฟิลด์</th><th>ประเภท</th></tr></thead><tbody><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].custom_id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].response.body.choices[].message.content</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string|null</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].error</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>object|null</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>object|null</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">request_counts</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>object</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].response.status_code</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>integer</td></tr><tr><th data-cell-label=\"ฟิลด์\" scope=\"row\"><span class=\"card-cell-label\">ฟิลด์</span><code class=\"card-field-name\">results[].response.request_id</code></th><td data-cell-label=\"ประเภท\" data-field-type><span class=\"card-cell-label\">ประเภท</span>string</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>ข้อผิดพลาดและขั้นตอนถัดไป</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>การตอบกลับ</th><th>เงื่อนไข</th><th>ขั้นตอนถัดไป</th></tr></thead><tbody><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>โครงสร้างคำขอแบบส่งโดยตรงตามเอกสารไม่ถูกต้อง มีคีย์ซ้ำ หรือมีข้อขัดแย้งเกี่ยวกับตัวตนของรายการหรือความสามารถของโมเดลที่กำหนดไว้</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>แก้ไขฟิลด์ที่ระบุให้ถูกต้องก่อนส่งคำขอใหม่ทุกครั้ง</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>401 · <code>authentication_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>คีย์ API ไม่ถูกต้อง</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>ใช้คีย์ Ailoot ที่ได้รับอนุญาต</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>403 · <code>permission_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>กลุ่มสำหรับการประมวลผลแบบชุดไม่พร้อมใช้งาน</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>ตรวจสอบสิทธิ์ของคีย์/กลุ่ม</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>การประมวลผลแบบชุดเรียกเก็บเงินจากยอดเงินคงเหลือ คำขอสร้างที่ใช้การเรียกเก็บผ่านการสมัครสมาชิกจะถูกปฏิเสธ</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>ใช้กลุ่มที่ได้รับอนุญาตให้เรียกเก็บเงินจากยอดเงินคงเหลือ</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ไม่สามารถคำนวณราคาล่วงหน้าสำหรับข้อมูลนำเข้าของงานแบบชุดได้</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>เก็บการตอบกลับไว้ และใช้ข้อมูลนำเข้าตามเอกสารของ API ประเภทนั้น</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>402 · <code>billing_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ไม่สามารถกันยอดเงินสำรองสำหรับการประมวลผลแบบชุดได้</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>แก้ไขเงื่อนไขการรับคำขอให้เรียบร้อยก่อนส่งคำขอใหม่</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>503 · <code>price_unavailable</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ราคาของวิธีประมวลผลแบบชุด/อัตราราคาของระบบไม่พร้อมใช้งาน</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>เก็บการตอบกลับไว้ ห้ามแทนที่ด้วยราคาอื่น</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>503 · <code>api_error</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>เส้นทางที่ระบุไว้ของผู้ให้บริการต้นทางไม่พร้อมใช้งาน</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>เก็บการตอบกลับไว้เพื่อแก้ไขเส้นทางการส่งคำขอ</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ผลลัพธ์เดิมต้องได้รับการตรวจสอบ โดยมี X-Should-Retry:false</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>เก็บค่า operation_id/id เดิมไว้แล้วอ่านสถานะของการดำเนินการนั้น ห้ามส่ง POST เดิมซ้ำเด็ดขาด</td></tr><tr><th data-cell-label=\"การตอบกลับ\" scope=\"row\"><span class=\"card-cell-label\">การตอบกลับ</span>404 · <code>not_found</code></th><td data-cell-label=\"เงื่อนไข\"><span class=\"card-cell-label\">เงื่อนไข</span>ไม่พบการดำเนินการตรวจสอบสถานะงานแบบชุด หรือการดำเนินการนั้นเป็นของตัวตนอื่น</td><td data-cell-label=\"ขั้นตอนถัดไป\"><span class=\"card-cell-label\">ขั้นตอนถัดไป</span>ใช้ค่า id เดิมให้ตรงทุกตัว พร้อมผู้ใช้/คีย์/กลุ่มเดิม</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">ชื่ออื่น</h3><h4>ชื่ออื่นของโมเดล</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=moonshotai%2Fkimi-k3%3Abatch&amp;route=Ultra&amp;caller=moonshotai%2Fkimi-k3%3Abatch&amp;fmt=batches\"><code>moonshotai/kimi-k3:batch</code></a></span></p><h4>ชื่อพาธเมธอดอื่น</h4><p class=\"note-s\">ใช้พาธเมธอดที่แสดงด้านบน</p><h4>ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล</h4><p class=\"note-s\"><a href=\"#m=moonshotai%2Fkimi-k3%3Abatch&amp;route=Ultra&amp;caller=moonshotai%2Fkimi-k3%3Abatch&amp;fmt=batches\"><code>moonshotai/kimi-k3:batch</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "moonshotai/kimi-k3:batch",
        "fmt": "batches",
        "http": "POST",
        "path": "/v1/batches",
        "request_model_id": "moonshotai/kimi-k3:batch",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|batches|/v1/batches|moonshotai%2Fkimi-k3%3Abatch",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.456,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "โครงสร้างคำขอแบบส่งโดยตรงตามเอกสารไม่ถูกต้อง มีคีย์ซ้ำ หรือมีข้อขัดแย้งเกี่ยวกับตัวตนของรายการหรือความสามารถของโมเดลที่กำหนดไว้",
                "http_status": 400,
                "recovery": "แก้ไขฟิลด์ที่ระบุให้ถูกต้องก่อนส่งคำขอใหม่ทุกครั้ง",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "คีย์ API ไม่ถูกต้อง",
                "http_status": 401,
                "recovery": "ใช้คีย์ Ailoot ที่ได้รับอนุญาต",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "กลุ่มสำหรับการประมวลผลแบบชุดไม่พร้อมใช้งาน",
                "http_status": 403,
                "recovery": "ตรวจสอบสิทธิ์ของคีย์/กลุ่ม",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "การประมวลผลแบบชุดเรียกเก็บเงินจากยอดเงินคงเหลือ คำขอสร้างที่ใช้การเรียกเก็บผ่านการสมัครสมาชิกจะถูกปฏิเสธ",
                "http_status": 422,
                "recovery": "ใช้กลุ่มที่ได้รับอนุญาตให้เรียกเก็บเงินจากยอดเงินคงเหลือ",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "ไม่สามารถคำนวณราคาล่วงหน้าสำหรับข้อมูลนำเข้าของงานแบบชุดได้",
                "http_status": 422,
                "recovery": "เก็บการตอบกลับไว้ และใช้ข้อมูลนำเข้าตามเอกสารของ API ประเภทนั้น",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "ไม่สามารถกันยอดเงินสำรองสำหรับการประมวลผลแบบชุดได้",
                "http_status": 402,
                "recovery": "แก้ไขเงื่อนไขการรับคำขอให้เรียบร้อยก่อนส่งคำขอใหม่",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "ราคาของวิธีประมวลผลแบบชุด/อัตราราคาของระบบไม่พร้อมใช้งาน",
                "http_status": 503,
                "recovery": "เก็บการตอบกลับไว้ ห้ามแทนที่ด้วยราคาอื่น",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "เส้นทางที่ระบุไว้ของผู้ให้บริการต้นทางไม่พร้อมใช้งาน",
                "http_status": 503,
                "recovery": "เก็บการตอบกลับไว้เพื่อแก้ไขเส้นทางการส่งคำขอ",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "ผลลัพธ์เดิมต้องได้รับการตรวจสอบ โดยมี X-Should-Retry:false",
                "http_status": 503,
                "recovery": "เก็บค่า operation_id/id เดิมไว้แล้วอ่านสถานะของการดำเนินการนั้น ห้ามส่ง POST เดิมซ้ำเด็ดขาด",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "ไม่พบการดำเนินการตรวจสอบสถานะงานแบบชุด หรือการดำเนินการนั้นเป็นของตัวตนอื่น",
                "http_status": 404,
                "recovery": "ใช้ค่า id เดิมให้ตรงทุกตัว พร้อมผู้ใช้/คีย์/กลุ่มเดิม",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "moonshotai/kimi-k3:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "เก็บ JSON สถานะเดิมให้ครบถ้วน รวมถึงผลลัพธ์/custom_id ทุกรายการ และเนื้อหาการตอบกลับหรือข้อผิดพลาดทั้งหมด บันทึก results[] ที่เสร็จสมบูรณ์เป็น JSONL โดยไม่กรองข้อมูล",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "JSON ของ results[].response.body ที่ส่งกลับโดยตรง"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "moonshotai/kimi-k3:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "moonshotai/kimi-k3:batch",
                  "moonshotai/kimi-k3"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "deepinfra/bf16"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "deepinfra/bf16"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "moonshotai/kimi-k3:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "deepinfra/bf16"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "deepinfra/bf16"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "moonshotai/kimi-k3:batch",
                              "moonshotai/kimi-k3"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "moonshotai/kimi-k3:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "ผู้เรียกใช้อาจอ่านไฟล์ JSONL ที่เข้ารหัส UTF-8 จากเครื่องของตนลงใน requests[] ได้ ไม่มีการใช้ค่าระบุวัตถุประสงค์การอัปโหลด input_file_id หรือการอ้างอิงไฟล์ หากไม่มีข้อมูลของลูกค้าหรือข้อมูลว่าง ให้หยุดการเตรียมก่อนส่ง POST",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "ส่ง requests[] ไว้ในคำขอโดยตรง โดยแต่ละรายการมี custom_id และ body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "เนื้อหาคำขอ Chat Completions แบบข้อความ ภายในโครงสร้างคำขอแบบชุดที่ส่งโดยตรงตามที่ระบุในเอกสาร",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (หากระบุมา)",
              "completion_window (หากระบุมา)",
              "requests อยู่ท้ายสุด"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "ค่า response.id จริงจากการตอบกลับคำขอสร้างครั้งเดิม โดยใช้ผู้ใช้/คีย์/กลุ่มเดิม",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "เก็บ ID การดำเนินการเดิมไว้ การตอบกลับ 503 result_pending_check มี X-Should-Retry:false ห้ามส่งงานแบบชุดเดิมซ้ำเด็ดขาดเมื่อยังไม่ทราบสถานะของงาน"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "อัตราราคาพื้นฐานของโทเคน",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "ระดับความยาวคำขอ 1",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"moonshotai/kimi-k3:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"moonshotai/kimi-k3:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 4.56,
        "input": [
          "text"
        ],
        "label": "การประมวลผลแบบชุด",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 22.8,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "moonshotai/kimi-k3:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.456,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4.56,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 22.8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00456000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000456",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0228000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000228",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.000456000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.000000456",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "moonshotai/kimi-k3:batch",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b5d2e851c7d7f621bee9af752912abf230c8c26909977cd635e50e0f5615bb8d",
    "input_html_sha256": "8730da279e0af1a78dcdb7544929a4152fb4a1ffeb265d374ffc952e8db0697f",
    "private_audit_sha256": "e4c711921472c099b62fd85fca7667edfb9e8b3481cfb35dd79ff96188381485",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/th/moonshotai-kimi-k3-u003a-batch/",
    "description": "Kimi K3 เป็นโมเดลใช้เหตุผลหลายสื่อในตัวของ Moonshot AI สำหรับงานโค้ดยาวและงานความรู้ อ่านข้อความ ภาพ และวิดีโอ สร้างข้อความ และรองรับเวิร์กโฟลว์ที่ใช้เครื่องมือด้วยบริบท 1,048,576 โทเค็นและประวัติการคิดที่เก็บข้ามขั้นตอน",
    "locale": "th",
    "md_url": "https://ailoot.ai/models/th/moonshotai-kimi-k3-u003a-batch/index.md",
    "title": "MoonshotAI: Kimi K3 (batch) — Ailoot",
    "url": "https://ailoot.ai/models/th/moonshotai-kimi-k3-u003a-batch/"
  },
  "rawModel": {
    "about": "Kimi K3 เป็นโมเดลเอเจนต์หลายสื่อแบบเปิดน้ำหนักของ Moonshot AI สำหรับการเขียนโค้ดระยะยาว งานความรู้ และการใช้เหตุผล ผสานข้อความกับความเข้าใจภาพและวิดีโอในตัว แล้วให้คำตอบข้อความหรือคำขอเครื่องมือ ผู้ผลิตเน้นเซสชันวิศวกรรมที่ยาว คลังโค้ดใหญ่ และงานที่ใช้ภาพหน้าจอหรือข้อมูลป้อนกลับภาพร่วมกับโค้ด บรีฟที่มีประโยชน์กำหนดชิ้นงานที่ต้องการ หลักฐานที่จะใช้ และเงื่อนไขที่ถือว่างานเสร็จ\n\n### สถาปัตยกรรมและบริบทยาว\n\nการ์ดโมเดลอธิบาย Mixture of Experts แบบ sparse ที่มีพารามิเตอร์รวม 2.8 ล้านล้านตัวและพารามิเตอร์ที่เปิดใช้ 104 พันล้านตัว การออกแบบ Stable LatentMoE เลือกผู้เชี่ยวชาญ 16 จาก 896 ตัวต่อโทเค็น โดยใช้ Kimi Delta Attention และ Attention Residuals ร่วมกับ gated attention ความยาวบริบทที่แน่นอนคือ 1,048,576 โทเค็น นี่เป็นพื้นที่สำหรับบริบทงานจำนวนมาก ไม่ใช่เหตุผลให้ละขอบเขตต้นทางหรือพื้นที่ที่ผลต้องใช้\n\nชิ้นงานดั้งเดิมที่เผยแพร่ใช้การฝึกที่คำนึงถึง quantization พร้อมน้ำหนัก MXFP4 และ activations MXFP8 นั่นเป็นรูปแบบเผยแพร่ของผู้ผลิต แยกจากรุ่น quantized ที่ให้มาต่างหากหรือข้ออ้างว่าเส้นทางใดให้บริการโมเดลอย่างไร น้ำหนักเปิดและจำนวนพารามิเตอร์มากไม่ได้ทำให้ตัวเลขพารามิเตอร์ที่ทำงานกลายเป็นข้อกำหนดพื้นที่เก็บหรือฮาร์ดแวร์ทั้งหมด\n\n### เตรียมงานโค้ดขนาดใหญ่\n\nให้เนื้อหาคลังโค้ดที่เกี่ยวข้อง พฤติกรรมเดิม การเปลี่ยนที่ขอ และข้อจำกัดความเข้ากันได้ ระบุไฟล์หรืออินเทอร์เฟซที่ผลต้องกระทบ การตรวจที่ตัดสินความสำเร็จ และข้อผิดพลาดหรือข้อมูลเข้าที่ให้มาซึ่งเผยปัญหา ผลที่มีประโยชน์อาจเป็นการแก้โค้ดเฉพาะจุดพร้อมคำอธิบายและหลักฐานจากการตรวจที่รันจริง แทนคำอธิบายการกระทำที่ไม่เคยทำ\n\nสำหรับงานพัฒนาภาพ ให้ภาพหน้าจอหรือภาพผลที่ตั้งใจชัดเจนพร้อมโค้ดที่เกี่ยวข้องและความคลาดเคลื่อนเฉพาะ ผู้ผลิตอธิบายเวิร์กโฟลว์ที่ครอบคลุมงานส่วนหน้า เกม และ CAD ซึ่งใช้ข้อมูลป้อนกลับภาพ ขอการเปลี่ยนที่เชื่อมโค้ดกับผลที่สังเกต และเก็บภาพอ้างอิงเพื่อให้ตรวจชิ้นงานที่ส่งเทียบได้\n\n### การเตรียมภาพ วิดีโอ และงานความรู้\n\nคู่มือเริ่มต้นผู้ผลิตใช้อ็อบเจ็กต์ content ที่ระบุชนิดสำหรับข้อความภาพ content เป็นอาร์เรย์ ไม่ใช่การแทนอาร์เรย์นั้นในรูปข้อความที่ serialize แล้ว เวิร์กโฟลว์ภาพใช้ข้อมูลภาพที่เข้ารหัสหรือการอ้างอิงไฟล์ที่รองรับ แทนที่อยู่ภาพสาธารณะ ตัวอย่างวิดีโออัปโหลดไฟล์วิดีโอแล้วให้การอ้างอิงที่ได้พร้อมคำถามเนื้อหา ให้ต้นทางอ่านได้และระบุข้อสังเกต ช่วงเวลา หรือความสัมพันธ์ที่สำคัญ เวิร์กโฟลว์ภาพผู้ผลิตรับภาพ JPEG, PNG, GIF, WebP, BMP, HEIC และ HEIF กับวิดีโอ MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV และ 3GPP ภาพเคลื่อนไหว GIF หรือ WebP ถอดรหัสเป็นวิดีโอได้ ให้ซอร์ส SVG เป็นข้อความ ผู้ผลิตแนะนำภาพสูงสุด 4096 × 2160 และวิดีโอสูงสุด 1920 × 1080 นี่เป็นคำแนะนำความละเอียด ไม่ใช่เกณฑ์ปฏิเสธ รักษาเนื้อหาคำขอภายในขอบเขตขนาด 100M ที่ระบุ และอัปโหลดสื่อใหญ่หรือใช้ซ้ำเป็นไฟล์\n\nสำหรับวิจัยที่มีเอกสารมาก ติดป้ายแหล่งและระบุคำถามที่รายงานสุดท้ายควรตอบ สำหรับคำอธิบายวิดีโอ ระบุเหตุการณ์หรือลำดับที่จะวิเคราะห์แทนขอคำบรรยายไร้ข้อจำกัด K3 ใช้เนื้อหาภาพเป็นหลักฐานใช้เหตุผลและส่งข้อความหรือคำขอเครื่องมือกลับ แอปพลิเคชันสามารถส่งคำขอเหล่านั้นให้เครื่องมือสื่อเพื่อสร้างชิ้นงานภาพหรือวิดีโอแยก\n\n### การคิดเปิดอยู่เสมอ\n\nอินเทอร์เฟซผู้ผลิต K3 เปิด thinking เสมอ การตั้งค่า reasoning_effort ระดับบนสุดรับ low, high และ max โดยมี max เป็นค่าเริ่มต้น ตัวเลือกเหล่านี้เฉพาะโมเดล ไม่ควรสมมติว่ามีการตั้งค่าไม่คิดหรือค่าระดับจากตระกูลอื่น แนวทางย้ายรุ่นผู้ผลิตแยก K3 จาก K2.x ด้วยการใช้ reasoning_effort แทนการนำคอนฟิก thinking เก่ามาใช้ต่อ\n\nผู้ผลิตระบุ reasoning_content แยกจากเนื้อหาคำตอบสุดท้ายในผลสตรีม สำหรับบทสนทนาหลายรอบหรือเวิร์กโฟลว์เครื่องมือ กำหนดให้ส่งข้อความผู้ช่วยที่ได้รับกลับไปครบและไม่เปลี่ยน รวม reasoning_content และ tool_calls การเก็บเพียงคำตอบสุดท้ายที่มองเห็นทำให้เสียข้อมูลที่เวิร์กโฟลว์เก็บการคิดของโมเดลคาดว่าจะใช้ในขั้นถัดไป\n\n### คำตอบสุดท้ายแบบมีโครงสร้างและการเขียนต่อบางส่วน\n\nคู่มือเริ่มต้นระบุผลลัพธ์ JSON-schema แบบเคร่งครัดสำหรับเนื้อหาข้อความสุดท้าย กำหนดฟิลด์และความหมายตามชิ้นงานที่แอปพลิเคชันต้องใช้ และแยกวิเคราะห์เนื้อหาสุดท้ายนั้นแทนรวมกับฟิลด์การใช้เหตุผล ผลแบบมีโครงสร้างแทนข้อมูลที่ดึงจากเนื้อหาที่ให้หรือรูปแบบรายงานที่กำหนดได้ สคีมาจำกัดรูปทรง ส่วนหลักฐานต้นทางตัดสินว่าค่าถูกหรือไม่\n\nโหมด partial สามารถเขียนต่อจาก prefix ข้อความที่ให้ ตัวอย่างผู้ผลิตวางข้อความผู้ช่วยแบบ partial ไว้ท้ายประวัติ แล้วรวม prefix นั้นกับส่วนที่เขียนต่อที่ส่งกลับเพื่อแสดง ใช้เมื่อชิ้นงานที่ต้องการมีจุดเริ่มต้นคงที่ที่มีความหมาย โดยแยก prefix จากส่วนที่สร้างต่อ\n\n### เครื่องมือและความต่อเนื่องของผล\n\nK3 รองรับเครื่องมือฟังก์ชันกำหนดเอง ตัวอย่างผู้ผลิตบังคับใช้เครื่องมือในรอบแรก เก็บข้อความผู้ช่วยครบ รันทุกการเรียกที่ส่งกลับ และเพิ่มผลเครื่องมือที่ตรงกันก่อนขอคำตอบสุดท้าย การเรียกที่เสนอไม่ใช่หลักฐานว่าการดำเนินการสำเร็จ ผลจริงที่ส่งกลับเป็นหลักฐานสำหรับขั้นถัดไป\n\nเวิร์กโฟลว์โหลดแบบไดนามิกเพิ่มนิยามเครื่องมือครบที่จุดเฉพาะในประวัติข้อความ นิยามต้องมีชื่อ วัตถุประสงค์ และพารามิเตอร์ และต้องคงอยู่ในประวัติถัดไป เพราะเซิร์ฟเวอร์ไม่เก็บการประกาศนั้นแยกเอง เก็บความสามารถเครื่องมือ อาร์กิวเมนต์ที่ให้ และข้อสังเกตจริงคู่กัน เพื่อให้งานยาวทำต่อจากสิ่งที่เสร็จแล้วได้\n\n### ตัวควบคุมผลลัพธ์และบริบทที่ซ้ำ\n\nผู้ผลิตระบุเพดาน completion เริ่มต้น 131,072 โทเค็น ซึ่งตั้งได้สูงสุด 1,048,576 ภายในข้อจำกัดบริบทรวมของโมเดล K3 API ปัจจุบันกำหนด temperature คงที่ 1.0, top_p 0.95 ผลหนึ่งรายการ และ presence กับ frequency penalties เป็นศูนย์ โดยสั่งให้ผู้เรียกละตัวควบคุมการสุ่มเหล่านั้น นี่เป็นการตั้งค่ารุ่นของผู้ผลิตโดยตรง ไม่ใช่รายการตัวควบคุมที่ปรับได้ซึ่งนำไปใช้ทั่วไป\n\nการแคชบริบทเป็นอัตโนมัติสำหรับ prefix ซ้ำที่เข้าเกณฑ์ โดยเอกสารมีตัวเลือก TTL 5 นาทีและ 1 ชั่วโมง พร้อมค่าเริ่มต้น 5 นาที บล็อกแคชที่ไม่ครบยังนับเป็น cache miss รักษาบริบทที่ใช้ซ้ำให้คงที่และตรวจการใช้งานจริง แทนยืนยัน cache hit จากข้อความซ้ำเพียงอย่างเดียว สำหรับชิ้นงานสุดท้าย เก็บแหล่งที่ให้ หลักฐานเครื่องมือจริง และโครงสร้างผลที่ต้องการ แล้วตรวจว่าคำตอบยาวหรือผลวิศวกรรมตรงเกณฑ์เสร็จที่ระบุ",
    "alias_of": null,
    "aliases": [],
    "author": "MoonshotAI",
    "capabilities": {
      "context_length": 1048576,
      "manufacturer_input": [
        "text",
        "image",
        "video"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00456000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000456",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0228000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000228",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "ดูราคาตามการกำหนดค่าแบบครบถ้วนในรายละเอียด"
      }
    ],
    "ctx": null,
    "formats": [
      "batches"
    ],
    "id": "moonshotai/kimi-k3:batch",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.456,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "โครงสร้างคำขอแบบส่งโดยตรงตามเอกสารไม่ถูกต้อง มีคีย์ซ้ำ หรือมีข้อขัดแย้งเกี่ยวกับตัวตนของรายการหรือความสามารถของโมเดลที่กำหนดไว้",
                "http_status": 400,
                "recovery": "แก้ไขฟิลด์ที่ระบุให้ถูกต้องก่อนส่งคำขอใหม่ทุกครั้ง",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "คีย์ API ไม่ถูกต้อง",
                "http_status": 401,
                "recovery": "ใช้คีย์ Ailoot ที่ได้รับอนุญาต",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "กลุ่มสำหรับการประมวลผลแบบชุดไม่พร้อมใช้งาน",
                "http_status": 403,
                "recovery": "ตรวจสอบสิทธิ์ของคีย์/กลุ่ม",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "การประมวลผลแบบชุดเรียกเก็บเงินจากยอดเงินคงเหลือ คำขอสร้างที่ใช้การเรียกเก็บผ่านการสมัครสมาชิกจะถูกปฏิเสธ",
                "http_status": 422,
                "recovery": "ใช้กลุ่มที่ได้รับอนุญาตให้เรียกเก็บเงินจากยอดเงินคงเหลือ",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "ไม่สามารถคำนวณราคาล่วงหน้าสำหรับข้อมูลนำเข้าของงานแบบชุดได้",
                "http_status": 422,
                "recovery": "เก็บการตอบกลับไว้ และใช้ข้อมูลนำเข้าตามเอกสารของ API ประเภทนั้น",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "ไม่สามารถกันยอดเงินสำรองสำหรับการประมวลผลแบบชุดได้",
                "http_status": 402,
                "recovery": "แก้ไขเงื่อนไขการรับคำขอให้เรียบร้อยก่อนส่งคำขอใหม่",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "ราคาของวิธีประมวลผลแบบชุด/อัตราราคาของระบบไม่พร้อมใช้งาน",
                "http_status": 503,
                "recovery": "เก็บการตอบกลับไว้ ห้ามแทนที่ด้วยราคาอื่น",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "เส้นทางที่ระบุไว้ของผู้ให้บริการต้นทางไม่พร้อมใช้งาน",
                "http_status": 503,
                "recovery": "เก็บการตอบกลับไว้เพื่อแก้ไขเส้นทางการส่งคำขอ",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "ผลลัพธ์เดิมต้องได้รับการตรวจสอบ โดยมี X-Should-Retry:false",
                "http_status": 503,
                "recovery": "เก็บค่า operation_id/id เดิมไว้แล้วอ่านสถานะของการดำเนินการนั้น ห้ามส่ง POST เดิมซ้ำเด็ดขาด",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "ไม่พบการดำเนินการตรวจสอบสถานะงานแบบชุด หรือการดำเนินการนั้นเป็นของตัวตนอื่น",
                "http_status": 404,
                "recovery": "ใช้ค่า id เดิมให้ตรงทุกตัว พร้อมผู้ใช้/คีย์/กลุ่มเดิม",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "moonshotai/kimi-k3:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "เก็บ JSON สถานะเดิมให้ครบถ้วน รวมถึงผลลัพธ์/custom_id ทุกรายการ และเนื้อหาการตอบกลับหรือข้อผิดพลาดทั้งหมด บันทึก results[] ที่เสร็จสมบูรณ์เป็น JSONL โดยไม่กรองข้อมูล",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "JSON ของ results[].response.body ที่ส่งกลับโดยตรง"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "moonshotai/kimi-k3:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "moonshotai/kimi-k3:batch",
                  "moonshotai/kimi-k3"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "deepinfra/bf16"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "deepinfra/bf16"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "moonshotai/kimi-k3:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "deepinfra/bf16"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "deepinfra/bf16"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "moonshotai/kimi-k3:batch",
                              "moonshotai/kimi-k3"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "moonshotai/kimi-k3:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "ผู้เรียกใช้อาจอ่านไฟล์ JSONL ที่เข้ารหัส UTF-8 จากเครื่องของตนลงใน requests[] ได้ ไม่มีการใช้ค่าระบุวัตถุประสงค์การอัปโหลด input_file_id หรือการอ้างอิงไฟล์ หากไม่มีข้อมูลของลูกค้าหรือข้อมูลว่าง ให้หยุดการเตรียมก่อนส่ง POST",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "ส่ง requests[] ไว้ในคำขอโดยตรง โดยแต่ละรายการมี custom_id และ body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "เนื้อหาคำขอ Chat Completions แบบข้อความ ภายในโครงสร้างคำขอแบบชุดที่ส่งโดยตรงตามที่ระบุในเอกสาร",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (หากระบุมา)",
              "completion_window (หากระบุมา)",
              "requests อยู่ท้ายสุด"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "ค่า response.id จริงจากการตอบกลับคำขอสร้างครั้งเดิม โดยใช้ผู้ใช้/คีย์/กลุ่มเดิม",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "เก็บ ID การดำเนินการเดิมไว้ การตอบกลับ 503 result_pending_check มี X-Should-Retry:false ห้ามส่งงานแบบชุดเดิมซ้ำเด็ดขาดเมื่อยังไม่ทราบสถานะของงาน"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "อัตราราคาพื้นฐานของโทเคน",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "ระดับความยาวคำขอ 1",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"moonshotai/kimi-k3:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"moonshotai/kimi-k3:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 4.56,
        "input": [
          "text"
        ],
        "label": "การประมวลผลแบบชุด",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 22.8,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000456",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0228000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000228",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.000456000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.000000456",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "moonshotai/kimi-k3:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.456,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 4.56,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 22.8,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00456000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000456",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0228000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000228",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.000456000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.000000456",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "moonshotai/kimi-k3:batch",
        "request_model_id": "moonshotai/kimi-k3:batch",
        "route_label": "Ultra"
      }
    ],
    "name": "MoonshotAI: Kimi K3 (batch)",
    "price": {
      "in": 4.56,
      "in_label": null,
      "out": 22.8,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 4.56,
      "sort_out": 22.8,
      "varies": true
    },
    "short": "Kimi K3 เป็นโมเดลใช้เหตุผลหลายสื่อในตัวของ Moonshot AI สำหรับงานโค้ดยาวและงานความรู้ อ่านข้อความ ภาพ และวิดีโอ สร้างข้อความ และรองรับเวิร์กโฟลว์ที่ใช้เครื่องมือด้วยบริบท 1,048,576 โทเค็นและประวัติการคิดที่เก็บข้ามขั้นตอน"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Kimi K3 เป็นโมเดลใช้เหตุผลหลายสื่อในตัวของ Moonshot AI สำหรับงานโค้ดยาวและงานความรู้ อ่านข้อความ ภาพ และวิดีโอ สร้างข้อความ และรองรับเวิร์กโฟลว์ที่ใช้เครื่องมือด้วยบริบท 1,048,576 โทเค็นและประวัติการคิดที่เก็บข้ามขั้นตอน",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "952fb4891425aed7eecc3eb5d14e833d145277dd1219ee669ff790ebd51f8dc9",
    "renderer_sha256": "890edb706fafafdd4f598bb324acf65fada58918b0911b97eb80e68be2ef65d9"
  },
  "sourceRevision": "2d446cebce860e82413f914a128db7c6ee55773f66a147d3e8e825ca14307b5b"
}
