Patakbuhin ang second brain mong Khoj sa isang custom OpenAI base URL.

Updated 2026-07-29

Naka-document sa Khoj ang isang OpenAI-proxy setup na may dalawang surface: isang OPENAI_BASE_URL environment variable na nagbubukid ng mga model sa unang run, at isang AI Model API entry sa admin panel na may Api Base Url field. Ituro ang alinman sa https://api.apisrouter.com/v1 at tumatakbo ang chat, agents, at automations sa anumang model ng katalogo.

Mabilisang sagot: env var sa unang run, admin panel kahit kailan.

May naka-comment na linya ng OPENAI_BASE_URL ang self-hosting compose file ng Khoj, na sinasabi mismo nito na para sa ibang OpenAI API compatible na providers. Itakda ito sa https://api.apisrouter.com/v1 gamit ang OPENAI_API_KEY na may hawak na gateway key bago ang unang startup, at gumagawa ang initialization ng Khoj ng bagay na kakaibang kapaki-pakinabang: nagta-tanong ito sa model list ng endpoint at binubukid ang chat-model table nito ng bawat id na si-serve ng endpoint, kaya lumalabas ang katalogo sa model picker ng Khoj nang walang manu-manong pagpasok. Sa isang server na na-initialize na, gamitin sa halip ang admin panel. Gumawa ng AI Model API entry (mga field: Name, Api Key, Api Base Url) na nakaturo sa gateway, pagkatapos ay gumawa ng Chat Model entries kung saan ang Name ay ang eksaktong model id, na may Model Type na itinakda sa Openai at naka-link sa AI Model API na iyon. Naka-document ang dalawang surface sa OpenAI-proxy guide ng Khoj sa docs.khoj.dev.

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

Ano ang ginagawa ng Khoj sa chat model nito.

Ang Khoj (khoj-ai sa GitHub, humigit-kumulang 36K stars) ay isang self-hostable na AI second brain: ini-index nito ang mga tala at dokumento mo (markdown, org-mode, PDFs, at higit pa), pagkatapos ay hinahayaan kang mag-chat sa kanila, magpatakbo ng mga custom na agent na may sariling persona at tools, mag-iskedyul ng mga automation na nagpapaputok sa isang cron, at maglunsad ng multi-step na research runs. May hosted app, pero ang self-hosted na server ang lugar kung saan naaangkop ang mga custom endpoint, at ito ang deployment na inilalarawan ng pahinang ito. Bawat isa sa mga feature na iyon ay dumadaan sa chat model na pinipili mo. Nagpapapaloob ang document chat ng retrieved note chunks sa prompt, nagdadagdag ang agents ng tool calls at persona instructions, pinapatakbo ng automations ang parehong pipeline nang walang bantay, at naghahain ang research mode ng maraming model calls per tanong. Sinasabihan ng Model Type Openai ang Khoj na magsalita ng /v1/chat/completions sa Api Base Url ng naka-link na AI Model API entry, na ipinapasa ang model Name bilang plain string, kaya gumagana ang isang Claude o DeepSeek id hangga't si-serve ito ng endpoint. Hiwalay na subsystem ang search embeddings. Default na ini-embed ng Khoj ang mga dokumento mo gamit ang isang local sentence-transformers na model, kaya patuloy na gumagana ang indexing at semantic search anuman ang gawin mo sa chat endpoint. Ang pag-route ng chat sa pamamagitan ng isang gateway ay ang bill lamang ng reasoning ang inililipat.

Buong setup: mga entry ng admin panel, hakbang-hakbang.

Sa isang tumatakbong server, tatlong admin screen ang buong integration. Una, idagdag ang AI Model API: buksan ang /server/admin/database/aimodelapi/add, pangalanan ito, i-paste ang gateway key sa Api Key, at itakda ang Api Base Url sa https://api.apisrouter.com/v1. Ikalawa, magdagdag ng chat models: sa /server/admin/database/chatmodel/add, itakda ang Name sa eksaktong id ng katalogo (claude-sonnet-4-6, deepseek-v4-flash), itakda ang Model Type sa Openai, i-link ang Ai Model Api entry na ginawa mo lang, at itakda ang Max prompt size sa isang value na akma sa context window ng model. Payo ng docs na iwanang walang laman ang Tokenizer para sa mga model na uri ng OpenAI. Ulitin per model na gusto mo sa picker. Ikatlo, piliin ang model: sa /settings, piliin ang bago mong chat model bilang default. Maaaring i-override ng mga agent ang model per agent, kung paano nagpapatakbo ang isang Khoj instance ng mabilis na id para sa araw-araw na automations at isang frontier id para sa research.

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

