Source: https://ailoot.ai/models/uz/qwen-qwen3-6-plus/
Canonical: https://ailoot.ai/models/uz/qwen-qwen3-6-plus/
Language: uz

# Qwen: Qwen3.6 Plus

[Markdown](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/index.md) · [JSON](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/facts.json)

## [Qwen: Qwen3.6 Plus](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/)

Qwen3.6 Plus — Qwen’ning matn, tasvir va video uchun ko‘rish-til modeli oilasi bo‘lib, agentli va frontend dasturlash, obyektlarni tanish, OCR va joylashuvni aniqlash imkoniyatlari kuchaytirilgan. U matn qaytaradi va taqdim etilgan loyiha yoki vizual materialga tayanuvchi topshiriqlarda Plus oilasining gibrid fikrlash jarayonini qo‘llab-quvvatlaydi.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/#method-1)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3.6-plus`](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/#method-2)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3.6-plus`](https://ailoot.ai/models/uz/qwen-qwen3-6-plus/#method-3)

Model haqida

Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.

Qwen3.6 Plus oilasi

Qwen3.6 Plus — dasturlash va multimodal ishlar uchun boshidan ko‘rish-til modeli sifatida yaratilgan modellar oilasi. Ishlab chiqaruvchining relizida agentli dasturlash, frontend dasturlash va vizual ma’lumotga tayangan ishlab chiqish, shuningdek umumiy obyektlarni tanish, OCR va obyekt joylashuvini aniqlash yaxshilangani ta’kidlangan. Uning foydali natijasi matndir: izoh, kod taklifi, ajratib olingan ma’lumot yoki taqdim etilgan dalillarga bog‘langan hisobot.

Rasmiy relizda qwen3.6-plus va qwen3.6-plus-2026-04-02 ko‘rsatilgan. Ushbu yozuv so‘ralgan Plus oilasi nomini saqlaydi va uni qat’iy nusxaga aylantirmaydi. Oila tavsifi uni ochiq Qwen3.6-35B-A3B nazorat nuqtasi deb ko‘rsatmaydi hamda o‘sha nuqtaning ekspertlar soni, vaznlari yoki sonli kontekst chegaralarini Plus’ga yuklamaydi.

Agentli va frontend dasturlash

Frontend topshirig‘ida vizual namuna, funksional talablar va tegishli mavjud kodni bering. Yakunda kutilgan holatlar, o‘zaro ta’sirlar va chiqish fayllarini ta’riflang. Tahrirlash mumkin bo‘lgan manba kodi va taklif etilgan xatti-harakat talablarga qanday javob berishining alohida izohini so‘rang. Repozitoriy topshirig‘ida tegishli modullar va muammoni ko‘rsatuvchi kirish ma’lumotini taqdim etib, tegishli kod o‘zgarishlari hamda ularni ko‘rib chiqish uchun kerakli tekshiruvlarni so‘rang.

Dasturlash agenti ulangan muhitning haqiqiy qayta aloqasidan foydalanishi mumkin: tekshirish natijalari, kuzatilgan xatolar yoki ko‘rib chiqish topilmalari keyingi qadamni yo‘naltiradi. Maqsad va ruxsat etilgan amallarni belgilang, modeldan taklif bilan bajarilgan natijani ajratishni so‘rang.

Vizual tanish, OCR va joylashuvni aniqlash

Relizda obyektlarni tanish, tasvirdagi matnni o‘qish va obyekt joylashuvini aniqlash kuchaygani hujjatlashtirilgan. Aniq tasvir va konkret savol bering, nishondagi obyekt yoki maydonlarni ko‘rsating. Sahifa uchun tegishli sahifa yoki hudud havolalari bilan nomlangan maydonlarni so‘rang. Interfeysda qaysi ko‘rinadigan element foydalanuvchi maqsadiga mos kelishini so‘rang. Ilova joylashuv natijasidan foydalansa, uning koordinata tizimini aniq belgilang.

Oilaning ko‘rish-til qamrovi matnni tasvir yoki video bilan birlashtirib, matnli javob yaratadi. Alohida vizual kirishlarga yorliq bering, savol ketma-ketlikka bog‘liq bo‘lsa, video tartibi va vaqtini saqlang. Joylashuvi aniqlangan obyekt yoki ishonarli OCR natijasini asl materialga solishtirish kerak; bu imkoniyatlar aniq sanash, mutlaqo to‘g‘ri o‘qilgan transkript yoki kalibrlangan jismoniy o‘lchovlarni kafolatlamaydi.

