العودة إلى المدونة

الأدوات والتكاملاتدليل

ربط Qwen Code بـ CheapTokens: متغيرات البيئة وsettings.json

وجّه Qwen Code إلى واجهة API متوافقة مع OpenAI عبر ثلاثة متغيرات بيئة أو مدخل واحد في settings.json: عنوان URL الأساسي، ومعرّف نموذج كامل، ومفتاح يبقى خارج git.

بواسطة CheapTokens Teamنُشر في 4 دقيقة قراءة

طرفية Qwen Code مع المتغيرات OPENAI_API_KEY وOPENAI_BASE_URL وOPENAI_MODEL
في هذه الصفحة
  1. تثبيت Qwen Code
  2. الطريقة 1: ثلاثة متغيرات بيئة
  3. الطريقة 2: settings.json ومفتاح خارج git
  4. كم تكلف جلسة برمجة
  5. نماذج أخرى للتجربة
  6. إذا لم يتصل Qwen Code

يمكن لـ Qwen Code الاتصال بنقطة نهاية مخصصة متوافقة مع OpenAI، لذا يتطلب ربطه بـ CheapTokens ثلاث قيم: عنوان URL الأساسي https://api.cheaptokens.dev/v1، ومفتاح API الخاص بك، ومعرّف نموذج كامل مثل deepseek-ai/DeepSeek-V4-Flash-0731. صدّرها كـ OPENAI_API_KEY وOPENAI_BASE_URL وOPENAI_MODEL، أو ضعها في ~/.qwen/settings.json. كلا الطريقتين مأخوذتان من وثائق مصادقة Qwen Code (آخر تحديث للصفحة في 22 أكتوبر 2026).

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

تثبيت Qwen Code#

يحتاج Qwen Code إلى Node.js 22 أو أحدث. يسرد ملف README الخاص بالمشروع (github.com/QwenLM/qwen-code) عدة طرق للتثبيت؛ اثنتان منها:

تثبيت Qwen Code

npm

bash
npm install -g @qwen-code/qwen-code@latest

Homebrew

bash
brew install qwen-code

تشغّله بـ qwen. تصف الوثائق أيضًا /auth → Custom Provider لربط وكيل أو مزوّد غير مدعوم يدويًا. الطريقتان أدناه مكتوبتان سطرًا بسطر، فابدأ بإحداهما.

الطريقة 1: ثلاثة متغيرات بيئة#

أسرع طريقة. افتح طرفية في مشروعك ونفّذ:

bash
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.cheaptokens.dev/v1"
export OPENAI_MODEL="deepseek-ai/DeepSeek-V4-Flash-0731"
qwen

المفتاح عنصر نائب؛ الصق مفتاحك من لوحة تحكم CheapTokens. تصدير OPENAI_API_KEY هو أيضًا ما يخبر Qwen Code باستخدام مصادقة متوافقة مع OpenAI عندما تضبط كل شيء عبر متغيرات البيئة. لـ OPENAI_MODEL اسم مستعار هو QWEN_MODEL.

هناك تفصيل يربك الناس: معرّف النموذج. استخدم المعرّف الكامل من وثائق CheapTokens. الاسم المختصر الذي تراه بجانب الأسعار، deepseek-v4-flash-0731، لا تقبله واجهة API، والمعرّفات تختلف بين المزوّدين.

أي متغير يفعل ماذا؟ طابقهما:

طابق الأزواج

طابق كل متغير مع وظيفته

  • OPENAI_API_KEYمفتاح CheapTokens الخاص بك؛ تصديره يحدد المصادقة المتوافقة مع OpenAI
  • OPENAI_BASE_URLنقطة النهاية التي يرسل إليها Qwen Code الطلبات
  • OPENAI_MODELمعرّف النموذج المرسل إلى واجهة API
  • QWEN_MODELاسم مستعار لـ OPENAI_MODEL

يستمر التصدير حتى تغلق الطرفية. للحفاظ على الإعداد، استخدم الطريقة التالية.

الطريقة 2: settings.json ومفتاح خارج git#

لنفترض أنك تشارك المستودع مع فريق ولا يريد أحد مفتاحًا في ملف إعدادات. عندئذٍ صِف النموذج في ~/.qwen/settings.json واحتفظ بالمفتاح في ملف منفصل.