Pagpili ng mga model para sa isang second brain.

Dahil ang mga chat model ay mga row na idinadagdag mo laban sa isang AI Model API, walang gastos ang pagpapanatili ng dalawa o tatlong id sa picker. Ang praktikal na setup ay isang mabilis na default kasama ang isang frontier na escalation, pareho bini-bill sa parehong key kaya ipinapakita ng usage log kung magkano talaga ang gastos ng bawat tier sa mga tala mo.

  • Input-heavy ang document chat: nakakadala ang retrieved note chunks sa sagot. Ang presyo per input token ang nagdedesisyon sa gastos per tanong, na pumapabor sa claude-haiku-4-5-20251001, deepseek-v4-flash, o gemini-3.5-flash para sa pang-araw-araw na pagbawi.
  • Pinaparami ng research mode ang mga tawag. Ang isang tanong sa research ay maaaring magkadena ng maraming turn ng model, kaya ang id na ini-assign mo doon ang lumilipat sa bill nang higit sa ibang setting; ang claude-sonnet-4-6 ang balanseng pili, ang gpt-5.4 ang escalation.
  • Tumatakbo nang walang bantay ang mga scheduled automation. Presyuhan ang mga ito tulad ng subscription: mga tawag per araw na pinarami ng tokens per tawag, na eksaktong iniuulat ng per-key usage log.
  • Puno ng kontradiksyon ang personal na kaalaman (nagbabago ang mga plano, luma na ang mga tala), at nagkakaiba ang mga model sa kung gaano kahusay nilang ibinabandera ang salungat na mga tala sa halip na paghaluin ang mga ito; subukan ang dalawang id sa parehong set ng tanong bago magpasya.
  • Per chat model ang Max prompt size sa Khoj, kaya kumikita lamang ang isang long-context na id kung itataas mo ang field na iyon para tumugma.

Pay-as-you-go · mas mababa sa opisyal na presyo

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

ModelOpisyal na PresyoAming Presyo
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

Mga failure mode na specific sa Khoj.

Isang binhi sa unang run ang env var, hindi live na setting. Binabasa ang OPENAI_BASE_URL sa panahon ng initialization para gumawa ng provider entry at tumuklas ng mga model; sa isang server na na-initialize na, walang binabago ang pag-edit ng compose file na makikita mo. Gamitin ang admin panel para sa mga pagbabago pagkatapos ng unang boot, o i-reset ang database kung talagang gusto mo ng bagong binhi. Ang bitag ng placeholder key: kapag itinakda ang OPENAI_BASE_URL nang walang OPENAI_API_KEY, pinupunan ng Khoj ang key ng placeholder para gumana ang mga local server tulad ng Ollama. Nangangailangan ang isang gateway ng tunay na key, kaya kung nangyari ang first-run seeding nang wala nito, nabibigo ang mga chat nang authentication errors hanggang i-paste mo ang key sa AI Model API entry sa admin panel. Binubukid ng auto-discovery ang lahat. Dahil naglilista ang initialization ng bawat model na si-serve ng endpoint, maaaring magbukid ang isang multi-vendor gateway ng mahabang model table. Hindi mapanganib, pero sulit i-prune sa admin panel para manatiling magamit ang picker. Eksakto ang Name ng chat model. Ipinapasa ito ng Khoj nang literal; lumalabas ang isang typo bilang model-not-found sa unang mensahe, at ang output ng /v1/models ng gateway ang authoritative na baybay. At kung kumikilos nang hindi maayos ang semantic search sa mga tala mo, iyon ang local embedding subsystem, hindi kaugnay sa chat endpoint.

