DEV Community

Cover image for Qwen 3.6 متاح على OpenRouter: كيفية استخدامه الآن
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

Qwen 3.6 متاح على OpenRouter: كيفية استخدامه الآن

ملخص سريع

تم إطلاق Qwen 3.6 Plus Preview في 30 مارس 2026، مع نافذة سياق بحجم مليون رمز (token)، واستدلال إلزامي (chain-of-thought reasoning)، ودعم لاستخدام الأدوات. النموذج متاح مجانًا على OpenRouter الآن. يمكنك استخدام معرف النموذج qwen/qwen3.6-plus-preview:free مع أي عميل متوافق مع OpenAI للبدء فورًا.

جرّب Apidog اليوم

النموذج الذي ظهر بهدوء

أطلقت Alibaba Cloud نموذج Qwen 3.6 Plus Preview في 30 مارس 2026 بدون إعلان ضخم أو قائمة انتظار. النموذج متاح على OpenRouter بسعر 0 دولار لكل مليون رمز.

صورة

خلال أول يومين، تم معالجة أكثر من 400 مليون رمز عبر حوالي 400,000 طلب. النموذج سريع وعملي للمطورين.

هذا المقال يشرح لك بالخطوات: إعداد الحساب، إنشاء مفاتيح API، أمثلة عملية للكود (cURL وPython وNode.js)، ونصائح لتحسين استخدامك للنموذج.

💡 إذا كنت تبني أي تكامل مع API الذكاء الاصطناعي، ستحتاج إلى أداة لاختبار وتصحيح طلباتك. Apidog هو خيار مجاني ويدعم أي REST API بما في ذلك OpenRouter.

بنهاية هذا الدليل ستكون قادرًا على استدعاء Qwen 3.6 مجانًا، وستعرف إمكانياته وحدوده.

ماذا يضيف Qwen 3.6 عن سلسلة 3.5

الانتقال من 3.5 إلى 3.6 ليس مجرد تحديث بسيط. هناك تغييرات جوهرية في ثلاثة جوانب رئيسية:

1. نافذة السياق: مليون رمز (token)

سابقًا، كانت نافذة السياق في Qwen 3.5 بين 32 ألف و128 ألف رمز حسب الإعداد. الآن Qwen 3.6 يدعم حتى مليون رمز في الطلب الواحد — أي تقريبًا 750,000 كلمة. هذا يكفي لتحليل قاعدة بيانات كاملة، أو سجل دردشة سنوي، أو وثائق قانونية ضخمة دفعة واحدة.

2. الاستدلال مدمج (Chain-of-thought reasoning)

Qwen 3.6 يستخدم الاستدلال بشكل تلقائي داخل النموذج. لا حاجة لتوجيه النموذج برسائل مثل "فكر خطوة بخطوة". النموذج ينفذ خطوات تفكير داخلية قبل توليد الجواب النهائي، وينطبق ذلك على البرمجة، تطوير الواجهات، وحل المشكلات العامة.

3. استدعاء الأدوات أكثر موثوقية

في سلسلة 3.5، كان استدعاء الأدوات غير متسق. الإصدار 3.6 يعالج ذلك بالتركيز على:

  • الترميز الوكيلي (multi-step code generation مع الأدوات)
  • تطوير الواجهة الأمامية (HTML، CSS، JavaScript)
  • التحليل المعقد للسياقات الطويلة

كيفية الوصول إلى Qwen 3.6 مجانًا

كل ما تحتاجه: حساب OpenRouter ومفتاح API. لا يلزم بطاقة ائتمان للنماذج المجانية.

الخطوة 1: إنشاء حساب OpenRouter

  • توجه إلى openrouter.ai وقم بالتسجيل بالبريد الإلكتروني أو Google.
  • النماذج المجانية لا تتطلب طريقة دفع.
  • تحقق من بريدك الإلكتروني وابدأ مباشرة.

الخطوة 2: إنشاء مفتاح API

  1. انقر على صورتك الشخصية في أعلى يمين الشاشة.
  2. اختر API Keys من القائمة.
  3. اضغط Create Key.
  4. أدخل اسمًا (مثلاً qwen-test) واضغط Create.
  5. انسخ المفتاح (sk-or-v1-...) واحتفظ به في مكان آمن.

صورة

الخطوة 3: أرسل أول طلب لك

معرف النموذج: qwen/qwen3.6-plus-preview:free.

OpenRouter يقبل نفس تنسيق OpenAI API. استخدم أي كود متوافق مع OpenAI مباشرة.

