Qwen: Qwen3.7 Flash
Qwen3.7 Flash เป็นตระกูลโมเดลภาษาและภาพของ Qwen สำหรับข้อความ ภาพ และวิดีโอ ส่งข้อความ ผู้ผลิตเน้นการรู้จำวัตถุ ความเข้าใจเชิงพื้นที่ งานเอเจนต์หลายสื่อ และเขียนโค้ดจากภาพที่ดีขึ้น เปิดคิดโดยค่าเริ่มต้นและเลือกโหมดตอบโดยตรงได้
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen/qwen3.7-flash - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen/qwen3.7-flash
เกี่ยวกับโมเดล
คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก
รุ่น Qwen3.7 Flash
Qwen3.7 Flash เป็นตระกูลโมเดลที่รองรับภาษาและภาพในตัวสำหรับเข้าใจข้อความ ภาพ และวิดีโอ พร้อมคำตอบข้อความ ประกาศผู้ผลิตอธิบายการรับรู้หลายสื่อและการดำเนินการเอเจนต์ดีขึ้นจาก Qwen3.6 Flash ขอบเขตใช้งานรวมรู้จำวัตถุ เข้าใจฉากภาพ ให้เหตุผลเกี่ยวกับความสัมพันธ์เชิงพื้นที่ และเตรียมโค้ดหรือคำอธิบายจากสื่อภาพ
ประกาศทางการระบุทั้ง qwen3.7-flash และชื่อมีวันที่ qwen3.7-flash-2026-07-15 เก็บชื่อโมเดลที่แน่นอนเมื่อบันทึกผล ชื่อ Flash ไม่มีวันที่ไม่ระบุสแนปช็อตผู้ผลิตแบบคงที่ คำอธิบายรุ่นที่ใช้ที่นี่ไม่ยืนยันจำนวนพารามิเตอร์หรือรูปแบบตัวเลขของเช็กพอยต์เปิด
การรู้จำวัตถุ การรับรู้โลกจริง และพื้นที่
ให้ภาพฉากพร้อมคำถามเป็นรูปธรรม ได้แก่ วัตถุใดสำคัญ ความสัมพันธ์ใดต้องตรวจ และรายละเอียดที่เห็นใดควรรองรับคำตอบ สำหรับแผนภาพ เก็บป้ายและให้นิยามที่ต้องใช้ตีความ ผลที่ดีแยกข้อสังเกตจากความสัมพันธ์อนุมาน ให้เทียบคำอธิบายกับต้นฉบับง่ายขึ้น
สำหรับหลายภาพ ติดป้ายทุกอินพุตและขอเปรียบเทียบตามป้าย สำหรับวิดีโอ ระบุเหตุการณ์เกี่ยวข้องและเก็บข้อมูลลำดับหรือเวลา ตรวจจำนวนที่แน่นอน การวัดเชิงพื้นที่ และข้อสังเกตระดับเฟรมกับเนื้อหาที่ให้
เอเจนต์หลายสื่อ
ประกาศเน้นสถานการณ์ Search Agent และเอเจนต์ code interpreter ที่ดำเนินหลายขั้นเสถียรขึ้น ในขั้นตอนนี้ แอปให้เครื่องมือที่อนุญาต ดำเนินการ และส่งข้อสังเกตกลับ โมเดลใช้ผลอัปเดตแผนได้ อธิบายเป้าหมายกับเงื่อนไขเสร็จ และขอชิ้นงานสุดท้ายพร้อมหลักฐานที่ยังค้าง ผู้ผลิตระบุ function calling, structured outputs, prefix completion และ context caching รองรับค้นเว็บในปักกิ่งกับสิงคโปร์ และไม่รองรับในภูมิภาคอื่นที่ระบุ รองรับ batch inference สำหรับชื่อเรียกปักกิ่งและไม่รองรับที่อื่น ไม่รองรับ fine-tuning
ความเชี่ยวชาญเอเจนต์ไม่ควรสับสนกับสิทธิ์ในตัวที่เข้าถึงแหล่งข้อมูลปัจจุบันหรือสภาพแวดล้อมดำเนินการในทุกอินเทอร์เฟซ เมื่องานต้องค้นคืนหรือเรียกโค้ด แยกผลจากเครื่องมือจริงออกจากการกระทำที่เสนอในข้อความโมเดล คำอธิบายนี้ไม่ยืนยันเครื่องมือที่แอปอื่นเปิดให้ใช้
การเขียนโค้ดจากภาพ
Qwen อธิบายการเขียนโค้ดจากข้อมูลภาพที่ดีขึ้น คำขอที่ดีรวมภาพหน้าจอหรือเค้าโครงกับข้อกำหนดฟังก์ชันและขอโค้ดแก้ไขได้ ระบุเฟรมเวิร์กหรือรูปผล สถานะปฏิสัมพันธ์ และข้อจำกัดในงานที่ให้ ขอชิ้นงานที่สร้างแยกจากคำอธิบายเพื่อให้ขั้นตอนพัฒนาตรวจหรือเรนเดอร์ได้
สำหรับอินเทอร์เฟซเดิม ระบุการเปลี่ยนที่ตั้งใจและบริบทซอร์สเกี่ยวข้อง แทนขอออกแบบใหม่ที่ไม่เกี่ยว โมเดลเชื่อมข้อกำหนดภาพกับข้อเสนอโค้ดได้ ข้อเสนอนั้นไม่ใช่หลักฐานว่าอินเทอร์เฟซเรนเดอร์หรือทำงานถูกแล้ว ตัวอย่างงานใช้ขอบเขตโค้ดจากภาพของผู้ผลิตโดยไม่เพิ่มการรับประกันการดำเนินการ
การคิดและคำตอบโดยตรง
คู่มือโมเดลที่รองรับของผู้ผลิตระบุ Qwen3.7 Flash เป็นตระกูล hybrid-thinking ที่เปิดคิดโดยค่าเริ่มต้น ขั้นตอนแบบผสมตามเอกสารปิดคิดเพื่อตอบโดยตรงได้ แยกเอาต์พุตเหตุผลจากคำตอบสุดท้ายเมื่ออินเทอร์เฟซให้ทั้งคู่ ไม่ควรนำตัวควบคุมของ Qwen-Omni ที่มีชื่อแยกหรือโมเดล dense เปิดมาใช้เพียงเพราะชื่อ Qwen ร่วม
ใช้การวิเคราะห์ลึกสำหรับคำถามภาพที่เชื่อมหลายข้อสังเกต ขอผลโดยตรงสำหรับคำอธิบายง่าย ระบุโครงสร้างสุดท้ายที่ตรวจได้ เช่น ตารางข้อสังเกต ข้อสรุปสั้น หรือไฟล์โค้ด แทนใช้ความยาวคำตอบเป็นสัญญาณคุณภาพ
ขีดจำกัดและการเตรียมอินพุต
หน้า Qwen3.7-Flash เฉพาะของ Alibaba ระบุบริบท 1,000,000 โทเคน อินพุตสูงสุด 991,808 โทเคนสำหรับตอบโดยตรง หรือ 983,616 สำหรับคิด และเอาต์พุตสูงสุด 131,072 ทั้งสองโหมด พร้อมระบุความยาว chain-of-thought สูงสุด 262,144 โทเคนแยก เก็บรายละเอียดภาพเกี่ยวข้องให้อ่านได้ ตัดเนื้อหาไม่เกี่ยวข้อง และเผื่อพื้นที่ผล ตรวจป้ายวัตถุ การอนุมานเชิงพื้นที่ ข้อความสกัด และข้อเสนอโค้ดกับหลักฐานที่ให้ คำอธิบายที่มีประโยชน์คือขอบเขตการรับรู้ เอเจนต์ และโค้ดจากภาพเฉพาะของผู้ผลิต พร้อมรักษาโหมดตอบแบบผสม
งานตัวอย่างจริง
งานตัวอย่างจริง
ตัวอย่างทางเทคนิคภาษาอังกฤษ
Check a spatial claim from a text grid
Use this written grid description: the red box is at row 2, column 1; the blue box is at row 2, column 3; the green box is at row 1, column 3. Rows increase downward and columns increase rightward. Describe their relative positions and assess the claim that green is directly above red.ผลลัพธ์ที่คาดหวัง
A relative-position description and a supported assessment of the claim, citing grid coordinates.ตรวจสอบผลลัพธ์
Check that directly above requires the same column and that the stated row direction is respected.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3.7-flash
qwen/qwen3.7-flashเริ่มต้น
Qwen3.7 Flash เป็นตระกูลโมเดลภาษาและภาพของ Qwen สำหรับข้อความ ภาพ และวิดีโอ ส่งข้อความ ผู้ผลิตเน้นการรู้จำวัตถุ ความเข้าใจเชิงพื้นที่ งานเอเจนต์หลายสื่อ และเขียนโค้ดจากภาพที่ดีขึ้น เปิดคิดโดยค่าเริ่มต้นและเลือกโหมดตอบโดยตรงได้
- อินพุตที่รองรับ
- ข้อความ
- ผลลัพธ์
- ข้อความ
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- ขาเข้า
text- ขาออก
text- รูปแบบเอาต์พุต
- json หรือ SSE
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3.7-flash | ค่าเริ่มต้น— |
ฟิลด์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.00006 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.00026 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.000012 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.000076 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 1 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า0 | โทเค็นบริบท ไม่เกินและรวมค่า32,000 | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.00006 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.00026 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.000012 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.000076 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 2 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า32,000 | โทเค็นบริบท ไม่เกินและรวมค่า256,000 | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0002 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0008 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00004 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.00025 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับตามความยาวคำขอ 3 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า256,000 | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0004 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0016 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00008 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.0005 / 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.7-flash", "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.7-flash',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.7-flash',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.7-flash
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3.7-flash
qwen/qwen3.7-flashเริ่มต้น
Qwen3.7 Flash เป็นตระกูลโมเดลภาษาและภาพของ Qwen สำหรับข้อความ ภาพ และวิดีโอ ส่งข้อความ ผู้ผลิตเน้นการรู้จำวัตถุ ความเข้าใจเชิงพื้นที่ งานเอเจนต์หลายสื่อ และเขียนโค้ดจากภาพที่ดีขึ้น เปิดคิดโดยค่าเริ่มต้นและเลือกโหมดตอบโดยตรงได้
- อินพุตที่รองรับ
- ข้อความ
- ผลลัพธ์
- json · sse
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · Anthropic Messages POST /v1/messages
- ขาเข้า
text- ขาออก
json,sse- รูปแบบเอาต์พุต
- JSON หรือ SSE
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3.7-flash | ค่าเริ่มต้น— |
ฟิลด์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.00006 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.00026 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.000012 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.000076 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 1 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า0 | โทเค็นบริบท ไม่เกินและรวมค่า32,000 | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.00006 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.00026 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.000012 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.000076 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 2 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า32,000 | โทเค็นบริบท ไม่เกินและรวมค่า256,000 | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0002 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0008 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00004 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.00025 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับตามความยาวคำขอ 3 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า256,000 | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0004 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.0016 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00008 / 1K โทเค็น ขาเข้า · การเขียนแคช $0.0005 / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →
ตัวอย่างคำขอ
Ailoot Ultra · Anthropic Messages
{
"model": "qwen/qwen3.7-flash",
"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.7-flash', '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.7-flash', '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.7-flash
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
FAQ · Qwen: Qwen3.7 Flash
- มีอินพุตและผลลัพธ์ใดบ้าง?
POST /v1/chat/completions·qwen/qwen3.7-flash:text→textPOST /v1/messages·qwen/qwen3.7-flash:text→json,sse- คำขอใช้ฟิลด์ใดบ้าง?
POST /v1/chat/completions·qwen/qwen3.7-flash:model,messages,stream,modalities,providerPOST /v1/messages·qwen/qwen3.7-flash:model,messages,max_tokens,stream- มีข้อจำกัดใดบ้าง?
POST /v1/chat/completions·qwen/qwen3.7-flash:messages.min_items:1