Fikrlash va mulohaza davomiyligi

Ishlab chiqaruvchining rejim qo‘llanmasi Qwen3.6 Plus’ni sukut bo‘yicha fikrlashi yoqilgan gibrid fikrlash modeli deb ko‘rsatadi. Hujjatlashtirilgan gibrid jarayonda fikrlash o‘chirilganda to‘g‘ridan-to‘g‘ri javob olish mumkin. Tanlangan interfeys ikkalasini ham bersa, mulohaza mazmuni va yakuniy natijani alohida tuting. Kod artefakti, dalillar jadvali yoki ixcham xulosa kabi aniq yakuniy shaklni tanlang, shunda uzun izoh topshiriladigan natijani soyada qoldirmaydi.

Qwen3.6 oilasi iterativ ishlar uchun oldingi mulohazalarni saqlashni ham joriy etadi. Yangi qayta aloqadan keyin avvalgi qarorlar ahamiyatli qolsa, oilaning bu imkoniyati foydali; Plus uchun aniq boshqaruv shartlari o‘z interfeysiga muvofiq bo‘lishi kerak. Aniq hujjatsiz ochiq nazorat nuqtasining sukut sozlamasi yoki parametr konteynerini unga ko‘chirmaslik kerak.

Vositalar va uzun material

Oilaning dasturlash agenti tavsifi vositalar va muhit qayta aloqasini o‘z ichiga oladi. Haqiqiy vositalarni ilova beradi, ruxsat etilgan amallarni bajaradi va kuzatuvlarini modelga qaytaradi. Topshiriqda har bir xulosani hujjat parchasi, kod identifikatori yoki ko‘rinadigan elementga bog‘lovchi hisobot so‘ralishi mumkin. Ulangan jarayonda vositalar qo‘llanishi har bir interfeysda joriy manbalar yoki bajarish muhitiga ichki kirish borligini tasdiqlamaydi. Ishlab chiqaruvchi function calling, structured outputs, web search, prefix completion va context caching imkoniyatlarini sanaydi. Paketli inferens Pekin aliasida qo‘llanadi, ro‘yxatdagi boshqa hududlarda esa qo‘llanmaydi; qo‘shimcha o‘qitish qo‘llanmaydi. Ishlab chiqaruvchi aliasni April2 bilan funksional jihatdan teng deb ta’riflaydi, nusxaning alohida jadvali esa keshlash va paketli inferensni istisno qiladi.

Alibaba’ning maxsus Plus jadvali kontekstni 1,000,000 token, maksimal kirishni to‘g‘ridan-to‘g‘ri javoblar uchun 991,808 token yoki fikrlash uchun 983,616 token, maksimal chiqishni ikkala rejimda 65,536 token va alohida fikrlar zanjiri limitini 81,920 token deb beradi. Uzun kirishda hujjat chegaralari va tegishli kod yo‘llarini saqlang, aloqasiz dalillarni qisqartiring va kerakli javobga joy ajrating. Ochiq 35B-A3B modelining bazaviy yoki kengaytirilgan kontekst raqamlarini ushbu oilaning universal chegarasi sifatida ko‘chirmang.

Amaliy natija va chegaralar

Foydali natijalar qatoriga skrinshotga tayangan amalga oshirish taklifi, repozitoriy o‘zgarishi izohi yoki dalillar bilan berilgan hujjat maydonlari jadvali kiradi. JSON shaklidagi matn so‘rash majburan tatbiq etiladigan sxema shartnomasini yaratmaydi, taklif qilingan buyruq esa bajarilgan amal emas. Ajratib olingan matn, vizual joylashuv va yaratilgan kodni taqdim etilgan manbaga solishtirib tekshiring. Plus nomini saqlang va artefaktni ko‘rib chiqishda tanlangan alias yoki sanali nashrni, hujjatlashtirilgan ishlab chiqaruvchi chegaralarini va qaytgan vosita natijalarini aniq ko‘rsating.

Amaliy vazifa

### Amaliy vazifa

Ingliz tilidagi texnik misol