Sino ang nagru-route ng Khoj sa pamamagitan ng isang gateway.

  • Mga self-hoster na gustong makuha ang frontier-model na chat sa mga tala nila nang walang vendor account per model family; sinasakop ng isang key ang mga id ng Claude, GPT, DeepSeek, at Gemini.
  • Mga user na nagpapatakbo ng scheduled automations araw-araw, kung saan pinapanatili ng mabilis na id na patag ang paulit-ulit na gastos at ginagawang kita ito ng usage log.
  • Mga privacy-minded na setup na pinapanatiling local ang indexing at embeddings at nagbubunyag lamang ng chat prompts sa isang naaudit na endpoint.
  • Mga tinkerer na naghahambing ng chat models sa parehong personal na corpus: ang bawat kandidato ay isang chat-model row laban sa parehong AI Model API.
  • Mga developer na walang access sa billing ng isang partikular na vendor. Ang top-up based na access na walang kailangang card ay inaalis ang per-provider na sign-up dependency.

I-verify ang endpoint at i-debug ang unang chat.

Suriin muna ang gateway: ilista ang mga model gamit ang key mo at kumpirmahin ang mga id na balak mong i-register. Ginagawa rin ng sariling auto-discovery ng Khoj ang parehong tawag sa panahon ng first-run seeding, kaya kung gumana ang curl na ito, gagana rin ang seeding. Malinaw na nakakabit ang mga kabiguan. Ang mga authentication error ay nangangahulugang mali ang Api Key sa AI Model API entry o naka-seed pa ring placeholder. Ang model-not-found ay nangangahulugang hindi tumutugma ang isang Name ng chat model sa baybay ng katalogo. Ang mga sagot na naputol sa gitna ay karaniwang nangangahulugang masyadong mababa ang Max prompt size o output ceiling ng model para sa usapan. Ang mga problema sa indexing at search ay ang local embedding pipeline at wala itong kinalaman sa endpoint. Kapag dumadaloy na ang mga chat, ipinapakita ng APIsRouter console ang per-request na model, token counts, at gastos. Ang automations at research runs ang lugar kung saan nagtatago ang mga gastos ng second brain, at ang per-key usage ang paraan para makita mo ang mga ito per feature sa halip na isang buwanang gulat.

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

Mga madalas itanong

Sinusuportahan ba ng Khoj ang isang OpenAI-compatible na proxy o gateway?

Oo, bilang naka-document na setup: gumawa ng AI Model API entry na may Api Base Url na nakaturo sa endpoint, pagkatapos ay magdagdag ng chat models na may Model Type Openai. Inilalantad din ng compose file ang OPENAI_BASE_URL para sa first-run seeding.

Maaari bang mag-chat ang Khoj sa mga model ng Claude o DeepSeek sa pamamagitan nito?

Oo. Ipinapasa ng Model Type Openai ang Name ng chat model bilang plain string sa pamamagitan ng /v1/chat/completions patungo sa Api Base Url. Gumagana ang anumang id na si-serve ng gateway, kasama ang mga id ng Claude, DeepSeek, GLM, at Gemini.

Bakit walang nangyari nang binago ko ang OPENAI_BASE_URL sa docker-compose?

Binubukid lamang ng variable ang mga provider at model sa panahon ng first-run initialization. Sa isang na-initialize na server, i-edit sa halip ang AI Model API entry sa admin panel; iyon ang live na setting.

Naaapektuhan ba ng custom base URL ang document search ng Khoj?

Hindi. Default na ini-embed at hinahanap ng Khoj ang mga dokumento mo gamit ang isang local sentence-transformers na model. Ang chat, agents, automations, at research lamang ang inililipat ng AI Model API entry.

Ano ang Max prompt size sa chat model entry?

Isang per-model na hangganan kung gaano karaming prompt ang ipinapapaloob ng Khoj sa isang request. Itakda ito para akma sa context window ng model; ang masyadong mababa ay nagti-trim ng mga retrieved note, at ang isang long-context na id ay tumutulong lamang kung itataas ang field na ito para tumugma.

Naaangkop ba ito sa hosted na Khoj app?

Hindi, feature ng self-hosting ang mga custom endpoint. Pinapamahalaan ng hosted app ang sarili nitong mga model sa server side; ang admin-panel at environment surfaces dito ay nabibilang sa isang server na pinapatakbo mo mismo.