Source: https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/
Canonical: https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/
Language: th

# Qwen: Qwen3 VL 30B A3B Thinking

[Markdown](https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/index.md) · [JSON](https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/facts.json)

## [Qwen: Qwen3 VL 30B A3B Thinking](https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/)

Qwen3-VL-30B-A3B-Thinking เป็นรุ่นภาพและภาษาของ Qwen แบบส่วนผสมผู้เชี่ยวชาญสำหรับใช้เหตุผลเชิงลึกกับข้อความ ภาพ และวิดีโอ คืนข้อความหรือโค้ดสำหรับคำถาม STEM เอกสาร การวิเคราะห์เชิงพื้นที่ และกระบวนการภาพ พร้อม OCR 32 ภาษาและบริบทดั้งเดิม 262,144 โทเคน

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/qwen-qwen3-vl-30b-a3b-thinking/#method-1)

เกี่ยวกับโมเดล

คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก

รุ่น 30B-A3B Thinking

Qwen3-VL-30B-A3B-Thinking เป็นรุ่น Qwen3-VL แบบส่วนผสมผู้เชี่ยวชาญที่เพิ่มความสามารถการใช้เหตุผล รับข้อความ ภาพ และวิดีโอ แล้วสร้างข้อความ รวมถึงโค้ดหรือข้อสรุปพร้อมคำอธิบาย แยกอัตลักษณ์ Thinking ของมันออกจาก Qwen3-VL-30B-A3B-Instruct และขนาดอื่นในตระกูล การแยกรุ่นของผู้ผลิตอธิบายพฤติกรรมการใช้เหตุผลที่ตั้งใจไว้ โดยไม่ได้ยืนยันสวิตช์ไฮบริดเฉพาะแอปพลิเคชัน

เอเจนต์ภาพและการเขียนโค้ด

Qwen บันทึกกระบวนการเอเจนต์ภาพที่รู้จำองค์ประกอบควบคุมคอมพิวเตอร์หรือมือถือ เข้าใจหน้าที่ และเรียกเครื่องมือ สำหรับงานอินเทอร์เฟซ ให้ภาพหน้าจอปัจจุบันและเป้าหมายที่ต้องการ แล้วขอองค์ประกอบควบคุมที่เกี่ยวข้องพร้อมคำอธิบายซึ่งผูกกับหลักฐานที่มองเห็น แอปพลิเคชันที่เชื่อมต่อดำเนินการและคืนผลลัพธ์ การใช้เหตุผลจากภาพของโมเดลไม่ได้ควบคุมอุปกรณ์อย่างอิสระ

ตระกูลนี้ยังสร้างเนื้อหาแผนภาพ HTML, CSS และ JavaScript จากภาพหรือวิดีโอ ให้ภาพอ้างอิงพร้อมข้อกำหนดการทำงานและขอซอร์สที่แก้ไขได้ สำหรับอินเทอร์เฟซเดิม ให้ระบุการเปลี่ยนแปลงที่ต้องการและโค้ดที่เกี่ยวข้อง แทนการคาดหวังว่าภาพที่ไม่มีคำอธิบายจะกำหนดทุกการโต้ตอบ ซอร์สที่สร้างเป็นชิ้นงานให้เรนเดอร์และตรวจทาน ไม่ใช่หลักฐานว่าแอปพลิเคชันทำงานได้

พื้นที่ บริบทยาว และวิดีโอ

ผู้ผลิตอธิบายการประเมินตำแหน่งวัตถุ มุมมอง และการบดบัง พร้อมการระบุตำแหน่งสองมิติและการรองรับการระบุตำแหน่งสามมิติ ถามว่าความสัมพันธ์ใดสำคัญและข้อมูลใดสนับสนุนข้อสรุป ควรแยกความสัมพันธ์จากภาพออกจากค่าการวัดทางกายภาพที่สอบเทียบแล้ว

บริบทดั้งเดิมมี 262,144 โทเคน ตระกูลนี้อธิบายหนังสือและวิดีโอยาวหลายชั่วโมง พร้อมดัชนีเหตุการณ์ระดับวินาทีและการขยายเป็นประมาณหนึ่งล้านโทเคนผ่านการตั้งค่า เก็บเวลา ลำดับเฟรม และตัวระบุแหล่งที่มาเมื่อขอคำบรรยายเหตุการณ์ บริบทและการสุ่มตัวอย่างกำหนดสื่อที่แทนในคำขอ ไม่ควรเปลี่ยนคำอธิบายของตระกูลเป็นคำรับประกันการจำอย่างสมบูรณ์โดยไม่มีเงื่อนไข

