Wijs Continue naar een aangepast OpenAI-compatibel endpoint.

Updated 2026-07-29

Continue configureert modellen declaratief in config.yaml. Zet provider op openai, wijs apiBase naar https://api.apisrouter.com/v1, en elk modelblok dat je toevoegt wordt selecteerbaar in de extensie, met de rollen chat, edit en apply toewijsbaar per model onder één sleutel.

Snel antwoord: een modelblok met provider openai en apiBase.

De provider openai van Continue accepteert een override van apiBase, wat het gedocumenteerde pad is voor elke OpenAI-compatibele server. Voeg een modelblok toe aan config.yaml met provider ingesteld op openai, apiBase ingesteld op https://api.apisrouter.com/v1, het exacte model-ID, en je sleutel. Het model verschijnt in de modelkiezer van Continue, en elk verzoek dat het maakt gaat naar de gateway via standaard /v1/chat/completions. Hetzelfde mechanisme dekt zoveel modellen als je wilt: één blok per ID, allemaal met dezelfde apiBase en sleutel. Omdat Continue het veld model als platte string behandelt, staan ID's van verschillende leveranciers — Claude naast GPT naast DeepSeek — naast elkaar in één configuratiebestand.

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

Hoe Continue werk aan modellen toewijst: rollen.

Continue (continuedev op GitHub, ruim 34K sterren) is een IDE-agent voor VS Code en JetBrains, en het bepalende configuratie-idee is rollen. Elk modelblok draagt een lijst roles, en Continue routeert elk soort werk naar een model dat die rol bekleedt: chat voor het gesprekspaneel en agentwerk, edit voor inline codetransformaties, apply voor het samenvoegen van voorgestelde wijzigingen in bestanden, plus autocomplete, embed en rerank voor hun respectieve subsystemen. Dat is de hendel die een endpoint met meerdere leveranciers specifiek interessant maakt in Continue. Chat wil het sterkste model dat je kunt verantwoorden; edit en apply zijn kortere, mechanischere aanroepen waar een snel midtier-ID het werk doet. Met één apiBase die elke leverancier bedient, is die splitsing pure YAML: een Claude-ID dat chat bekleedt, een snel ID dat edit en apply bekleedt, één sleutel voor allemaal. Eén eerlijke grens: autocomplete is een fill-in-the-middle-workload, en de rol autocomplete van Continue is gebouwd rond modellen die getraind zijn voor dat completion-formaat in plaats van chat. Een chat-completions-gateway is de juiste thuisbasis voor chat-, edit- en apply-verkeer; houd autocomplete op welke FIM-capabele setup je vandaag ook gebruikt, in plaats van die rol aan een chatmodel toe te wijzen en goede suggesties te verwachten.

Volledige instelling: meerdere modellen, gesplitste rollen, gedeclareerde context.

Het configuratiebestand staat op ~/.continue/config.yaml. De name van elk blok is het label dat in de kiezer wordt getoond; model is het exacte ID dat de gateway bedient. defaultCompletionOptions.contextLength declareert het contextvenster van het model, en Continue gebruikt het om te bepalen hoeveel gespreks- en bestandscontext het in een verzoek stopt, dus het op een conservatieve standaard laten staan bij een langecontextmodel knipt eerder af dan zou moeten. Capabilities worden meestal automatisch gedetecteerd, maar voor ID's die Continue niet herkent, kun je ze expliciet opgeven: capabilities: [tool_use] vertelt de agentmodus dat hij tools mag aansturen met dat model. Over sleutels: de YAML accepteert een letterlijke apiKey, wat prima is voor een lokaal bestand dat je machine nooit verlaat. Continue ondersteunt ook een secrets-sjabloonsyntax van de vorm ${{ secrets.APISROUTER_API_KEY }} voor configs die via zijn hub worden beheerd, wat de letterlijke waarde buiten gedeelde bestanden houdt. Gebruik de vorm die past bij waar je config leeft.

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]

Modellen kiezen per rol.

Roltoewijzing is ook het vergelijkingsmechanisme. Houd edit en apply vast, wissel het chat-blok een week per kandidaat-ID, en laat de gebruiksweergave per sleutel het verschil prijzen op je echte workload. Elke kandidaat is drie regels YAML tegen hetzelfde endpoint.

  • chat draagt de agentlus en de lange gesprekken: bestanden lezen, wijzigingen plannen, vragen beantwoorden over echte context. Een frontier-model (claude-sonnet-4-6, gpt-5.5) hoort hier thuis, en het is waar het grootste deel van je tokens naartoe gaat.
  • edit verzorgt transformaties van gemarkeerde code. Aanroepen zijn korter en mechanischer dan chat, dus een snel ID zoals claude-haiku-4-5-20251001 of gpt-5.4-mini houdt de edit-lus strak zonder resultaten te verslechteren.
  • apply voegt voorgestelde wijzigingen samen in bestanden. Het is de meest mechanische rol van de drie en de duidelijkste kandidaat voor het goedkoopste capabele model, deepseek-v4-flash inbegrepen.
  • embed en rerank voeden codebase retrieval en zijn aparte subsystemen met hun eigen modelvormen; chatverkeer naar een gateway verplaatsen vereist niet dat je ze aanraakt.

Betaal naar gebruik · onder officiële prijzen

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelOfficiële prijsOnze prijs
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

De faalmodi specifiek voor Continue.

