PT ▾
Obter chave de API

API LLM do VS Code: conecte seu editor à sua própria chave

Você pode apontar o VS Code para qualquer endpoint compatível com OpenAI fornecendo a uma extensão três valores: uma URL base, uma chave de API e um ID de modelo. Esta página mostra onde esses valores vão e como testá-los primeiro.

Atualizado

Editor de código abstrato conectado por um cabo a um cubo de servidor brilhante, representando uma conexão de API LLM do VS Code

Pontos principais

  • Teste a chave com curl antes de mexer no editor, para saber qual lado está com defeito.
  • Extensões como Continue e Cline solicitam os mesmos três valores: URL base, chave, ID do modelo.
  • Use o ID do modelo uncensored e a URL base https://api.codingllmapi.com/v1.
  • A API serve apenas completions de chat, então recursos que precisam de um endpoint de conclusão separado podem não funcionar.

O que você precisa antes de começar

A configuração da VS Code LLM API é simples. O próprio VS Code não se comunica com modelos de linguagem. Uma extensão faz isso, e essa extensão precisa saber onde enviar as requisições e como te identificar. Qualquer extensão que suporte um provedor compatível com OpenAI pode usar este serviço.

Reúna esses três valores primeiro.

  • URL base: https://api.codingllmapi.com/v1
  • ID do modelo: uncensored
  • Chave de API: criada na página de chaves de API. Após o login, você pode reivindicar $0,50 de crédito de teste com um clique, válido por 7 dias e sem necessidade de cartão.

A chave é enviada na requisição como Authorization: Bearer <key>. As extensões adicionam esse cabeçalho para você assim que você cola a chave nas configurações delas.

Passo 1: teste a chave fora do editor

Depurar dentro de uma extensão é mais lento do que depurar em um terminal. Abra o terminal no VS Code (Ctrl+` no Windows e Linux, Cmd+` no macOS), armazene a chave em uma variável de ambiente e execute duas chamadas. A primeira lista os modelos. A segunda envia uma pequena solicitação de 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 a segunda chamada retornar JSON com uma mensagem, a chave, a URL e o ID do modelo estão corretos. Qualquer problema posterior é uma configuração da extensão, não da sua conta. Se você receber um erro de autenticação aqui, verifique se copiou a chave inteira e se nenhuma aspa ou espaço extra veio junto.

Passo 2: configure uma extensão

As configurações das extensões mudam entre versões, então trate os nomes de campo abaixo como um guia e verifique a própria documentação da extensão se um rótulo for diferente. Os três valores são sempre os mesmos.

Continue

O Continue é um assistente de código aberto para VS Code e JetBrains. Ele lê um arquivo de configuração do seu diretório home. Versões mais recentes usam um arquivo YAML, e as mais antigas usam config.json. A entrada do modelo contém os mesmos campos em ambos. No formato JSON, parece assim:

{
  "models": [
    {
      "title": "Uncensored",
      "provider": "openai",
      "model": "uncensored",
      "apiBase": "https://api.codingllmapi.com/v1",
      "apiKey": "paste-your-key-here"
    }
  ]
}

O provedor é openai porque o formato de transmissão (wire format) é o da OpenAI. Apenas apiBase diz ao Continue para falar com um servidor diferente. Recarregue a janela após salvar e selecione o modelo no menu suspenso do painel de chat.

Cline

O Cline é uma extensão de agente que pode ler arquivos, editá-los e executar comandos no terminal com sua aprovação. Abra as configurações e escolha o provedor chamado OpenAI Compatible. Preencha a URL Base, a Chave de API e o ID do Modelo. Cole https://api.codingllmapi.com/v1, sua chave e uncensored. Salve, inicie uma tarefa e aprove o primeiro uso de ferramenta.

Outras extensões

Muitas ferramentas seguem o mesmo padrão sob nomes como "custom endpoint", "OpenAI-compatible" ou "bring your own key". Procure um campo que aceite uma URL base. Se uma extensão oferecer apenas uma lista fixa de fornecedores sem campo de URL, ela não pode ser apontada para esta API.

O que funciona e o que pode não funcionar

Esta API implementa POST /v1/chat/completions e GET /v1/models. Isso cobre painéis de chat, comandos de edição, ações de explicar código e loops de agente. Não cobre tudo que um editor pode solicitar.

Recurso do editorResultado esperado
Conversar sobre o arquivo abertoFunciona
Selecionar código e pedir uma ediçãoFunciona
Tarefas de agente com chamadas de ferramentasFunciona se a extensão usar o campo tools padrão ou seu próprio formato de prompt
Autocompletar inlineDepende da extensão. Se precisar de um endpoint de conclusão ou fill-in-the-middle separado, esta API não fornece um
Embeddings e indexação de codebaseNão disponível aqui, pois não há endpoint de embeddings. Use uma fonte de embeddings diferente ou desative a indexação
Entrada ou geração de imagemNão disponível, a API é apenas de texto

Se uma extensão falhar em um recurso nesta tabela, desative esse recurso específico nas configurações da extensão em vez de assumir que sua chave está errada. Para uma visão geral de como este modelo se sai em trabalho de programação, consulte a página sobre um modelo sem censura para agentes de codificação.

Além das extensões: scripts que você executa no editor

Uma extensão não é a única maneira de usar uma chave do VS Code. Muitos desenvolvedores mantêm um pequeno script no projeto que envia um arquivo para o modelo e imprime a resposta, depois o executam no terminal integrado ou o vinculam a uma tarefa. Isso dá a você controle total sobre o prompt e evita surpresas com instruções ocultas de uma extensão.

