Qwen3 235B A22B FP8
Qwen3-235B-A22B-FP8 เป็นเช็กพอยต์ FP8 แบบละเอียดอย่างเป็นทางการของโมเดล mixture-of-experts ขนาดใหญ่ใน Qwen3 คงความสามารถใช้เหตุผลข้อความแบบผสมและบทสนทนา พร้อมเอกลักษณ์ควอนไทเซชันของตนและข้อพิจารณาด้านสภาพแวดล้อมการรัน
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen/qwen3-235b-a22b-fp8 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen/qwen3-235b-a22b-fp8
เกี่ยวกับโมเดล
คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก
Qwen3-235B-A22B-FP8 เป็นรุ่น FP8 อย่างเป็นทางการของ Qwen3-235B-A22B ความสามารถข้อความที่นำเสนอครอบคลุมเหตุผลคณิตศาสตร์และตรรกะ การสร้างโค้ด การเขียนสร้างสรรค์ บทสนทนาตามบทบาท และการทำตามคำสั่งหลายรอบในมากกว่า 100 ภาษาและภาษาถิ่น รวมโหมดคิดกับตอบตรง ใช้กับงานที่รวมข้อจำกัดหลายข้อ เช่น เทียบการพัฒนาสองแบบกับข้อกำหนดเดียวและเปลี่ยนการเทียบเป็นข้อเสนอเปลี่ยนแปลงที่เป็นรูปธรรม
สถาปัตยกรรมพื้นฐานเป็น mixture-of-experts มีพารามิเตอร์รวม 235 พันล้าน เปิดใช้ 22 พันล้านระหว่างประมวลผล มี 94 ชั้นและผู้เชี่ยวชาญ 128 ตัว โดยเลือกแปดตัวต่อโทเคน กลไกความสนใจแบบ grouped-query ใช้หัว query 64 หัวและหัว key/value สี่หัว ส่วนท้าย FP8 ระบุเช็กพอยต์ที่เผยแพร่แยก ไม่ใช่รูปแบบคำตอบเพิ่มหรือจำนวนพารามิเตอร์ต่างกัน โมเดลรับข้อความและสร้างข้อความ ให้ผู้ช่วยตรวจโค้ดได้รับข้อกำหนด ไฟล์ต้นทางที่เกี่ยวข้อง และพฤติกรรมที่คาดหวัง ขอ ตารางการตัดสินใจ การแก้ที่เลือก และตัวอย่างที่แสดงผลที่ตั้งใจ
ขั้นตอนเริ่มต้นของผู้พัฒนาจัดรูปแบบต้นทางและคำสั่งเป็นบทสนทนา สำหรับการเทียบเอกสาร ให้ติดป้ายรุ่น ระบุอำนาจของแต่ละต้นทาง และกำหนดข้อกำหนดที่ต้องคงเดิม สำหรับคำถามคณิตศาสตร์ ให้โจทย์ครบและรูปคำตอบสุดท้ายที่ต้องการ สำหรับงานพัฒนา ให้ระบุภาษา รูปร่างข้อมูลเข้าจริง กรณีล้มเหลว และส่วนติดต่อที่ต้องรักษา ระบุผลงานสุดท้ายให้ชัด เพื่อให้คำตอบยาวยังแก้คำขอเดิม การผสานที่เผยแพร่คาดหวังสภาพแวดล้อมรันที่รู้จัก Qwen3 การ์ดเตือนว่า Transformers เวอร์ชันต่ำกว่า 4.51.0 ไม่รู้จักสถาปัตยกรรมที่ต้องใช้
รุ่นนี้มีบันทึกเฉพาะ FP8 เช็กพอยต์ใช้ควอนไทเซชัน FP8 แบบละเอียดที่ขนาดบล็อก 128 และการกำหนดค่าที่เผยแพร่บันทึกแบบควอนไทเซชัน ผู้พัฒนาระบุ Transformers, SGLang และ vLLM เป็นตัวเลือกอนุมาน พร้อมเตือนปัญหา FP8 แบบละเอียดในการอนุมาน Transformers แบบกระจาย การใช้หลายอุปกรณ์อาจต้องใช้ CUDA_LAUNCH_BLOCKING=1 นี่เป็นรายละเอียดความเข้ากันได้เฉพาะรุ่น ไม่ใช่เหตุผลให้สมมติว่าความเร็ว หน่วยความจำที่ใช้ หรือคุณภาพผลเท่ากันทุกสภาพแวดล้อมรัน คงชื่อ FP8 เต็มเมื่อเทียบหรือบันทึกผล และประเมินเช็กพอยต์จริงในสภาพแวดล้อมที่ตั้งใจ
การคิดเป็นค่าเริ่มต้นในแม่แบบแชตที่ให้ และสวิตช์ตายตัวปิดได้ เมื่อเปิดคิด /think และ /no_think ควบคุมแต่ละรอบได้ โดยคำสั่งล่าสุดมาก่อน สวิตช์แบบ soft ไม่ลบล้างการปิดตายตัว แยกคำตอบสุดท้ายจากส่วนเหตุผลที่สร้าง และนำคำตอบสุดท้ายเข้าสู่ประวัติบทสนทนาภายหลัง การวิเคราะห์ข้อขัดแย้งละเอียดขอคิดได้ ส่วนคำขอต่อเนื่องที่จัดรูปแบบข้อสรุปที่ยอมรับแล้วขอตอบตรงได้ เมื่อเปิดคิด แม้คำขอไม่คิดแบบ soft ยังมีบล็อกเหตุผล โดยเนื้อหาอาจว่าง การปิดตายตัวลบบล็อกนั้น
การ์ดแนะนำ Qwen-Agent สำหรับแม่แบบเรียกเครื่องมือและการแยกวิเคราะห์ ในผู้ช่วยวิศวกรรม แอปพลิเคชันอาจเปิดตัวรันการทดสอบหรือค้นต้นทางแบบอ่านอย่างเดียว ดำเนินการเรียกที่ยอมรับ และส่งหลักฐานสำหรับคำตอบถัดไป ระบุข้อมูลเข้า สิทธิ์ และฟิลด์ผลของเครื่องมือ กำหนดให้ผู้ช่วยเชื่อมการเปลี่ยนที่เสนอเข้ากับผลที่ส่งกลับ และแยกการทดสอบที่ขอจากการทดสอบที่แอปพลิเคชันทำเสร็จจริง ความสามารถโมเดลเกี่ยวกับเครื่องมือขึ้นกับขั้นตอนดำเนินงานรอบโมเดล คู่มือ Qwen3 ยังอธิบายการเรียกเครื่องมือขนานและหลายขั้น โดยอาร์กิวเมนต์เป็นออบเจ็กต์และผลส่งกลับเข้าสู่บทสนทนา
บริบทเดิมคือ 32,768 โทเคน พร้อม 131,072 ที่ระบุผ่านการขยาย YaRN ข้อมูลเข้าและผลที่สร้างแบ่งงบลำดับเดียวกัน หน้าต่างใหญ่ขึ้นต้องใช้การกำหนดค่าที่เกี่ยวข้อง และ YaRN แบบคงที่อาจกระทบข้อมูลเข้าสั้น จัดต้นทางยาวตามไฟล์หรือส่วนและเผื่อพื้นที่สำหรับการเปรียบเทียบสุดท้ายหรือโค้ด ความยาวผลที่แสดงในคู่มือเริ่มต้นและแนวปฏิบัติที่แนะนำเป็นแนวทางสร้าง ไม่ใช่หลักฐานของผลลัพธ์สูงสุดอิสระที่ใช้ทั้งบริการ เอกสาร Qwen3 กล่าวถึงความยาวข้อความผู้ช่วย 38,912 โทเคนในโหมดคิดและ 16,384 ในโหมดไม่คิดในคำอธิบายความยาวฝึก และแนะนำประเมินคุณภาพของการสร้างที่ยาวกว่า ตัวเลขนี้แยกจากหน้าต่างบริบทรวมและไม่ใช่เพดานตายตัวเฉพาะปลายทาง การ์ดยังอธิบายการจัดสรรตำแหน่งเริ่มต้น 40,960 โทเคนเป็น 8,192 สำหรับพรอมป์ต์ทั่วไปบวก 32,768 สำหรับผล นี่เป็นคำแนะนำกำหนดค่าของผู้พัฒนา แยกจากบริบทการฝึกเดิมและข้อจำกัดปลายทางใด ๆ
การสุ่มที่แนะนำในโหมดคิดคือ temperature 0.6, top-p 0.95, top-k 20 และ min-p 0 โหมดตรงใช้ 0.7, 0.8, 20 และ 0 การถอดรหัสแบบ greedy ในโหมดคิดนำไปสู่การซ้ำได้ และ presence penalty ที่สูงอาจทำให้ผสมภาษา ขอรูปแบบสุดท้ายที่ตรวจได้ เช่น ตารางผลตามด้วยฟังก์ชันที่เปลี่ยนและกรณีที่เกี่ยวข้อง ตรวจข้อสรุปตัวเลข รันโค้ดในสภาพแวดล้อมเป้าหมาย และทบทวนผลเครื่องมือก่อนใช้การเปลี่ยนที่เสนอ เอกลักษณ์ของเช็กพอยต์ FP8 และคำเตือนสภาพแวดล้อมรันควรคงอยู่กับการประเมินนั้น
งานตัวอย่างจริง
งานตัวอย่างจริง
ตัวอย่างทางเทคนิคภาษาอังกฤษ
Compare two normalizers to a contract
The contract requires unique case-sensitive tags in first-occurrence order. Compare Python A: return sorted(set(tags)) with B: return list(dict.fromkeys(tags)). Input: ["red", "Blue", "red", "blue"]. Give a criterion table, select the compliant implementation and provide tests for order and case preservation. Do not alter the contract to fit either implementation.ผลลัพธ์ที่คาดหวัง
A two-implementation decision table, a selected implementation and two contract-focused tests.ตรวจสอบผลลัพธ์
Check that sorting is recognized as an order violation and Blue remains distinct from blue.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3-235b-a22b-fp8
qwen/qwen3-235b-a22b-fp8เริ่มต้น
Qwen3-235B-A22B-FP8 เป็นเช็กพอยต์ FP8 แบบละเอียดอย่างเป็นทางการของโมเดล mixture-of-experts ขนาดใหญ่ใน Qwen3 คงความสามารถใช้เหตุผลข้อความแบบผสมและบทสนทนา พร้อมเอกลักษณ์ควอนไทเซชันของตนและข้อพิจารณาด้านสภาพแวดล้อมการรัน
- อินพุตที่รองรับ
- ข้อความ
- ผลลัพธ์
- ข้อความ
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- ขาเข้า
text- ขาออก
text- รูปแบบเอาต์พุต
- json หรือ SSE
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3-235b-a22b-fp8 | ค่าเริ่มต้น— |
ฟิลด์messages | ประเภทmessage[] | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด จำนวนรายการขั้นต่ำ: 1 | ค่าเริ่มต้น— |
ฟิลด์messages[].role | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด ตัวอย่าง: system, user, assistant, tool, function เงื่อนไข: บทบาทเหล่านี้แทนอย่างชัดเจนด้วยชนิดข้อมูลเพื่อความเข้ากันได้ในซอร์สโค้ด แต่ชุดบทบาทที่แน่นอนยังขึ้นกับแต่ละโมเดล ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์messages[].content | ประเภทstring|content_part[]|null | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์messages[].tool_calls | ประเภทtool_call[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์messages[].tool_call_id | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ใช้เมื่อ: role=tool โดยใช้ ID ที่ส่งกลับจริง | ค่าเริ่มต้น— |
ฟิลด์messages[].name | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์messages[].reasoning_content | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ใช้เมื่อ: ส่งเนื้อหาการใช้เหตุผลที่คืนจริงกลับในคำขอถัดไป เมื่อโมเดลนี้ใช้เนื้อหานั้น | ค่าเริ่มต้น— |
ฟิลด์messages[].reasoning_details | ประเภทobject|array | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์max_tokens | ประเภทinteger | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขั้นต่ำ: 1 ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์max_completion_tokens | ประเภทinteger | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขั้นต่ำ: 1 ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์stream | ประเภทboolean | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้นfalse |
ฟิลด์stream_options.include_usage | ประเภทboolean | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์temperature | ประเภทnumber | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์top_p | ประเภทnumber | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์stop | ประเภทstring|string[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์tools | ประเภทfunction_tool[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์tools[].type | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด function ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์tools[].function.name | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด ใช้เมื่อ: มีเครื่องมือฟังก์ชันให้ใช้ | ค่าเริ่มต้น— |
ฟิลด์tools[].function.description | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์tools[].function.parameters | ประเภทJSON_schema | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์tool_choice | ประเภทstring|object | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์parallel_tool_calls | ประเภทboolean | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์response_format | ประเภทobject | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์reasoning_effort | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์reasoning | ประเภทobject | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์service_tier | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์instructions | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ฟิลด์เพื่อความเข้ากันได้ | ค่าเริ่มต้น— |
ฟิลด์functions | ประเภทfunction[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์function_call | ประเภทstring|object | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์prompt_cache_options | ประเภทobject | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด ขึ้นอยู่กับโมเดล | ค่าเริ่มต้น— |
ฟิลด์modalities | ประเภทstring[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด text | ค่าเริ่มต้น— |
ฟิลด์provider | ประเภทobject | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด เงื่อนไข: เส้นทางข้อความ Ultra นี้ปฏิเสธ provider.options | ค่าเริ่มต้น— |
ฟิลด์cache_control.ttl | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด เงื่อนไข: ตำแหน่งแคชพรอมป์ต์จริงปฏิเสธ 1h | ค่าเริ่มต้น— |
ชุดผสมของสื่ออินพุต
ข้อความ · ข้อความ UTF8
messages[].content
พารามิเตอร์และวงจรการทำงานของเมธอด
| พารามิเตอร์ | ข้อกำหนด |
|---|---|
พารามิเตอร์content_type | ข้อกำหนดapplication/json |
พารามิเตอร์required | ข้อกำหนดmodel, messages |
พารามิเตอร์material_types | ข้อกำหนดtext |
พารามิเตอร์messages | ข้อกำหนดอาร์เรย์ข้อความที่มีโครงสร้าง role/content |
พารามิเตอร์file_material | ข้อกำหนดแทรกเอกสาร UTF-8 จริงเป็นข้อความตามต้นฉบับ โดยไม่อนุมาน ID ไฟล์ |
พารามิเตอร์optional_controls | ข้อกำหนดstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
พารามิเตอร์control_scope | ข้อกำหนดขึ้นกับโมเดล เครื่องมือฟังก์ชันของผู้ใช้ต่างจากเครื่องมือที่โฮสต์จัดให้ |
พารามิเตอร์output_modalities | ข้อกำหนดtext |
พารามิเตอร์hosted_operations | ข้อกำหนดfalse |
พารามิเตอร์multimodal_input_binding | ข้อกำหนดnull |
วงจรการทำงาน: synchronous_or_streamed
ส่ง ID โมเดลที่ตรงทุกตัวพร้อม messages
ความยาวบริบทไม่ใช่เพดานผลลัพธ์
ไฟล์ข้อความให้ข้อความตามต้นฉบับได้ ส่วนข้อมูลเข้าภาพ/เสียง/ออบเจ็กต์ไฟล์ต้องมีการผูกที่ตรงตามจริง
ราคา
ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก
- โหมดรวดเร็ว
- ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว
- โหมดยืดหยุ่น
- ไม่ได้ระบุ เมื่อเลือกโหมด flex
- ระดับการใช้เหตุผลสูงสุด
- ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด
อัตราค่าบริการ Ailoot
ราคาตามการตั้งค่า
| การตั้งค่า | ตารางอัตราค่าบริการ | ค่าบริการ |
|---|---|---|
| การตั้งค่าอัตราราคาพื้นฐานของโทเคน | ตารางอัตราค่าบริการอัตราพื้นฐาน | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0004 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0016 / 1K โทเค็น ขาเข้า · การอ่านแคช $0 / 1K โทเค็น ขาเข้า · การเขียนแคช $0 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →
ตัวอย่างคำขอ
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen3-235b-a22b-fp8", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen/qwen3-235b-a22b-fp8',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
with client.chat.completions.stream(model='qwen/qwen3-235b-a22b-fp8',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
รับและบันทึกผลลัพธ์
Ailoot Ultra · OpenAI Chat
json หรือ SSE
เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด
เก็บทุกการตอบกลับ ไฟล์ และส่วนเนื้อหาที่ส่งกลับมาอย่างครบถ้วน
เก็บทุกตัวเลือกพร้อมเนื้อหา/การเรียกเครื่องมือ/การใช้เหตุผล ใน SSE ให้ประกอบส่วนเพิ่มตามดัชนีตัวเลือก/เครื่องมือ และเก็บเหตุผลสิ้นสุดกับข้อมูลการใช้งานสุดท้าย
เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ
เก็บ ID และส่วนหัวของคำขอ/คำตอบ ไม่มี URL ทั่วไปสำหรับดึงงานข้อความให้ใช้
ฟิลด์การตอบกลับ
| ฟิลด์ | ประเภท |
|---|---|
ฟิลด์choices[].index | ประเภทinteger |
ฟิลด์choices[].message.content | ประเภทstring|null |
ฟิลด์choices[].message.tool_calls | ประเภทtool_call[] |
ฟิลด์choices[].message.reasoning_content | ประเภทstring |
ฟิลด์choices[].message.reasoning_details | ประเภทobject|array |
ฟิลด์choices[].finish_reason | ประเภทstring|null |
ฟิลด์usage | ประเภทobject |
ข้อผิดพลาดและขั้นตอนถัดไป
| การตอบกลับ | เงื่อนไข | ขั้นตอนถัดไป |
|---|---|---|
การตอบกลับ400 · invalid_request_error | เงื่อนไขฟิลด์จำเป็น รูปแบบการแทนข้อมูล หรือค่าพารามิเตอร์ไม่ถูกต้อง | ขั้นตอนถัดไปแก้ฟิลด์ที่ระบุก่อนส่งคำขอสร้างครั้งใหม่ |
ชื่ออื่น
ชื่ออื่นของโมเดล
Ailoot Ultra qwen/qwen3-235b-a22b-fp8
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3-235b-a22b-fp8
qwen/qwen3-235b-a22b-fp8เริ่มต้น
Qwen3-235B-A22B-FP8 เป็นเช็กพอยต์ FP8 แบบละเอียดอย่างเป็นทางการของโมเดล mixture-of-experts ขนาดใหญ่ใน Qwen3 คงความสามารถใช้เหตุผลข้อความแบบผสมและบทสนทนา พร้อมเอกลักษณ์ควอนไทเซชันของตนและข้อพิจารณาด้านสภาพแวดล้อมการรัน
- อินพุตที่รองรับ
- ข้อความ
- ผลลัพธ์
- json · sse
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · Anthropic Messages POST /v1/messages
- ขาเข้า
text- ขาออก
json,sse- รูปแบบเอาต์พุต
- JSON หรือ SSE
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3-235b-a22b-fp8 | ค่าเริ่มต้น— |
ฟิลด์messages | ประเภทmessage[] | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์messages[].role | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด user, assistant | ค่าเริ่มต้น— |
ฟิลด์messages[].content | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์max_tokens | ประเภทinteger | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์stream | ประเภทboolean | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้นfalse |
ชุดผสมของสื่ออินพุต
ข้อความ · ข้อความ UTF-8
สตริง messages[].content
พารามิเตอร์และวงจรการทำงานของเมธอด
| พารามิเตอร์ | ข้อกำหนด |
|---|---|
พารามิเตอร์content_type | ข้อกำหนดapplication/json |
พารามิเตอร์required | ข้อกำหนดmodel, messages, max_tokens |
พารามิเตอร์optional_controls | ข้อกำหนดstream |
พารามิเตอร์material_types | ข้อกำหนดtext |
พารามิเตอร์text_file_material | ข้อกำหนดอ่านเอกสาร UTF-8 จริง แล้วใส่ข้อความใน input หรือสตริงเนื้อหาข้อความที่ระบุ |
วงจรการทำงาน: synchronous_or_streamed
ราคา
ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก
- โหมดรวดเร็ว
- ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว
- โหมดยืดหยุ่น
- ไม่ได้ระบุ เมื่อเลือกโหมด flex
- ระดับการใช้เหตุผลสูงสุด
- ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด
อัตราค่าบริการ Ailoot
ราคาตามการตั้งค่า
| การตั้งค่า | ตารางอัตราค่าบริการ | ค่าบริการ |
|---|---|---|
| การตั้งค่าอัตราราคาพื้นฐานของโทเคน | ตารางอัตราค่าบริการอัตราพื้นฐาน | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0004 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0016 / 1K โทเค็น ขาเข้า · การอ่านแคช $0 / 1K โทเค็น ขาเข้า · การเขียนแคช $0 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →
ตัวอย่างคำขอ
Ailoot Ultra · Anthropic Messages
{
"model": "qwen/qwen3-235b-a22b-fp8",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-235b-a22b-fp8', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-235b-a22b-fp8', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
รับและบันทึกผลลัพธ์
Ailoot Ultra · Anthropic Messages
JSON หรือ SSE
เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด
เก็บทุกการตอบกลับ ไฟล์ และส่วนเนื้อหาที่ส่งกลับมาอย่างครบถ้วน
เก็บทุกบล็อกเนื้อหา ลายเซ็นการคิด และ ID การใช้เครื่องมือจริง ประกอบส่วนเพิ่มของบล็อก SSE ทั้งหมด บล็อกข้อความแรกไม่ใช่ผลลัพธ์ทั้งหมด
เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ
เก็บ ID และส่วนหัวของคำขอ/คำตอบ ไม่มี URL ทั่วไปสำหรับดึงงานข้อความให้ใช้
ฟิลด์การตอบกลับ
| ฟิลด์ | ประเภท |
|---|---|
ฟิลด์id | ประเภทstring |
ฟิลด์model | ประเภทstring |
ฟิลด์content[] | ประเภทtext|thinking|tool_use|other content block |
ฟิลด์stop_reason | ประเภทstring|null |
ฟิลด์usage | ประเภทobject |
ข้อผิดพลาดและขั้นตอนถัดไป
| การตอบกลับ | เงื่อนไข | ขั้นตอนถัดไป |
|---|---|---|
การตอบกลับ400 · invalid_request_error | เงื่อนไขฟิลด์จำเป็น รูปแบบการแทนข้อมูล หรือค่าพารามิเตอร์ไม่ถูกต้อง | ขั้นตอนถัดไปแก้ฟิลด์ที่ระบุก่อนส่งคำขอสร้างครั้งใหม่ |
ชื่ออื่น
ชื่ออื่นของโมเดล
Ailoot Ultra qwen/qwen3-235b-a22b-fp8
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
FAQ · qwen/qwen3-235b-a22b-fp8
- มีอินพุตและผลลัพธ์ใดบ้าง?
POST /v1/chat/completions·qwen/qwen3-235b-a22b-fp8:text→textPOST /v1/messages·qwen/qwen3-235b-a22b-fp8:text→json,sse- คำขอใช้ฟิลด์ใดบ้าง?
POST /v1/chat/completions·qwen/qwen3-235b-a22b-fp8:model,messages,stream,modalities,providerPOST /v1/messages·qwen/qwen3-235b-a22b-fp8:model,messages,max_tokens,stream- มีข้อจำกัดใดบ้าง?
POST /v1/chat/completions·qwen/qwen3-235b-a22b-fp8:messages.min_items:1