Apunta Continue a un endpoint personalizado compatible con OpenAI.
Updated 2026-07-29
Continue configura los modelos de forma declarativa en config.yaml. Pon provider en openai, apunta apiBase a https://api.apisrouter.com/v1, y cada bloque de modelo que añadas se vuelve seleccionable en la extensión, con roles de chat, edit y apply asignables por modelo bajo una sola clave.
Respuesta rápida: un bloque de modelo con provider openai y apiBase.
El proveedor openai de Continue acepta una anulación apiBase, que es la ruta documentada para cualquier servidor compatible con OpenAI. Añade un bloque de modelo a config.yaml con provider en openai, apiBase en https://api.apisrouter.com/v1, el ID de modelo exacto y tu clave. El modelo aparece en el selector de modelos de Continue, y cada petición que hace va al gateway sobre el /v1/chat/completions estándar. El mismo mecanismo cubre tantos modelos como quieras: un bloque por ID, todos compartiendo el mismo apiBase y la misma clave. Como Continue trata el campo model como una simple cadena, IDs de distintos proveedores, Claude junto a GPT junto a DeepSeek, conviven lado a lado en un solo archivo de configuración.
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
- applyCómo asigna Continue el trabajo a los modelos: los roles.
Continue (continuedev en GitHub, unas 34K estrellas) es un agente de IDE para VS Code y JetBrains, y su idea de configuración definitoria son los roles. Cada bloque de modelo lleva una lista roles, y Continue enruta cada tipo de trabajo a un modelo que tenga ese rol: chat para el panel de conversación y el trabajo de agente, edit para transformaciones de código en línea, apply para fusionar los cambios propuestos en los archivos, además de autocomplete, embed y rerank para sus respectivos subsistemas. Esta es la palanca que hace interesante un endpoint multiproveedor específicamente en Continue. chat quiere el modelo más fuerte que puedas justificar; edit y apply son llamadas más cortas y mecánicas donde un ID rápido de nivel medio hace el trabajo. Con un solo apiBase sirviendo a todos los proveedores, esa división es YAML puro: un ID de Claude con el rol chat, un ID rápido con los roles edit y apply, una sola clave para todos. Un límite honesto: autocomplete es una carga de trabajo de rellenado intermedio (fill-in-the-middle), y el rol autocomplete de Continue está construido en torno a modelos entrenados para ese formato de completado y no para chat. Un gateway de chat completions es el lugar correcto para el tráfico de chat, edit y apply; mantén autocomplete en la configuración compatible con FIM que ya uses hoy, en vez de asignar ese rol a un modelo de chat y esperar buenas sugerencias.
Configuración completa: varios modelos, roles repartidos, contexto declarado.
El archivo de configuración vive en ~/.continue/config.yaml. El name de cada bloque es la etiqueta que se muestra en el selector; model es el ID exacto que sirve el gateway. defaultCompletionOptions.contextLength declara la ventana de contexto del modelo, y Continue lo usa para decidir cuánta conversación y contexto de archivos empaquetar en una petición, así que dejarlo en un valor por defecto conservador en un modelo de contexto largo trunca antes de lo que debería. Las capacidades suelen detectarse automáticamente, pero para IDs que Continue no reconoce puedes indicarlas explícitamente: capabilities: [tool_use] le dice al modo agente que puede impulsar herramientas con ese modelo. Sobre las claves: el YAML acepta un apiKey literal, lo cual está bien para un archivo local que nunca sale de tu máquina. Continue también admite una sintaxis de plantilla de secretos de la forma ${{ secrets.APISROUTER_API_KEY }} para configuraciones gestionadas a través de su hub, que mantiene el valor literal fuera de archivos compartidos. Usa la forma que encaje con dónde vive tu configuración.
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]Elegir modelos por rol.
La asignación de roles es también el mecanismo de comparación. Mantén fijos edit y apply, alterna el bloque chat entre dos IDs candidatos durante una semana cada uno, y deja que la vista de uso por clave le ponga precio a la diferencia sobre tu carga de trabajo real. Cada candidato son tres líneas de YAML contra el mismo endpoint.
- chat carga con el bucle del agente y las conversaciones largas: leer archivos, planificar ediciones, responder preguntas sobre contexto real. Aquí pertenece un modelo de vanguardia (claude-sonnet-4-6, gpt-5.5), y es donde va la mayoría de tus tokens.
- edit gestiona las transformaciones de código resaltado. Las llamadas son más cortas y mecánicas que las de chat, así que un ID rápido como claude-haiku-4-5-20251001 o gpt-5.4-mini mantiene el bucle de edición ágil sin degradar los resultados.
- apply fusiona los cambios propuestos en los archivos. Es el rol más mecánico de los tres y el candidato más claro para el modelo capaz más barato, deepseek-v4-flash incluido.
- embed y rerank impulsan la recuperación sobre el código base y son subsistemas separados con sus propias formas de modelo; mover el tráfico de chat a un gateway no requiere tocarlos.
Pago por uso · por debajo del precio oficial
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modelo | Precio oficial | Nuestro precio |
|---|---|---|
| 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 |
Modos de fallo específicos de Continue.
apiBase sin /v1. Continue añade rutas como /chat/completions a la base que le des, así que https://api.apisrouter.com/v1 es correcto y el host desnudo no lo es. Un error con forma de 404 en el primer uso casi siempre es esto. La indentación de YAML reconfigura la configuración en silencio. models es una lista de bloques, y un apiBase mal indentado se adhiere a la entrada equivocada o a ninguna. Cuando un modelo funciona y su vecino no puede autenticarse, compara su indentación antes de sospechar del gateway. El interruptor de completions heredado. El proveedor openai usa /chat/completions por defecto, que es lo que sirve el gateway. useLegacyCompletionsEndpoint: true redirige un bloque a la ruta heredada /completions; si un bloque lo tiene activado, las peticiones con forma de chat dejan de funcionar para ese modelo. Expectativas de la Responses API en IDs de la serie GPT. Algunas rutas de Continue pueden intentar el protocolo responses más nuevo de OpenAI para ciertos nombres de modelo de OpenAI. Un gateway de chat completions no sirve ese protocolo; si un bloque de la serie GPT falla con forma de error de ruta, pon useResponsesApi: false en ese bloque para que se mantenga en /chat/completions. contextLength desactualizado. Continue empaqueta el contexto según defaultCompletionOptions.contextLength, no según lo que el modelo pudiera aceptar. Declarar 32k en un modelo de 200k no rompe nada de forma visible; simplemente descarta en silencio contexto que ya pagaste. Declara lo que el modelo realmente admite.
Quién enruta Continue a través de un gateway.
- Desarrolladores centrados en el IDE que quieren Claude, GPT y DeepSeek seleccionables dentro de VS Code o JetBrains sin mantener un conjunto de credenciales por proveedor.
- Equipos que reparten roles por perfil de coste: chat de vanguardia, edit y apply rápidos, cada rol con el ID que le encaja, todo facturado en una sola superficie.
- Ingenieros que comparan modelos de chat en trabajo real. Cada candidato es un bloque de YAML contra el mismo apiBase, no una nueva integración de proveedor.
- Líderes de equipo que estandarizan el onboarding: una plantilla de config.yaml más una APISROUTER_API_KEY reemplaza una lista de claves por proveedor, y el uso por clave muestra cuánto gasta cada puesto.
- Desarrolladores sin acceso a la facturación de determinado proveedor. El acceso basado en recargas sin requisito de tarjeta elimina la dependencia de registrarse en cada proveedor.
Verifica el endpoint y depura la primera petición.
Lista lo que sirve el gateway antes de editar el YAML; los IDs que devuelve /v1/models son exactamente las cadenas que deben coincidir con tus campos model. Los fallos en la primera petición siguen un patrón. Un 401 significa que la clave en ese bloque específico está mal, o que una referencia a secrets no se resolvió; revisa el bloque que falló en vez del archivo en general, porque las claves por bloque implican fallos por bloque. Un error de modelo no encontrado es un error tipográfico en el ID, sufijo de versión incluido. Un error con forma de ruta en un ID de la serie GPT apunta al interruptor de la responses API cubierto arriba. Y si la extensión no muestra ningún modelo personalizado, el YAML no se analizó correctamente; valida primero la estructura del archivo. Una vez que las peticiones fluyen, la consola de APIsRouter muestra el modelo, el recuento de tokens y el gasto por petición. Como Continue reparte el trabajo entre roles, la vista de uso es también el primer lugar donde ves la proporción de tráfico chat-a-edit en tu carga de trabajo real, que es el número que te dice dónde importa de verdad la elección de modelo.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Preguntas frecuentes
¿Puede Continue usar modelos de Claude y DeepSeek a través del proveedor openai?
Sí. El proveedor openai con apiBase configurado es la ruta documentada para cualquier servidor compatible con OpenAI, y Continue reenvía el campo model como una simple cadena. Funciona cualquier ID que sirva el endpoint, incluidos los IDs de Claude y DeepSeek, un bloque de modelo por ID.
¿Todos mis bloques de modelo comparten un apiBase y una clave?
Cada bloque declara su propio apiBase y apiKey, así que pueden compartir valores o no. Apuntar varios bloques al mismo endpoint con la misma clave es normal, y los anchors de YAML te permiten declarar el par una vez y referenciarlo por bloque.
¿Qué roles deberían enrutarse a través del gateway?
chat, edit y apply, que hablan todos /v1/chat/completions. autocomplete es una carga de trabajo de rellenado intermedio construida en torno a modelos de formato de completado, así que mantén ese rol en tu configuración FIM existente. embed y rerank son subsistemas separados y no necesitan cambios.
¿Por qué un bloque de modelo funciona mientras otro devuelve 401?
Las claves son por bloque en Continue, así que un vecino que funciona no prueba nada sobre el bloque que falla. Revisa el valor apiKey del bloque que falla o su referencia a secrets, y revisa su indentación: una clave mal indentada se adhiere a la entrada equivocada de la lista.
¿Qué hace useLegacyCompletionsEndpoint y lo necesito?
Redirige un bloque de modelo de /chat/completions a la ruta heredada /completions. Para un gateway de chat completions no lo quieres; déjalo sin definir. Existe para servidores más antiguos que solo admiten completions.
¿contextLength realmente cambia el comportamiento?
Sí. Continue empaqueta el contexto de conversación y archivos según defaultCompletionOptions.contextLength. Subestimarlo en un modelo de contexto largo descarta contexto en silencio; fíjalo en lo que el modelo realmente admite.