وجّه Continue إلى نقطة نهاية مخصصة متوافقة مع OpenAI.

Updated 2026-07-29

يُعِدّ Continue النماذج بشكل تصريحي في config.yaml. اضبط provider على openai، ووجّه apiBase إلى https://api.apisrouter.com/v1، وكل كتلة نموذج تضيفها تصبح قابلة للاختيار في الإضافة، مع إمكانية إسناد أدوار chat وedit وapply لكل نموذج تحت مفتاح واحد.

إجابة سريعة: كتلة نموذج بـ provider openai وapiBase.

يقبل مزوّد openai في Continue تجاوز apiBase، وهو المسار الموثّق لأي خادم متوافق مع OpenAI. أضف كتلة نموذج إلى config.yaml مع ضبط provider على openai، وapiBase على https://api.apisrouter.com/v1، ومعرّف النموذج الدقيق، ومفتاحك. يظهر النموذج في منتقي نماذج Continue، وكل طلب يقوم به يذهب إلى البوابة عبر /v1/chat/completions القياسي. نفس الآلية تغطي بقدر ما تريد من النماذج: كتلة واحدة لكل معرّف، جميعها تشترك في نفس apiBase والمفتاح. بما أن Continue يعامل حقل model كسلسلة نصية عادية، فإن معرّفات من بائعين مختلفين - Claude بجانب GPT بجانب DeepSeek - تجلس جنباً إلى جنب في ملف إعداد واحد.

models:
  - name: Claude Sonnet 4.6
    provider: openai
    model: claude-sonnet-4-6
    apiBase: https://api.apisrouter.com/v1
    apiKey: sk-APIsRouter-...
    roles:
      - chat
      - edit
      - apply

كيف يُسنِد Continue العمل إلى النماذج: الأدوار.

Continue (continuedev على GitHub، بنحو 34 ألف نجمة) هو وكيل IDE لـ VS Code وJetBrains، وفكرة الإعداد المميّزة له هي الأدوار (roles). كل كتلة نموذج تحمل قائمة roles، ويوجّه Continue كل نوع من العمل إلى نموذج يحمل ذلك الدور: chat للوحة المحادثة وعمل الوكيل، وedit لتحويلات الكود المضمَّنة، وapply لدمج التغييرات المقترحة في الملفات، بالإضافة إلى autocomplete وembed وrerank لأنظمتها الفرعية الخاصة. هذه هي الرافعة التي تجعل نقطة نهاية متعددة البائعين مثيرة للاهتمام في Continue تحديداً. chat يريد أقوى نموذج يمكنك تبريره؛ edit وapply استدعاءات أقصر وأكثر آلية حيث يقوم معرّف سريع من الفئة المتوسطة بالمهمة. مع apiBase واحد يخدم كل بائع، هذا التقسيم مجرد YAML خالص: معرّف Claude يحمل chat، معرّف سريع يحمل edit وapply، مفتاح واحد عبر جميعها. حد صادق واحد: autocomplete هو حمل عمل من نوع fill-in-the-middle (FIM)، ودور autocomplete في Continue مبني حول نماذج مدرَّبة على تنسيق الإكمال ذاك بدلاً من المحادثة. بوابة chat-completions هي البيت المناسب لحركة chat وedit وapply؛ أبقِ autocomplete على أياً كان الإعداد القادر على FIM الذي تستخدمه اليوم بدلاً من إسناد ذلك الدور لنموذج محادثة وتوقّع اقتراحات جيدة.

الإعداد الكامل: عدة نماذج، أدوار مقسَّمة، سياق مُعرَّف.

ملف الإعداد يعيش في ~/.continue/config.yaml. اسم كل كتلة (name) هو التسمية المعروضة في المنتقي؛ model هو المعرّف الدقيق الذي تخدمه البوابة. defaultCompletionOptions.contextLength يُعرِّف نافذة سياق النموذج، ويستخدمها Continue لتحديد كمية سياق المحادثة والملفات التي يحشوها في طلب، لذا تركها عند افتراض متحفظ على نموذج بسياق طويل يُقلِّم أبكر مما ينبغي. القدرات عادة تُكتشَف تلقائياً، لكن للمعرّفات التي لا يتعرّف عليها Continue يمكنك ذكرها صراحة: capabilities: [tool_use] يخبر وضع الوكيل بأنه يمكنه قيادة الأدوات بذلك النموذج. بخصوص المفاتيح: يقبل YAML مفتاح apiKey حرفياً، وهذا مقبول لملف محلي لا يغادر جهازك أبداً. يدعم Continue أيضاً صياغة قالب أسرار من الشكل ${{ secrets.APISROUTER_API_KEY }} للإعدادات المُدارة عبر hub الخاص به، مما يُبقي القيمة الحرفية خارج الملفات المشتركة. استخدم الشكل الذي يناسب مكان وجود إعدادك.

