وجّه NextChat نحو نقطة نهاية مخصصة متوافقة مع OpenAI.
Updated 2026-07-29
يتجاوز NextChat مضيف API الخاص به بمتغيّر بيئة واحد BASE_URL على نشرات الخادم، أو نقطة نهاية مخصصة داخل التطبيق في Settings على العملاء. أضف معرّفات الكتالوج عبر CUSTOM_MODELS بلاحقة @OpenAI وتظهر Claude وGemini وDeepSeek في نفس منتقي النموذج تحت مفتاح واحد.
إجابة سريعة: BASE_URL، مفتاح واحد، وقائمة نماذج.
على نشرة خادم (Vercel أو Docker أو Node عادي)، ثلاثة متغيرات بيئة تقوم بالعمل كاملاً. BASE_URL يتجاوز إلى أين تذهب طلبات API؛ يصفه ملف README كـ "تجاوز base URL لطلب OpenAI API" بافتراضي https://api.openai.com، وتُدخَل القيمة بدون /v1 لأن NextChat يُلحِق مسار الطلب بنفسه. OPENAI_API_KEY يحمل مفتاح البوابة. CUSTOM_MODELS يتحكم في منتقي النموذج: علامة الجمع تضيف نموذجاً، علامة الطرح تخفي واحداً، -all تمسح القائمة الافتراضية، وname=displayName يعيد تسمية مُدخَل. التفصيل الذي يجعل معرّفات متعددة البائعين تعمل هو لاحقة المزوّد. يشحن NextChat مسارات كود عميل منفصلة لعدة بائعين، لذا معرّف Claude عارٍ مُضاف إلى CUSTOM_MODELS يمكن أن يظهر تحت مسار Anthropic، الذي يتوقع مفتاحاً وشكل طلب مختلفَين. إلحاق @OpenAI بالمعرّف، كما في +claude-sonnet-4-6@OpenAI، يُثبِّت النموذج على المسار المتوافق مع OpenAI بحيث يذهب الطلب إلى BASE_URL الخاص بك بتنسيق chat-completions قياسي بغض النظر عن أي بائع دَرَّب النموذج.
BASE_URL=https://api.apisrouter.com # no /v1
OPENAI_API_KEY=sk-APIsRouter-...
CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI,+deepseek-v4-pro@OpenAI
DEFAULT_MODEL=claude-sonnet-4-6كيف يحل NextChat نقطة نهايته.
NextChat (ChatGPTNextWeb على GitHub، بنحو 88 ألف نجمة) هي واحدة من أكثر واجهات المحادثة نشراً في الوجود: تطبيق ويب خفيف بنشر Vercel بنقرة واحدة بالإضافة إلى عملاء مُحزَّمين لـ iOS وmacOS وAndroid وWindows وLinux. شهرتها تأتي بالضبط من الآلية التي تستخدمها هذه الصفحة، كل شيء سطح إعداد، ونقطة النهاية مجرد إعداد آخر. هناك سطحان من ذلك. تقرأ نشرات الخادم متغيرات البيئة عند البناء والتشغيل: BASE_URL يقرر المضيف، OPENAI_API_KEY يُصادِق، وCUSTOM_MODELS يُشكِّل المنتقي لكل مستخدم لتلك النشرة. يكشف العملاء وواجهة الويب أيضاً مساراً داخل التطبيق: Settings، Model Provider، اختر OpenAI، ثم املأ حقلي نقطة النهاية والمفتاح وأدرِج معرّفات إضافية في حقل أسماء النماذج المخصصة. مسار داخل التطبيق يخزّن القيم محلياً لكل جهاز، مما يجعله السطح الصحيح لعميل شخصي، بينما متغيرات البيئة هي السطح الصحيح لنشرة يستخدمها آخرون. في كلتا الحالتين، الطلب الذي يغادر NextChat هو إكمال محادثة قياسي مقابل نقطة نهايتك بمعرّف النموذج كسلسلة نصية عادية. مع بوابة متعددة البائعين خلف BASE_URL، نفس النشرة تخدم Claude للإجابات الطويلة، ومعرّف Gemini سريعاً للأسئلة السريعة، وDeepSeek أو GLM للحركة ثنائية اللغة، كل ذلك عبر مفتاح واحد.
الإعداد الكامل: نشرة خادم أو إعدادات داخل التطبيق.
بالنسبة لنشرة Vercel، اضبط المتغيرات في إعدادات بيئة المشروع وأعِد النشر؛ يخبز Vercel قيم البيئة عند البناء، لذا تعديل متغيّر دون إعادة النشر لا يغيّر شيئاً. بالنسبة لـ Docker، مرّر نفس المتغيرات بأعلام -e أو ملف بيئة. متغيّر CODE يستحق الضبط على أي نشرة عامة، فهو يقيّد الوصول بكلمة مرور بحيث لا يستطيع الغرباء إنفاق مفتاحك. لا يحتاج مسار داخل التطبيق إلى أي نشرة على الإطلاق. في Settings، اختر مزوّد OpenAI، استبدل نقطة النهاية بـ https://api.apisrouter.com، الصق المفتاح، وأضف معرّفات في حقل أسماء النماذج المخصصة بنفس صياغة متغيّر البيئة. هكذا تعمل عملاء سطح المكتب والهاتف المحمول مع بوابة، وهي أيضاً أسرع طريقة لاختبار القيم قبل الالتزام بها في نشرة خادم. DEFAULT_MODEL يختار ما تبدأ عليه المحادثات الجديدة، وهذا يهم أكثر مما يبدو على نشرة مشتركة: معظم المستخدمين لا يغيّرون النموذج أبداً، لذا المعرّف الافتراضي هو حيث يحطّ معظم الإنفاق. اضبطه عمداً على النموذج الذي تريده يحمل الحركة العرضية.
docker run -d -p 3000:3000 \
-e BASE_URL=https://api.apisrouter.com \
-e OPENAI_API_KEY=$APISROUTER_API_KEY \
-e CUSTOM_MODELS="-all,+claude-sonnet-4-6@OpenAI,+claude-haiku-4-5-20251001@OpenAI,+gemini-3.5-flash@OpenAI" \
-e DEFAULT_MODEL=claude-haiku-4-5-20251001 \
-e CODE=your-access-password \
yidadaa/chatgpt-next-webاختيار النماذج للمنتقي.
لأن المنتقي بأكمله يُفوتَر عبر مفتاح واحد، حلقة الضبط الدقيق مُلاحَظة: شغّل أسبوعاً، اقرأ الاستخدام لكل نموذج في اللوحة، وأعِد تشكيل CUSTOM_MODELS حول ما نقر عليه الناس فعلياً بدلاً من ما توقّعته.
- ابدأ القائمة بـ -all. المنتقي الجاهز قائمة طويلة خاصة بـ OpenAI فقط؛ مسحه وإضافة أربعة أو خمسة معرّفات مقصودة يعطي المستخدمين منتقياً كل خيار فيه سعّرته أنت.
- النموذج الافتراضي يحمل النشرة. claude-haiku-4-5-20251001 أو gemini-3.5-flash كـ DEFAULT_MODEL يُبقي الغالبية العرضية من الأدوار سريعة وغير مكلفة، مع معرّفات أقوى على بُعد نقرة واحدة.
- العمل الطويل يستحق فتحة حديثة. claude-sonnet-4-6 وgpt-5.5 هما الخياران اللذان يلجأ إليهما المستخدمون عندما تهم مسودة أو تحليل.
- النشرات ثنائية اللغة يجب أن تتضمن deepseek-v4-pro أو glm-5.2؛ يملك NextChat قاعدة تثبيت ضخمة ناطقة بالصينية وتلك المعرّفات تناسب تلك الحركة أصلاً.
- إعادة التسمية توثيق مجاني: مُدخَلات على طراز claude-sonnet-4-6=Sonnet (writing) تجعل المنتقي واضحاً بذاته للمستخدمين غير التقنيين.
ادفع حسب الاستخدام · أقل من السعر الرسمي
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 Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
أنماط الفشل الخاصة بـ NextChat.
خطأ /v1 يسير في الاتجاه المعاكس لمعظم الأدوات. يُلحِق NextChat مسار الطلب بـ BASE_URL بنفسه، لذا القيمة تنتمي بدون /v1؛ لصق https://api.apisrouter.com/v1 ينتج مسارات مضاعَفة تُعيد 404. أدوات مثل LibreChat تتوقع تضمين /v1، وهذا بالضبط لماذا يحمل الناس العادة الخاطئة في كلا الاتجاهين. معرّف Claude يخطئ حول المفاتيح أو الرؤوس هو لاحقة @OpenAI المفقودة. بدونها، يمكن لـ NextChat توجيه المعرّف عبر مساره الأصلي Anthropic، الذي لا يستشير BASE_URL الخاص ببوابتك أبداً ويتوقع مصادقة بتنسيق البائع. ثبّت كل معرّف بوابة بـ @OpenAI وتأخذ كل الطلبات المسار المتوافق. تعديلات البيئة التي لا تغيّر شيئاً هي مشكلة إعادة نشر. على Vercel تُقرَأ المتغيرات عند البناء؛ على Docker تحتاج الحاوية إلى إعادة إنشاء. إعدادات داخل التطبيق، بالمقابل، تسري فوراً لكن فقط على ذلك الجهاز، وهو النصف الآخر من نفس الالتباس. CODE وOPENAI_API_KEY يُخلَطان بشكل مفاجئ. CODE هو كلمة مرور الوصول التي يكتبها المستخدمون في الواجهة؛ المفتاح هو ما ينفقه الخادم. إذا أبلغ المستخدمون عن صفحة غير مُصرَّح بها قبل أي محادثة، فذلك CODE؛ إذا فشلت المحادثات مقابل نقطة النهاية، فذلك المفتاح.
من يوجّه NextChat عبر بوابة.
- الأشخاص الذين يشغّلون نشرة شخصية على Vercel ويريدون مفتاحاً واحداً مقاساً خلفها بدلاً من اشتراك لكل بائع.
- الفرق الصغيرة التي تشارك نسخة NextChat، تستخدم CODE للتحكم في الوصول ومفتاح بوابة واحد بحيث يُضاعِف سجل الاستخدام دور تقرير التكلفة.
- مستخدمو عملاء سطح المكتب والهاتف المحمول الذين يوجّهون نقطة النهاية داخل التطبيق نحو بوابة للوصول إلى Claude وGemini وDeepSeek من منتقي واحد على كل جهاز.
- المستخدمون ثنائيو اللغة الذين يمزجون معرّفات GLM وDeepSeek بـ Claude وGPT في نشرة واحدة، ما تجعله صوامع البائع الأصلية غير عملي.
- المطورون الذين لا يملكون وصولاً إلى فوترة بائع معيّن. الوصول القائم على تعبئة الرصيد بدون شرط بطاقة يزيل الاعتماد على التسجيل لكل مزوّد.
تحقق من نقطة النهاية وصحّح أخطاء أول محادثة.
أثبِت صحة نقطة النهاية قبل النشر: اسرد النماذج بالمفتاح وأكّد أن كل معرّف تنوي وضعه في CUSTOM_MODELS يظهر، مهجَّى بالضبط. تُمرَّر المعرّفات كسلاسل نصية، لذا مخرجات /v1/models هي الهجاء المرجعي. ثم انشر وأرسل رسالة واحدة لكل نموذج في المنتقي. 404 على كل شيء هو خطأ /v1-في-BASE_URL. 401 هو المفتاح، إما خاطئ أو غير موجود في البيئة التي استخدمها البناء فعلياً. خطأ على معرّفات Claude فقط هو لاحقة @OpenAI المفقودة. منتقي يُظهِر نماذج لم تضفها أبداً يعني أن CUSTOM_MODELS فقد بادئة -all أو أن المتغيّر لم يصل إلى البناء. بمجرد تدفّق المحادثات، تعرض لوحة APIsRouter النموذج لكل طلب، وعدد tokens، والإنفاق. بالنسبة لنشرة بأكثر من مستخدم واحد، تلك النظرة تجيب على السؤال الذي يطرحه كل مسؤول NextChat في النهاية، أي نموذج يأكل الرصيد بهدوء، ببيانات بدلاً من تخمينات.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50الأسئلة الشائعة
هل يجب أن يتضمن BASE_URL الخاص بـ NextChat لاحقة /v1؟
لا. يُلحِق NextChat مسار الطلب بنفسه، لذا اضبط BASE_URL=https://api.apisrouter.com بدون /v1. تضمينه ينتج مسارات مضاعَفة تُعيد 404. هذا عكس اصطلاح أدوات مثل LibreChat، التي تتوقع تضمين /v1 في base URL.
كيف أضيف نماذج Claude أو Gemini إلى NextChat عبر نقطة نهاية واحدة؟
أضفها في CUSTOM_MODELS بلاحقة @OpenAI، مثلاً +claude-sonnet-4-6@OpenAI. تُثبِّت اللاحقة المعرّف على مسار الطلب المتوافق مع OpenAI بحيث يذهب إلى BASE_URL الخاص بك، بدلاً من مسارات عميل NextChat الأصلية لـ Anthropic أو Google.
ما الفرق بين متغيرات البيئة والإعدادات داخل التطبيق؟
متغيرات البيئة تُعِدّ نشرة خادم لكل مستخدم وتتطلب إعادة نشر لتغييرها. نقطة النهاية المخصصة داخل التطبيق في Settings تخزّن القيم محلياً لكل جهاز وتسري فوراً، مما يناسب عملاء سطح المكتب والهاتف المحمول الشخصيين.
كيف أزيل قائمة نماذج OpenAI الافتراضية من المنتقي؟
ابدأ CUSTOM_MODELS بـ -all، ثم أضف المعرّفات صراحة: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. يرى المستخدمون حينها فقط النماذج التي أدرجتها وسعّرتها عمداً.
ماذا يفعل متغيّر CODE؟
يضبط كلمة مرور وصول واحدة أو أكثر للنشرة. يجب على الزوّار إدخال رمز قبل المحادثة، مما يمنع عنوان Vercel عاماً من إنفاق مفتاحك. لا علاقة له بمفتاح API نفسه.
لماذا لم يكن لتغيير متغيّر بيئة أي أثر؟
يقرأ NextChat قيم البيئة عند البناء أو بدء الحاوية. على Vercel، عدّل المتغيّر وأعِد النشر؛ على Docker، أعِد إنشاء الحاوية. فقط إعدادات داخل التطبيق تسري دون إعادة تشغيل، وتلك تعيش لكل جهاز.