การใช้เหตุผลหลายสื่อ การรู้จำ และ OCR

รุ่น Thinking เหมาะกับคำถาม STEM คณิตศาสตร์ และตรรกะที่เชื่อมหลักฐานภาพกับคำอธิบาย ให้โจทย์ครบถ้วน ป้ายกำกับแผนภาพ และหน่วย แล้วขอค่าและความสัมพันธ์ที่ใช้ก่อนคำตอบสุดท้าย ชิ้นงานชัดเจนอาจเป็นผลลัพธ์ที่แยกขอบเขต ตารางหลักฐาน หรือข้อสรุปสั้นที่รองรับด้วยภาพและข้อความ

ตระกูลนี้ขยายการรู้จำภาพครอบคลุมคน สินค้า สถานที่สำคัญ พืช สัตว์ และตัวละครในสื่อ OCR ครอบคลุม 32 ภาษาและมุ่งอ่านในสภาพแสงน้อย ภาพเบลอ หรือเอียง รวมถึงคำศัพท์เฉพาะทางและโครงสร้างเอกสาร รักษาความอ่านได้และขอฟิลด์หรือข้อความอ้างอิงที่ตรวจสอบได้ การใช้งานเหล่านี้ใช้ความสามารถที่ระบุในเอกสาร ไม่ได้รับประกันอัตลักษณ์ การถอดข้อความ หรือข้อสรุปทางคณิตศาสตร์ที่ถูกต้องสำหรับทุกอินพุต

สถาปัตยกรรม

การตั้งค่าตรงรุ่นระบุโมเดลภาพและภาษาแบบส่วนผสมผู้เชี่ยวชาญ มีชั้นข้อความ 48 ชั้น ผู้เชี่ยวชาญ 128 ตัว และเลือกผู้เชี่ยวชาญแปดตัวต่อโทเคน Interleaved-MRoPE กระจายข้อมูลตำแหน่งตามเวลา ความกว้าง และความสูง DeepStack รวมคุณลักษณะภาพจากตัวเข้ารหัสหลายระดับ และการจัดแนวข้อความกับเวลาช่วยผูกเหตุการณ์กับจุดอ้างอิงเวลา ใช้รุ่น 30B-A3B Thinking นี้อย่างสอดคล้องกันเมื่อเตรียมงานใช้เหตุผลจากภาพและเปรียบเทียบผลลัพธ์

การเตรียมอินพุต

ตัวอย่างของตระกูลนี้รองรับงานเฉพาะข้อความ ภาพเดียวหรือหลายภาพ และวิดีโอ ติดป้ายอินพุตภาพและรักษาความสัมพันธ์ งบพิกเซลของภาพและวิดีโอที่แยกกันช่วยให้กระบวนการควบคุมรายละเอียดได้ ขนาดภาพที่ระบุชัดปรับให้เป็นจำนวนเท่าของ 32 ค่าเริ่มต้นวิดีโอที่ระบุในเอกสารคือสองเฟรมต่อวินาที พร้อมการควบคุมอัตราการสุ่มตัวอย่างหรือจำนวนเฟรมเมื่อรองรับ เก็บเมทาดาทาวิดีโอและหลีกเลี่ยงการปรับขนาดสองครั้งเมื่อเครื่องมือช่วยปรับขนาดสื่อไปแล้ว

สำหรับการเปรียบเทียบเอกสาร ให้จัดผลลัพธ์ตามตัวระบุหน้า สำหรับคลิป ให้ขอเหตุการณ์ ช่วงเวลา และหลักฐานที่เกี่ยวข้อง เผื่อพื้นที่ในลำดับสำหรับการคิดและข้อความสุดท้ายควบคู่กับโทเคนภาพ

คำแนะนำการสร้างและข้อจำกัด

ไฟล์การสร้างของเช็กพอยต์ใช้ค่าเริ่มต้น temperature 0.8, top\_p 0.95, top\_k 20 และ repetition penalty 1.0 ชุดตั้งค่าสำหรับประเมิน Thinking ที่แยกต่างหากของตระกูลใช้ temperature 0.6, presence penalty เท่ากับศูนย์, repetition penalty 1.0 และงบเอาต์พุต 40,960 โทเคน นี่เป็นชุดตั้งค่าของผู้ผลิตที่ต่างกัน งบนั้นไม่ใช่เอาต์พุตสูงสุดตายตัวที่ยืนยันแยกต่างหาก

