API LLM per VS Code: collega il tuo editor alla tua chiave
Puoi puntare VS Code a qualsiasi endpoint compatibile con OpenAI fornendo a un'estensione tre valori: un URL di base, una chiave API e un ID modello. Questa pagina mostra dove inserire questi valori e come testarli prima.
Aggiornato

Punti chiave
- Testa la chiave con curl prima di toccare l'editor, così sai quale lato è rotto.
- Estensioni come Continue e Cline richiedono gli stessi tre valori: URL di base, chiave, ID modello.
- Usa l'ID modello
uncensorede l'URL di base https://api.codingllmapi.com/v1. - L'API serve solo chat completions, quindi le funzionalità che richiedono un endpoint di completamento separato potrebbero non funzionare.
Cosa ti serve prima di iniziare
Una configurazione di un'API LLM per VS Code non ha nulla di magico. VS Code stesso non parla con i modelli linguistici. Lo fa un'estensione, e quell'estensione deve sapere dove inviare le richieste e come identificarti. Qualsiasi estensione che supporta un provider personalizzato compatibile con OpenAI può usare questo servizio.
Raccogli prima questi tre valori.
- URL di base:
https://api.codingllmapi.com/v1 - ID modello:
uncensored - Chiave API: creata nella pagina delle chiavi API. Dopo l'accesso puoi richiedere $0,50 di credito di prova gratuito con un solo clic, valido per 7 giorni e senza bisogno di carta.
La chiave viene inserita nella richiesta come Authorization: Bearer <key>. Le estensioni aggiungono quell'intestazione per te una volta che incolli la chiave nelle loro impostazioni.
Fase 1: testa la chiave fuori dall'editor
Il debug all'interno di un'estensione è più lento rispetto al debug in un terminale. Apri il terminale in VS Code (Ctrl+` su Windows e Linux, Cmd+` su macOS), memorizza la chiave in una variabile d'ambiente ed esegui due chiamate. La prima elenca i modelli. La seconda invia una piccola richiesta di chat.
export LLM_API_KEY="paste-your-key-here"
curl -s https://api.codingllmapi.com/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.codingllmapi.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}],"max_tokens":10}'
Se la seconda chiamata restituisce JSON con un messaggio, la chiave, l'URL e l'ID modello sono tutti corretti. Qualsiasi errore successivo è un'impostazione dell'estensione, non del tuo account. Se ottieni un errore di autenticazione qui, controlla di aver copiato l'intera chiave e che non ci siano virgolette o spazi estranei.
Fase 2: configura un'estensione
Le impostazioni delle estensioni cambiano tra le versioni, quindi tratta i nomi dei campi qui sotto come una guida e controlla la documentazione dell'estensione se un'etichetta è diversa. I tre valori sono sempre gli stessi.
Continue
Continue è un assistente open-source per VS Code e JetBrains. Legge un file di configurazione dalla tua directory home. Le versioni più recenti usano un file YAML, mentre quelle più vecchie usano config.json. La voce del modello contiene gli stessi campi in entrambi i formati. Nel formato JSON appare così:
{
"models": [
{
"title": "Uncensored",
"provider": "openai",
"model": "uncensored",
"apiBase": "https://api.codingllmapi.com/v1",
"apiKey": "paste-your-key-here"
}
]
}
Il provider è openai perché il formato di trasmissione (wire format) è quello di OpenAI. Solo apiBase dice a Continue di parlare con un server diverso. Ricarica la finestra dopo aver salvato e seleziona il modello dal menu a discesa nel pannello chat.
Cline
Cline è un'estensione agent che può leggere file, modificarli ed eseguire comandi del terminale con la tua approvazione. Apri le sue impostazioni e scegli il provider denominato OpenAI Compatible. Compila l'URL di base, la chiave API e l'ID modello. Incolla https://api.codingllmapi.com/v1, la tua chiave e uncensored. Salva, avvia un'attività e approva il suo primo utilizzo di strumento.
Altre estensioni
Molti strumenti seguono lo stesso schema sotto nomi come "endpoint personalizzato", "compatibile con OpenAI" o "porta la tua chiave". Cerca un campo che accetti un URL di base. Se un'estensione offre solo un elenco fisso di fornitori senza un campo URL, non può essere puntata verso questa API.
Cosa funziona e cosa potrebbe non funzionare
Questa API implementa POST /v1/chat/completions e GET /v1/models. Questo copre i pannelli di chat, i comandi di modifica, le azioni per spiegare il codice e i loop degli agent. Non copre tutto ciò che un editor potrebbe richiedere.
| Funzionalità editor | Risultato previsto |
|---|---|
| Chatta sul file aperto | Funziona |
| Seleziona il codice e chiedi una modifica | Funziona |
| Attività agent con chiamate di strumenti | Funziona se l'estensione usa il campo standard tools o il suo formato di prompt |
| Completamento tab inline | Dipende dall'estensione. Se necessita di un endpoint separato per il completamento o il fill-in-the-middle, questa API non lo fornisce. |
| Embedding e indicizzazione del codebase | Non disponibile qui, poiché non c'è un endpoint di embedding. Usa una fonte di embedding diversa o disattiva l'indicizzazione |
| Input o generazione di immagini | Non disponibile, l'API è solo testo |
Se un'estensione fallisce su una funzionalità in questa tabella, disattiva quella funzionalità specifica nelle sue impostazioni invece di assumere che la tua chiave sia sbagliata. Per una panoramica di come questo modello sia utile per il lavoro di programmazione, vedi la pagina su un modello senza censura per gli agent di coding.
Oltre alle estensioni: script eseguiti dall'editor
Un'estensione non è l'unico modo per usare una chiave da VS Code. Molti sviluppatori mantengono un piccolo script nel progetto che invia un file al modello e stampa la risposta, poi lo eseguono dal terminale integrato o lo associano a un'attività. Questo ti dà un controllo completo sul prompt ed evita sorprese dalle istruzioni nascoste di un'estensione.
Ecco uno script Python breve che revisiona qualsiasi percorso di file che passi. Legge la chiave da una variabile d'ambiente, quindi nulla di segreto finisce nel tuo repository.
import os
import sys
from openai import OpenAI
client = OpenAI(
base_url="https://api.codingllmapi.com/v1",
api_key=os.environ["LLM_API_KEY"],
)
path = sys.argv[1]
with open(path, encoding="utf-8") as f:
source = f.read()
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Review the code. List bugs first, then style issues. Be brief."},
{"role": "user", "content": source},
],
temperature=0.2,
)
print(resp.choices[0].message.content)
Eseguilo con python review.py src/app.py. I file di grandi dimensioni vanno bene fino alla finestra di 100.000 token, ma un prompt più piccolo risponde più velocemente e costa meno. Se vuoi che la risposta appaia man mano che viene generata, passa stream=True e stampa il delta.content di ogni blocco man mano che arriva.
La stessa idea funziona come un'attività VS Code in .vscode/tasks.json: definisci un'attività il cui comando è questo script con il file corrente come argomento, e attivalo dalla palette dei comandi. È una piccola configurazione, e il risultato è un comando di revisione che comprendi appieno.
Correzione degli errori comuni
La maggior parte dei problemi rientra in un numero limitato di cause. Procedi dall'alto di questo elenco.
- 401 o "chiave API non valida". La chiave è stata incollata con uno spazio finale, oppure hai usato una chiave destinata a un sito diverso. Creane una nuova e incollala di nuovo.
- 404 o "modello non trovato". L'ID del modello è scritto male, oppure l'URL di base manca di
/v1o lo ha due volte. L'ID corretto èuncensored. Esegui la chiamata/v1/modelsper vedere cosa riporta il server. - 429 con
rate_limited. Hai superato il limite di richieste al minuto: 300 per una chiave completa, 60 per una chiave di prova. Gli agenti che eseguono cicli veloci vanno incontro a questo limite. Attendi e riprova, oppure riduci il numero di passaggi automatici. - 429 con
concurrency. Troppe richieste simultanee: 8 per una chiave completa, 2 per una chiave di prova. Alcune estensioni avviano più chiamate in parallelo per una singola attività. Una risposta in streaming mantiene il proprio slot fino alla fine, quindi uno streaming bloccato può impedire nuove chiamate. - 429 con un'intestazione
Retry-After: 5. Sovraccarico temporaneo. L'estensione dovrebbe riprovare dopo cinque secondi. Se non lo fa, riprova manualmente. - La richiesta viene rifiutata perché troppo grande. Il limite del corpo della richiesta è 8 MB e la finestra di contesto è di 100.000 token per prompt più risposta. Gli agenti che allegano molti file possono superare questo limite. Riduci il contesto o cancella la conversazione.
Quando chiedi assistenza, includi il valore dell'intestazione di risposta X-Request-Id. Puoi visualizzarla con curl -i.
Mantenere i costi visibili
Gli editor agent inviano molto testo, perché ogni passaggio di solito include i file e la cronologia fino a quel momento. Il prezzo è $0,15 per 1M di token in input e $0,50 per 1M di token in output, il che mantiene il costo delle singole richieste contenuto, ma i loop si accumulano.
Un esempio pratico: un passaggio di un agent con 30.000 token in input e 1.000 token in output costa 30.000 x $0,15 / 1.000.000 = $0,0045 per l'input e 1.000 x $0,50 / 1.000.000 = $0,0005 per l'output, quindi $0,005 per passaggio. Un compito di 40 di questi passaggi costa $0,20. Questa è una stima approssimativa, non una promessa, poiché i passaggi reali variano in dimensione.
- Controlla
X-Balance-USDnelle intestazioni di risposta per vedere il tuo credito dopo una chiamata. - Avvia nuove attività in nuove conversazioni, in modo che la cronologia precedente non rimanga attiva per sempre.
- Imposta il limite di passaggi o di richieste dell'estensione, se presente.
Il credito è prepagato, quindi la spesa si interrompe quando il saldo è esaurito e non scade mai. Le ricariche vanno da $20 a $500 in importi interi, con un bonus del 5% da $50, del 10% da $100 e del 15% da $200. Sono accettate carte (Visa, Mastercard, Apple Pay, Google Pay) e cripto (USDT su TRC20, USDC su Base). I dettagli sono nella pagina dei prezzi, e la documentazione elenca tutti i parametri supportati.
Una nota sulla privacy e sull'uso
Il codice che invii va ai server del provider, quindi non incollare segreti come chiavi di produzione, password o dati dei clienti nei prompt. I prompt su questo servizio non vengono utilizzati per l'addestramento. Il modello è ottimizzato per rispondere senza rifiuto dei contenuti per l'uso adulto legale, il che significa che non si fermerà per farti una lezione su un test di sicurezza o uno script di gioco a tema scuro, ma tu rimani responsabile di ciò che gli chiedi di fare. I contenuti sessuali che coinvolgono minorenni non sono mai ammessi.
Altre guide
Domande e risposte
Posso usare questa API con GitHub Copilot in VS Code?
Copilot è legato al proprio servizio, quindi questa chiave non lo sostituisce. Usa un'estensione che accetti un endpoint personalizzato, come Continue o Cline.
Quale ID modello devo inserire?
Inserisci uncensored. Puoi confermarlo chiamando GET /v1/models con la tua chiave.
Perché l'editor dice che la connessione è fallita?
Esegui prima il test con curl. Se curl funziona, ricontrolla l'URL di base nell'estensione, inclusa la /v1 finale e l'assenza di spazi extra.
Funziona l'autocompletamento in linea?
Solo se l'estensione può utilizzare le normali chiamate di completamento della chat. Questa API non ha un endpoint di completamento separato, quindi controlla le impostazioni di autocompletamento dell'estensione.
C'è un modo gratuito per provarla?
I nuovi utenti possono richiedere $0,50 di credito di prova nella pagina delle chiavi API dopo la registrazione. Non serve una carta, dura 7 giorni ed è limitato a uno per persona.
La tua chiave è a un modulo di distanza
Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.
Ottieni la chiave API