أضف مزوّداً مخصصاً متوافقاً مع OpenAI إلى Zed.
Updated 2026-07-29
يقرأ Zed المزوّدين المخصصين مباشرة من settings.json. عرِّف كتلة language_models.openai_compatible مع ضبط api_url على https://api.apisrouter.com/v1، وأدرج معرّفات النماذج التي تريدها، ويظهر كل واحد منها في منتقي نموذج لوحة الوكيل تحت مفتاح واحد.
إجابة سريعة: كتلة واحدة في settings.json.
يدعم Zed مزوّدين مخصصين متوافقين مع OpenAI بشكل أصيل. أضف مدخل مزوّد تحت language_models.openai_compatible في settings.json، واضبط api_url على https://api.apisrouter.com/v1، وعرِّف كل نموذج تريده تحت available_models باسمه وحجم سياقه. تظهر النماذج في القائمة المنسدلة لنموذج لوحة الوكيل فوراً. مفتاح API عمداً لا يذهب إلى settings.json. يخزّنه Zed في سلسلة مفاتيح النظام (keychain) عند إدخاله عبر واجهة إعدادات المزوّد، أو يقرأه من متغيّر بيئة مُشتَقّ من مفتاح مزوّدك: مزوّد باسم apisrouter يقرأ APISROUTER_API_KEY. متغيرات البيئة لها الأسبقية على قيم keychain.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000
}
]
}
}
}
}كيف يحلّ Zed المزوّدين المخصصين والنماذج.
Zed (zed-industries على GitHub، بنحو 87 ألف نجمة) هو محرر عالي الأداء بلوحة وكيل تخطّط وتعدّل الملفات وتشغّل الأدوات. نوع مزوّده openai_compatible يتحدث بروتوكول /v1/chat/completions القياسي، وهو بالضبط ما تخدمه بوابة متعددة البائعين، لذا لا تجلس أي إضافة أو ملحق بين المحرر ونقطة النهاية. مفتاح المزوّد الذي تختاره ("apisrouter" أعلاه) يؤدي دورين. يسمّي المزوّد في إعدادات لوحة الوكيل، ويولّد متغيّر البيئة الذي يتحقق منه Zed للمفتاح، بصيغة UPPER_SNAKE_CASE مع لاحقة _API_KEY. هذه القاعدة في التسمية تستحق الاستيعاب قبل تصحيح أي خطأ: أعِد تسمية المزوّد ويتغيّر اسم المتغيّر المتوقَّع معه. available_models قائمة سماح (allowlist). لا يستطيع Zed تعداد نقطة نهاية مخصصة بنفسه، لذا فقط المعرّفات التي تعرّفها تصبح قابلة للاختيار، كل واحد منها سلسلة دقيقة تشمل أي لاحقة إصدار. عندما تخدم نقطة النهاية خلف api_url معرّفات Claude وGPT وGemini وKimi جنباً إلى جنب، فإن كتلة مزوّد واحدة تحوّل منتقي لوحة الوكيل إلى لوحة تحويل عبر البائعين خلف مفتاح واحد. ملاحظة نطاق واحدة: ميزة تنبؤات التحرير (edit predictions) في Zed تستخدم نماذجها المخصصة الخاصة بها وتُعدّ بشكل منفصل؛ المزوّد المخصص يشغّل لوحة الوكيل والمساعد المضمَّن، لا تنبؤات التحرير.
الإعداد الكامل: النماذج، أحجام السياق، والقدرات.
كل مدخل في available_models يأخذ أكثر من اسم. max_tokens يُعرِّف نافذة سياق النموذج، وmax_output_tokens يحدّ طول التوليد؛ يستخدم Zed هذه الأرقام لإدارة خيوط وكيل طويلة، لذا تعريف نموذج بسياق طويل مع max_tokens صغير يهدر بصمت هامش النموذج. كائن capabilities يخبر Zed بما يدعمه النموذج: اضبط tools على true لأي شيء تخطط لقيادة لوحة الوكيل به، وفعّل images فقط للنماذج التي تقبل فعلاً مدخلات الصور. بالنسبة للمفتاح، المسار الموثوق في محرر سطح مكتب هو واجهة إعدادات المزوّد، التي تخزّن القيمة في سلسلة مفاتيح النظام. مسار متغيّر البيئة يعمل أيضاً، مع تحذير واحد مذكور في قسم تصحيح الأخطاء: تطبيقات GUI المُطلَقة من الـ dock لا ترث ملف تعريف shell الخاص بك.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000,
"max_output_tokens": 64000,
"capabilities": { "tools": true, "images": false }
},
{
"name": "claude-opus-4-7",
"display_name": "Claude Opus 4.7",
"max_tokens": 200000,
"capabilities": { "tools": true }
},
{ "name": "gpt-5.5", "display_name": "GPT-5.5", "max_tokens": 200000 },
{ "name": "kimi-k2.7-code", "display_name": "Kimi K2.7 Code", "max_tokens": 200000 }
]
}
}
}
}اختيار النماذج للوحة الوكيل.
بما أن كل نموذج مُعرَّف يجلس في نفس المنتقي، فإن سير العمل العملي هو المقارنة على عمل حقيقي بدلاً من معايير قياسية: شغّل نفس نوع المهمة عبر مرشحين في أيام مختلفة ودع سجل الاستخدام لكل مفتاح يسعّر كل واحد. تغيير النموذج في Zed هو مجرد اختيار من قائمة منسدلة، لذا تكلفة التجربة صفر إعداد.
- لوحة الوكيل تحمل هندسة حقيقية: قراءة الملفات، تخطيط تعديلات متعددة الخطوات، تشغيل الأدوات عبر خيوط طويلة. مكان نموذج برمجة حديث (claude-sonnet-4-6، claude-opus-4-7، gpt-5.5) في هذه الفتحة.
- معرّفات مضبوطة للبرمجة مثل kimi-k2.7-code تستحق التعريف حتى عندما لا تكون افتراضك؛ التبديل لجلسة ثقيلة بإعادة الهيكلة هو مجرد اختيار واحد من المنتقي، لا تعديل إعداد.
- نماذج ذات سياق طويل مثل gemini-3.1-pro-preview تكسب مكانها عندما تسحب الخيوط بانتظام ملفات كبيرة أو سياق وحدة كاملة إلى محادثة واحدة.
- المساعدة المضمَّنة (inline assist) أقصر عمراً من خيوط الوكيل، لذا معرّف سريع من الفئة المتوسطة يُبقي التحويلات ذات الطلقة الواحدة سريعة الاستجابة دون حرق tokens حديثة على إعادة كتابة سطر واحد.
ادفع حسب الاستخدام · أقل من السعر الرسمي
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| النموذج | السعر الرسمي | سعرنا |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Kimi K2.7 Code | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
أنماط الفشل الخاصة بمزوّدي Zed المخصصين.
المفتاح في settings.json ولا شيء يعمل. Zed لا يقرأ مفاتيح API من settings.json بالتصميم. أدخل المفتاح في واجهة إعدادات المزوّد، أو صدّر متغيّر البيئة المُشتَقّ؛ مفتاح مُلصق في JSON يُتجاهَل. متغيّر البيئة مضبوط لكن Zed لا يزال يطلب مفتاحاً. اسم المتغيّر مُشتَقّ من مفتاح المزوّد، بصيغة UPPER_SNAKE_CASE مع إلحاق _API_KEY، لذا مزوّد باسم apisrouter يحتاج APISROUTER_API_KEY، لا OPENAI_API_KEY. وعلى macOS، تطبيق مُطلَق من الـ dock لا يستورد ملف تعريف shell الخاص بك أبداً، لذا تصديرات ملف التعريف غير مرئية له. أطلق Zed من طرفية بأمر zed، أو استخدم مسار keychain وتخطَّ المشكلة كلياً. نموذج مفقود من المنتقي. available_models قائمة سماح؛ معرّف افترضته لكن لم تعرّفه أبداً ببساطة غير موجود. المعرّفات سلاسل دقيقة تشمل لواحق الإصدار، وقائمة /v1/models الخاصة بالبوابة هي التهجئة الرسمية للنسخ منها. الوكيل لا يستطيع استخدام الأدوات. إذا قالت كتلة capabilities لنموذج ما إن tools هي false، لن يعرض Zed استخدام أدوات معه. عرِّف القدرات لتطابق ما يدعمه النموذج فعلياً. api_url بدون /v1. يُلحق العميل مسارات مثل /chat/completions بالـ base الذي تعطيه، لذا https://api.apisrouter.com/v1 صحيح والمضيف العاري ليس كذلك. فشل على شكل 404 في كتلة صحيحة لولا ذلك هو هذا في الغالب.
من يوجّه Zed عبر بوابة.
- المطورون الذين يعيشون في المحرر ويريدون Claude وGPT وKimi في منتقي لوحة وكيل واحد بدلاً من الحفاظ على بيانات اعتماد مزوّد منفصلة لكل بائع.
- المهندسون الذين يقارنون نماذج البرمجة على تعديلات حقيقية. كل مرشّح هو مدخل واحد مُعرَّف واختيار واحد من قائمة منسدلة؛ لا حسابات جديدة لكل تجربة.
- الفرق التي توحّد سرّاً واحداً. APISROUTER_API_KEY واحد في وثائق التهيئة يستبدل قائمة تحقق من مفاتيح لكل بائع، والاستخدام لكل مفتاح يُظهر ما ينفقه كل مقعد.
- المستخدمون الذين يقرنون نموذج وكيل حديث بنموذج مساعدة مضمَّنة سريع من بائع مختلف، وهو ما لا تستطيع إعدادات البائع الواحد التعبير عنه.
- المطورون الذين لا يملكون وصولاً إلى فوترة بائع معيّن. الوصول القائم على تعبئة الرصيد بدون شرط بطاقة يزيل الاعتماد على التسجيل لكل مزوّد.
تحقق من نقطة النهاية وصحّح أخطاء الخيط الأول.
قبل بدء خيط وكيل، اسرد ما تخدمه البوابة. المعرّفات التي تُعيدها /v1/models هي بالضبط السلاسل التي يجب أن تستخدمها مدخلات available_models الخاصة بك. أخطاء الخيط الأول متسقة. 401 يعني أن المفتاح الذي حلّه Zed خاطئ أو غائب: تحقق من مدخل keychain في إعدادات المزوّد، أو تأكد من أن متغيّر البيئة المُشتَقّ مرئي لعملية Zed لا لطرفيتك فقط. خطأ نموذج غير موجود من البوابة يعني أن اسماً مُعرَّفاً لا يطابق معرّفاً مخدوماً، بما فيه لاحقة الإصدار. إذا لم تظهر كتلة المزوّد في الإعدادات إطلاقاً، تحقق من صحة JSON؛ settings.json يتسامح مع التعليقات لكن ليس مع أخطاء بنيوية. بمجرد تدفّق الطلبات، تعرض لوحة APIsRouter النموذج لكل طلب، وعدد tokens، والإنفاق. خيوط الوكيل هي أحمال عمل ذات سياق طويل وأدوار كثيرة، ورؤية أي الخيوط وأي النماذج تستهلك الـ tokens هو كيف تقرر ما إذا كان نموذجك الافتراضي يستحق فتحته.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50الأسئلة الشائعة
هل يمكن لـ Zed استخدام نماذج Claude وGPT وKimi عبر مزوّد مخصص واحد؟
نعم. المزوّد المخصص هو api_url بالإضافة إلى قائمة سماح available_models. عندما تخدم نقطة النهاية عدة بائعين، عرِّف مدخلاً واحداً لكل معرّف، ويظهر كل نموذج مُعرَّف في منتقي لوحة الوكيل تحت نفس المزوّد والمفتاح، قابلاً للتبديل لكل خيط.
أين يذهب مفتاح API لمزوّد Zed المخصص؟
ليس في settings.json. أدخله في واجهة إعدادات المزوّد، التي تخزّنه في سلسلة مفاتيح النظام، أو صدّر متغيّر البيئة المُشتَقّ من مفتاح مزوّدك: مزوّد باسم apisrouter يقرأ APISROUTER_API_KEY. متغيرات البيئة لها الأسبقية على قيم keychain.
لماذا يتجاهل Zed مفتاح API الذي صدّرته في ملف تعريف shell الخاص بي؟
تطبيقات GUI المُطلَقة من الـ dock لا تستورد ملف تعريف shell الخاص بك أبداً، لذا التصدير غير مرئي لها. أطلق Zed من طرفية بأمر zed حتى يرث المتغيّر، أو استخدم واجهة الإعدادات ودع keychain يحتفظ بالمفتاح.
لماذا نموذجي مفقود من منتقي لوحة الوكيل؟
يجب تعريف نماذج المزوّد المخصص صراحة؛ لا يستطيع Zed تعداد نقطة نهاية مخصصة. تحقق من أن available_models يحتوي على سلسلة المعرّف الدقيقة، بما في ذلك لواحق الإصدار، وانسخ المعرّفات من استجابة /v1/models الخاصة بالبوابة بدلاً من كتابتها من الذاكرة.
ما الذي يتحكم فيه max_tokens وmax_output_tokens في available_models؟
max_tokens يُعرِّف نافذة سياق النموذج وmax_output_tokens يحدّ طول التوليد. يستخدم Zed هذه القيم لإدارة خيوط وكيل طويلة، لذا اضبط max_tokens على ما يدعمه النموذج فعلياً؛ التقليل منه يهدر سياقاً يملكه النموذج فعلاً.
هل يغيّر المزوّد المخصص تنبؤات التحرير في Zed؟
لا. تنبؤات التحرير تعمل على نماذج Zed المخصصة الخاصة بها وتُعدّ بشكل منفصل. المزوّد المخصص المتوافق مع OpenAI يشغّل لوحة الوكيل والمساعد المضمَّن، وهو حيث تذهب حركة بيانات /v1/chat/completions.