ขั้นตอนขยายของตระกูลนี้ใช้ YaRN และแนะนำตัวคูณสองหรือสามสำหรับรูปแบบตำแหน่งที่แทรกสลับกันเมื่อย้ายจาก 256K เป็นประมาณ 1M ไม่ควรนำตัวคูณสี่ของตระกูลอื่นมาใช้ ตรวจป้ายกำกับที่ดึงออก การคำนวณ และโค้ดที่สร้างเทียบกับหลักฐานต้นฉบับ และให้ชิ้นงานสุดท้ายแยกจากการใช้เหตุผลได้ ผลลัพธ์เชิงปฏิบัติคือข้อสรุปจากภาพหรือข้อเสนอโค้ดที่ตรวจทานได้ โดยรักษารุ่น Thinking นี้ให้ตรงตามที่ระบุ

งานตัวอย่างจริง

### งานตัวอย่างจริง

ตัวอย่างทางเทคนิคภาษาอังกฤษ

```
Reason about a transcribed geometry diagram

Use this diagram transcription: rectangle ABCD has AB = 10 cm and BC = 6 cm; E is the midpoint of AB; segment CE is drawn. Find the area of triangle BCE. State the base and perpendicular height used, preserve the units, and give a short derivation. Do not assume any additional markings or image input.
```

#### ผลลัพธ์ที่คาดหวัง

```
A short geometry derivation naming base BE and height BC, with the final area in square centimetres.
```

#### ตรวจสอบผลลัพธ์

```
The midpoint halves AB, and the triangle area uses one-half times the perpendicular base-height product.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-30b-a3b-thinking`

