Source: https://ailoot.ai/models/ms/qwen-qwen3-coder-30b-a3b-instruct/
Canonical: https://ailoot.ai/models/ms/qwen-qwen3-coder-30b-a3b-instruct/
Language: ms

# Qwen: Qwen3 Coder 30B A3B Instruct

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

## [Qwen: Qwen3 Coder 30B A3B Instruct](https://ailoot.ai/models/ms/qwen-qwen3-coder-30b-a3b-instruct/)

Qwen3-Coder-30B-A3B-Instruct ialah model pengekodan teks tanpa pemikiran Qwen dengan 30.5 bilion parameter keseluruhan dan 3.3 bilion diaktifkan. Model menyasarkan pembangunan berskala repositori, pengekodan dan aliran ejen pelayar, dengan konteks asal 262,144 token serta format panggilan fungsi khusus.

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

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

Sorotan: pengekodan pada skala repositori

Qwen3-Coder-30B-A3B-Instruct ialah model teks berfokuskan arahan untuk ejen pengekodan. Qwen mendokumentasikan pengekodan, penggunaan ejen pelayar dan pemahaman pada skala repositori, dengan format panggilan fungsi khusus serta integrasi melalui aliran kerja seperti Qwen Code. Input dan outputnya ialah teks. Kekalkan checkpoint Coder yang tepat ini dan bukannya menggantikannya dengan Qwen3-30B-A3B-Instruct-2507 kegunaan umum atau Qwen3-Coder-Next, yang mempunyai fokus latihan dan panduan penjanaan berbeza.

Konteks natifnya ialah 262,144 token, dan pembuat menerangkan peluasan kepada kira-kira sejuta menggunakan YaRN. Konteks besar boleh menghimpunkan lebih banyak bukti repositori, tetapi tugas yang jelas masih memerlukan modul, antara muka dan keperluan yang relevan. Nyatakan artifak yang dijangka dan tingkah laku yang boleh diperhatikan sebelum meminta perubahan kod.

Gambaran keseluruhan model

Model campuran pakar ini mempunyai 30.5 bilion parameter keseluruhan dan mengaktifkan 3.3 bilion. Ia mempunyai 48 lapisan, 128 pakar dan lapan pakar yang dipilih bagi setiap token. Jumlah parameter dan parameter yang diaktifkan membawa makna berbeza; angka yang diaktifkan bukan saiz checkpoint lengkap. Konfigurasi model bahasa kausalnya ialah model teks, bukan antara muka penglihatan atau pertuturan.

Coder-30B-A3B-Instruct hanya menyokong mod tanpa pemikiran dan tidak menjana blok pemikiran eksplisit. Menetapkan enable\_thinking=False tidak perlu dalam contoh pembuat. Ia masih boleh menerangkan algoritma atau memberikan justifikasi bagi tampalan dalam teks biasa. Permintaan untuk langkah penaakulan tidak seharusnya dikelirukan dengan mengaktifkan tingkah laku Thinking yang berasingan dalam edisi Qwen lain.

Menyediakan permintaan pembangunan

Berikan kod yang relevan, input yang menunjukkan tingkah laku semasa, hasil yang diperhatikan dan perubahan yang dikehendaki. Bagi algoritma, nyatakan kekangan input dan output yang diperlukan sebelum meminta pendekatan. Bagi pengubahsuaian repositori, kenal pasti ciri yang terjejas dan antara muka yang mesti dikekalkan oleh pelaksanaan. Minta tampalan yang boleh disunting atau fungsi lengkap secara berasingan daripada ulasan penerangan.

Respons yang berguna boleh menyusun diagnosis, perubahan yang dicadangkan dan semakan yang diperlukan untuk menilainya. Apabila tugas berpandukan rujukan visual atau tingkah laku yang dirakam, berikan representasi teks yang sesuai dan kekalkan pengecam yang membolehkan hasil dibandingkan dengan yang asal. Bandingkan tampalan yang dicadangkan dengan kod yang dibekalkan, tingkah laku yang dijangka dan hasil yang dikembalikan oleh semakan bersambung.

Pengekodan berejen dan aliran kerja pelayar

