Continue را به یک endpoint سفارشی سازگار با OpenAI اشاره دهید.

Updated 2026-07-29

Continue مدل‌ها را به‌صورت اعلامی در config.yaml پیکربندی می‌کند. provider را روی openai تنظیم کنید، apiBase را به https://api.apisrouter.com/v1 اشاره دهید، و هر بلاک مدلی که اضافه کنید در افزونه قابل‌انتخاب می‌شود، با نقش‌های chat، edit، و apply قابل‌تخصیص به ازای هر مدل زیر یک کلید.

پاسخ سریع: یک بلاک مدل با provider openai و apiBase.

provider openai در Continue یک override برای apiBase می‌پذیرد، که مسیر مستند برای هر سرور سازگار با OpenAI است. یک بلاک مدل به config.yaml اضافه کنید با provider تنظیم‌شده روی openai، apiBase تنظیم‌شده روی https://api.apisrouter.com/v1، id دقیق مدل، و کلید خود. مدل در انتخاب‌گر مدل Continue ظاهر می‌شود، و هر درخواستی که می‌سازد از طریق chat/completions استاندارد /v1 به gateway می‌رود. همان مکانیزم هر تعداد مدل که بخواهید را پوشش می‌دهد: یک بلاک به ازای هر id، همه با همان apiBase و کلید مشترک. چون Continue فیلد model را یک رشته ساده در نظر می‌گیرد، id هایی از vendor های مختلف، 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، حدود ۳۴ هزار ستاره) یک agent IDE برای VS Code و JetBrains است، و ایده تعریف‌کننده پیکربندی آن نقش‌ها است. هر بلاک مدل یک فهرست roles حمل می‌کند، و Continue هر نوع کار را به مدلی که آن نقش را دارد مسیردهی می‌کند: chat برای پنل گفتگو و کار agent، edit برای تبدیل‌های کد inline، apply برای ادغام تغییرات پیشنهادی داخل فایل‌ها، به‌علاوه autocomplete، embed، و rerank برای زیرسیستم‌های مربوطه. این اهرمی است که یک endpoint چند-vendor را در Continue مشخصاً جالب می‌کند. chat قوی‌ترین مدلی که می‌توانید توجیه کنید را می‌خواهد؛ edit و apply فراخوانی‌های کوتاه‌تر و مکانیکی‌تری هستند جایی که یک id سریع mid-tier کار را انجام می‌دهد. با یک apiBase که هر vendor را سرویس می‌دهد، آن تقسیم YAML خالص است: یک id Claude که chat را دارد، یک id سریع که edit و apply را دارد، یک کلید در همه آن‌ها. یک مرز صادقانه: autocomplete یک حجم کاری fill-in-the-middle است، و نقش autocomplete در Continue حول مدل‌های train‌شده برای آن فرمت تکمیل ساخته شده نه چت. یک gateway chat-completions خانه درست برای ترافیک chat، edit، و apply است؛ autocomplete را روی هر راه‌اندازی FIM-پذیری که امروز استفاده می‌کنید نگه دارید به‌جای تخصیص آن نقش به یک مدل چت و انتظار پیشنهادهای خوب.

راه‌اندازی کامل: چند مدل، نقش‌های تفکیک‌شده، context اعلام‌شده.

