ES ▾
Obtener clave de API

API LLM de VS Code: conecta tu editor con tu propia clave

Puedes apuntar VS Code a cualquier endpoint compatible con OpenAI proporcionando a una extensión tres valores: una URL base, una clave de API y un ID de modelo. Esta página muestra dónde van esos valores y cómo probarlos primero.

Actualizado

Editor de código abstracto conectado por un cable a un cubo de servidor brillante, representando una conexión de API LLM de VS Code

Puntos clave

  • Prueba la clave con curl antes de tocar el editor, para saber qué lado está roto.
  • Extensiones como Continue y Cline solicitan los mismos tres valores: URL base, clave, ID de modelo.
  • Usa el ID de modelo uncensored y la URL base https://api.codingllmapi.com/v1.
  • La API solo sirve completados de chat, por lo que las funciones que necesitan un endpoint de completado separado pueden no funcionar.

Lo que necesitas antes de comenzar

Una configuración de API LLM de VS Code no tiene magia. VS Code en sí no habla con modelos de lenguaje. Una extensión lo hace, y esa extensión necesita saber dónde enviar peticiones y cómo identificarte. Cualquier extensión que admita un proveedor personalizado compatible con OpenAI puede usar este servicio.

Reúne estos tres valores primero.

  • URL base: https://api.codingllmapi.com/v1
  • ID de modelo: uncensored
  • Clave de API: creada en la página de clave de API. Después del registro, puedes reclamar $0,50 de crédito de prueba con un clic, válido por 7 días y sin necesidad de tarjeta.

La clave se incluye en la petición como Authorization: Bearer <key>. Las extensiones añaden ese encabezado automáticamente una vez que pegas la clave en su configuración.

Paso 1: prueba la clave fuera del editor

Depurar dentro de una extensión es más lento que depurar en una terminal. Abre la terminal en VS Code (Ctrl+` en Windows y Linux, Cmd+` en macOS), almacena la clave en una variable de entorno y ejecuta dos llamadas. La primera lista modelos. La segunda envía una pequeña petición 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}'

Si la segunda llamada devuelve JSON con un mensaje, la clave, la URL y el ID de modelo son correctos. Lo que falle después es un ajuste de la extensión, no de tu cuenta. Si obtienes un error de autenticación aquí, verifica que copiaste toda la clave y que no vinieron comillas o espacios extraños.

Paso 2: configura una extensión

La configuración de las extensiones cambia entre versiones, así que trata los nombres de campo a continuación como una guía y revisa la documentación propia de la extensión si una etiqueta difiere. Los tres valores son siempre los mismos.

Continue

Continue es un asistente de código abierto para VS Code y JetBrains. Lee un archivo de configuración desde tu directorio personal. Las versiones más nuevas usan un archivo YAML, y las antiguas usan config.json. La entrada del modelo lleva los mismos campos en ambos formatos. En el formato JSON se ve así:

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

El proveedor es openai porque el formato de transmisión (wire format) es el de OpenAI. Solo apiBase indica a Continue que hable con un servidor diferente. Recarga la ventana después de guardar y selecciona el modelo del menú desplegable en el panel de chat.

Cline

Cline es una extensión de agente que puede leer archivos, editarlos y ejecutar comandos de terminal con tu aprobación. Abre su configuración y elige el proveedor llamado OpenAI Compatible. Completa la URL Base, la Clave de API y el ID de Modelo. Pega https://api.codingllmapi.com/v1, tu clave y uncensored. Guarda, inicia una tarea y aprueba su primer uso de herramienta.

Otras extensiones

Muchas herramientas siguen el mismo patrón bajo nombres como "endpoint personalizado", "compatible con OpenAI" o "trae tu propia clave". Busca un campo que acepte una URL base. Si una extensión solo ofrece una lista fija de proveedores sin campo de URL, no se puede apuntar a esta API.

Qué funciona y qué puede no funcionar

Esta API implementa POST /v1/chat/completions y GET /v1/models. Eso cubre paneles de chat, comandos de edición, acciones de explicar código y bucles de agente. No cubre todo lo que un editor podría solicitar.

Función del editorResultado esperado
Chatear sobre el archivo abiertoFunciona
Seleccionar código y pedir una ediciónFunciona
Tareas de agente con llamadas a herramientasFunciona si la extensión usa el campo estándar tools o su propio formato de prompt
Autocompletado en líneaDepende de la extensión. Si necesita un endpoint de completado o fill-in-the-middle separado, esta API no proporciona uno
Embeddings e indexación de la base de códigoNo disponible aquí, ya que no hay un endpoint de embeddings. Usa una fuente de embeddings diferente o desactiva la indexación
Entrada o generación de imágenesNo disponible, la API es solo de texto

Si una extensión falla en una función de esta tabla, desactiva esa función específica en su configuración en lugar de asumir que tu clave está mal. Para una visión general de cómo se comporta este modelo para el trabajo de programación, consulta la página sobre un modelo sin censura para agentes de codificación.

Más allá de las extensiones: scripts que ejecutas desde el editor

Una extensión no es la única forma de usar una clave desde VS Code. Muchos desarrolladores mantienen un pequeño script en el proyecto que envía un archivo al modelo e imprime la respuesta, luego lo ejecutan desde la terminal integrada o lo vinculan a una tarea. Esto te da control total sobre el prompt y evita sorpresas por instrucciones ocultas de una extensión.

Aquí hay un script corto de Python que revisa cualquier ruta de archivo que pases. Lee la clave de una variable de entorno, así que ningún secreto acaba en tu repositorio.

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)

