Запустіть Open Interpreter на кастомному OpenAI-сумісному ендпоінті.

Updated 2026-07-30

Open Interpreter напряму відкриває api_base. Вкажіть на https://api.apisrouter.com/v1, додайте префікс openai/ до id моделі, щоб LiteLLM говорив chat completions, — і модель, яка пише й запускає код на вашій машині, може бути будь-яким id каталогу за одним ключем.

Коротка відповідь: api_base плюс префікс моделі openai/.

Open Interpreter документує шлях кастомного ендпоінта в обох інтерфейсах. У CLI передайте --api_base з ендпоінтом і --model з префіксом openai/ на id. У Python встановіть interpreter.llm.api_base, interpreter.llm.api_key і interpreter.llm.model перед викликом chat(). Префікс — не декорація. Open Interpreter працює на LiteLLM, а LiteLLM резолвить, якого клієнта провайдера використати, з рядка моделі. openai/claude-sonnet-4-6 означає "говори протоколом chat-completions OpenAI до того, що каже api_base, з claude-sonnet-4-6 як полем моделі". Приберіть префікс — і LiteLLM натомість вивісить провайдера з голої назви, маршрутизуючи id claude-* до клієнта Anthropic й ігноруючи налаштований вами ендпоінт.

export OPENAI_API_KEY=sk-APIsRouter-...

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

Що Open Interpreter робить зі своєю моделлю.

Open Interpreter (openinterpreter на GitHub, приблизно 66 тис. зірок) дає мовній моделі інтерпретатор коду на вашій машині: ви формулюєте мету звичайною мовою, модель пише Python чи shell, Open Interpreter виконує це локально, а вивід повертається в розмову для наступного кроку. Цей цикл якісно відрізняє його від чат-клієнта. Модель не виробляє прозу; вона виробляє код, що виконується з правами вашого користувача, й ітерує проти реальних помилок вашої реальної системи. Звідси два наслідки для маршрутизації. По-перше, якість моделі — прямо властивість безпеки й коректності: модель, що галюцинує прапорці чи неправильно читає traceback, дає ще один провальний обмін, а в режимі авто-запуску — той, що ви не переглянули. По-друге, цикл голодний до токенів у специфічний спосіб: кожен хід повторно надсилає зростаючу розмову, код і захоплений вивід, тож довгі сесії дебагу швидко накопичують контекст. Налаштування api_base переміщує весь цей цикл на один ендпоінт. Оскільки поле моделі проходить як звичайний рядок після префікса openai/, id Claude, id GPT і id DeepSeek — взаємозамінні вибори за одним прапорцем, а не окремі налаштування провайдерів.

Повне налаштування: Python API і профіль.

Шлях Python встановлює ті самі три значення на interpreter.llm і додає два налаштування, які LiteLLM не може виявити для кастомного id: context_window і max_tokens. Open Interpreter використовує context_window, щоб вирішити, скільки історії розмови зберігати перед обрізанням, тож залишення цього не встановленим чи типовим на моделі з 200k обрізає набагато раніше, ніж потрібно; декларуйте те, що модель насправді підтримує. Для постійного налаштування ті самі ключі живуть у YAML-профілі під блоком llm: (відкрийте директорію профілів через interpreter --profiles). Профіль тримає ендпоінт, модель і налаштування вікна поза історією вашої оболонки й робить конфігурацію придатною для обміну між машинами, з ключем, що все ще надходить із середовища.

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

Вибір моделі, що пише ваш код.

Порівняння моделей тут незвично конкретне: дайте двом моделям те саме завдання й порахуйте обміни до робочого результату. Вигляд використання за ключем додає вартість токенів на сесію, що разом з кількістю обмінів — усе порівняння. За одним ендпоінтом кожен кандидат — один прапорець.

  • Основний цикл хоче модель, що пише робочий код і добре читає traceback з першого разу; claude-sonnet-4-6 і gpt-5.5 — надійна середина, і кожен провальний обмін, якого уникає краща модель, — це збережені токени й час.
  • deepseek-v4-pro — сильний кандидат для сесій, насичених кодом, де важливий обсяг; через один ендпоінт спробувати його на ваших власних завданнях — це зміна одного --model.
  • Короткі утилітарні сесії (перейменування файлів, одноразові трансформації, конвертація форматів) не потребують фронтирного міркування; claude-haiku-4-5-20251001 чи glm-5.2 тримають їх швидкими й дешевими.
  • Режим авто-запуску (-y) прибирає крок людського перегляду між генерацією коду й виконанням. Якщо ви взагалі його використовуєте, використовуйте з найсильнішою моделлю, яку запускаєте, у пісочниці чи контейнері, ніколи з моделлю, яку ще оцінюєте.

Оплата за фактом · нижче офіційних цін

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

МодельОфіційна цінаНаша ціна
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

Збої, специфічні саме для Open Interpreter.