```
Repair keyboard access to a disclosure

A disclosure uses a clickable div to toggle its details panel. Provide a small HTML/JavaScript replacement using a native button, preserving the label 'Delivery details'. The button must expose expanded state, control the panel and work with standard keyboard activation. Include a short review checklist for closed and open states without claiming a rendered result.
```

#### Kutiladigan natija

```
A bounded disclosure component proposal with synchronized expanded state and a two-state checklist.
```

#### Natijani tekshirish

```
The control is a button, its expanded value matches panel visibility and its label remains unchanged.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.6-plus`

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=chat)

Alibaba /`qwen/qwen3.6-plus`

Model ID

- `qwen/qwen3.6-plus`
- `qwen3.6-plus`

### Boshlash

Qwen3.6 Plus — Qwen’ning matn, tasvir va video uchun ko‘rish-til modeli oilasi bo‘lib, agentli va frontend dasturlash, obyektlarni tanish, OCR va joylashuvni aniqlash imkoniyatlari kuchaytirilgan. U matn qaytaradi va taqdim etilgan loyiha yoki vizual materialga tayanuvchi topshiriqlarda Plus oilasining gibrid fikrlash jarayonini qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

Matn

### Ailoot da mavjud · kirish ma’lumotlari va usullar

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

Kirish

`text`

Chiqish

`text`

Chiqish formati

json yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar qwen/qwen3.6-plus | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Namunalar: system, user, assistant, tool, function Shartlar: Bu rollar manba kodining moslik turlarida ochiq ifodalangan; aniq rollar to‘plami har bir modelga xos bo‘lib qoladi. Modelga bogʻliq | Standart— |
| Maydon`messages[].content` | Tur`string\|content_part[]\|null` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].tool_calls` | Tur`tool_call[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].tool_call_id` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: role=tool; haqiqatan qaytarilgan IDdan foydalaning | Standart— |
| Maydon`messages[].name` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].reasoning_content` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: Ushbu model foydalanganda, haqiqatan qaytarilgan fikrlash ma’lumotlarini keyingi so‘rovda qayta yuboring | Standart— |
| Maydon`messages[].reasoning_details` | Tur`object\|array` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`max_tokens` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Modelga bogʻliq | Standart— |
| Maydon`max_completion_tokens` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Modelga bogʻliq | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |
| Maydon`stream_options.include_usage` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`temperature` | Tur`number` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`top_p` | Tur`number` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`stop` | Tur`string\|string[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`tools` | Tur`function_tool[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`tools[].type` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar function Modelga bogʻliq | Standart— |
| Maydon`tools[].function.name` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: Funksiya vositasi taqdim etilgan | Standart— |
| Maydon`tools[].function.description` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`tools[].function.parameters` | Tur`JSON_schema` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`tool_choice` | Tur`string\|object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`parallel_tool_calls` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`response_format` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`reasoning_effort` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`reasoning` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`service_tier` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`instructions` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Moslik maydoni | Standart— |
| Maydon`functions` | Tur`function[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`function_call` | Tur`string\|object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`prompt_cache_options` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`modalities` | Tur`string[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar text | Standart— |
| Maydon`provider` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Shartlar: Ushbu Ultra matn marshrutida provider.options rad etiladi | Standart— |
| Maydon`cache_control.ttl` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Shartlar: Haqiqiy prompt-kesh joylarida 1h rad etiladi | Standart— |

Kirish materiallari birikmalari

**Matn** · UTF8 matni

`messages[].content`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`messages` | Parametr talablarirole/content tuzilishidagi xabarlar massivi |
| Parametr`file_material` | Parametr talablariHaqiqiy UTF-8 hujjati aynan matn sifatida kiritiladi; fayl IDsi faraz qilinmaydi |
| Parametr`optional_controls` | Parametr talablaristream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametr`control_scope` | Parametr talablariModelga xos; foydalanuvchi funksiya vositalari hostingdagi vositalardan farq qiladi |
| Parametr`output_modalities` | Parametr talablaritext |
| Parametr`hosted_operations` | Parametr talablarifalse |
| Parametr`multimodal_input_binding` | Parametr talablarinull |

Hayot sikli: `synchronous_or_streamed`

Aniq model IDsini messages bilan yuboring.

Kontekst uzunligi chiqishning yuqori chegarasi emas.

Matn fayli aynan matnni taqdim etishi mumkin; tasvir, audio va fayl obyekti kirishlari aniq bog‘lashni talab qiladi.

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi256 000 | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 2-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p256 000 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.0026** / 1K token Chiqish · Chiqish tokenlari **$0.0078** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.00325** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython oqimi

```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.6-plus", "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.6-plus',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.6-plus',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")
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · OpenAI Chat

json yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir javob variantini va uning kontenti, vosita chaqiruvlari hamda fikrlash ma’lumotlarini saqlang. SSEda o‘zgarish qismlarini variant va vosita indeksi bo‘yicha yig‘ing, yakuniy tugash sababi va sarf ma’lumotlarini saqlang.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`choices[].index` | Turinteger |
| Maydon`choices[].message.content` | Turstring\|null |
| Maydon`choices[].message.tool_calls` | Turtool\_call\[\] |
| Maydon`choices[].message.reasoning_content` | Turstring |
| Maydon`choices[].message.reasoning_details` | Turobject\|array |
| Maydon`choices[].finish_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

**Ailoot Ultra** [`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=chat), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=chat)

#### Usul yo‘llari taxalluslari

`/chat/completions`

#### Chaqirish uchun tegishli ID lar

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=chat), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.6-plus`

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=messages)

Alibaba /`qwen/qwen3.6-plus`

Model ID

- `qwen/qwen3.6-plus`
- `qwen3.6-plus`

### Boshlash

Qwen3.6 Plus — Qwen’ning matn, tasvir va video uchun ko‘rish-til modeli oilasi bo‘lib, agentli va frontend dasturlash, obyektlarni tanish, OCR va joylashuvni aniqlash imkoniyatlari kuchaytirilgan. U matn qaytaradi va taqdim etilgan loyiha yoki vizual materialga tayanuvchi topshiriqlarda Plus oilasining gibrid fikrlash jarayonini qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

json · sse

### Ailoot da mavjud · kirish ma’lumotlari va usullar

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

Kirish

`text`

Chiqish

`json`, `sse`

Chiqish formati

JSON yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar qwen/qwen3.6-plus | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar user, assistant | Standart— |
| Maydon`messages[].content` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`max_tokens` | Tur`integer` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |

Kirish materiallari birikmalari

**Matn** · UTF-8 matni

`messages[].content satri`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages, max\_tokens |
| Parametr`optional_controls` | Parametr talablaristream |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`text_file_material` | Parametr talablariHaqiqiy UTF-8 hujjatini o‘qing va uning matnini ko‘rsatilgan kirish yoki xabar kontenti satriga joylashtiring. |

Hayot sikli: `synchronous_or_streamed`

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi256 000 | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 2-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p256 000 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.0026** / 1K token Chiqish · Chiqish tokenlari **$0.0078** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.00325** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · Anthropic Messages

To‘liq minimal JSON so‘rov tanasicurl · O‘zingizning UTF-8 hujjatingizdan foydalaningPython · Natijani to‘liq saqlang

```json
{
  "model": "qwen/qwen3.6-plus",
  "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.6-plus', '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.6-plus', '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))
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · Anthropic Messages

JSON yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Barcha kontent bloklari, fikrlash imzolari va haqiqiy vosita ishlatish IDlarini saqlang. SSE bloklarining barcha o‘zgarish qismlarini yig‘ing; birinchi matn bloki to‘liq chiqish emas.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`model` | Turstring |
| Maydon`content[]` | Turtext\|thinking\|tool\_use\|other content block |
| Maydon`stop_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

**Ailoot Ultra** [`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=messages), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=messages)

#### Usul yo‘llari taxalluslari

`/chat/completions`

#### Chaqirish uchun tegishli ID lar

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=messages), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=messages)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3.6-plus`

[`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=chat)

Alibaba /`qwen3.6-plus`

Model ID

- `qwen/qwen3.6-plus`
- `qwen3.6-plus`

### Boshlash

Qwen3.6 Plus — Qwen’ning matn, tasvir va video uchun ko‘rish-til modeli oilasi bo‘lib, agentli va frontend dasturlash, obyektlarni tanish, OCR va joylashuvni aniqlash imkoniyatlari kuchaytirilgan. U matn qaytaradi va taqdim etilgan loyiha yoki vizual materialga tayanuvchi topshiriqlarda Plus oilasining gibrid fikrlash jarayonini qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

Matn

### Ailoot da mavjud · kirish ma’lumotlari va usullar

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

Kirish

`text`

Chiqish

`text`

Chiqish formati

json yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar qwen3.6-plus | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`messages[].content` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: Matnli suhbat | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |

Kirish materiallari birikmalari

**Matn** · UTF8 matni

`messages[].content`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`messages` | Parametr talablarirole/content tuzilishidagi xabarlar massivi |
| Parametr`file_material` | Parametr talablariHaqiqiy UTF-8 hujjati aynan matn sifatida kiritiladi; fayl IDsi faraz qilinmaydi |
| Parametr`optional_controls` | Parametr talablaristream |
| Parametr`control_scope` | Parametr talablariMatnli suhbat; stream mantiqiy qiymat bo‘lib, standart holatda false. |
| Parametr`output_modalities` | Parametr talablaritext |
| Parametr`hosted_operations` | Parametr talablarifalse |
| Parametr`multimodal_input_binding` | Parametr talablarinull |

Usul taxalluslari: `/chat/completions`

Hayot sikli: `synchronous_or_streamed`

Aniq model IDsini messages bilan yuboring.

Kontekst uzunligi chiqishning yuqori chegarasi emas.

Matn fayli aynan matnni taqdim etishi mumkin; tasvir, audio va fayl obyekti kirishlari aniq bog‘lashni talab qiladi.

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi256 000 | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 2-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p256 000 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.0026** / 1K token Chiqish · Chiqish tokenlari **$0.0078** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.00325** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```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":"qwen3.6-plus","messages":[{"role":"user","content":"hello"}],"stream":false}')

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="qwen3.6-plus", messages=[{"role":"user","content":"hello"}], stream=False)
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"))
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · OpenAI Chat

json yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir javob variantini va uning kontenti, vosita chaqiruvlari hamda fikrlash ma’lumotlarini saqlang. SSEda o‘zgarish qismlarini variant va vosita indeksi bo‘yicha yig‘ing, yakuniy tugash sababi va sarf ma’lumotlarini saqlang.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`choices[].index` | Turinteger |
| Maydon`choices[].message.content` | Turstring\|null |
| Maydon`choices[].message.tool_calls` | Turtool\_call\[\] |
| Maydon`choices[].message.reasoning_content` | Turstring |
| Maydon`choices[].message.reasoning_details` | Turobject\|array |
| Maydon`choices[].finish_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

**Ailoot Ultra** [`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=chat), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=chat)

#### Usul yo‘llari taxalluslari

`/chat/completions`

#### Chaqirish uchun tegishli ID lar

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=chat), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3.6-plus`

[`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=messages)