Pembuat mengetengahkan panggilan alat dan format panggilan fungsi yang direka khas. Aliran kerja ejen yang bersambung membekalkan penerangan alat, skema input dan pemerhatian serta menjalankan operasi sebenar. Tentukan tindakan yang dibenarkan dan syarat selesai, kemudian kembalikan hasil pemeriksaan atau pelaksanaan sebenar kepada model supaya ia boleh mengemas kini kerja yang dicadangkan.

Keupayaan ejen pelayar bermaksud penyertaan dalam aliran kerja dengan alat pelayar bersambung, bukan akses automatik kepada pelayar pengguna atau halaman semasa. Perbezaan yang sama terpakai pada pemeriksaan repositori dan pelaksanaan kod. Arahan yang dicadangkan, permintaan alat dan operasi yang selesai seharusnya kekal berasingan dalam laporan akhir. Kekalkan format alat natif model dan kaedah penghuraian, dan jangan menganggap templat model lain boleh saling menggantikannya.

Konteks panjang dan konfigurasi

Pembuat menerangkan peluasan YaRN daripada konteks natif 262,144 token kepada kira-kira sejuta untuk tugas berskala repositori. Gunakan konfigurasi konteks yang sesuai dengan bahan repositori, sambil memperuntukkan ruang untuk pemerhatian alat dan hasil. Panduan mula pantasnya turut mencadangkan konteks lebih kecil, seperti 32,768, apabila tekanan memori menghalang tetapan lebih besar daripada berfungsi.

Kekalkan laluan kod, nama fungsi dan takrif yang relevan dalam input panjang. Buang fail terjana yang tidak berkaitan atau bahan berulang dan peruntukkan ruang untuk jawapan. Teks sumber, sejarah, pemerhatian alat dan kod terjana berkongsi had jujukan yang dikonfigurasikan; input terbesar yang mungkin tidak seharusnya dianggap sebagai ingatan sempurna bagi setiap kebergantungan.

Panduan penjanaan

Best Practices mengesyorkan temperature 0.7, top\_p 0.8, top\_k 20 dan repetition penalty 1.05. Syor repetition-penalty yang tepat ini berbeza daripada beberapa model Qwen lain dan kekal sebahagian daripada kaedah edisi Coder ini. Qwen mengesyorkan peruntukan penjanaan 65,536 token bagi kebanyakan pertanyaan, iaitu syor dan bukannya maksimum keras yang ditentukan secara bebas.

Nyatakan bahasa dan bentuk output, seperti tampalan, fungsi lengkap atau penerangan, dan semak sintaks serta antara muka artifak dalam aliran kerja pembangunan sebenar. Contoh fungsi pembuat menggambarkan mekanisme alat; kontrak alat masih memerlukan nama argumen dan semantik nilai pulangan yang konsisten secara dalaman dalam aplikasi yang menggunakannya.

Had substantif dan hasil yang berguna

Input checkpoint ini yang didokumentasikan ialah teks. Ia tidak secara langsung membuktikan pemahaman imej, audio atau video. Kod terjana dan penerangan yang meyakinkan ialah artifak draf sehingga semakan atau pemerhatian yang relevan benar-benar dikembalikan oleh persekitaran bersambung. Hasil yang berguna ialah cadangan pelaksanaan yang boleh diperiksa dan terikat pada keadaan repositori yang dibekalkan, dengan identiti Coder yang tepat, mod tanpa pemikiran dan panduan penjanaan pengeluar dikekalkan.

Tugas praktikal

### Tugas praktikal

Contoh teknikal dalam bahasa Inggeris

```
Implement interval overlap correctly

Implement overlaps(a, b) for two half-open intervals [start, end), using numeric endpoints. Intervals touching at an endpoint do not overlap. Reject intervals with start greater than end; empty intervals never overlap. Return a complete Python function and tests for genuine overlap, touching, empty and reversed intervals. Keep the interface limited to two pairs.
```

#### Hasil yang dijangka

```
A complete Python function and four focused tests expressing the interval contract.
```

#### Semak hasil

```
Check that [1, 3) and [3, 5) return false and an empty interval cannot overlap a containing interval.
```

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

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

Alibaba /`qwen/qwen3-coder-30b-a3b-instruct`

### Pengenalan