فایل پیکربندی در ~/.continue/config.yaml زندگی می‌کند. name هر بلاک برچسبی است که در انتخاب‌گر نشان داده می‌شود؛ model همان id دقیقی است که gateway سرویس می‌دهد. defaultCompletionOptions.contextLength context window مدل را اعلام می‌کند، و Continue از آن برای تصمیم‌گیری اینکه چقدر گفتگو و context فایل داخل یک درخواست بسته‌بندی کند استفاده می‌کند، پس رها کردن آن روی یک پیش‌فرض محافظه‌کارانه روی یک مدل long-context زودتر از لازم truncate می‌کند. قابلیت‌ها معمولاً auto-detect می‌شوند، اما برای id هایی که Continue نمی‌شناسد می‌توانید صریح بیانشان کنید: capabilities: [tool_use] به حالت agent می‌گوید ممکن است با آن مدل ابزار را هدایت کند. درباره کلیدها: YAML یک apiKey تحت‌اللفظی می‌پذیرد، که برای یک فایل محلی که هرگز از دستگاه شما خارج نمی‌شود مناسب است. Continue همچنین یک syntax قالب secrets به شکل ${{ 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 را بین دو id کاندید برای یک هفته هرکدام سوییچ کنید، و بگذارید نمای usage هر-کلید تفاوت را روی حجم کاری واقعی شما قیمت‌گذاری کند. هر کاندید سه خط YAML در برابر همان endpoint است.

  • chat loop agent و گفتگوهای بلند را حمل می‌کند: خواندن فایل‌ها، برنامه‌ریزی edit، پاسخ به سؤالات روی context واقعی. یک مدل مرزی (claude-sonnet-4-6، gpt-5.5) اینجا تعلق دارد، و اینجاست که بیشتر token های شما می‌روند.
  • edit تبدیل‌های کد highlight-شده را مدیریت می‌کند. فراخوانی‌ها کوتاه‌تر و مکانیکی‌تر از chat هستند، پس یک id سریع مثل claude-haiku-4-5-20251001 یا gpt-5.4-mini حلقه edit را بدون تنزل نتایج تنگ نگه می‌دارد.
  • apply تغییرات پیشنهادی را داخل فایل‌ها ادغام می‌کند. مکانیکی‌ترین نقش از این سه است و واضح‌ترین کاندید برای کم‌هزینه‌ترین مدل قادر، شامل deepseek-v4-flash.
  • embed و rerank بازیابی codebase را قدرت می‌دهند و زیرسیستم‌های جداگانه‌ای با شکل مدل خودشان هستند؛ انتقال ترافیک chat به یک gateway نیازی به لمس آن‌ها ندارد.

پرداخت بر اساس مصرف · پایین‌تر از قیمت رسمی

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 مسیرهای route مثل /chat/completions را به base ای که می‌دهید پیوست می‌کند، پس https://api.apisrouter.com/v1 درست است و host برهنه نیست. یک خطای شکل-404 در اولین استفاده تقریباً همیشه همین است. تورفتگی YAML بی‌صدا پیکربندی را دوباره شکل می‌دهد. models یک فهرست بلاک است، و یک apiBase با تورفتگی اشتباه به entry اشتباه یا هیچ‌چیز پیوست می‌شود. وقتی یک مدل کار می‌کند و همسایه‌اش نمی‌تواند احراز هویت کند، قبل از شک به gateway تورفتگی‌شان را diff کنید. toggle قدیمی completions. provider openai به /chat/completions پیش‌فرض می‌شود، که همان چیزی است که gateway سرویس می‌دهد. useLegacyCompletionsEndpoint: true یک بلاک را به مسیر قدیمی /completions هدایت مجدد می‌کند؛ اگر یک بلاک آن را تنظیم کرده باشد، درخواست‌های شکل-چت برای آن مدل کار نمی‌کنند. انتظارات Responses-API روی id های سری GPT. برخی مسیرهای Continue می‌توانند برای نام‌های مدل خاص OpenAI پروتکل جدیدتر responses را امتحان کنند. یک gateway chat-completions آن پروتکل را سرویس نمی‌دهد؛ اگر یک بلاک سری GPT با خطای شکل-route شکست بخورد، useResponsesApi: false را روی آن بلاک تنظیم کنید تا روی /chat/completions بماند. contextLength کهنه. Continue context را طبق defaultCompletionOptions.contextLength بسته‌بندی می‌کند، نه طبق آنچه مدل می‌تواند بپذیرد. اعلام ۳۲k روی یک مدل ۲۰۰k به‌صورت قابل‌مشاهده چیزی را خراب نمی‌کند؛ فقط بی‌صدا context ای که برایش پول داده‌اید را دور می‌ریزد. آنچه را مدل واقعاً پشتیبانی می‌کند اعلام کنید.

چه کسانی Continue را از طریق یک gateway مسیردهی می‌کنند.

  • توسعه‌دهندگان IDE-محور که می‌خواهند Claude، GPT، و DeepSeek داخل VS Code یا JetBrains قابل‌انتخاب باشند بدون نگه‌داری یک مجموعه credential به ازای هر vendor.
  • تیم‌هایی که نقش‌ها را بر اساس پروفایل هزینه تفکیک می‌کنند: chat مرزی، edit و apply سریع، هر نقش با id ای که برایش مناسب است، همه روی یک سطح صورت‌حساب.
  • مهندسانی که مدل‌های chat را روی کار واقعی مقایسه می‌کنند. هر کاندید یک بلاک YAML در برابر همان apiBase است، نه یک یکپارچه‌سازی provider جدید.
  • رهبران تیم که onboarding را استاندارد می‌کنند: یک قالب config.yaml به‌علاوه یک APISROUTER_API_KEY یک چک‌لیست کلید هر-vendor را جایگزین می‌کند، و usage هر-کلید نشان می‌دهد هر seat چقدر خرج می‌کند.
  • توسعه‌دهندگان بدون دسترسی به صورت‌حساب یک vendor خاص. دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی ثبت‌نام هر-provider را حذف می‌کند.

endpoint را تأیید کنید و اولین درخواست را عیب‌یابی کنید.

قبل از ویرایش YAML آنچه gateway سرویس می‌دهد را فهرست کنید؛ id های برگردانده‌شده توسط /v1/models دقیقاً همان رشته‌هایی هستند که فیلدهای model شما باید با آن مطابقت داشته باشند. شکست‌های درخواست اول از یک الگو پیروی می‌کنند. یک 401 یعنی کلید داخل آن بلاک خاص اشتباه است، یا یک reference secrets resolve نشده؛ بلاکی که شکست خورده را چک کنید نه فایل به‌طور کلی، چون کلیدهای هر-بلاک یعنی شکست‌های هر-بلاک. یک خطای model-not-found یک غلط‌تایپی id است، شامل پسوند نسخه. یک خطای شکل-route روی یک id سری GPT به toggle responses-API که بالا پوشش داده شد اشاره می‌کند. و اگر افزونه اصلاً هیچ مدل سفارشی‌ای نشان ندهد، YAML parse نشده؛ اول ساختار فایل را اعتبارسنجی کنید. وقتی درخواست‌ها جریان یابند، کنسول APIsRouter مدل، شمارش token، و هزینه به ازای هر درخواست را نشان می‌دهد. چون Continue کار را بین نقش‌ها تقسیم می‌کند، نمای usage همچنین اولین جایی است که نسبت ترافیک chat-به-edit را روی حجم کاری واقعی خود می‌بینید، که همان عددی است که می‌گوید انتخاب مدل واقعاً کجا اهمیت دارد.

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

پرسش‌های پرتکرار

آیا Continue می‌تواند مدل‌های Claude و DeepSeek را از طریق provider openai استفاده کند؟

بله. provider openai با apiBase تنظیم‌شده مسیر مستند برای هر سرور سازگار با OpenAI است، و Continue فیلد model را به‌عنوان یک رشته ساده منتقل می‌کند. هر id ای که endpoint سرویس می‌دهد کار می‌کند، شامل id های Claude و DeepSeek، یک بلاک مدل به ازای هر id.

آیا همه بلاک‌های مدل من یک apiBase و کلید مشترک دارند؟

هر بلاک apiBase و apiKey خودش را اعلام می‌کند، پس می‌توانند مقادیر را مشترک بگذارند یا نه. اشاره چند بلاک به همان endpoint با همان کلید عادی است، و anchor های YAML اجازه می‌دهند جفت را یک بار اعلام و به ازای هر بلاک reference کنید.

کدام نقش‌ها باید از طریق gateway مسیردهی شوند؟

chat، edit، و apply، که همه /v1/chat/completions را صحبت می‌کنند. Autocomplete یک حجم کاری fill-in-the-middle است که حول مدل‌های فرمت-تکمیل ساخته شده، پس آن نقش را روی راه‌اندازی FIM موجود خود نگه دارید. embed و rerank زیرسیستم‌های جداگانه‌اند و نیازی به تغییر ندارند.

چرا یک بلاک مدل کار می‌کند در حالی که دیگری 401 برمی‌گرداند؟

کلیدها در Continue به ازای هر بلاک هستند، پس یک همسایه کارکردن چیزی درباره بلاک شکست‌خورده ثابت نمی‌کند. مقدار apiKey یا reference secrets بلاک شکست‌خورده را چک کنید، و تورفتگی آن را چک کنید: یک کلید با تورفتگی اشتباه به entry اشتباه فهرست پیوست می‌شود.

useLegacyCompletionsEndpoint چه کاری انجام می‌دهد و آیا به آن نیاز دارم؟

یک بلاک مدل را از /chat/completions به مسیر قدیمی /completions هدایت مجدد می‌کند. برای یک gateway chat-completions آن را نمی‌خواهید؛ آن را تنظیم‌نشده رها کنید. برای سرورهای قدیمی completion-only وجود دارد.

آیا contextLength واقعاً رفتار را تغییر می‌دهد؟

بله. Continue گفتگو و context فایل را طبق defaultCompletionOptions.contextLength بسته‌بندی می‌کند. کم‌اعلام‌کردن آن روی یک مدل long-context بی‌صدا context را دور می‌ریزد؛ آن را روی چیزی که مدل واقعاً پشتیبانی می‌کند تنظیم کنید.