Alibaba /`qwen3.6-plus`

Model ID

- `qwen/qwen3.6-plus`
- `qwen3.6-plus`

### Boshlash

Qwen3.6 Plus — Qwen’ning matn, tasvir va video uchun ko‘rish-til modeli oilasi bo‘lib, agentli va frontend dasturlash, obyektlarni tanish, OCR va joylashuvni aniqlash imkoniyatlari kuchaytirilgan. U matn qaytaradi va taqdim etilgan loyiha yoki vizual materialga tayanuvchi topshiriqlarda Plus oilasining gibrid fikrlash jarayonini qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

json · sse

### Ailoot da mavjud · kirish ma’lumotlari va usullar

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

Kirish

`text`

Chiqish

`json`, `sse`

Chiqish formati

JSON yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar qwen3.6-plus | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar user, assistant | Standart— |
| Maydon`messages[].content` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`max_tokens` | Tur`integer` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |

Kirish materiallari birikmalari

**Matn** · UTF-8 matni

`messages[].content satri`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages, max\_tokens |
| Parametr`optional_controls` | Parametr talablaristream |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`text_file_material` | Parametr talablariHaqiqiy UTF-8 hujjatini o‘qing va uning matnini ko‘rsatilgan kirish yoki xabar kontenti satriga joylashtiring. |

Hayot sikli: `synchronous_or_streamed`

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi256 000 | To‘lov Kirish · Kirish tokenlari **$0.00065** / 1K token Chiqish · Chiqish tokenlari **$0.0039** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.0008125** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |
| SozlamaSo‘rov uzunligi bo‘yicha 2-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p256 000 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.0026** / 1K token Chiqish · Chiqish tokenlari **$0.0078** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **$0.00325** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · Anthropic Messages

