Punta Continue verso un endpoint personalizzato compatibile OpenAI.
Updated 2026-07-29
Continue configura i modelli in modo dichiarativo in config.yaml. Imposta provider su openai, punta apiBase su https://api.apisrouter.com/v1, e ogni blocco modello che aggiungi diventa selezionabile nell'estensione, con i ruoli chat, edit e apply assegnabili per modello sotto una chiave.
Risposta rapida: un blocco modello con provider openai e apiBase.
Il provider openai di Continue accetta un override apiBase, che è il percorso documentato per qualsiasi server compatibile OpenAI. Aggiungi un blocco modello a config.yaml con provider impostato su openai, apiBase impostato su https://api.apisrouter.com/v1, l'id esatto del modello, e la tua chiave. Il modello compare nel selettore di modelli di Continue, e ogni richiesta che fa va al gateway tramite /v1/chat/completions standard. Lo stesso meccanismo copre tutti i modelli che vuoi: un blocco per id, tutti condividendo la stessa apiBase e chiave. Poiché Continue tratta il campo model come una semplice stringa, id di fornitori diversi, Claude accanto a GPT accanto a DeepSeek, risiedono fianco a fianco in un unico file di configurazione.
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
- applyCome Continue assegna il lavoro ai modelli: i ruoli.
Continue (continuedev su GitHub, circa 34K stelle) è un agente IDE per VS Code e JetBrains, e la sua idea di configurazione distintiva sono i ruoli. Ogni blocco modello porta una lista roles, e Continue instrada ogni tipo di lavoro verso un modello che detiene quel ruolo: chat per il pannello di conversazione e il lavoro dell'agente, edit per le trasformazioni di codice inline, apply per unire le modifiche proposte nei file, più autocomplete, embed e rerank per i rispettivi sottosistemi. Questa è la leva che rende un endpoint multi-fornitore interessante specificamente in Continue. Chat vuole il modello più forte che tu possa giustificare; edit e apply sono chiamate più brevi e più meccaniche dove un id veloce di fascia media fa il lavoro. Con una apiBase che serve ogni fornitore, quella divisione è puro YAML: un id Claude che detiene chat, un id veloce che detiene edit e apply, una chiave per tutti loro. Un confine onesto: autocomplete è un carico di lavoro fill-in-the-middle, e il ruolo autocomplete di Continue è costruito attorno a modelli addestrati per quel formato di completamento piuttosto che per la chat. Un gateway chat-completions è la casa giusta per il traffico chat, edit e apply; mantieni autocomplete su qualunque configurazione capace di FIM tu usi oggi invece di assegnare quel ruolo a un modello di chat aspettandoti buoni suggerimenti.
Configurazione completa: più modelli, ruoli divisi, contesto dichiarato.
Il file di configurazione risiede in ~/.continue/config.yaml. Il name di ciascun blocco è l'etichetta mostrata nel selettore; model è l'id esatto servito dal gateway. defaultCompletionOptions.contextLength dichiara la finestra di contesto del modello, e Continue lo usa per decidere quanto contesto di conversazione e file impacchettare in una richiesta, quindi lasciarlo su un default conservativo su un modello a contesto lungo tronca prima del dovuto. Le capabilities sono di solito rilevate automaticamente, ma per gli id che Continue non riconosce puoi dichiararle esplicitamente: capabilities: [tool_use] dice alla modalità agente che può guidare strumenti con quel modello. Sulle chiavi: lo YAML accetta un apiKey letterale, il che va bene per un file locale che non lascia mai la tua macchina. Continue supporta anche una sintassi di template dei segreti nella forma ${{ secrets.APISROUTER_API_KEY }} per config gestite tramite il suo hub, che mantiene il valore letterale fuori dai file condivisi. Usa la forma che corrisponde a dove risiede la tua config.
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]Scegliere i modelli per ruolo.
L'assegnazione dei ruoli è anche il meccanismo di confronto. Tieni fissi edit e apply, scambia il blocco chat tra due id candidati per una settimana ciascuno, e lascia che la vista di utilizzo per chiave prezzi la differenza sul tuo carico di lavoro reale. Ogni candidato sono tre righe di YAML contro lo stesso endpoint.
- chat porta il ciclo dell'agente e le conversazioni lunghe: leggere file, pianificare modifiche, rispondere a domande su contesto reale. Un modello di frontiera (claude-sonnet-4-6, gpt-5.5) appartiene qui, ed è dove va la maggior parte dei tuoi token.
- edit gestisce le trasformazioni di codice evidenziato. Le chiamate sono più brevi e più meccaniche di chat, quindi un id veloce come claude-haiku-4-5-20251001 o gpt-5.4-mini mantiene stretto il ciclo edit senza degradare i risultati.
- apply unisce le modifiche proposte nei file. È il ruolo più meccanico dei tre e il candidato più chiaro per il modello capace meno costoso, deepseek-v4-flash incluso.
- embed e rerank alimentano il retrieval della codebase e sono sottosistemi separati con le proprie forme di modello; spostare il traffico chat verso un gateway non richiede toccarli.
Pagamento a consumo · sotto i prezzi ufficiali
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modello | Prezzo ufficiale | Il nostro prezzo |
|---|---|---|
| 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 |
Le modalità di errore specifiche di Continue.
apiBase senza /v1. Continue aggiunge percorsi di route come /chat/completions alla base che gli dai, quindi https://api.apisrouter.com/v1 è corretto e l'host nudo non lo è. Un errore a forma di 404 al primo utilizzo è quasi sempre questo. L'indentazione YAML rimodella silenziosamente la config. models è una lista di blocchi, e un apiBase mal indentato si attacca alla voce sbagliata o a niente. Quando un modello funziona e il suo vicino non riesce ad autenticarsi, confronta la loro indentazione prima di sospettare del gateway. Il toggle completions legacy. Il provider openai ha come default /chat/completions, che è ciò che serve il gateway. useLegacyCompletionsEndpoint: true reindirizza un blocco verso la route legacy /completions; se un blocco lo ha impostato, le richieste in stile chat smettono di funzionare per quel modello. Aspettative Responses-API sugli id della serie GPT. Alcuni percorsi di Continue possono provare il più recente protocollo responses di OpenAI per certi nomi di modello OpenAI. Un gateway chat-completions non serve quel protocollo; se un blocco della serie GPT dà errore in modo simile a un problema di route, imposta useResponsesApi: false su quel blocco così che resti su /chat/completions. contextLength obsoleto. Continue impacchetta il contesto secondo defaultCompletionOptions.contextLength, non secondo ciò che il modello potrebbe accettare. Dichiarare 32k su un modello da 200k non rompe nulla visibilmente; scarta solo silenziosamente contesto che hai pagato. Dichiara ciò che il modello supporta davvero.
Chi instrada Continue tramite un gateway.
- Sviluppatori IDE-first che vogliono Claude, GPT e DeepSeek selezionabili dentro VS Code o JetBrains senza mantenere un set di credenziali per fornitore.
- Team che dividono i ruoli per profilo di costo: chat di frontiera, edit e apply veloci, ogni ruolo che detiene l'id adatto a esso, tutti fatturati su un'unica superficie.
- Ingegneri che confrontano modelli di chat su lavoro reale. Ogni candidato è un blocco YAML contro la stessa apiBase, non una nuova integrazione di provider.
- Team lead che standardizzano l'onboarding: un template config.yaml più una APISROUTER_API_KEY sostituisce una checklist di chiavi per fornitore, e l'utilizzo per chiave mostra cosa spende ciascuna postazione.
- Sviluppatori senza accesso alla fatturazione di un dato fornitore. L'accesso basato su ricarica senza obbligo di carta rimuove la dipendenza dalla registrazione per provider.
Verifica l'endpoint e fai debug della prima richiesta.
Elenca cosa serve il gateway prima di modificare lo YAML; gli id restituiti da /v1/models sono esattamente le stringhe che i tuoi campi model devono corrispondere. I fallimenti della prima richiesta seguono uno schema. Un 401 significa che la chiave in quel blocco specifico è sbagliata, o un riferimento ai segreti non si è risolto; controlla il blocco che ha fallito piuttosto che il file in generale, perché chiavi per blocco significano fallimenti per blocco. Un errore modello-non-trovato è un errore di battitura nell'id, suffisso di versione incluso. Un errore a forma di route su un id della serie GPT punta al toggle responses-API trattato sopra. E se l'estensione non mostra affatto modelli personalizzati, lo YAML non si è analizzato correttamente; valida prima la struttura del file. Una volta che le richieste scorrono, la console di APIsRouter mostra modello per richiesta, conteggi dei token e spesa. Poiché Continue divide il lavoro tra i ruoli, la vista di utilizzo è anche il primo posto dove vedi il rapporto di traffico chat-edit sul tuo carico di lavoro reale, che è il numero che ti dice dove conta davvero la scelta del modello.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Domande frequenti
Continue può usare modelli Claude e DeepSeek tramite il provider openai?
Sì. Il provider openai con apiBase impostato è il percorso documentato per qualsiasi server compatibile OpenAI, e Continue inoltra il campo model come semplice stringa. Funziona qualsiasi id servito dall'endpoint, id Claude e DeepSeek inclusi, un blocco modello per id.
Tutti i miei blocchi modello condividono una apiBase e una chiave?
Ogni blocco dichiara la propria apiBase e apiKey, quindi possono condividere i valori oppure no. Puntare più blocchi verso lo stesso endpoint con la stessa chiave è normale, e gli anchor YAML ti permettono di dichiarare la coppia una volta e referenziarla per blocco.
Quali ruoli dovrebbero instradare attraverso il gateway?
chat, edit e apply, che parlano tutti /v1/chat/completions. Autocomplete è un carico di lavoro fill-in-the-middle costruito attorno a modelli in formato completion, quindi mantieni quel ruolo sulla tua configurazione FIM esistente. embed e rerank sono sottosistemi separati e non necessitano modifiche.
Perché un blocco modello funziona mentre un altro restituisce 401?
Le chiavi sono per blocco in Continue, quindi un vicino funzionante non prova nulla sul blocco che fallisce. Controlla il valore apiKey o il riferimento ai segreti del blocco che fallisce, e controlla la sua indentazione: una chiave mal indentata si attacca alla voce di lista sbagliata.
Cosa fa useLegacyCompletionsEndpoint e ne ho bisogno?
Reindirizza un blocco modello da /chat/completions verso la route legacy /completions. Per un gateway chat-completions non lo vuoi; lascialo non impostato. Esiste per server più vecchi solo-completion.
contextLength cambia davvero il comportamento?
Sì. Continue impacchetta il contesto di conversazione e file secondo defaultCompletionOptions.contextLength. Sottostimarlo su un modello a contesto lungo scarta silenziosamente contesto; impostalo su ciò che il modello supporta davvero.