Aqui está um script Python curto que revisa qualquer caminho de arquivo que você passar. Ele lê a chave de uma variável de ambiente, então nada secreto vai parar no seu repositório.

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)

Execute-o com python review.py src/app.py. Arquivos grandes estão OK até a janela de 100.000 tokens, mas um prompt menor responde mais rápido e custa menos. Se quiser que a resposta apareça conforme é escrita, passe stream=True e imprima o delta.content de cada chunk conforme ele chega.

A mesma ideia funciona como uma tarefa do VS Code em .vscode/tasks.json: defina uma tarefa cujo comando é este script com o arquivo atual como argumento e acione-a pela paleta de comandos. É uma pequena configuração, e o resultado é um comando de revisão que você entende totalmente.

Corrigindo erros comuns

A maioria dos problemas se enquadra em um punhado de causas. Trabalhe do topo desta lista.

  1. 401 ou "chave de API inválida". A chave foi colada com um espaço no final, ou você usou uma chave destinada a um site diferente. Crie uma nova e cole novamente.
  2. 404 ou "modelo não encontrado". O ID do modelo está digitado errado, ou a URL base está sem /v1 ou está duplicada. O ID correto é uncensored. Execute a chamada /v1/models para ver o que o servidor informa.
  3. 429 com rate_limited. Você excedeu o limite de requisições por minuto: 300 em uma chave completa, 60 em uma chave de teste. Agentes que executam loops rapidamente atingem esse limite. Aguarde e tente novamente, ou reduza o número de etapas automáticas.
  4. 429 com concurrency. Muitas requisições simultâneas: 8 em uma chave completa, 2 em uma chave de teste. Algumas extensões disparam várias chamadas em paralelo para uma única tarefa. Uma resposta em streaming mantém sua posição até o fim, então um stream travado pode bloquear novas chamadas.
  5. 429 com um cabeçalho Retry-After: 5. Sobrecarga temporária. A extensão deve tentar novamente após cinco segundos. Se não o fizer, tente novamente manualmente.
  6. A requisição é rejeitada por ser muito grande. O limite do corpo da requisição é 8 MB, e a janela de contexto é de 100.000 tokens para prompt mais resposta. Agentes que anexam muitos arquivos podem exceder isso. Reduza o contexto ou limpe a conversa.

Ao solicitar ajuda ao suporte, inclua o valor do cabeçalho de resposta X-Request-Id. Você pode vê-lo com curl -i.

Mantendo o custo visível

Agentes de editor enviam muito texto, porque cada etapa geralmente carrega os arquivos e o histórico até então. O preço é $0,15 por 1M de tokens de entrada e $0,50 por 1M de tokens de saída, o que mantém as requisições individuais com custo baixo, mas loops acumulam.

Um exemplo prático: uma etapa de agente com 30.000 tokens de entrada e 1.000 tokens de saída custa 30.000 x $0,15 / 1.000.000 = $0,0045 para entrada e 1.000 x $0,50 / 1.000.000 = $0,0005 para saída, totalizando $0,005 por etapa. Uma tarefa de 40 dessas etapas custa $0,20. Essa é uma estimativa aproximada, não uma promessa, já que as etapas reais variam em tamanho.

  • Verifique X-Balance-USD nos cabeçalhos de resposta para ver seu crédito após uma chamada.
  • Inicie novas tarefas em novas conversas para que o histórico antigo não continue sendo carregado.
  • Defina o limite de etapas ou requisições da extensão, se houver.

O crédito é pré-pago, então o gasto para quando o saldo acaba, e nunca expira. Recargas variam de $20 a $500 em valores inteiros, com bônus de 5% a partir de $50, 10% a partir de $100 e 15% a partir de $200. Cartões (Visa, Mastercard, Apple Pay, Google Pay) e cripto (USDT em TRC20, USDC em Base) são aceitos. Os detalhes estão na página de preços, e a documentação lista todos os parâmetros suportados.

Uma nota sobre privacidade e uso

O código que você envia vai para os servidores do provedor, então não cole segredos como chaves de produção, senhas ou dados de clientes nos prompts. Os prompts neste serviço não são usados para treinamento. O modelo é ajustado para responder sem recusas de conteúdo para uso adulto lícito, o que significa que ele não vai interromper para dar uma palestra sobre um teste de segurança ou um script de jogo com tema sombrio, mas você permanece responsável pelo que pede. Conteúdo sexual envolvendo menores de idade nunca é permitido.

Perguntas e respostas

Posso usar esta API com o GitHub Copilot no VS Code?

O Copilot está vinculado ao seu próprio serviço, então esta chave não o substitui. Use uma extensão que aceite um endpoint personalizado, como Continue ou Cline.

Qual ID de modelo devo inserir?

Insira uncensored. Você pode confirmar chamando GET /v1/models com sua chave.

Por que o editor diz que a conexão falhou?

Execute o teste curl primeiro. Se o curl funcionar, verifique novamente a URL base na extensão, incluindo /v1 no final e a ausência de espaços extras.

A conclusão automática inline funciona?

Apenas se a extensão puder usar conclusões de chat padrão. Esta API não tem um endpoint de conclusão separado, então verifique as configurações de conclusão automática da extensão.

Existe uma maneira gratuita de testar?

Novos usuários podem reivindicar $0,50 de crédito de teste na página da chave de API após o login. Não precisa de cartão, dura 7 dias e é limitado a um por pessoa.

Sua chave está a um formulário de distância

Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.

Obter chave de API