Запустіть ваш другий мозок Khoj на кастомному OpenAI base URL.

Updated 2026-07-29

Khoj документує налаштування OpenAI-проксі з двома поверхнями: змінна середовища OPENAI_BASE_URL, що засіює моделі при першому запуску, і запис AI Model API у панелі адміністратора з полем Api Base Url. Спрямуйте будь-яку з них на https://api.apisrouter.com/v1 — і чат, агенти та автоматизації працюватимуть на будь-якій моделі каталогу.

Коротка відповідь: змінна середовища при першому запуску, панель адміністратора будь-коли.

Compose-файл для self-hosting Khoj несе закоментований рядок OPENAI_BASE_URL, призначений, за власними словами проєкту, для «інших OpenAI API compatible providers». Встановіть його на https://api.apisrouter.com/v1 з OPENAI_API_KEY, що містить ключ шлюзу, перед першим запуском, і ініціалізація Khoj робить дещо напрочуд корисне: вона запитує список моделей ендпоінта і засіює свою таблицю чат-моделей кожним id, який обслуговує ендпоінт, тож каталог з'являється в селекторі моделей Khoj без ручного введення. На вже ініціалізованому сервері натомість використовуйте панель адміністратора. Створіть запис AI Model API (поля: Name, Api Key, Api Base Url), що вказує на шлюз, потім створіть записи Chat Model, чиє Name — це точний id моделі, з Model Type, встановленим на Openai, і зв'язане з цим AI Model API. Обидві поверхні задокументовані в гайді Khoj про OpenAI-проксі на docs.khoj.dev.

services:
  server:
    environment:
      - OPENAI_BASE_URL=https://api.apisrouter.com/v1
      - OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY

Що Khoj насправді робить зі своєю чат-моделлю.

Khoj (khoj-ai на GitHub, приблизно 36 тис. зірок) — це другий мозок AI з можливістю self-hosting: він індексує ваші нотатки й документи (markdown, org-mode, PDF та інше), потім дозволяє спілкуватися над ними, запускати кастомних агентів із власними персонами й інструментами, планувати автоматизації, що спрацьовують за розкладом cron, і запускати багатокрокові дослідницькі прогони. Є й хостований застосунок, але саме self-hosted сервер — те місце, де застосовуються кастомні ендпоінти, і саме такий деплой описує ця сторінка. Кожна з цих можливостей проходить через обрану вами чат-модель. Чат по документах впаковує отримані фрагменти нотаток у промпт, агенти додають виклики інструментів та інструкції персони, автоматизації запускають той самий конвеєр без нагляду, а режим дослідження ланцюжком з'єднує багато викликів моделі на одне питання. Model Type Openai каже Khoj говорити /v1/chat/completions до Api Base Url зв'язаного запису AI Model API, пересилаючи Name моделі як звичайний рядок, через що id Claude чи DeepSeek там працює, якщо ендпоінт його обслуговує. Ембедінги пошуку — інша підсистема. Khoj за замовчуванням вбудовує ваші документи локальною моделлю sentence-transformers, тож індексація й семантичний пошук продовжують працювати незалежно від того, що ви робите з чат-ендпоінтом. Маршрутизація чату через шлюз рухає лише рахунок за міркування.

Повне налаштування: записи панелі адміністратора крок за кроком.

На запущеному сервері вся інтеграція — це три екрани адміністратора. Спочатку додайте AI Model API: відкрийте /server/admin/database/aimodelapi/add, назвіть його, вставте ключ шлюзу в Api Key і встановіть Api Base Url на https://api.apisrouter.com/v1. По-друге, додайте чат-моделі: на /server/admin/database/chatmodel/add встановіть Name на точний id з каталогу (claude-sonnet-4-6, deepseek-v4-flash), встановіть Model Type на Openai, зв'яжіть щойно створений Ai Model Api і встановіть Max prompt size на значення, що вміщується у контекстне вікно моделі. Документація радить залишати Tokenizer незаданим для моделей типу OpenAI. Повторіть для кожної моделі, яку хочете бачити в селекторі. По-третє, оберіть модель: на /settings оберіть вашу нову чат-модель як типову. Агенти можуть перевизначати модель окремо, і саме так один інстанс Khoj запускає швидкий id для щоденних автоматизацій і id фронтиру для досліджень.

1) /server/admin/database/aimodelapi/add
   Name:         APIsRouter
   Api Key:      sk-YOUR-APISROUTER-KEY
   Api Base Url: https://api.apisrouter.com/v1

2) /server/admin/database/chatmodel/add
   Name:         claude-sonnet-4-6   (exact catalog id)
   Model Type:   Openai
   Ai Model Api: APIsRouter
   Max prompt size: 100000

3) /settings -> select the new chat model

Вибір моделей для другого мозку.

Оскільки чат-моделі — це рядки, які ви додаєте до одного AI Model API, тримати два-три id в селекторі не коштує нічого. Практичне налаштування — швидка модель за замовчуванням плюс ескалація до фронтиру, обидві оплачуються через той самий ключ, тож лог використання показує, скільки насправді коштує кожен рівень на ваших нотатках.

  • Чат по документах вхідно-важкий: отримані фрагменти нотаток набагато більші за відповідь. Ціна за вхідний токен визначає вартість питання, що на користь claude-haiku-4-5-20251001, deepseek-v4-flash чи gemini-3.5-flash для повсякденного пригадування.
  • Режим дослідження множить виклики. Одне дослідницьке питання може ланцюжком з'єднати багато ходів моделі, тож id, який ви призначите там, рухає рахунок сильніше за будь-яке інше налаштування; claude-sonnet-4-6 — збалансований вибір, gpt-5.4 — ескалація.
  • Заплановані автоматизації працюють без нагляду. Оцінюйте їх як підписку: викликів на день, помножених на токени за виклик, — саме це показує лог використання за ключем.
  • Особисті знання багаті на протиріччя (плани змінюються, нотатки застарівають), і моделі відрізняються тим, наскільки добре вони позначають суперечливі нотатки, а не змішують їх; протестуйте два id на одному наборі питань, перш ніж закріплювати вибір.
  • Max prompt size — це поле кожної чат-моделі в Khoj, тож id з довгим контекстом окупається лише тоді, коли ви піднімете це поле відповідно.

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

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
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M

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

