Draai Open Interpreter op een aangepast OpenAI-compatibel endpoint.

Updated 2026-07-30

Open Interpreter stelt api_base rechtstreeks bloot. Wijs het naar https://api.apisrouter.com/v1, geef het model-ID het voorvoegsel openai/ zodat LiteLLM chat completions spreekt, en het model dat code schrijft en uitvoert op je machine kan elk ID in de catalogus zijn onder één sleutel.

Snel antwoord: api_base plus het openai/-modelvoorvoegsel.

Open Interpreter documenteert een aangepast-endpointpad in beide interfaces. Op de CLI geef je --api_base door met het endpoint en --model met een openai/-voorvoegsel op het ID. In Python zet je interpreter.llm.api_base, interpreter.llm.api_key en interpreter.llm.model voordat je chat() aanroept. Het voorvoegsel is geen decoratie. Open Interpreter draait op LiteLLM, en LiteLLM bepaalt welke providerclient te gebruiken vanuit de model-string. openai/claude-sonnet-4-6 betekent "spreek het OpenAI-chat-completions-protocol tegen wat api_base ook zegt, met claude-sonnet-4-6 als het modelveld." Laat het voorvoegsel vallen en LiteLLM leidt in plaats daarvan de provider af uit de kale naam, waarbij een claude-*-ID naar Anthropic's client wordt gerouteerd en het endpoint dat je configureerde wordt genegeerd.

export OPENAI_API_KEY=sk-APIsRouter-...

interpreter \
  --api_base https://api.apisrouter.com/v1 \
  --model openai/claude-sonnet-4-6

Wat Open Interpreter met zijn model doet.

Open Interpreter (openinterpreter op GitHub, ongeveer 66K sterren) geeft een taalmodel een codeinterpreter op je machine: je stelt een doel in natuurlijke taal, het model schrijft Python of shell, Open Interpreter voert het lokaal uit, en de output voedt terug in het gesprek voor de volgende stap. Die lus maakt het kwalitatief anders dan een chatclient. Het model produceert geen proza; het produceert code die draait met de rechten van je gebruiker, en het itereert tegen echte fouten van je echte systeem. Twee gevolgen volgen voor routering. Ten eerste is modelkwaliteit direct een veiligheids- en correctheidseigenschap: een model dat hallucineert over flags of een traceback verkeerd leest, produceert nog een falende rondrit, en in auto-run-modus produceert het er een die je niet hebt beoordeeld. Ten tweede is de lus tokenhongerig op een specifieke manier: elke beurt stuurt het groeiende gesprek, de code en de vastgelegde output opnieuw, dus lange debugsessies stapelen context snel op. De api_base-instelling verplaatst deze hele lus naar één endpoint. Omdat het modelveld als platte string doorgaat na het openai/-voorvoegsel, zijn een Claude-ID, een GPT-ID en een DeepSeek-ID verwisselbare keuzes met één flag in plaats van aparte provideropstellingen.

Volledige instelling: Python-API en een profiel.

Het Python-pad zet dezelfde drie waarden op interpreter.llm en voegt de twee instellingen toe die LiteLLM niet kan ontdekken voor een aangepast ID: context_window en max_tokens. Open Interpreter gebruikt context_window om te beslissen hoeveel gespreksgeschiedenis te behouden voordat het trimt, dus het ongezet of standaard laten op een model met 200k trimt veel eerder dan nodig; verklaar wat het model daadwerkelijk ondersteunt. Voor een blijvende instelling leven dezelfde sleutels in een profiel-YAML onder een llm:-blok (open de profielenmap met interpreter --profiles). Een profiel houdt het endpoint, model en de venster-instellingen uit je shellgeschiedenis en maakt de configuratie deelbaar over machines, met de sleutel nog steeds geleverd door de omgeving.

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.")

Het model kiezen dat je code schrijft.

Modelvergelijking hier is ongewoon concreet: geef twee modellen dezelfde taak en tel rondrittes tot een werkend resultaat. De gebruiksweergave per sleutel voegt de tokenkosten per sessie toe, wat samen met het aantal rondrittes de hele vergelijking is. Achter één endpoint is elke kandidaat één flag.

  • De hoofdlus wil een model dat draaibare code schrijft en tracebacks goed leest bij de eerste poging; claude-sonnet-4-6 en gpt-5.5 zijn het betrouwbare midden, en elke mislukte rondrit die een beter model vermijdt, is tokens en wandkloktijd bespaard.
  • deepseek-v4-pro is een sterke kandidaat voor codezware sessies waar volume ertoe doet; via één endpoint is het testen ervan tegen je eigen taken een enkele --model-wijziging.
  • Snelle nutsessies (bestanden hernoemen, eenmalige transformaties, formaatconversies) hebben geen frontier-redenering nodig; claude-haiku-4-5-20251001 of glm-5.2 houdt ze snel en goedkoop.
  • Auto-run-modus (-y) verwijdert de menselijke controlestap tussen codegeneratie en uitvoering. Als je het al gebruikt, gebruik het dan met het sterkste model dat je draait, in een sandbox of container, nooit met een model dat je nog evalueert.

Betaal naar gebruik · onder officiële prijzen

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelOfficiële prijsOnze prijs
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

De faalmodi specifiek voor Open Interpreter.