To‘liq minimal JSON so‘rov tanasicurl · O‘zingizning UTF-8 hujjatingizdan foydalaningPython · Natijani to‘liq saqlang

```json
{
  "model": "qwen3.6-plus",
  "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': 'qwen3.6-plus', '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': 'qwen3.6-plus', '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))
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · Anthropic Messages

JSON yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Barcha kontent bloklari, fikrlash imzolari va haqiqiy vosita ishlatish IDlarini saqlang. SSE bloklarining barcha o‘zgarish qismlarini yig‘ing; birinchi matn bloki to‘liq chiqish emas.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`model` | Turstring |
| Maydon`content[]` | Turtext\|thinking\|tool\_use\|other content block |
| Maydon`stop_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

**Ailoot Ultra** [`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=messages), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=messages)

#### Usul yo‘llari taxalluslari

`/chat/completions`

#### Chaqirish uchun tegishli ID lar

[`qwen/qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen%2Fqwen3.6-plus&fmt=messages), [`qwen3.6-plus`](https://ailoot.ai/models/uz/#m=qwen%2Fqwen3.6-plus&route=Ultra&caller=qwen3.6-plus&fmt=messages)

FAQ · Qwen: Qwen3.6 Plus

Qanday kirish ma’lumotlari va natijalar mavjud?

`POST /v1/chat/completions` · `qwen/qwen3.6-plus`: `text` → `text` `POST /v1/messages` · `qwen/qwen3.6-plus`: `text` → `json`, `sse` `POST /v1/chat/completions` · `qwen3.6-plus`: `text` → `text` `POST /v1/messages` · `qwen3.6-plus`: `text` → `json`, `sse`

So‘rov qaysi maydonlardan foydalanadi?

`POST /v1/chat/completions` · `qwen/qwen3.6-plus`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen/qwen3.6-plus`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `qwen3.6-plus`: `model`, `messages`, `stream` `POST /v1/messages` · `qwen3.6-plus`: `model`, `messages`, `max_tokens`, `stream`

Qanday cheklovlar amal qiladi?

`POST /v1/chat/completions` · `qwen/qwen3.6-plus`: `messages.min_items`: `1` `POST /v1/chat/completions` · `qwen3.6-plus`: `messages.min_items`: `1`

Ailoot’ni Claude Code, OpenCode, Hermes yoki ilovangizga ulang.

## Kompaniya va uning loyihalar portfeli

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

## Tokenlarni chegirma bilan xarid qiling.

Muntazam ish uchun obuna chegirmasi. Token xaridiga promokodlar — 50% gacha.

Obuna

Muntazam so‘rovlaringiz uchun chegirmali tarif tanlang.

50% gacha promokod

Xaridda kod kiriting. Narx amaldagi aksiya bilan qayta hisoblanadi.

Tarixdagi xarajatlar

Har so‘rov uchun model, token va summa saqlanadi.

[Obuna tanlash](https://ailoot.ai/docs/uz/billing/subscriptions/) · [Model narxlarini ko‘rish](https://ailoot.ai/models/uz/)

## API’ni sotadigan mahsulotingizga ulang.

SaaS, ilova va botlar Ailoot ofertasi hamda litsenziya shartnomasiga muvofiq. Qayta sotishga reseller litsenziyasi so‘rang.

Tijorat ilovasi

Xizmatingizning pullik funksiyalariga matn, rasm, video va ovoz yaratishni qo‘shing.

Reseller litsenziyasi

Loyiha tavsifi va kirish sxemasini yuboring. Foydalanish va qayta sotishga yozma shartlarni so‘rang.

Saytdagi hujjatlar

Oferta, litsenziya shartnomasi va ma’lumotlar siyosati ulashdan oldin ochiq.

[Reseller litsenziyasini so‘rash](mailto:support@ailoot.ai) · [Oferta va litsenziya shartnomasi](https://ailoot.ai/legal/offer?lang=uz)

## Ailoot · Kompaniya va uning loyihalar portfeli





Ailoot to‘plangan faoliyat tajribasi, keng mijozlar bazasi, barqaror xizmat va doimiy KPI nazoratiga tayanadi.





Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.





Ailoot bu faoliyat tajribasini mijozlar mahsulotlari, agentlar, ilovalar va avtomatlashtirishlarda AI imkoniyatlariga API orqali kirishni ta’minlashda qo‘llaydi.