Змінна середовища — це посів при першому запуску, а не жива настройка. OPENAI_BASE_URL зчитується під час ініціалізації, щоб створити запис провайдера і виявити моделі; на сервері, який уже ініціалізовано, редагування compose-файлу нічого видимого не змінює. Використовуйте панель адміністратора для змін після першого запуску, або скиньте базу даних, якщо ви справді хочете свіжий посів. Пастка placeholder-ключа: коли OPENAI_BASE_URL встановлено без OPENAI_API_KEY, Khoj заповнює ключ заглушкою, щоб працювали локальні сервери на кшталт Ollama. Шлюзу потрібен справжній ключ, тож якщо посів при першому запуску стався без нього, чати падають з помилками автентифікації, доки ви не вставите ключ у запис AI Model API в панелі адміністратора. Автовиявлення засіює все. Оскільки ініціалізація перелічує кожну модель, яку обслуговує ендпоінт, мультивендорний шлюз може засіяти довгу таблицю моделей. Нешкідливо, але варто прополоти в панелі адміністратора, щоб селектор залишався зручним. Name чат-моделі — точний. Khoj пересилає його дослівно; одруківка проявляється як model-not-found при першому повідомленні, і вивід /v1/models шлюзу — авторитетне написання. А якщо семантичний пошук по ваших нотатках поводиться погано, це локальна підсистема ембедінгу, не пов'язана з чат-ендпоінтом.

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

  • Self-hosters, що хочуть чат моделей фронтиру над своїми нотатками без облікового запису постачальника на кожну родину моделей; один ключ покриває id Claude, GPT, DeepSeek і Gemini.
  • Користувачі, що запускають щоденні заплановані автоматизації, де швидкий id тримає повторювану вартість плоскою, а лог використання робить її видимою.
  • Налаштування, орієнтовані на приватність, що тримають індексацію й ембедінги локально й відкривають лише промпти чату одному аудитованому ендпоінту.
  • Технарі, що порівнюють чат-моделі на ідентичному особистому корпусі: кожен кандидат — це один рядок chat-model проти того самого AI Model API.
  • Розробники без доступу до білінгу певного постачальника. Доступ на основі поповнення без вимоги картки прибирає залежність від реєстрації в кожного провайдера.

Перевірте ендпоінт і налагодьте перший чат.

Спочатку перевірте шлюз: перелічіть моделі з вашим ключем і підтвердіть id, які плануєте зареєструвати. Власне автовиявлення Khoj робить той самий виклик під час посіву при першому запуску, тож якщо цей curl працює, спрацює і посів. Збої локалізуються чітко. Помилки автентифікації означають, що Api Key у записі AI Model API неправильний або досі placeholder із посіву. Model-not-found означає, що Name чат-моделі не збігається з написанням у каталозі. Відповіді, що обриваються на півслові, зазвичай означають, що Max prompt size чи стеля виводу моделі встановлені занадто низько для розмови. Проблеми з індексацією й пошуком — це локальний конвеєр ембедінгу і не мають нічого спільного з ендпоінтом. Щойно чати потечуть, консоль APIsRouter показує модель на запит, кількість токенів і витрати. Автоматизації й дослідницькі прогони — саме там, де ховаються витрати другого мозку, і використання за ключем — це те, як ви бачите їх по фічі, а не як один місячний сюрприз.

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

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

Чи підтримує Khoj OpenAI-сумісний проксі чи шлюз?

Так, як задокументоване налаштування: створіть запис AI Model API з Api Base Url, що вказує на ендпоінт, потім додайте чат-моделі з Model Type Openai. Compose-файл також надає OPENAI_BASE_URL для посіву при першому запуску.

Чи може Khoj спілкуватися через моделі Claude чи DeepSeek завдяки цьому?

Так. Model Type Openai пересилає Name чат-моделі як звичайний рядок через /v1/chat/completions до Api Base Url. Працює будь-який id, який обслуговує шлюз, включно з id Claude, DeepSeek, GLM і Gemini.

Чому зміна OPENAI_BASE_URL у docker-compose нічого не зробила?

Змінна засіює провайдерів і моделі лише під час ініціалізації при першому запуску. На ініціалізованому сервері натомість редагуйте запис AI Model API в панелі адміністратора; це і є жива настройка.

Чи впливає кастомний base URL на пошук документів Khoj?

Ні. Khoj за замовчуванням вбудовує й шукає ваші документи локальною моделлю sentence-transformers. Запис AI Model API рухає лише чат, агентів, автоматизації й дослідження.

Що таке Max prompt size у записі чат-моделі?

Обмеження на модель, скільки промпту Khoj впаковує в запит. Встановіть його відповідно до контекстного вікна моделі; занадто низьке значення обрізає отримані нотатки, а id з довгим контекстом допомагає лише якщо це поле піднято відповідно.

Чи стосується це хостованого застосунку Khoj?

Ні, кастомні ендпоінти — це фіча self-hosting. Хостований застосунок керує власними моделями на боці сервера; описані тут панель адміністратора й змінні середовища належать серверу, який ви запускаєте самі.