Qwen3-Coder-30B-A3B-Instruct ialah model pengekodan teks tanpa pemikiran Qwen dengan 30.5 bilion parameter keseluruhan dan 3.3 bilion diaktifkan. Model menyasarkan pembangunan berskala repositori, pengekodan dan aliran ejen pelayar, dengan konteks asal 262,144 token serta format panggilan fungsi khusus.

Input yang diterima

Teks

Hasil

Teks

### Tersedia di Ailoot · input & kaedah

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

Input

`text`

Output

`text`

Format output

json atau SSE

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had qwen/qwen3-coder-30b-a3b-instruct | Lalai— |
| Medan`messages` | Jenis`message[]` | KeperluanDiperlukan | Nilai & had Item minimum: 1 | Lalai— |
| Medan`messages[].role` | Jenis`string` | KeperluanDiperlukan | Nilai & had Contoh: system, user, assistant, tool, function Syarat: Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model. Bergantung pada model | Lalai— |
| Medan`messages[].content` | Jenis`string\|content_part[]\|null` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].tool_calls` | Jenis`tool_call[]` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].tool_call_id` | Jenis`string` | KeperluanPilihan | Nilai & had Terpakai apabila: role=tool; gunakan ID sebenar yang dipulangkan | Lalai— |
| Medan`messages[].name` | Jenis`string` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].reasoning_content` | Jenis`string` | KeperluanPilihan | Nilai & had Terpakai apabila: Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya | Lalai— |
| Medan`messages[].reasoning_details` | Jenis`object\|array` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`max_tokens` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Bergantung pada model | Lalai— |
| Medan`max_completion_tokens` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Bergantung pada model | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |
| Medan`stream_options.include_usage` | Jenis`boolean` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`temperature` | Jenis`number` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`top_p` | Jenis`number` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`stop` | Jenis`string\|string[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`tools` | Jenis`function_tool[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`tools[].type` | Jenis`string` | KeperluanPilihan | Nilai & had function Bergantung pada model | Lalai— |
| Medan`tools[].function.name` | Jenis`string` | KeperluanDiperlukan | Nilai & had Terpakai apabila: alat fungsi dibekalkan | Lalai— |
| Medan`tools[].function.description` | Jenis`string` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`tools[].function.parameters` | Jenis`JSON_schema` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`tool_choice` | Jenis`string\|object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`parallel_tool_calls` | Jenis`boolean` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`response_format` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`reasoning_effort` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`reasoning` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`service_tier` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`instructions` | Jenis`string` | KeperluanPilihan | Nilai & had Medan keserasian | Lalai— |
| Medan`functions` | Jenis`function[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`function_call` | Jenis`string\|object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`prompt_cache_options` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`modalities` | Jenis`string[]` | KeperluanPilihan | Nilai & had text | Lalai— |
| Medan`provider` | Jenis`object` | KeperluanPilihan | Nilai & had Syarat: provider.options ditolak pada laluan teks Ultra ini | Lalai— |
| Medan`cache_control.ttl` | Jenis`string` | KeperluanPilihan | Nilai & had Syarat: 1h ditolak pada lokasi cache prompt yang digunakan | Lalai— |

Gabungan bahan input

**Teks** · Teks UTF8

`messages[].content`

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, messages |
| Parameter`material_types` | Kontraktext |
| Parameter`messages` | Kontraktatasusunan mesej dengan struktur role/content |
| Parameter`file_material` | Kontrakdokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan |
| Parameter`optional_controls` | Kontrakstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Kontrakkhusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan |
| Parameter`output_modalities` | Kontraktext |
| Parameter`hosted_operations` | Kontrakfalse |
| Parameter`multimodal_input_binding` | Kontraknull |

Kitar hayat: `synchronous_or_streamed`

Hantar ID model yang tepat bersama messages.

Panjang konteks bukan had output.

Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat.

### Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Kadar standard Apabila mod pantas dipilih

Mod flex

Kadar standard Apabila mod flex dipilih

Usaha penaakulan maksimum

Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Kadar Ailoot

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0002** / 1K token Output · Token output **$0.0008** / 1K token Input · Bacaan cache **$0** / 1K token Input · Penulisan cache **$0** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0002** / 1K token Output · Token output **$0.0008** / 1K token Input · Bacaan cache **$0** / 1K token Input · Penulisan cache **$0** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPenstriman 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-coder-30b-a3b-instruct", "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-coder-30b-a3b-instruct',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-coder-30b-a3b-instruct',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")
```

### Terima dan simpan hasil

#### Ailoot Ultra · OpenAI Chat

json atau SSE

##### Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.

##### Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`choices[].index` | Jenisinteger |
| Medan`choices[].message.content` | Jenisstring\|null |
| Medan`choices[].message.tool_calls` | Jenistool\_call\[\] |
| Medan`choices[].message.reasoning_content` | Jenisstring |
| Medan`choices[].message.reasoning_details` | Jenisobject\|array |
| Medan`choices[].finish_reason` | Jenisstring\|null |
| Medan`usage` | Jenisobject |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |

### Alias

#### Alias model

**Ailoot Ultra** [`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ms/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=chat)

#### Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

#### ID pemanggil berkaitan

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

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

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

Alibaba /`qwen/qwen3-coder-30b-a3b-instruct`

### Pengenalan

Qwen3-Coder-30B-A3B-Instruct ialah model pengekodan teks tanpa pemikiran Qwen dengan 30.5 bilion parameter keseluruhan dan 3.3 bilion diaktifkan. Model menyasarkan pembangunan berskala repositori, pengekodan dan aliran ejen pelayar, dengan konteks asal 262,144 token serta format panggilan fungsi khusus.

Input yang diterima

Teks

Hasil

json · sse

### Tersedia di Ailoot · input & kaedah

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

Input

`text`

Output

`json`, `sse`

Format output

JSON atau SSE

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had qwen/qwen3-coder-30b-a3b-instruct | Lalai— |
| Medan`messages` | Jenis`message[]` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`messages[].role` | Jenis`string` | KeperluanDiperlukan | Nilai & had user, assistant | Lalai— |
| Medan`messages[].content` | Jenis`string` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`max_tokens` | Jenis`integer` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |

Gabungan bahan input

**Teks** · Teks UTF-8

`rentetan messages[].content`

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, messages, max\_tokens |
| Parameter`optional_controls` | Kontrakstream |
| Parameter`material_types` | Kontraktext |
| Parameter`text_file_material` | KontrakBaca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan. |

Kitar hayat: `synchronous_or_streamed`

### Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Kadar standard Apabila mod pantas dipilih

Mod flex

Kadar standard Apabila mod flex dipilih

Usaha penaakulan maksimum

Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Kadar Ailoot

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0002** / 1K token Output · Token output **$0.0008** / 1K token Input · Bacaan cache **$0** / 1K token Input · Penulisan cache **$0** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0002** / 1K token Output · Token output **$0.0008** / 1K token Input · Bacaan cache **$0** / 1K token Input · Penulisan cache **$0** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Anthropic Messages

Badan JSON minimum yang lengkapcurl · gunakan dokumen UTF-8 andaPython · simpan hasil lengkap

```json
{
  "model": "qwen/qwen3-coder-30b-a3b-instruct",
  "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-coder-30b-a3b-instruct', '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-coder-30b-a3b-instruct', '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))
```

### Terima dan simpan hasil

#### Ailoot Ultra · Anthropic Messages

JSON atau SSE

##### Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.

##### Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`id` | Jenisstring |
| Medan`model` | Jenisstring |
| Medan`content[]` | Jenistext\|thinking\|tool\_use\|other content block |
| Medan`stop_reason` | Jenisstring\|null |
| Medan`usage` | Jenisobject |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |

### Alias

#### Alias model

**Ailoot Ultra** [`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ms/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=messages)

#### Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

#### ID pemanggil berkaitan

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

FAQ · Qwen: Qwen3 Coder 30B A3B Instruct

Apakah input dan hasil yang tersedia?

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

Apakah medan yang digunakan oleh permintaan?

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

Apakah had yang terpakai?

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

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

## Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

## Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan

Pilih pelan berdiskaun untuk permintaan berkala anda.

Kod promosi sehingga 50%

Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.

Perbelanjaan dalam sejarah

Model, token dan jumlah disimpan bagi setiap permintaan.

[Pilih langganan](https://ailoot.ai/docs/ms/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/ms/)

## Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial

Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.

Lesen penjual semula

Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.

Dokumen pada laman

Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

[Mohon lesen penjual semula](mailto:support@ailoot.ai) · [Tawaran dan perjanjian lesen](https://ailoot.ai/legal/offer?lang=ms)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
