Ejecuta Open Interpreter en un endpoint personalizado compatible con OpenAI.
Updated 2026-07-30
Open Interpreter expone api_base directamente. Apúntalo a https://api.apisrouter.com/v1, prefija el id del modelo con openai/ para que LiteLLM hable chat completions, y el modelo que escribe y ejecuta código en tu máquina puede ser cualquier id del catálogo bajo una clave.
Respuesta rápida: api_base más el prefijo de modelo openai/.
Open Interpreter documenta una ruta de endpoint personalizado en ambas interfaces. En la CLI, pasa --api_base con el endpoint y --model con un prefijo openai/ en el id. En Python, configura interpreter.llm.api_base, interpreter.llm.api_key y interpreter.llm.model antes de llamar a chat(). El prefijo no es decoración. Open Interpreter corre sobre LiteLLM, y LiteLLM resuelve qué cliente de proveedor usar a partir del string del modelo. openai/claude-sonnet-4-6 significa "habla el protocolo de chat-completions de OpenAI con lo que diga api_base, con claude-sonnet-4-6 como el campo model". Elimina el prefijo y LiteLLM infiere el proveedor a partir del nombre desnudo en su lugar, enrutando un id claude-* hacia el cliente de Anthropic e ignorando el endpoint que configuraste.
export OPENAI_API_KEY=sk-APIsRouter-...
interpreter \
--api_base https://api.apisrouter.com/v1 \
--model openai/claude-sonnet-4-6Qué hace Open Interpreter con su modelo.
Open Interpreter (openinterpreter en GitHub, unas 66K estrellas) le da a un modelo de lenguaje un intérprete de código en tu máquina: expresas un objetivo en lenguaje natural, el modelo escribe Python o shell, Open Interpreter lo ejecuta localmente, y la salida alimenta de vuelta la conversación para el siguiente paso. Ese bucle lo hace cualitativamente distinto de un cliente de chat. El modelo no está produciendo prosa; está produciendo código que corre con los permisos de tu usuario, e itera contra errores reales de tu sistema real. De ahí se derivan dos consecuencias para el enrutamiento. Primero, la calidad del modelo es directamente una propiedad de seguridad y corrección: un modelo que alucina flags o malinterpreta un traceback produce otro round trip fallido, y en modo auto-run produce uno que no revisaste. Segundo, el bucle es hambriento de tokens de una forma específica: cada turno reenvía la conversación, el código y la salida capturada, cada vez más grandes, así que las sesiones de depuración largas acumulan contexto rápidamente. El ajuste api_base mueve todo este bucle a un endpoint. Como el campo model pasa como un string simple después del prefijo openai/, un id de Claude, un id de GPT y un id de DeepSeek son opciones intercambiables de un solo flag en lugar de configuraciones de proveedor separadas.
Configuración completa: API de Python y un perfil.
La ruta de Python configura los mismos tres valores en interpreter.llm y añade los dos ajustes que LiteLLM no puede descubrir para un id personalizado: context_window y max_tokens. Open Interpreter usa context_window para decidir cuánto historial de conversación conservar antes de recortar, así que dejarlo sin configurar o por defecto en un modelo de 200k recorta mucho antes de lo necesario; declara lo que el modelo realmente soporta. Para una configuración persistente, las mismas claves viven en un YAML de perfil bajo un bloque llm: (abre el directorio de perfiles con interpreter --profiles). Un perfil mantiene el endpoint, el modelo y los ajustes de ventana fuera de tu historial de shell y hace que la configuración sea compartible entre máquinas, con la clave todavía suministrada por el entorno.
import os
from interpreter import interpreter
interpreter.llm.api_base = "https://api.apisrouter.com/v1"
interpreter.llm.api_key = os.environ["APISROUTER_API_KEY"]
interpreter.llm.model = "openai/claude-sonnet-4-6"
# LiteLLM cannot infer these for a custom id; declare them:
interpreter.llm.context_window = 200000
interpreter.llm.max_tokens = 8192
interpreter.llm.supports_functions = True
interpreter.chat("Profile data.csv and plot the top 10 rows by revenue.")Elegir el modelo que escribe tu código.
La comparación de modelos aquí es inusualmente concreta: dale a dos modelos la misma tarea y cuenta los round trips hasta un resultado que funcione. La vista de uso por clave añade el coste en tokens por sesión, que junto con el conteo de round trips es toda la comparación. Detrás de un endpoint, cada candidato es un flag.
- El bucle principal quiere un modelo que escriba código ejecutable y lea bien los tracebacks a la primera; claude-sonnet-4-6 y gpt-5.5 son el término medio confiable, y cada round trip fallido que evita un modelo mejor son tokens y tiempo de reloj ahorrados.
- deepseek-v4-pro es un candidato fuerte para sesiones intensivas en código donde el volumen importa; a través de un endpoint, probarlo contra tus propias tareas es un solo cambio de --model.
- Las sesiones utilitarias rápidas (renombrar archivos, transformaciones puntuales, conversiones de formato) no necesitan razonamiento de vanguardia; claude-haiku-4-5-20251001 o glm-5.2 las mantienen rápidas y económicas.
- El modo auto-run (-y) elimina el paso de revisión humana entre la generación de código y su ejecución. Si lo usas, úsalo con el modelo más fuerte que ejecutes, en un sandbox o contenedor, nunca con un modelo que todavía estás evaluando.
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 |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
Los modos de fallo específicos de Open Interpreter.
Un id de modelo desnudo enruta alrededor de tu endpoint. Sin el prefijo openai/, LiteLLM resuelve el proveedor a partir del nombre: los ids claude-* van hacia el cliente de Anthropic, y el resultado es un error de autenticación o enrutamiento contra un host que nunca configuraste. Si los errores mencionan un SDK de proveedor en lugar de tu gateway, falta el prefijo. Las suposiciones de contexto por defecto recortan tus sesiones. Para un id que LiteLLM no reconoce, nada rellena la ventana de contexto; Open Interpreter recae en un comportamiento conservador y recorta el historial temprano. Declara context_window explícitamente, porque una sesión de depuración de código que pierde sus intentos anteriores repite los mismos errores. Sesiones que crecen, facturas que crecen. Cada turno reenvía conversación más código más salida capturada. Una sesión que pega un dataframe grande o un log largo en el bucle lo lleva en cada petición subsiguiente. Prefiere que el modelo escriba código que inspeccione archivos en lugar de pegar el contenido de archivos en el chat, y empieza sesiones nuevas cuando la tarea cambia. Desajuste de llamadas a funciones. Open Interpreter puede usar llamadas a función estructuradas donde se soportan; el flag supports_functions existe para ids donde la detección adivina mal. Si los bloques de código llegan malformados en un modelo que sabes capaz, configúralo explícitamente a True; si un modelo genuinamente carece de soporte de herramientas, configura False para que se active la ruta de respaldo. El lado de ejecución es tuyo. api_base mueve el tráfico del modelo; el código sigue corriendo localmente con tus permisos. Un gateway no sandboxea nada, así que mantén el auto-run confinado a contenedores y deja que la revisión de seguridad siga en el bucle en todos los demás casos.
Quién enruta Open Interpreter a través de un gateway.
- Desarrolladores que usan Open Interpreter como herramienta de automatización diaria y quieren generación de código de calidad Claude, variedad de GPT, e ids utilitarios rápidos detrás de una clave.
- Gente de datos que ejecuta bucles de análisis exploratorio, donde una sesión puede consumir un contexto sorprendente y el uso por clave hace visible el coste por notebook-equivalente.
- Ingenieros que comparan modelos de escritura de código en round-trips-hasta-funcionar, el benchmark más honesto disponible, un flag --model por candidato.
- Aficionados que ejecutan trabajos de interpreter programados o en contenedores, donde un endpoint por variable de entorno y un secreto superan un conjunto de credenciales por proveedor.
- Desarrolladores sin acceso a la facturación de un proveedor concreto. El acceso mediante recarga sin necesidad de tarjeta elimina la dependencia de registro por proveedor.
Verifica el endpoint y depura la primera sesión.
Lista primero los modelos del gateway; el id después de openai/ debe coincidir exactamente con un id servido, sufijo de versión incluido. Los fallos de la primera sesión siguen un patrón. Errores que nombran anthropic u otro SDK de proveedor significan que falta el prefijo openai/ y LiteLLM enrutó por nombre. Un 401 significa que la clave no es visible en el shell que lanzó el interpreter, o se configuró para una variable distinta a la que está en uso; con el prefijo en su lugar, tanto OPENAI_API_KEY como un api_key explícito funcionan. Un error de modelo no encontrado del gateway es una errata en el id. Un error de conexión suele significar que api_base perdió su sufijo /v1; el cliente añade /chat/completions a la base que le des. Una vez que el bucle corre, la consola de APIsRouter muestra el modelo por petición, el recuento de tokens y el gasto. Las sesiones de interpreter son el caso clásico de una carga de trabajo que se siente pequeña y factura mediano, y la vista de uso es cómo ves qué sesiones realmente llevaron los tokens.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Preguntas frecuentes
¿Puede Open Interpreter correr modelos Claude o DeepSeek a través de un endpoint?
Sí. Con api_base apuntando al gateway y el prefijo openai/ en el id del modelo, LiteLLM habla chat completions estándar con ese endpoint y reenvía el id como un string simple. Los ids de Claude, GPT, DeepSeek y GLM funcionan todos con los mismos dos ajustes.
¿Por qué necesita el id del modelo el prefijo openai/?
Open Interpreter corre sobre LiteLLM, que elige su cliente de proveedor a partir del string del modelo. El prefijo openai/ fuerza el cliente de protocolo OpenAI apuntando a tu api_base. Un id claude-* desnudo se resuelve hacia el cliente de Anthropic en su lugar e ignora tu endpoint.
¿Qué variable de entorno guarda la clave?
Con el prefijo openai/ en juego, OPENAI_API_KEY es la elección convencional, o configura interpreter.llm.api_key explícitamente en Python, o pasa --api_key en la CLI. Mantén la clave fuera de perfiles y scripts; el entorno es el lugar correcto para ella.
¿Necesito configurar context_window manualmente?
Para ids personalizados, sí. LiteLLM no puede inferir la ventana para un modelo que no reconoce, y Open Interpreter recorta el historial de conversación contra esta cifra. Declara la ventana real del modelo (200000 para los ids de Claude en la tabla) o las sesiones largas pierden su contexto anterior.
¿Hace que enrutar a través de un gateway sea seguro el auto-run (-y)?
No. El gateway lleva el tráfico del modelo; el código generado sigue ejecutándose localmente con tus permisos. Auto-run elimina el paso de revisión, así que confínalo a contenedores o sandboxes sin importar qué endpoint sirva el modelo.
¿Cuántos tokens usa una sesión de interpreter?
Escala con los turnos y con lo que entra al bucle: cada round trip reenvía conversación, código y salida capturada. Las tareas utilitarias cortas son modestas; las sesiones de depuración largas con datos pegados se acumulan rápido. La vista de uso por clave en la consola de APIsRouter muestra la cifra real por sesión.