cURL

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer sk-or-v1-YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen3.6-plus-preview:free",
    "messages": [
      {
        "role": "user",
        "content": "Write a Python function that parses a JWT token and returns the payload as a dictionary."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Python (باستخدام requests)

import requests

def call_qwen(prompt: str, api_key: str) -> str:
    response = requests.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
        json={
            "model": "qwen/qwen3.6-plus-preview:free",
            "messages": [{"role": "user", "content": prompt}],
        },
        timeout=60,
    )
    response.raise_for_status()
    return response.json()["choices"][0]["message"]["content"]

result = call_qwen(
    "Write a Python function that parses a JWT token and returns the payload.",
    api_key="sk-or-v1-YOUR_KEY_HERE"
)
print(result)
Enter fullscreen mode Exit fullscreen mode

Node.js (fetch)

async function callQwen(prompt, apiKey) {
  const response = await fetch("https://openrouter.ai/api/v1/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "qwen/qwen3.6-plus-preview:free",
      messages: [{ role: "user", content: prompt }],
    }),
  });

  if (!response.ok) {
    throw new Error(`OpenRouter error: ${response.status} ${await response.text()}`);
  }

  const data = await response.json();
  return data.choices[0].message.content;
}

callQwen(
  "Write a JavaScript function that validates an email address.",
  "sk-or-v1-YOUR_KEY_HERE"
).then(console.log);
Enter fullscreen mode Exit fullscreen mode

Python مع OpenAI SDK

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "system",
            "content": "You are a senior backend engineer. Write clean, production-ready code."
        },
        {
            "role": "user",
            "content": "Write a Python function that retries a failed HTTP request up to 3 times with exponential backoff."
        }
    ],
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

استخدام الأدوات وسير العمل القائم على الوكلاء

ميزة الأدوات متاحة حتى في الطبقة المجانية. مثال عملي:

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "search_api_docs",
            "description": "Search the API documentation for a specific endpoint or parameter",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "The search query"
                    },
                    "version": {
                        "type": "string",
                        "enum": ["v1", "v2", "v3"],
                        "description": "API version to search"
                    }
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "run_api_test",
            "description": "Execute a test request against an API endpoint",
            "parameters": {
                "type": "object",
                "properties": {
                    "endpoint": {"type": "string"},
                    "method": {"type": "string", "enum": ["GET", "POST", "PUT", "DELETE"]},
                    "body": {"type": "object"}
                },
                "required": ["endpoint", "method"]
            }
        }
    }
]

messages = [
    {
        "role": "user",
        "content": "Find documentation for the /users endpoint and run a test GET request against it."
    }
]

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=messages,
    tools=tools,
    tool_choice="auto",
)

message = response.choices[0].message

if message.tool_calls:
    for tool_call in message.tool_calls:
        print(f"Tool: {tool_call.function.name}")
        args = json.loads(tool_call.function.arguments)
        print(f"Arguments: {json.dumps(args, indent=2)}")
else:
    print(message.content)
Enter fullscreen mode Exit fullscreen mode

النموذج سيقترح استدعاء دالة منظمًا. نفذ الوظيفة في الكود لديك، ثم أعد النتيجة للدور التالي. هكذا يمكنك بناء سير عمل متعدد الخطوات (Agent Workflow) مع استدعاء الأدوات تلقائيًا.

استخدام نافذة السياق بحجم مليون رمز (token)

هذه النافذة الضخمة مفيدة فقط للمهام التي تتطلب إدخال كميات سياق ضخمة. أمثلة تطبيقية:

مراجعة كاملة لقاعدة الأكواد

أدخل الكود الكامل للمشروع (ضمن الحد) واطلب تدقيق الأمان أو مراجعة الأنماط.

import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-YOUR_KEY_HERE",
)

def load_codebase(directory: str, extensions: list[str]) -> str:
    content_parts = []
    for path in Path(directory).rglob("*"):
        if path.suffix in extensions and path.is_file():
            try:
                text = path.read_text(encoding="utf-8", errors="ignore")
                content_parts.append(f"--- FILE: {path} ---\n{text}\n")
            except Exception:
                continue
    return "\n".join(content_parts)

codebase = load_codebase("./src", [".py", ".js", ".ts"])

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "user",
            "content": f"Review this codebase and identify:\n1. Security vulnerabilities\n2. Functions with no error handling\n3. Inconsistent naming conventions\n\nCodebase:\n{codebase}"
        }
    ],
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

تحليل وثيقة ضخمة

أدخل ملف نصي طويل (تقرير مالي، وثيقة قانونية) واطلب استخراج نقاط معينة.

with open("annual_report_2025.txt", "r") as f:
    document = f.read()

