Draai je Khoj-tweedebrein op een aangepaste OpenAI base URL.
Updated 2026-07-29
Khoj documenteert een OpenAI-proxy-instelling met twee oppervlakken: een omgevingsvariabele OPENAI_BASE_URL die modellen zaait bij de eerste run, en een AI Model API-vermelding in het adminpaneel met een Api Base Url-veld. Wijs beide naar https://api.apisrouter.com/v1 en chat, agents en automatiseringen draaien op elk catalogusmodel.
Snel antwoord: omgevingsvariabele bij eerste run, adminpaneel altijd.
Het self-hosting compose-bestand van Khoj bevat een uitgecommentarieerde regel OPENAI_BASE_URL, bedoeld, in eigen woorden, voor andere OpenAI API-compatibele providers. Zet hem op https://api.apisrouter.com/v1 met OPENAI_API_KEY die een gatewaysleutel bevat vóór de eerste opstart, en de initialisatie van Khoj doet iets ongewoon nuttigs: het bevraagt de modellijst van het endpoint en zaait zijn chatmodel-tabel met elk ID dat het endpoint bedient, zodat de catalogus verschijnt in de modelkiezer van Khoj zonder handmatige invoer. Gebruik op een reeds geïnitialiseerde server in plaats daarvan het adminpaneel. Maak een AI Model API-vermelding aan (velden: Name, Api Key, Api Base Url) die naar de gateway wijst, maak dan Chat Model-vermeldingen waarvan de Name het exacte model-ID is, met Model Type ingesteld op Openai en gekoppeld aan die AI Model API. Beide oppervlakken zijn gedocumenteerd in de OpenAI-proxygids van Khoj op docs.khoj.dev.
services:
server:
environment:
- OPENAI_BASE_URL=https://api.apisrouter.com/v1
- OPENAI_API_KEY=sk-YOUR-APISROUTER-KEYWat Khoj doet met zijn chatmodel.
Khoj (khoj-ai op GitHub, ruim 36K sterren) is een self-hostable AI-tweedebrein: het indexeert je notities en documenten (markdown, org-mode, PDF's, en meer), laat je er dan over chatten, draait aangepaste agents met hun eigen persona's en tools, plant automatiseringen die op een cron afgaan, en start meerstaps-onderzoeksruns. Er is een gehoste app, maar de self-hosted server is waar aangepaste endpoints van toepassing zijn, en dat is de deployment die deze pagina beschrijft. Elke van die functies loopt via het chatmodel dat je selecteert. Documentchat pakt opgehaalde notitiefragmenten in de prompt, agents voegen tool-aanroepen en persona-instructies toe, automatiseringen draaien dezelfde pipeline onbewaakt, en onderzoeksmodus schakelt veel modelaanroepen per vraag aaneen. Model Type Openai vertelt Khoj om /v1/chat/completions te spreken tegen de Api Base Url van de gekoppelde AI Model API-vermelding, waarbij het model Name als platte string wordt doorgestuurd, en daarom werkt een Claude- of DeepSeek-ID daar zolang het endpoint het bedient. Zoek-embeddings zijn een ander subsysteem. Khoj embedt je documenten standaard met een lokaal sentence-transformers-model, dus indexering en semantisch zoeken blijven werken ongeacht wat je met het chat-endpoint doet. Chat via een gateway routeren verplaatst alleen de rekenrekening.
Volledige instelling: adminpaneel-vermeldingen stap voor stap.
Op een draaiende server is de hele integratie drie adminschermen. Voeg eerst de AI Model API toe: open /server/admin/database/aimodelapi/add, geef hem een naam, plak de gatewaysleutel in Api Key, en zet Api Base Url op https://api.apisrouter.com/v1. Voeg ten tweede chatmodellen toe: zet op /server/admin/database/chatmodel/add Name op een exact catalogus-ID (claude-sonnet-4-6, deepseek-v4-flash), zet Model Type op Openai, koppel de zojuist gemaakte Ai Model Api-vermelding, en zet Max prompt size op een waarde die past bij het contextvenster van het model. De documentatie adviseert Tokenizer niet in te stellen voor modellen van het type OpenAI. Herhaal per model dat je in de kiezer wilt. Selecteer ten derde het model: kies op /settings je nieuwe chatmodel als standaard. Agents kunnen het model per agent overschrijven, en zo draait één Khoj-instantie een snel ID voor dagelijkse automatiseringen en een frontier-ID voor onderzoek.
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 modelModellen kiezen voor een tweedebrein.
Omdat chatmodellen rijen zijn die je toevoegt tegen één AI Model API, kost het niets om twee of drie ID's in de kiezer te houden. De praktische instelling is een snelle standaard plus een frontier-escalatie, beide gefactureerd via dezelfde sleutel zodat het gebruikslogboek toont wat elke laag daadwerkelijk kost op je notities.
- Documentchat is input-zwaar: opgehaalde notitiefragmenten overstijgen het antwoord verre. De prijs per inputtoken bepaalt de kosten per vraag, wat claude-haiku-4-5-20251001, deepseek-v4-flash, of gemini-3.5-flash bevoordeelt voor alledaagse recall.
- Onderzoeksmodus vermenigvuldigt aanroepen. Eén onderzoeksvraag kan veel modelbeurten aaneenschakelen, dus het ID dat je daar toewijst, beweegt de rekening meer dan elke andere instelling; claude-sonnet-4-6 is de gebalanceerde keuze, gpt-5.4 de escalatie.
- Geplande automatiseringen draaien onbewaakt. Prijs ze als een abonnement: aanroepen per dag maal tokens per aanroep, precies wat het gebruikslogboek per sleutel rapporteert.
- Persoonlijke kennis is rijk aan tegenstrijdigheden (plannen veranderen, notities verouderen), en modellen verschillen in hoe goed ze conflicterende notities markeren in plaats van ze te mengen; test twee ID's op dezelfde vragenset voordat je committeert.
- Max prompt size is per chatmodel in Khoj, dus een langecontext-ID betaalt zich alleen uit als je dat veld verhoogt om te matchen.
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.
| Model | Officiële prijs | Onze prijs |
|---|---|---|
| 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 |
Faalmodi specifiek voor Khoj.
De omgevingsvariabele is een zaadje bij de eerste run, geen live instelling. OPENAI_BASE_URL wordt tijdens initialisatie gelezen om de providervermelding aan te maken en modellen te ontdekken; op een server die al is geïnitialiseerd, verandert het bewerken van het compose-bestand niets dat je kunt zien. Gebruik het adminpaneel voor wijzigingen na de eerste opstart, of reset de database als je echt een vers zaadje wilt. De placeholder-sleutel-valkuil: wanneer OPENAI_BASE_URL is ingesteld zonder OPENAI_API_KEY, vult Khoj de sleutel met een placeholder zodat lokale servers zoals Ollama werken. Een gateway vereist een echte sleutel, dus als de zaaiactie bij de eerste run zonder plaatsvond, falen chats met authenticatiefouten totdat je de sleutel in de AI Model API-vermelding in het adminpaneel plakt. Auto-discovery zaait alles. Omdat initialisatie elk model vermeldt dat het endpoint bedient, kan een multi-vendor gateway een lange modeltabel zaaien. Onschadelijk, maar het loont om in het adminpaneel te snoeien zodat de kiezer bruikbaar blijft. De Name van het chatmodel is exact. Khoj stuurt hem verbatim door; een tikfout komt naar voren als model-not-found bij het eerste bericht, en de /v1/models-output van de gateway is de gezaghebbende spelling. En als semantisch zoeken over je notities zich misdraagt, is dat het lokale embeddingsubsysteem, los van het chat-endpoint.
Wie routeert Khoj via een gateway.
- Self-hosters die frontier-modelchat over hun notities willen zonder een leveranciersaccount per modelfamilie; één sleutel dekt Claude-, GPT-, DeepSeek- en Gemini-ID's.
- Gebruikers die dagelijks geplande automatiseringen draaien, waar een snel ID de terugkerende kosten vlak houdt en het gebruikslogboek het zichtbaar maakt.
- Privacybewuste opstellingen die indexering en embeddings lokaal houden en alleen chatprompts blootstellen aan één controleerbaar endpoint.
- Sleutelaars die chatmodellen vergelijken over een identiek persoonlijk corpus: elke kandidaat is één chatmodel-rij tegen dezelfde AI Model API.
- 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 chat.
Controleer eerst de gateway: lijst modellen op met je sleutel en bevestig de ID's die je van plan bent te registreren. De eigen auto-discovery van Khoj doet dezelfde aanroep tijdens het zaaien bij eerste run, dus als deze curl werkt, werkt het zaaien ook. Fouten zijn duidelijk te lokaliseren. Authenticatiefouten betekenen dat de Api Key op de AI Model API-vermelding fout is of nog steeds de gezaaide placeholder. Model-not-found betekent dat een chatmodel-Name niet overeenkomt met de catalogusspelling. Antwoorden die middenin afbreken betekenen meestal dat Max prompt size of het outputplafond van het model te laag is ingesteld voor het gesprek. Indexerings- en zoekproblemen zijn de lokale embeddingpipeline en hebben niets met het endpoint te maken. Zodra chats vloeien, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Automatiseringen en onderzoeksruns zijn waar tweedebrein-kosten zich verbergen, en gebruik per sleutel is hoe je ze per feature ziet in plaats van als één maandelijkse verrassing.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Veelgestelde vragen
Ondersteunt Khoj een OpenAI-compatibele proxy of gateway?
Ja, als gedocumenteerde instelling: maak een AI Model API-vermelding met een Api Base Url die naar het endpoint wijst, voeg dan chatmodellen toe met Model Type Openai. Het compose-bestand stelt ook OPENAI_BASE_URL bloot voor zaaien bij eerste run.
Kan Khoj chatten met Claude- of DeepSeek-modellen hierdoorheen?
Ja. Model Type Openai stuurt de chatmodel-Name als platte string door over /v1/chat/completions naar de Api Base Url. Elk ID dat de gateway bedient werkt, inclusief Claude-, DeepSeek-, GLM- en Gemini-ID's.
Waarom deed het wijzigen van OPENAI_BASE_URL in docker-compose niets?
De variabele zaait providers en modellen alleen tijdens initialisatie bij de eerste run. Bewerk op een geïnitialiseerde server in plaats daarvan de AI Model API-vermelding in het adminpaneel; dat is de live instelling.
Beïnvloedt de aangepaste base URL het documentzoeken van Khoj?
Nee. Khoj embedt en doorzoekt je documenten standaard met een lokaal sentence-transformers-model. De AI Model API-vermelding verplaatst alleen chat, agents, automatiseringen en onderzoek.
Wat is Max prompt size op de chatmodel-vermelding?
Een plafond per model op hoeveel prompt Khoj in een verzoek inpakt. Stel het in op het contextvenster van het model; te laag knipt opgehaalde notities weg, en een langecontext-ID helpt alleen als dit veld wordt verhoogd om te matchen.
Geldt dit voor de gehoste Khoj-app?
Nee, aangepaste endpoints zijn een self-hosting-functie. De gehoste app beheert zijn eigen modellen server-side; het adminpaneel- en omgevingsoppervlak hier hoort bij een server die je zelf draait.