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

# Qwen: Qwen3 Coder 30B A3B Instruct

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

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

Qwen3-Coder-30B-A3B-Instruct هو نموذج Qwen النصي للبرمجة دون تفكير، بإجمالي 30.5 مليار معامل و3.3 مليار معامل نشط. يستهدف التطوير على مستوى المستودع والبرمجة وسير عمل وكلاء المتصفّح، مع سياق أصلي من 262,144 توكن وصيغة مخصّصة لاستدعاء الدوال.

- [**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/qwen-qwen3-coder-30b-a3b-instruct/#method-0)
- [**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/qwen-qwen3-coder-30b-a3b-instruct/#method-1)

عن النموذج

يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.

أبرز النقاط: البرمجة على مستوى المستودع

Qwen3-Coder-30B-A3B-Instruct هو نموذج نصي يركّز على التعليمات لوكلاء البرمجة. يوثّق Qwen البرمجة واستخدام وكلاء المتصفّح والفهم على مستوى المستودع، مع صيغة مخصّصة لاستدعاء الدوال وتكامل عبر مسارات عمل مثل Qwen Code. مدخلاته ومخرجاته نصية. احتفظ بنسخة أوزان Coder الدقيقة هذه بدلًا من استبدالها بالنموذج العام Qwen3-30B-A3B-Instruct-2507 أو Qwen3-Coder-Next، إذ يختلف تركيز التدريب وإرشادات التوليد فيهما.

يبلغ السياق الأصلي 262,144 توكن، ويصف المطوّر تمديده إلى نحو مليون باستخدام YaRN. يمكن لسياق كبير جمع المزيد من أدلة المستودع معًا، لكن المهمة الواضحة تظلّ بحاجة إلى الوحدات والواجهات والمتطلّبات ذات الصلة. قدّم الناتج المتوقّع والسلوك القابل للملاحظة قبل طلب تغيير الشيفرة.

نظرة عامة على النموذج

يتضمّن نموذج خليط الخبراء إجمالي 30.5 مليار معامل، ويُنشّط 3.3 مليار. وله 48 طبقة و128 خبيرًا وثمانية خبراء يُختارون لكل توكن. تختلف دلالة المعاملات الإجمالية عن النشطة؛ ولا يمثّل الرقم النشط حجم نسخة الأوزان الكاملة. إعداده كنموذج لغة سببي هو نموذج نصي، وليس واجهة رؤية أو كلام.

لا يدعم Coder-30B-A3B-Instruct سوى وضع عدم التفكير ولا يولّد كتل تفكير صريحة. لا حاجة إلى الإعداد enable\_thinking=False في مثال المطوّر. ويمكنه مع ذلك شرح خوارزمية أو تبرير تعديل في نص عادي. لا ينبغي الخلط بين طلب خطوات استدلال وتفعيل سلوك Thinking المنفصل في إصدار Qwen آخر.

إعداد طلب تطوير

قدّم الشيفرة ذات الصلة ومدخلًا يُظهر السلوك الحالي والنتيجة المرصودة والتغيير المقصود. لخوارزمية، حدّد قيود المدخلات والمخرجات المطلوبة قبل طلب نهج. لتعديل مستودع، حدّد الميزة المتأثّرة والواجهات التي يجب أن يحافظ عليها التنفيذ. اطلب تعديلًا قابلًا للتحرير أو دالة كاملة بشكل منفصل عن التعليق التفسيري.

يمكن لاستجابة مفيدة أن تنظّم التشخيص والتغيير المقترح والفحوص اللازمة لمراجعته. عندما تستند المهمة إلى مرجع مرئي أو سلوك مسجّل، قدّم تمثيلًا نصيًا مناسبًا واحتفظ بالمعرّفات التي تسمح بمقارنة النتيجة بالأصل. قارن التعديل المقترح بالشيفرة المقدّمة والسلوك المتوقّع والنتائج التي أعادتها الفحوص المتّصلة.

البرمجة الوكيلية ومسارات عمل المتصفّح

يبرز المطوّر استدعاء الأدوات وصيغة استدعاء دوال مصمّمة خصيصًا. يقدّم سير عمل وكيل متّصل أوصاف الأدوات ومخطّطات المدخلات والملاحظات، وينفّذ العمليات الفعلية. حدّد الإجراءات المسموح بها وشرطًا للاكتمال، ثم أعد نتائج الفحص أو التنفيذ الفعلية إلى النموذج حتى يتمكّن من تحديث العمل المقترح.

تعني قدرة وكيل المتصفّح المشاركة في سير عمل مع أداة متصفّح متّصلة، وليس الوصول التلقائي إلى متصفّح المستخدم أو الصفحات الحالية. ينطبق التمييز نفسه على فحص المستودع وتنفيذ الشيفرة. ينبغي أن يظلّ الأمر المقترح وطلب الأداة والعملية المكتملة منفصلة في التقرير النهائي. احتفظ بصيغة أدوات النموذج الأصلية وطريقة تحليلها بدلًا من افتراض أن قالب نموذج آخر قابل للتبادل معها.

السياق الطويل والإعداد

يصف المطوّر تمديد YaRN من السياق الأصلي ذي 262,144 توكن إلى نحو مليون لمهام على مستوى المستودع. استخدم إعداد سياق مناسبًا لمواد المستودع، مع تخصيص مساحة لملاحظات الأدوات والنتيجة. تقترح البداية السريعة أيضًا سياقًا أصغر، مثل 32,768، عندما يمنع ضغط الذاكرة عمل الإعداد الأكبر.

احتفظ بمسارات الشيفرة وأسماء الدوال والتعريفات ذات الصلة في المدخل الطويل. أزل الملفات المولّدة غير المرتبطة أو المواد المتكرّرة وخصّص مساحة للإجابة. تشترك النصوص المصدرية والسجل وملاحظات الأدوات والشيفرة المولّدة في مساحة التسلسل المضبوطة؛ ولا ينبغي التعامل مع أكبر مدخل ممكن كتذكّر مثالي لكل تبعية.

إرشادات التوليد

توصي أفضل الممارسات بقيم temperature من 0.7 وtop\_p من 0.8 وtop\_k من 20 وعقوبة تكرار من 1.05. تختلف توصية عقوبة التكرار الدقيقة عن عدة نماذج Qwen أخرى، وتظلّ جزءًا من طريقة استخدام إصدار Coder هذا. يوصي Qwen بمساحة توليد من 65,536 توكن لمعظم الاستعلامات، وهي توصية وليست حدًا أقصى صارمًا منفصلًا ومثبتًا.

حدّد لغة المخرجات وشكلها، مثل تعديل أو دالة كاملة أو تفسير، وتحقّق من صياغة الناتج البرمجية وواجهاته في سير عمل التطوير الحقيقي. يوضّح مثال الدالة لدى المطوّر آلية الأداة؛ وتظلّ مواصفات الأداة بحاجة إلى أسماء معاملات ودلالات إرجاع متّسقة داخليًا في التطبيق الذي يستخدمها.

القيود الجوهرية والنتيجة المفيدة

المدخل الموثّق لنسخة الأوزان هذه هو النص. لا يثبت مباشرةً فهم الصور أو الصوت أو الفيديو. تظلّ الشيفرة المولّدة والتفسير الواثق نواتج مسوّدة إلى أن تعود الفحوص أو الملاحظات ذات الصلة فعلًا من البيئة المتّصلة. النتيجة المفيدة هي مقترح تنفيذ قابل للفحص مرتبط بشروط المستودع المقدّمة، مع الحفاظ على هوية Coder الدقيقة ووضع عدم التفكير وإرشادات التوليد لدى المطوّر.

مهمة عملية

### مهمة عملية

مثال تقني باللغة الإنجليزية

```
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.
```

#### النتيجة المتوقعة

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

#### التحقق من النتيجة

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

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `qwen/qwen3-coder-30b-a3b-instruct`

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/#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`

### البداية

Qwen3-Coder-30B-A3B-Instruct هو نموذج Qwen النصي للبرمجة دون تفكير، بإجمالي 30.5 مليار معامل و3.3 مليار معامل نشط. يستهدف التطوير على مستوى المستودع والبرمجة وسير عمل وكلاء المتصفّح، مع سياق أصلي من 262,144 توكن وصيغة مخصّصة لاستدعاء الدوال.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود qwen/qwen3-coder-30b-a3b-instruct | القيمة الافتراضية— |
| الحقل`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؛ استخدم المعرّف الفعلي المُرجع | القيمة الافتراضية— |
| الحقل`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` | المتطلباختياري | القيم والحدود الشروط: يُرفَض provider.options في مسار Ultra النصي هذا | القيمة الافتراضية— |
| الحقل`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 الفعلي مُدرج كنص حرفي؛ لا يُستنتَج معرّف ملف |
| المعلمة`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`

أرسل معرّف النموذج الدقيق مع messages.

طول السياق ليس حدًا أقصى للإخراج.

يمكن لملف نصي تقديم نص حرفي؛ وتحتاج مدخلات الصور/الصوت/كائنات الملفات إلى ربط دقيق.

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.0008** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.0008** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · محادثة OpenAI

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-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")
```

### استلام النتائج وحفظها

#### Ailoot Ultra · محادثة OpenAI

json أو SSE

##### الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل اختيار ومحتواه واستدعاءات أدواته واستدلاله. في SSE، جمّع التحديثات بحسب فهرس الاختيار/الأداة، واحتفظ بسبب الإنهاء النهائي والاستخدام.

##### عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم 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-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=chat)

#### الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

#### معرّفات النماذج ذات الصلة IDs

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

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `qwen/qwen3-coder-30b-a3b-instruct`

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/#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`

### البداية

Qwen3-Coder-30B-A3B-Instruct هو نموذج Qwen النصي للبرمجة دون تفكير، بإجمالي 30.5 مليار معامل و3.3 مليار معامل نشط. يستهدف التطوير على مستوى المستودع والبرمجة وسير عمل وكلاء المتصفّح، مع سياق أصلي من 262,144 توكن وصيغة مخصّصة لاستدعاء الدوال.

المدخلات المقبولة

النص

النتائج

json · sse

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages`

الإدخال

`text`

الإخراج

`json`, `sse`

صيغة الإخراج

JSON أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود qwen/qwen3-coder-30b-a3b-instruct | القيمة الافتراضية— |
| الحقل`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 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |

دورة الحياة: `synchronous_or_streamed`

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.0008** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.0008** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · رسائل Anthropic

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```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))
```

### استلام النتائج وحفظها

#### Ailoot Ultra · رسائل Anthropic

JSON أو SSE

##### الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.

##### عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم 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-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/#m=qwen%2Fqwen3-coder-30b-a3b-instruct&route=Ultra&caller=qwen%2Fqwen3-coder-30b-a3b-instruct&fmt=messages)

#### الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

#### معرّفات النماذج ذات الصلة IDs

[`qwen/qwen3-coder-30b-a3b-instruct`](https://ailoot.ai/models/ar/#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

ما المدخلات والنتائج المتاحة؟

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

ما الحقول التي يستخدمها الطلب؟

`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`

ما الحدود المطبقة؟

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

اربط Ailoot بخدمة Claude Code أوOpenCode أوHermes أوتطبيقك.

## الشركة ومحفظة مشاريعها

الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.

## اشتر الرموز بخصم.

خصم اشتراك للعمل المنتظم. الرموز الترويجية حتى 50% على شراء الرموز.

الاشتراك

اختر خطة بخصم لطلباتك المنتظمة.

رمز خصم حتى 50%

أدخل الرمز عند الشراء. يعاد حساب السعر وفق العرض الساري.

المصروفات في السجل

يحفظ النموذج والرموز والمبلغ لكل طلب.

[اختر اشتراكا](https://ailoot.ai/docs/ar/billing/subscriptions/) · [اعرض أسعار النماذج](https://ailoot.ai/models/ar/)

## اربط API بالمنتج الذي تبيعه.

SaaS والتطبيقات والبوتات وفق العرض واتفاقية ترخيص Ailoot. لإعادة البيع، اطلب ترخيص موزع.

تطبيق تجاري

أضف توليد النص والصور والفيديو والصوت إلى ميزات خدمتك المدفوعة.

ترخيص إعادة البيع

أرسل وصف المشروع وطريقة توفير الوصول. اطلب شروط استخدام وإعادة بيع مكتوبة.

المستندات على الموقع

العرض واتفاقية الترخيص وسياسة معالجة البيانات متاحة قبل الربط.

[اطلب ترخيص إعادة بيع](mailto:support@ailoot.ai) · [العرض واتفاقية الترخيص](https://ailoot.ai/legal/offer?lang=ar)

## Ailoot · الشركة ومحفظة مشاريعها





تستند Ailoot إلى خبرة تشغيلية متراكمة وقاعدة عملاء واسعة وخدمة مستقرة ومراقبة مستمرة لمؤشرات الأداء KPI.





الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.





توظف Ailoot هذه الخبرة التشغيلية لإتاحة الوصول عبر API إلى قدرات الذكاء الاصطناعي في منتجات العملاء ووكلائهم وتطبيقاتهم وعمليات الأتمتة.