response = client.chat.completions.create(
    model="qwen/qwen3.6-plus-preview:free",
    messages=[
        {
            "role": "user",
            "content": f"Extract all mentions of API rate limits and pricing changes from this document:\n\n{document}"
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

محادثة مع سجل كامل

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

conversation = []

def chat(user_message: str) -> str:
    conversation.append({"role": "user", "content": user_message})

    response = client.chat.completions.create(
        model="qwen/qwen3.6-plus-preview:free",
        messages=conversation,
    )

    assistant_message = response.choices[0].message.content
    conversation.append({"role": "assistant", "content": assistant_message})
    return assistant_message

# جلسة تصحيح طويلة
print(chat("I'm getting a 401 error from the GitHub API. Here's my code..."))
print(chat("I added the token but now I get a 403. The token has repo scope."))
print(chat("The repo is private. What scopes do I actually need?"))
Enter fullscreen mode Exit fullscreen mode

اختبار طلبات OpenRouter API باستخدام Apidog

تصحيح طلبات API يدويًا متعب. استخدم Apidog لاختبار وبناء الطلبات بسهولة، وفحص الاستجابات، وأتمتة سيناريوهات الاختبار.

صورة

لتجربة نقطة نهاية Qwen 3.6 في Apidog:

  1. أنشئ طلب POST جديد إلى https://openrouter.ai/api/v1/chat/completions
  2. أضف header: Authorization: Bearer sk-or-v1-...
  3. اجعل body من نوع JSON يحتوي على model وmessages
  4. أرسل الطلب وراجع الاستجابة

يمكنك حفظ الطلبات كمجموعات، مقارنة نتائج النماذج، وأتمتة اختبارات تتحقق من صحة الاستجابة أو استدعاء الأدوات.

إذا كنت تبني تكاملات مع OpenRouter، إعداد اختبارات مبكرة في Apidog يوفر عليك الكثير من الوقت لاحقًا.

حدود الطبقة المجانية التي يجب معرفتها

النموذج مجاني الآن، لكن هذه القيود مهمة:

  • حدود المعدل مشتركة: كل المستخدمين يتشاركون السعة. قد تواجه بطء أو أخطاء في أوقات الذروة. أضف منطق إعادة المحاولة في الكود.
import time
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

session = requests.Session()
retry_strategy = Retry(
    total=3,
    backoff_factor=2,
    status_forcelist=[429, 500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("https://", adapter)

response = session.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={"Authorization": "Bearer sk-or-v1-YOUR_KEY_HERE"},
    json={
        "model": "qwen/qwen3.6-plus-preview:free",
        "messages": [{"role": "user", "content": "Hello"}],
    },
    timeout=30,
)
Enter fullscreen mode Exit fullscreen mode
  • يتم تسجيل البيانات: حسب سياسة OpenRouter، قد تستخدم البيانات لتحسين النموذج. لا ترسل معلومات حساسة أو مفاتيح API.

  • معاينة فقط: النموذج في مرحلة Preview. قد يتغير السلوك بسرعة. ثبّت اختبارات التكامل على معرف النموذج الحالي.

  • نص فقط: لا يدعم إدخال الصور أو الصوت.

حالات استخدام واقعية

  • وكيل لمراجعة الكود: فرق مراجعة PRs الكبيرة استخدمت Qwen 3.6 لتحليل فروقات ضخمة (10k+ سطر) والحصول على تقارير تفصيلية.
  • إنشاء مكونات واجهة أمامية: مطورون يستخدمون النموذج لتوليد مكونات React/TypeScript مع CSS جاهز دون تصحيحات متكررة.
  • تلخيص وثائق API: فرق الهجرة بين APIs مررت وثائق كاملة للنموذج وطلبت مقارنة الفروق، وعاد النموذج بجدول مقارن خلال ثوانٍ.

سجّل في openrouter.ai، احصل على مفتاحك، وجرب النموذج بدلًا من أي نموذج مدفوع.

الأسئلة الشائعة

هل Qwen 3.6 مجاني للاستخدام فعلاً؟

نعم، حاليًا في مارس 2026 السعر 0 دولار لكل مليون رمز على OpenRouter. لكن قد يتغير مستقبلاً، تابع صفحة التسعير.

ما هو حد المعدل للطبقة المجانية؟

لا يتم نشر حد معدل دقيق. عمليًا، كل النماذج المجانية تخضع للتقييد مع الضغط العالي. ابدأ بطلب واحد في كل مرة واستخدم منطق إعادة المحاولة.

هل يمكن استخدام Qwen 3.6 في المشاريع التجارية؟

نعم، OpenRouter يسمح بالاستخدام التجاري. راجع ترخيص Alibaba Cloud لأي قيود إضافية إن كنت توزع المخرجات.

لماذا Qwen 3.6 أبطأ من بعض النماذج الأخرى؟

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

هل يمكن تعطيل رموز الاستدلال؟

لا، حتى الآن الاستدلال إلزامي في هذه النسخة. إذا أردت استجابات أسرع جرب نموذجًا أصغر أو مختلفًا.

كيف تؤثر نافذة مليون رمز على التكلفة؟

في الطبقة المجانية: لا تؤثر. لكن الطلبات الضخمة قد تكون أبطأ أو تنتهي مهلتها. استخدم مهلة 30-60 ثانية للطلبات الكبيرة.


جرّب Apidog اليوم لتحسين عملك مع REST APIs وOpenRouter!

Top comments (0)