Ejecútalo con python review.py src/app.py. Los archivos grandes están bien hasta la ventana de 100.000 tokens, pero un prompt más pequeño responde más rápido y cuesta menos. Si quieres que la respuesta aparezca a medida que se escribe, pasa stream=True e imprime el delta.content de cada fragmento a medida que llega.

La misma idea funciona como una tarea de VS Code en .vscode/tasks.json: define una tarea cuyo comando sea este script con el archivo actual como argumento, y ejecútala desde la paleta de comandos. Es una pequeña cantidad de configuración, y el resultado es un comando de revisión que entiendes completamente.

Solución de errores comunes

La mayoría de los problemas caen en un puñado de causas. Trabaja desde la parte superior de esta lista.

  1. 401 o "clave de API no válida". La clave se pegó con un espacio al final, o usaste una clave destinada a otro sitio. Crea una nueva y pégala de nuevo.
  2. 404 o "modelo no encontrado". El ID del modelo está mal escrito, o a la URL base le falta /v1 o lo tiene dos veces. El ID correcto es uncensored. Ejecuta la llamada /v1/models para ver qué informa el servidor.
  3. 429 con rate_limited. Superaste el límite de peticiones por minuto: 300 en una clave completa, 60 en una clave de prueba. Los agentes que entran rápido en bucle alcanzan este límite. Espera y reintenta, o reduce el número de pasos automáticos.
  4. 429 con concurrency. Demasiadas peticiones a la vez: 8 en una clave completa, 2 en una clave de prueba. Algunas extensiones disparan varias llamadas en paralelo para una tarea. Una respuesta en streaming mantiene su espacio hasta que termina, por lo que un stream atascado puede bloquear nuevas llamadas.
  5. 429 con un encabezado Retry-After: 5. Sobrecarga temporal. La extensión debería reintentar después de cinco segundos. Si no lo hace, reintenta manualmente.
  6. La petición se rechaza por ser demasiado grande. El límite del cuerpo es de 8 MB, y la ventana de contexto es de 100.000 tokens para el prompt más la respuesta. Los agentes que adjuntan muchos archivos pueden superar este límite. Reduce el contexto o borra la conversación.

Cuando pidas ayuda a soporte, incluye el valor del encabezado de respuesta X-Request-Id. Puedes verlo con curl -i.

Mantener el costo visible

Los agentes del editor envían mucho texto, porque cada paso suele llevar los archivos y el historial hasta ese momento. El precio es de $0,15 por cada 1M de tokens de entrada y $0,50 por cada 1M de tokens de salida, lo que mantiene las peticiones individuales con un costo bajo, pero los bucles se acumulan.

Un ejemplo práctico: un paso de agente con 30.000 tokens de entrada y 1.000 tokens de salida cuesta 30.000 x $0,15 / 1.000.000 = $0,0045 para entrada y 1.000 x $0,50 / 1.000.000 = $0,0005 para salida, es decir, $0,005 por paso. Una tarea de 40 pasos de este tipo cuesta $0,20. Esta es una estimación aproximada, no una promesa, ya que los pasos reales varían en tamaño.

  • Revisa X-Balance-USD en los encabezados de respuesta para ver tu crédito después de una llamada.
  • Inicia nuevas tareas en nuevas conversaciones para que el historial antiguo no se arrastre indefinidamente.
  • Configura el límite de pasos o peticiones de la extensión si lo tiene.

El crédito es prepago, por lo que el gasto se detiene cuando el saldo se agota, y no caduca. Las recargas van desde $20 hasta $500 en cantidades enteras, con un bono del 5% desde $50, 10% desde $100 y 15% desde $200. Se aceptan tarjetas (Visa, Mastercard, Apple Pay, Google Pay) y cripto (USDT en TRC20, USDC en Base). Los detalles están en la página de precios, y la documentación enumera todos los parámetros compatibles.

Una nota sobre privacidad y uso

El código que envías va a los servidores del proveedor, por lo que no pegues secretos como claves de producción, contraseñas o datos de clientes en los prompts. Los prompts en este servicio no se utilizan para entrenamiento. El modelo está ajustado para responder sin rechazos de contenido para uso adulto lícito, lo que significa que no se detendrá a darte una lección sobre una prueba de seguridad o un script de juego con tema oscuro, pero tú sigues siendo responsable de lo que le pides que haga. El contenido sexual que involucre a menores de edad nunca está permitido.

Preguntas y respuestas

¿Puedo usar esta API con GitHub Copilot en VS Code?

Copilot está vinculado a su propio servicio, por lo que esta clave no lo reemplaza. Usa una extensión que acepte un endpoint personalizado, como Continue o Cline.

¿Qué ID de modelo debo ingresar?

Ingresa uncensored. Puedes confirmarlo llamando a GET /v1/models con tu clave.

¿Por qué el editor dice que falló la conexión?

Ejecuta primero la prueba con curl. Si curl funciona, vuelve a revisar la URL base en la extensión, incluyendo /v1 al final y la ausencia de espacios adicionales.

¿Funciona la autocompletación en línea?

Solo si la extensión puede usar completados de chat estándar para ello. Esta API no tiene un endpoint de completado separado, así que revisa la configuración de autocompletado de la extensión.

¿Hay una forma gratuita de probarlo?

Los nuevos usuarios pueden reclamar $0,50 de crédito de prueba en la página de clave de API después del registro. No requiere tarjeta, dura 7 días y está limitado a uno por persona.

Tu clave está a un formulario de distancia

Crea una cuenta, copia la clave, cambia la URL base. Esa es toda la configuración.

Obtener clave de API