[`qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=chat)

Alibaba /`qwen/qwen3-vl-30b-a3b-thinking`

### เริ่มต้น

Qwen3-VL-30B-A3B-Thinking เป็นรุ่นภาพและภาษาของ Qwen แบบส่วนผสมผู้เชี่ยวชาญสำหรับใช้เหตุผลเชิงลึกกับข้อความ ภาพ และวิดีโอ คืนข้อความหรือโค้ดสำหรับคำถาม STEM เอกสาร การวิเคราะห์เชิงพื้นที่ และกระบวนการภาพ พร้อม OCR 32 ภาษาและบริบทดั้งเดิม 262,144 โทเคน

อินพุตที่รองรับ

ข้อความ

ผลลัพธ์

ข้อความ

### ใช้งานได้ใน Ailoot · อินพุตและเมธอด

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

ขาเข้า

`text`

ขาออก

`text`

รูปแบบเอาต์พุต

json หรือ SSE

| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
| --- | --- | --- | --- | --- |
| ฟิลด์`model` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3-vl-30b-a3b-thinking | ค่าเริ่มต้น— |
| ฟิลด์`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.00058** / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต **$0.002** / 1K โทเค็น ขาเข้า · การอ่านแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง **—** / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 1 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า0 | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต **$0.00058** / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต **$0.002** / 1K โทเค็น ขาเข้า · การอ่านแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง **—** / 1K โทเค็น |

Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย [วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →](https://ailoot.ai/docs/th/billing/reserve/)

### ตัวอย่างคำขอ

#### Ailoot Ultra · OpenAI Chat

curlPython SDKสตรีมด้วย Python

```bash
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-vl-30b-a3b-thinking", "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
```

```python
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-vl-30b-a3b-thinking',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"))
```

```python
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-vl-30b-a3b-thinking',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-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=chat)

#### ชื่อพาธเมธอดอื่น

ใช้พาธเมธอดที่แสดงด้านบน

#### ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล

[`qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-30b-a3b-thinking`

[`qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=messages)

Alibaba /`qwen/qwen3-vl-30b-a3b-thinking`

### เริ่มต้น

Qwen3-VL-30B-A3B-Thinking เป็นรุ่นภาพและภาษาของ Qwen แบบส่วนผสมผู้เชี่ยวชาญสำหรับใช้เหตุผลเชิงลึกกับข้อความ ภาพ และวิดีโอ คืนข้อความหรือโค้ดสำหรับคำถาม STEM เอกสาร การวิเคราะห์เชิงพื้นที่ และกระบวนการภาพ พร้อม OCR 32 ภาษาและบริบทดั้งเดิม 262,144 โทเคน

อินพุตที่รองรับ

ข้อความ

ผลลัพธ์

json · sse

### ใช้งานได้ใน Ailoot · อินพุตและเมธอด

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

ขาเข้า

`text`

ขาออก

`json`, `sse`

รูปแบบเอาต์พุต

JSON หรือ SSE

| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
| --- | --- | --- | --- | --- |
| ฟิลด์`model` | ประเภท`string` | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด qwen/qwen3-vl-30b-a3b-thinking | ค่าเริ่มต้น— |
| ฟิลด์`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.00058** / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต **$0.002** / 1K โทเค็น ขาเข้า · การอ่านแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง **—** / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 1 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า0 | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต **$0.00058** / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต **$0.002** / 1K โทเค็น ขาเข้า · การอ่านแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช **$0** / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง **—** / 1K โทเค็น |

Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย [วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →](https://ailoot.ai/docs/th/billing/reserve/)

### ตัวอย่างคำขอ

#### Ailoot Ultra · Anthropic Messages

เนื้อหาคำขอ JSON ขั้นต่ำที่ครบถ้วนcurl · ใช้เอกสาร UTF-8 ของคุณPython · บันทึกผลลัพธ์ให้ครบถ้วน

```json
{
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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-vl-30b-a3b-thinking', '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
```

```python
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-vl-30b-a3b-thinking', '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-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=messages)

#### ชื่อพาธเมธอดอื่น

ใช้พาธเมธอดที่แสดงด้านบน

#### ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล

[`qwen/qwen3-vl-30b-a3b-thinking`](https://ailoot.ai/models/th/#m=qwen%2Fqwen3-vl-30b-a3b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-30b-a3b-thinking&fmt=messages)

FAQ · Qwen: Qwen3 VL 30B A3B Thinking

มีอินพุตและผลลัพธ์ใดบ้าง?

`POST /v1/chat/completions` · `qwen/qwen3-vl-30b-a3b-thinking`: `text` → `text` `POST /v1/messages` · `qwen/qwen3-vl-30b-a3b-thinking`: `text` → `json`, `sse`

คำขอใช้ฟิลด์ใดบ้าง?

`POST /v1/chat/completions` · `qwen/qwen3-vl-30b-a3b-thinking`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen/qwen3-vl-30b-a3b-thinking`: `model`, `messages`, `max_tokens`, `stream`

มีข้อจำกัดใดบ้าง?

`POST /v1/chat/completions` · `qwen/qwen3-vl-30b-a3b-thinking`: `messages.min_items`: `1`

เชื่อม Ailoot กับ Claude Code, OpenCode, Hermes หรือแอปของคุณ

## บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

## ซื้อโทเคนพร้อมส่วนลด

ส่วนลดสมาชิกสำหรับงานประจำ โค้ดโปรโมชั่นลดซื้อโทเคนสูงสุด 50%

สมาชิก

เลือกแพ็กเกจมีส่วนลดสำหรับคำขอประจำ

โค้ดลดสูงสุด 50%

ใส่โค้ดขณะซื้อ ราคาคำนวณใหม่ตามโปรโมชั่นที่ใช้

รายจ่ายในประวัติ

เก็บโมเดล โทเคน และยอดสำหรับทุกคำขอ

[เลือกสมาชิก](https://ailoot.ai/docs/th/billing/subscriptions/) · [ดูราคาโมเดล](https://ailoot.ai/models/th/)

## เชื่อม API กับผลิตภัณฑ์ ที่คุณขาย

SaaS แอป และบอต ตามข้อเสนอและสัญญาอนุญาต Ailoot หากขายต่อให้ขอใบอนุญาตรีเซลเลอร์

แอปเชิงพาณิชย์

ใส่การสร้างข้อความ ภาพ วิดีโอ และเสียงในฟีเจอร์เสียเงินของบริการคุณ

ใบอนุญาตรีเซลเลอร์

ส่งคำอธิบายโครงการและรูปแบบการเข้าถึง ขอเงื่อนไขใช้และขายต่อเป็นลายลักษณ์อักษร

เอกสารบนเว็บไซต์

อ่านข้อเสนอ สัญญาอนุญาต และนโยบายประมวลผลข้อมูลก่อนเชื่อมได้

[ขอใบอนุญาตขายต่อ](mailto:support@ailoot.ai) · [ข้อเสนอและสัญญาอนุญาต](https://ailoot.ai/legal/offer?lang=th)

## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท





Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง





บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.





Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