json
{
  "modelProviders": {
    "openai": [
      {
        "id": "deepseek-ai/DeepSeek-V4-Flash-0731",
        "name": "DeepSeek-V4-Flash (CheapTokens)",
        "baseUrl": "https://api.cheaptokens.dev/v1",
        "description": "DeepSeek-V4-Flash through CheapTokens",
        "envKey": "CHEAPTOKENS_API_KEY"
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731" }
}

أربعة حقول تحمل الثقل:

  • id هو معرّف النموذج المرسل إلى واجهة API، لذا يجب أن يكون المعرّف الكامل.
  • model.name يجب أن يطابق إحدى قيم id، وإلا فلن يكون لدى Qwen Code ما يختاره.
  • security.auth.selectedType مضبوطًا على "openai" يختار المسار المتوافق مع OpenAI.
  • envKey يسمّي المتغير الذي يحمل المفتاح. وهو اختياري وقيمته الافتراضية OPENAI_API_KEY.

المفتاح نفسه يوضع في .qwen/.env، وهو ما توصي به الوثائق للأسرار، ويبقى ذلك الملف خارج git:

bash
CHEAPTOKENS_API_KEY=sk-your-api-key

هناك سبب لتفضيل ذلك على كتلة env في settings.json: القيم من env لها أدنى أولوية، ومن السهل إيداع ملف يحتوي على مفتاح عن طريق الخطأ. المزيد عن الحفاظ على أمان المفاتيح في تخزين مفتاح API بأمان.

متغيرات البيئة ونظيراتها في settings.json: المفتاح، وعنوان URL الأساسي، ومعرّف النموذج
أين تذهب كل قيمة من القيم الثلاث: متغيرات البيئة على اليسار، وsettings.json على اليمين

بعد التشغيل، يعرض /model النماذج المضبوطة ويتيح لك التبديل. للبدء بنموذج محدد، نفّذ qwen --model "deepseek-ai/DeepSeek-V4-Flash-0731".

كم تكلف جلسة برمجة#

الوكلاء الطرفيون كثيفو الإدخال: كل خطوة تحمل الملفات والسجل الذي جمعته حتى الآن. خذ مهمة من 40 خطوة وافترض 30,000 رمز إدخال و1,000 رمز إخراج لكل خطوة. أي 40 × 30,000 = 1,200,000 رمز إدخال و40 × 1,000 = 40,000 رمز إخراج. إليك المهمة كاملة بالأسعار الحية:

النموذج لكل طلب 40 طلبات OpenRouter، 40 طلبات
GLM-5.3-Flash $0.00064 $0.0256 $0.0526
DeepSeek-V4-Flash $0.00055 $0.022 $0.0633
MiniMax-M2.7 $0.0017 $0.066 $0.408

30,000 رمز إدخال و1,000 رمز إخراج لكل طلب. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.

بجمع الإدخال والإخراج معًا، فإن CheapTokens أرخص من OpenRouter لكل نموذج في الجدول. لهذا النوع من الحلقات، يناسب DeepSeek-V4-Flash جيدًا: سياق 380K، وحتى 32,768 رمز إخراج في إجابة واحدة، وسعر واحد في أي ساعة، ورصيد واحد لكل نموذج. ستختلف أرقامك، لذا حرّك المنزلقات:

حاسبة التكلفة

يومك مع وكيل طرفي

رموز الإدخال لكل طلب: 25,000 · رموز الإخراج لكل طلب: 800 · الطلبات يوميًا: 120

النموذجيوميًاشهريًا
GLM-5.3-Flash$0.0638$1.92
DeepSeek-V4-Flash$0.0546$1.64
MiniMax-M2.7$0.164$4.93

الأسعار في صفحة التسعير. إذا راقبت الاستخدام في وكيل آخر، فإن كم تكلف Cline يشرح الحساب نفسه.

نماذج أخرى للتجربة#

التبديل هو تغيير المعرّف، لا شيء آخر. خذه من صفحة النماذج أو من GET /v1/models:

  • zai-org/GLM-5.3-Flash: سياق 390K، وحتى 8,192 رمز إخراج لكل إجابة، وسعر إجمالي أقل من OpenRouter.
  • MiniMaxAI/MiniMax-M2.7: سياق 180K، وحتى 8,192 رمز إخراج لكل إجابة، وسعر إجمالي أقل من OpenRouter.

غيّر OPENAI_MODEL، أو أضف مدخلًا ثانيًا إلى modelProviders.openai وبدّل بينهما بـ /model.

إذا لم يتصل Qwen Code#

  • لم يُحدَّد نوع المصادقة. مع متغيرات البيئة فقط، يجب تصدير OPENAI_API_KEY. مع settings.json، تحقق من أن selectedType هو "openai".
  • النموذج غير موجود. يجب أن يساوي model.name قيمة id حرفًا بحرف، ويجب أن يكون المعرّف معرّف البوابة الكامل.
  • 401. المفتاح مفقود أو خاطئ. إذا استخدمت envKey، فتأكد من أن ذلك المتغير موجود فعلًا في .qwen/.env أو في طرفيتك.
  • 404. تحقق من أن عنوان URL الأساسي ينتهي بـ /v1 وأن المعرّف لا يحتوي على خطأ مطبعي. الشرح الكامل في API 401 أو 404: مفتاح أو عنوان URL أساسي أو معرّف نموذج خاطئ.
  • يبدو أن متغيرًا ما مُتجاهَل. القيم في env داخل settings.json لها أدنى أولوية، لذا يفوز متغير مضبوط في مكان آخر.

إعداد الوكلاء الطرفيين الآخرين يتبع النمط نفسه، مثل OpenCode وAider. كل شيء آخر، من المفاتيح إلى أول طلب، في وثائق CheapTokens.