models:
  - name: Claude Sonnet 4.6
    provider: openai
    model: claude-sonnet-4-6
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [chat, edit]
    capabilities: [tool_use]
    defaultCompletionOptions:
      contextLength: 200000

  - name: Claude Haiku 4.5
    provider: openai
    model: claude-haiku-4-5-20251001
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [edit, apply]

  - name: GPT-5.5
    provider: openai
    model: gpt-5.5
    apiBase: https://api.apisrouter.com/v1
    apiKey: ${{ secrets.APISROUTER_API_KEY }}
    roles: [chat]

اختيار النماذج لكل دور.

إسناد الأدوار هو أيضاً آلية المقارنة. أبقِ edit وapply ثابتين، وبدّل كتلة chat بين معرّفين مرشّحين لمدة أسبوع لكل واحد، ودع عرض الاستخدام لكل مفتاح يسعّر الفرق على حِمل عملك الحقيقي. كل مرشّح هو ثلاثة أسطر من YAML مقابل نفس نقطة النهاية.

  • chat يحمل حلقة الوكيل والمحادثات الطويلة: قراءة الملفات، تخطيط التعديلات، الإجابة على الأسئلة عبر سياق حقيقي. مكان نموذج حديث (claude-sonnet-4-6، gpt-5.5) هنا، وهو حيث تذهب معظم tokens الخاصة بك.
  • edit يتعامل مع تحويلات الكود المُظلَّل. الاستدعاءات أقصر وأكثر آلية من chat، لذا معرّف سريع مثل claude-haiku-4-5-20251001 أو gpt-5.4-mini يُبقي حلقة edit مُحكَمة دون تدهور النتائج.
  • apply يدمج التغييرات المقترحة في الملفات. إنه الدور الأكثر آلية من الثلاثة، والمرشّح الأوضح لأرخص نموذج قادر، بما فيه deepseek-v4-flash.
  • embed وrerank يشغّلان استرجاع قاعدة الكود وهما نظامان فرعيان منفصلان بأشكال نماذج خاصة بهما؛ نقل حركة chat إلى بوابة لا يتطلب المساس بهما.

ادفع حسب الاستخدام · أقل من السعر الرسمي

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
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

أنماط الفشل الخاصة بـ Continue.

apiBase بدون /v1. يُلحق Continue مسارات مثل /chat/completions بالـ base الذي تعطيه، لذا https://api.apisrouter.com/v1 صحيح والمضيف العاري ليس كذلك. خطأ على شكل 404 عند أول استخدام هو هذا في الغالب. مسافات YAML البادئة تعيد تشكيل الإعداد بصمت. models قائمة من الكتل، وapiBase بمسافة بادئة خاطئة يلتصق بمدخل خاطئ أو بلا شيء. عندما يعمل نموذج واحد ولا يستطيع جاره المصادقة، قارن مسافاتهما البادئة قبل الشك في البوابة. مفتاح completions القديم. يفترض مزوّد openai افتراضياً /chat/completions، وهو ما تخدمه البوابة. useLegacyCompletionsEndpoint: true يُعيد توجيه كتلة إلى مسار /completions القديم؛ إذا ضُبط ذلك في كتلة، تتوقف طلبات chat عن العمل لذلك النموذج. توقعات responses API على معرّفات سلسلة GPT. بعض مسارات Continue يمكن أن تجرّب بروتوكول responses الأحدث الخاص بـ OpenAI لأسماء نماذج OpenAI معيّنة. بوابة chat-completions لا تخدم ذلك البروتوكول؛ إذا أخطأت كتلة من سلسلة GPT بطريقة على شكل مسار، اضبط useResponsesApi: false في تلك الكتلة حتى تبقى على /chat/completions. contextLength قديم. يحشو Continue السياق وفق defaultCompletionOptions.contextLength، لا وفق ما يمكن أن يقبله النموذج. تعريف 32k على نموذج بـ 200k لا يكسر شيئاً مرئياً؛ إنه فقط يتجاهل بصمت سياقاً دفعت ثمنه. عرِّف ما يدعمه النموذج فعلياً.