Een kaal model-ID routeert om je endpoint heen. Zonder het openai/-voorvoegsel bepaalt LiteLLM de provider uit de naam: claude-*-ID's gaan naar Anthropic's client, en het resultaat is een auth- of routeringsfout tegen een host die je nooit hebt geconfigureerd. Als fouten een leverancier-SDK noemen in plaats van je gateway, ontbreekt het voorvoegsel. Standaard contextaannames trimmen je sessies. Voor een ID dat LiteLLM niet herkent, wordt niets ingevuld voor het contextvenster; Open Interpreter valt terug op conservatief gedrag en trimt geschiedenis vroeg. Verklaar context_window expliciet, want een codedebugsessie die zijn eerdere pogingen verliest, maakt dezelfde fouten opnieuw. Groeiende sessies, groeiende rekeningen. Elke beurt stuurt gesprek plus code plus vastgelegde output opnieuw. Een sessie die een grote dataframe of een lang logbestand in de lus plakt, draagt het mee in elk volgend verzoek. Geef er de voorkeur aan dat het model code schrijft die bestanden inspecteert boven bestandsinhoud in de chat plakken, en begin nieuwe sessies wanneer een taak verandert. Function-calling-mismatch. Open Interpreter kan gestructureerde functieaanroepen gebruiken waar ondersteund; de vlag supports_functions bestaat voor ID's waar detectie verkeerd raadt. Als codeblokken misvormd aankomen op een model waarvan je weet dat het capabel is, zet hem expliciet op True; als een model daadwerkelijk geen toolondersteuning heeft, zet False zodat het fallbackpad in werking treedt. De uitvoeringskant is van jou. api_base verplaatst het modelverkeer; de code draait nog steeds lokaal met jouw rechten. Een gateway sandboxt niets, dus houd auto-run beperkt tot containers en laat de veiligheidsbeoordeling overal elders in de lus blijven.

Wie routeert Open Interpreter via een gateway.

  • Developers die Open Interpreter als dagelijkse automatiseringstool gebruiken en Claude-kwaliteit codegeneratie, GPT-variëteit, en snelle nut-ID's achter één sleutel willen.
  • Datamensen die verkennende analyselussen draaien, waar een sessie verrassend veel context kan verbruiken en gebruik per sleutel de kosten per notebook-equivalent zichtbaar maakt.
  • Engineers die codeschrijvende modellen vergelijken op rondrittes-tot-werkend, de eerlijkste beschikbare benchmark, één --model-flag per kandidaat.
  • Sleutelaars die geplande of gecontaineriseerde interpreter-taken draaien, waar een omgevingsvariabele-endpoint en één secret beter zijn dan een credentialset per leverancier.
  • Developers zonder toegang tot de facturering van een bepaalde leverancier. Toegang op basis van opwaarderen zonder kaartvereiste verwijdert de aanmeldingsafhankelijkheid per provider.

Verifieer het endpoint en debug de eerste sessie.

Lijst eerst de modellen van de gateway op; het ID na openai/ moet exact overeenkomen met een bediend ID, versieachtervoegsel inbegrepen. Fouten bij de eerste sessie volgen een patroon. Fouten die anthropic of een andere leverancier-SDK noemen, betekenen dat het voorvoegsel openai/ ontbreekt en LiteLLM op naam routeerde. Een 401 betekent dat de sleutel niet zichtbaar is in de shell die de interpreter startte, of gezet is voor een andere variabele dan die in gebruik is; met het voorvoegsel op zijn plaats werken zowel OPENAI_API_KEY als een expliciete api_key. Een model-not-found-fout van de gateway is een tikfout in het ID. Een verbindingsfout betekent meestal dat api_base zijn /v1-achtervoegsel kwijt is; de client voegt /chat/completions toe aan welke base je ook geeft. Zodra de lus draait, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Interpreter-sessies zijn het klassieke geval van een workload die klein aanvoelt maar medium factureert, en de gebruiksweergave is hoe je ziet welke sessies daadwerkelijk de tokens droegen.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Veelgestelde vragen

Kan Open Interpreter Claude- of DeepSeek-modellen draaien via één endpoint?

Ja. Met api_base gewezen naar de gateway en het openai/-voorvoegsel op het model-ID, spreekt LiteLLM standaard chat completions naar dat endpoint en geeft het ID door als platte string. Claude-, GPT-, DeepSeek- en GLM-ID's werken allemaal met dezelfde twee instellingen.

Waarom heeft het model-ID het voorvoegsel openai/ nodig?

Open Interpreter draait op LiteLLM, dat zijn providerclient kiest uit de model-string. Het voorvoegsel openai/ dwingt de OpenAI-protocolclient gericht op je api_base af. Een kaal claude-*-ID resolveert in plaats daarvan naar Anthropic's client en negeert je endpoint.

Welke omgevingsvariabele bevat de sleutel?

Met het voorvoegsel openai/ in gebruik is OPENAI_API_KEY de conventionele keuze, of zet interpreter.llm.api_key expliciet in Python, of geef --api_key door op de CLI. Houd de sleutel uit profielen en scripts; de omgeving is het juiste thuis ervoor.

Moet ik context_window handmatig instellen?

Voor aangepaste ID's, ja. LiteLLM kan het venster niet afleiden voor een model dat het niet herkent, en Open Interpreter trimt gespreksgeschiedenis tegen dit cijfer. Verklaar het echte venster van het model (200000 voor de Claude-ID's in de tabel) of lange sessies verliezen hun eerdere context.

Maakt routeren via een gateway auto-run (-y) veilig?

Nee. De gateway draagt modelverkeer; gegenereerde code voert nog steeds lokaal uit met jouw rechten. Auto-run verwijdert de beoordelingsstap, dus houd het beperkt tot containers of sandboxes ongeacht welk endpoint het model bedient.

Hoeveel tokens gebruikt een interpreter-sessie?

Het schaalt met beurten en met wat de lus in gaat: elke rondrit stuurt gesprek, code en vastgelegde output opnieuw. Korte nutstaken zijn bescheiden; lange debugsessies met geplakte data stapelen snel op. De gebruiksweergave per sleutel in de APIsRouter-console toont het echte cijfer per sessie.