apiBase zonder /v1. Continue voegt routepaden zoals /chat/completions toe aan de base die je opgeeft, dus https://api.apisrouter.com/v1 is correct en de kale host niet. Een 404-achtige fout bij het eerste gebruik is bijna altijd dit. YAML-inspringing hervormt de config stilletjes. models is een lijst van blokken, en een verkeerd ingesprongen apiBase hangt aan de verkeerde vermelding of aan niets. Als het ene model werkt en de buurman niet kan authenticeren, vergelijk dan hun inspringing voordat je de gateway verdenkt. De legacy-completions-schakelaar. De provider openai gebruikt standaard /chat/completions, wat de gateway ook bedient. useLegacyCompletionsEndpoint: true stuurt een blok om naar de legacy-route /completions; als een blok dat heeft ingesteld, stoppen chat-achtige verzoeken voor dat model met werken. Verwachtingen rond de responses-API bij GPT-serie-ID's. Sommige paden in Continue kunnen het nieuwere responses-protocol van OpenAI proberen voor bepaalde OpenAI-modelnamen. Een chat-completions-gateway bedient dat protocol niet; als een GPT-serie-blok foutmeldt op een route-achtige manier, zet dan useResponsesApi: false op dat blok zodat het op /chat/completions blijft. Verouderde contextLength. Continue pakt context in volgens defaultCompletionOptions.contextLength, niet volgens wat het model zou kunnen accepteren. 32k declareren op een 200k-model breekt niets zichtbaars; het gooit alleen stilletjes context weg die je hebt betaald. Declareer wat het model daadwerkelijk ondersteunt.

Wie routeert Continue via een gateway.

  • IDE-first developers die Claude, GPT en DeepSeek selecteerbaar willen binnen VS Code of JetBrains zonder één credentialset per leverancier te onderhouden.
  • Teams die rollen splitsen op kostenprofiel: frontier chat, snelle edit en apply, elke rol met het ID dat erbij past, allemaal gefactureerd op één oppervlak.
  • Engineers die chatmodellen vergelijken op echt werk. Elke kandidaat is één YAML-blok tegen dezelfde apiBase, geen nieuwe providerintegratie.
  • Teamleads die onboarding standaardiseren: één config.yaml-sjabloon plus één APISROUTER_API_KEY vervangt een checklist met sleutels per leverancier, en gebruik per sleutel toont wat elke plek uitgeeft.
  • Developers zonder toegang tot de facturering van een bepaalde leverancier. Toegang op basis van opwaarderen zonder kaartvereiste verwijdert de aanmeldingsafhankelijkheid per provider.

Verifieer het endpoint en debug het eerste verzoek.

Lijst op wat de gateway bedient voordat je de YAML bewerkt; de ID's die /v1/models retourneert, zijn precies de strings waarmee je model-velden moeten overeenkomen. Mislukkingen bij het eerste verzoek volgen een patroon. Een 401 betekent dat de sleutel in dat specifieke blok fout is, of dat een secrets-referentie niet is opgelost; controleer het blok dat faalde in plaats van het bestand in het algemeen, omdat sleutels per blok mislukkingen per blok betekenen. Een model-not-found-fout is een tikfout in het ID, versiesuffix inbegrepen. Een route-achtige fout bij een GPT-serie-ID wijst naar de hierboven behandelde responses-API-schakelaar. En als de extensie helemaal geen aangepaste modellen toont, is de YAML niet geparseerd; valideer eerst de bestandsstructuur. Zodra verzoeken vloeien, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Omdat Continue werk splitst over rollen, is de gebruiksweergave ook de eerste plek waar je de verhouding chat-tegenover-edit-verkeer op je echte workload ziet, het getal dat je vertelt waar modelkeuze daadwerkelijk toe doet.

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

Veelgestelde vragen

Kan Continue Claude- en DeepSeek-modellen gebruiken via de provider openai?

Ja. De provider openai met apiBase ingesteld is het gedocumenteerde pad voor elke OpenAI-compatibele server, en Continue stuurt het veld model door als platte string. Elk ID dat het endpoint bedient werkt, Claude- en DeepSeek-ID's inbegrepen, één modelblok per ID.

Delen al mijn modelblokken één apiBase en sleutel?

Elk blok declareert zijn eigen apiBase en apiKey, dus ze kunnen waarden delen of niet. Verschillende blokken naar hetzelfde endpoint wijzen met dezelfde sleutel is normaal, en YAML-anchors laten je het paar één keer declareren en per blok refereren.

Welke rollen moeten via de gateway routeren?

chat, edit en apply, die allemaal /v1/chat/completions spreken. Autocomplete is een fill-in-the-middle-workload gebouwd rond modellen in completion-formaat, dus houd die rol op je bestaande FIM-setup. embed en rerank zijn aparte subsystemen en hoeven niet veranderd te worden.

Waarom werkt het ene modelblok terwijl het andere 401 teruggeeft?

Sleutels zijn per blok in Continue, dus een werkende buurman bewijst niets over het falende blok. Controleer de apiKey-waarde of secrets-referentie van het falende blok, en controleer zijn inspringing: een verkeerd ingesprongen sleutel hangt aan de verkeerde lijstvermelding.

Wat doet useLegacyCompletionsEndpoint en heb ik het nodig?

Het stuurt een modelblok om van /chat/completions naar de legacy-route /completions. Voor een chat-completions-gateway wil je dit niet; laat het ongezet. Het bestaat voor oudere completion-only-servers.

Verandert contextLength daadwerkelijk gedrag?

Ja. Continue pakt gespreks- en bestandscontext in volgens defaultCompletionOptions.contextLength. Het te laag inschatten bij een langecontextmodel gooit stilletjes context weg; stel het in op wat het model werkelijk ondersteunt.