من يوجّه Continue عبر بوابة.

  • المطورون الذين يعطون الأولوية لـ IDE ويريدون Claude وGPT وDeepSeek قابلة للاختيار داخل VS Code أو JetBrains دون الحفاظ على مجموعة بيانات اعتماد لكل بائع.
  • الفرق التي تقسّم الأدوار حسب ملف التكلفة: chat حديث، edit وapply سريعان، كل دور يحمل المعرّف الذي يناسبه، جميعها تُفوتَر على سطح واحد.
  • المهندسون الذين يقارنون نماذج chat على عمل حقيقي. كل مرشّح هو كتلة YAML واحدة مقابل نفس apiBase، لا تكامل مزوّد جديد.
  • قادة الفرق الذين يوحّدون التهيئة: قالب config.yaml واحد بالإضافة إلى APISROUTER_API_KEY واحد يستبدل قائمة تحقق من مفاتيح لكل بائع، والاستخدام لكل مفتاح يُظهر ما ينفقه كل مقعد.
  • المطورون الذين لا يملكون وصولاً إلى فوترة بائع معيّن. الوصول القائم على تعبئة الرصيد بدون شرط بطاقة يزيل الاعتماد على التسجيل لكل مزوّد.

تحقق من نقطة النهاية وصحّح أخطاء الطلب الأول.

اسرد ما تخدمه البوابة قبل تعديل YAML؛ المعرّفات التي تُعيدها /v1/models هي بالضبط السلاسل التي يجب أن تطابقها حقول model الخاصة بك. أخطاء الطلب الأول تتبع نمطاً. 401 يعني أن المفتاح في تلك الكتلة تحديداً خاطئ، أو أن مرجع أسرار لم يُحلّ؛ تحقق من الكتلة التي فشلت بدلاً من الملف عموماً، لأن المفاتيح لكل كتلة تعني إخفاقات لكل كتلة. خطأ نموذج غير موجود هو خطأ إملائي في المعرّف، بما فيه لاحقة الإصدار. خطأ على شكل مسار في معرّف من سلسلة GPT يشير إلى مفتاح responses-API المذكور أعلاه. وإذا لم تُظهر الإضافة أي نماذج مخصصة إطلاقاً، فإن YAML لم يُحلَّل؛ تحقق من بنية الملف أولاً. بمجرد تدفّق الطلبات، تعرض لوحة APIsRouter النموذج لكل طلب، وعدد tokens، والإنفاق. بما أن Continue يقسّم العمل عبر الأدوار، فإن عرض الاستخدام هو أيضاً أول مكان ترى فيه نسبة حركة chat إلى edit في حِمل عملك الحقيقي، وهو الرقم الذي يخبرك أين يهم اختيار النموذج فعلياً.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

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

هل يمكن لـ Continue استخدام نماذج Claude وDeepSeek عبر مزوّد openai؟

نعم. مزوّد openai مع apiBase مضبوط هو المسار الموثّق لأي خادم متوافق مع OpenAI، ويُمرِّر Continue حقل model كسلسلة نصية عادية. أي معرّف تخدمه نقطة النهاية يعمل، بما فيه معرّفات Claude وDeepSeek، كتلة نموذج واحدة لكل معرّف.

هل تشترك كل كتل نماذجي في apiBase ومفتاح واحدين؟

كل كتلة تُعرِّف apiBase وapiKey خاصين بها، لذا يمكنها مشاركة القيم أو لا. توجيه عدة كتل إلى نفس نقطة النهاية بنفس المفتاح أمر طبيعي، ومراسي (anchors) YAML تتيح لك تعريف الزوج مرة واحدة والإشارة إليه لكل كتلة.

أي الأدوار يجب أن تتوجّه عبر البوابة؟

chat وedit وapply، التي تتحدث جميعها /v1/chat/completions. autocomplete هو حمل عمل fill-in-the-middle مبني حول نماذج بتنسيق إكمال، لذا أبقِ ذلك الدور على إعداد FIM الحالي لديك. embed وrerank نظامان فرعيان منفصلان ولا يحتاجان أي تغييرات.

لماذا تعمل كتلة نموذج واحدة بينما تُعيد أخرى 401؟

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

ماذا يفعل useLegacyCompletionsEndpoint وهل أحتاجه؟

يُعيد توجيه كتلة نموذج من /chat/completions إلى مسار /completions القديم. بالنسبة لبوابة chat-completions لا تريده؛ اتركه غير مضبوط. يوجد لخوادم completion فقط أقدم.

هل يغيّر contextLength السلوك فعلاً؟

نعم. يحشو Continue سياق المحادثة والملفات وفق defaultCompletionOptions.contextLength. التقليل منه على نموذج بسياق طويل يتجاهل السياق بصمت؛ اضبطه على ما يدعمه النموذج فعلياً.