Голий id моделі обходить ваш ендпоінт. Без префікса openai/ LiteLLM резолвить провайдера з назви: id claude-* прямують до клієнта Anthropic, і результат — помилка автентифікації чи маршрутизації проти хоста, який ви ніколи не налаштовували. Якщо помилки згадують SDK постачальника, а не ваш шлюз, префікс відсутній. Типові припущення про контекст обрізають ваші сесії. Для id, якого LiteLLM не розпізнає, нічого не заповнює контекстне вікно; Open Interpreter відкочується до консервативної поведінки й обрізає історію рано. Декларуйте context_window явно, бо сесія дебагу коду, що втрачає ранні спроби, повторює ті самі помилки. Зростаючі сесії, зростаючі рахунки. Кожен хід повторно надсилає розмову плюс код плюс захоплений вивід. Сесія, що вставляє великий датафрейм чи довгий лог у цикл, несе його в кожному наступному запиті. Надавайте перевагу тому, щоб модель писала код, що інспектує файли, а не вставленню вмісту файлу в чат, і починайте нові сесії, коли завдання змінюється. Невідповідність виклику функцій. Open Interpreter може використовувати структуровані виклики функцій, де підтримується; прапорець supports_functions існує для id, де виявлення вгадує неправильно. Якщо блоки коду приходять спотвореними на моделі, яку ви знаєте здатною, встановіть його явно на True; якщо модель справді не підтримує інструменти, встановіть False, щоб увімкнувся резервний шлях. Виконання — ваша відповідальність. api_base рухає трафік моделі; код все одно виконується локально з вашими правами. Шлюз нічого не пісочнить, тож тримайте авто-запуск обмеженим контейнерами й лишайте перегляд безпеки в циклі всюди інде.

Хто спрямовує Open Interpreter через шлюз.

  • Розробники, що використовують Open Interpreter як щоденний інструмент автоматизації і хочуть генерації коду якості Claude, різноманіття GPT і швидких утилітарних id за одним ключем.
  • Дата-фахівці, що запускають цикли дослідницького аналізу, де сесія може спалити несподіваний контекст, а використання за ключем робить вартість на еквівалент ноутбука видимою.
  • Інженери, що порівнюють моделі написання коду за обмінами до робочого результату, найчеснішим доступним бенчмарком, один прапорець --model на кандидата.
  • Експериментатори, що запускають заплановані чи контейнеризовані завдання інтерпретатора, де ендпоінт через змінну середовища й один секрет б'ють набір облікових даних на постачальника.
  • Розробники без доступу до білінгу певного постачальника. Доступ на основі поповнення без вимоги картки прибирає залежність від реєстрації на постачальника.

Перевірте ендпоінт і налагодьте першу сесію.

Спершу перелічіть моделі шлюзу; id після openai/ має точно збігатися з обслуговуваним id, включно з суфіксом версії. Збої першої сесії йдуть за патерном. Помилки, що називають anthropic чи інший SDK постачальника, означають, що префікс openai/ відсутній, і LiteLLM маршрутизував за назвою. 401 означає, що ключ не видимий у оболонці, яка запустила interpreter, чи був встановлений для іншої змінної, ніж та, що використовується; з префіксом на місці, OPENAI_API_KEY чи явний api_key обидва працюють. Помилка model-not-found від шлюзу — одруківка в id. Помилка з'єднання зазвичай означає, що api_base втратив суфікс /v1; клієнт додає /chat/completions до будь-якої бази, яку ви надаєте. Щойно цикл запущено, консоль APIsRouter показує модель на запит, кількість токенів і витрати. Сесії інтерпретатора — класичний випадок навантаження, що відчувається малим, а рахунок виходить середнім, і вигляд використання — це те, як ви бачите, які сесії насправді несли токени.

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

Поширені запитання

Чи може Open Interpreter запускати моделі Claude чи DeepSeek через один ендпоінт?

Так. З api_base, спрямованим на шлюз, і префіксом openai/ на id моделі, LiteLLM говорить стандартні chat completions до того ендпоінта й пересилає id як звичайний рядок. Id Claude, GPT, DeepSeek і GLM усі працюють з тими самими двома налаштуваннями.

Чому id моделі потребує префікса openai/?

Open Interpreter працює на LiteLLM, який обирає свого клієнта провайдера з рядка моделі. Префікс openai/ примусово спрямовує клієнт протоколу OpenAI на ваш api_base. Голий id claude-* натомість резолвиться до клієнта Anthropic й ігнорує ваш ендпоінт.

Яка змінна середовища тримає ключ?

З префіксом openai/ у грі, OPENAI_API_KEY — звичний вибір, або встановіть interpreter.llm.api_key явно в Python, чи передайте --api_key у CLI. Тримайте ключ поза профілями й скриптами; середовище — правильне місце для нього.

Чи потрібно встановлювати context_window вручну?

Для кастомних id — так. LiteLLM не може вивести вікно для моделі, яку не розпізнає, а Open Interpreter обрізає історію розмови проти цієї цифри. Декларуйте реальне вікно моделі (200000 для id Claude в таблиці), інакше довгі сесії втрачають свій ранній контекст.

Чи робить маршрутизація через шлюз авто-запуск (-y) безпечним?

Ні. Шлюз несе трафік моделі; згенерований код все одно виконується локально з вашими правами. Авто-запуск прибирає крок перегляду, тож тримайте його обмеженим контейнерами чи пісочницями незалежно від того, який ендпоінт обслуговує модель.

Скільки токенів використовує сесія інтерпретатора?

Масштабується з ходами й з тим, що входить у цикл: кожен обмін повторно надсилає розмову, код і захоплений вивід. Короткі утилітарні завдання скромні; довгі сесії дебагу з вставленими даними швидко накопичуються. Вигляд використання за ключем у консолі APIsRouter показує реальну цифру на сесію.