Dein Khoj-Second-Brain auf einer custom OpenAI-Base-URL betreiben.
Updated 2026-07-29
Khoj dokumentiert ein OpenAI-Proxy-Setup mit zwei Flächen: einer Umgebungsvariable OPENAI_BASE_URL, die beim ersten Start Modelle seedet, und einem AI-Model-API-Eintrag im Admin-Panel mit einem Api-Base-Url-Feld. Zeige beides auf https://api.apisrouter.com/v1, und Chat, Agents und Automations laufen auf jedem Katalog-Modell.
Kurzantwort: Env-Var beim ersten Start, Admin-Panel jederzeit.
Khojs Self-Hosting-Compose-Datei trägt eine auskommentierte OPENAI_BASE_URL-Zeile, gedacht, in ihren eigenen Worten, für andere OpenAI-API-kompatible Provider. Setze sie vor dem ersten Start auf https://api.apisrouter.com/v1 mit OPENAI_API_KEY als Gateway-Key, und Khojs Initialisierung tut etwas ungewöhnlich Hilfreiches: sie fragt die Modell-Liste des Endpoints ab und seedet ihre Chat-Model-Tabelle mit jeder ID, die der Endpoint bedient, sodass der Katalog ohne manuelle Eingabe in Khojs Model-Picker auftaucht. Auf einem bereits initialisierten Server nutze stattdessen das Admin-Panel. Erstelle einen AI-Model-API-Eintrag (Felder: Name, Api Key, Api Base Url), der auf das Gateway zeigt, und erstelle dann Chat-Model-Einträge, deren Name die exakte Model-ID ist, mit Model Type auf Openai und verknüpft mit dieser AI Model API. Beide Flächen sind in Khojs OpenAI-Proxy-Guide auf docs.khoj.dev dokumentiert.
services:
server:
environment:
- OPENAI_BASE_URL=https://api.apisrouter.com/v1
- OPENAI_API_KEY=sk-YOUR-APISROUTER-KEYWas Khoj mit seinem Chat-Modell macht.
Khoj (khoj-ai auf GitHub, rund 36.000 Stars) ist ein selbst hostbares KI-Second-Brain: es indiziert deine Notizen und Dokumente (Markdown, Org-mode, PDFs und mehr), lässt dich dann darüber chatten, custom Agents mit eigenen Personas und Tools betreiben, Automations planen, die per Cron feuern, und mehrstufige Research-Runs starten. Es gibt eine gehostete App, aber der self-hosted Server ist, wo custom Endpoints greifen, und das ist das Deployment, das diese Seite beschreibt. Jedes dieser Features läuft durch das von dir gewählte Chat-Modell. Dokumenten-Chat packt abgerufene Notiz-Chunks in den Prompt, Agents fügen Tool-Calls und Persona-Instruktionen hinzu, Automations laufen dieselbe Pipeline unbeaufsichtigt, und der Research-Modus verkettet viele Model-Calls pro Frage. Model Type Openai sagt Khoj, /v1/chat/completions gegen die Api Base Url des verknüpften AI-Model-API-Eintrags zu sprechen und den model-Namen als reinen String weiterzureichen, weshalb eine Claude- oder DeepSeek-ID dort funktioniert, solange der Endpoint sie bedient. Such-Embeddings sind ein anderes Subsystem. Khoj bettet deine Dokumente standardmäßig mit einem lokalen Sentence-Transformers-Modell ein, sodass Indizierung und semantische Suche unabhängig davon weiterlaufen, was du mit dem Chat-Endpoint machst. Chat über ein Gateway zu routen bewegt nur die Reasoning-Rechnung.
Vollständiges Setup: Admin-Panel-Einträge Schritt für Schritt.
Auf einem laufenden Server ist die gesamte Integration drei Admin-Screens. Füge zuerst die AI Model API hinzu: öffne /server/admin/database/aimodelapi/add, benenne sie, füge den Gateway-Key in Api Key ein, und setze Api Base Url auf https://api.apisrouter.com/v1. Füge zweitens Chat-Modelle hinzu: setze unter /server/admin/database/chatmodel/add den Name auf eine exakte Katalog-ID (claude-sonnet-4-6, deepseek-v4-flash), setze Model Type auf Openai, verknüpfe den gerade erstellten Ai Model Api-Eintrag, und setze Max prompt size auf einen Wert, der zum Context-Window des Modells passt. Die Docs raten, Tokenizer für OpenAI-Typ-Modelle unangetastet zu lassen. Wiederholen pro gewünschtem Modell im Picker. Wähle drittens das Modell: auf /settings dein neues Chat-Modell als Default wählen. Agents können das Modell pro Agent überschreiben, wodurch eine Khoj-Instanz eine schnelle ID für tägliche Automations und eine Frontier-ID für Research laufen lässt.
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 modelModelle für ein Second Brain wählen.
Weil Chat-Modelle Zeilen sind, die du gegen eine AI Model API hinzufügst, kostet es nichts, zwei oder drei IDs im Picker zu halten. Das praktische Setup ist ein schneller Default plus eine Frontier-Eskalation, beide über denselben Key abgerechnet, sodass das Nutzungslog zeigt, was jede Stufe an deinen Notizen tatsächlich kostet.
- Dokumenten-Chat ist input-lastig: abgerufene Notiz-Chunks überragen die Antwort. Der Preis pro Input-Token treibt die Kosten pro Frage, was claude-haiku-4-5-20251001, deepseek-v4-flash oder gemini-3.5-flash für alltägliches Abrufen begünstigt.
- Der Research-Modus vervielfacht Calls. Eine Research-Frage kann viele Model-Turns verketten, also bewegt die dort zugewiesene ID die Rechnung mehr als jede andere Einstellung; claude-sonnet-4-6 ist die ausgewogene Wahl, gpt-5.4 die Eskalation.
- Geplante Automations laufen unbeaufsichtigt. Bepreise sie wie ein Abo: Calls pro Tag mal Token pro Call, genau das, was das Nutzungslog pro Key berichtet.
- Persönliches Wissen ist widerspruchsreich (Pläne ändern sich, Notizen veralten), und Modelle unterscheiden sich darin, wie gut sie widersprüchliche Notizen kennzeichnen, statt sie zu vermischen; teste zwei IDs am selben Fragenset, bevor du dich festlegst.
- Max prompt size ist pro Chat-Modell in Khoj, also zahlt sich eine Long-Context-ID nur aus, wenn du dieses Feld entsprechend anhebst.
Nutzungsbasiert · unter offiziellem Preis
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modell | Offizieller Preis | Unser Preis |
|---|---|---|
| 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 |
Fehlerbilder speziell für Khoj.
Die Env-Var ist ein First-Run-Seed, keine Live-Einstellung. OPENAI_BASE_URL wird während der Initialisierung gelesen, um den Provider-Eintrag zu erstellen und Modelle zu entdecken; auf einem bereits initialisierten Server ändert das Bearbeiten der Compose-Datei sichtbar nichts. Nutze für Änderungen nach dem ersten Boot das Admin-Panel, oder setze die Datenbank zurück, wenn du wirklich einen frischen Seed willst. Die Placeholder-Key-Falle: Ist OPENAI_BASE_URL ohne OPENAI_API_KEY gesetzt, füllt Khoj den Key mit einem Platzhalter, damit lokale Server wie Ollama funktionieren. Ein Gateway braucht einen echten Key, also scheitern Chats mit Authentifizierungsfehlern, falls das First-Run-Seeding ohne einen passierte, bis du den Key in den AI-Model-API-Eintrag im Admin-Panel einfügst. Auto-Discovery seedet alles. Weil die Initialisierung jedes vom Endpoint bediente Modell listet, kann ein Multi-Vendor-Gateway eine lange Modell-Tabelle seeden. Harmlos, aber es lohnt sich, im Admin-Panel zu bereinigen, damit der Picker nutzbar bleibt. Chat-Model-Name ist exakt. Khoj reicht ihn wortwörtlich weiter; ein Tippfehler zeigt sich bei der ersten Nachricht als model-not-found, und die /v1/models-Ausgabe des Gateways ist die maßgebliche Schreibweise. Und verhält sich semantische Suche über deine Notizen auffällig, liegt das am lokalen Embedding-Subsystem, unabhängig vom Chat-Endpoint.
Wer Khoj über ein Gateway routet.
- Self-Hoster, die Frontier-Modell-Chat über ihre Notizen wollen, ohne ein Vendor-Konto pro Modellfamilie; ein Key deckt Claude-, GPT-, DeepSeek- und Gemini-IDs ab.
- Nutzer, die täglich geplante Automations betreiben, wo eine schnelle ID die wiederkehrenden Kosten flach hält und das Nutzungslog sie sichtbar macht.
- Privacy-bewusste Setups, die Indizierung und Embeddings lokal halten und nur Chat-Prompts einem einzigen prüfbaren Endpoint aussetzen.
- Tüftler, die Chat-Modelle über einen identischen persönlichen Korpus vergleichen: jeder Kandidat ist eine Chat-Model-Zeile gegen dieselbe AI Model API.
- Entwickler ohne Zugang zum Billing eines bestimmten Vendors. Guthabenbasierter Zugang ohne Kartenpflicht entfernt die Sign-up-Abhängigkeit pro Provider.
Endpoint verifizieren und den ersten Chat debuggen.
Prüfe zuerst das Gateway: liste Modelle mit deinem Key und bestätige die IDs, die du registrieren willst. Khojs eigene Auto-Discovery macht während des First-Run-Seedings denselben Call, also klappt das Seeding auch, wenn dieses curl funktioniert. Fehler lassen sich sauber verorten. Authentifizierungsfehler bedeuten, der Api Key im AI-Model-API-Eintrag ist falsch oder noch der geseedete Platzhalter. Model-not-found bedeutet, ein Chat-Model-Name passt nicht zur Katalog-Schreibweise. Antworten, die mitten in der Antwort abbrechen, bedeuten meist, dass Max prompt size oder die Output-Obergrenze des Modells zu niedrig für die Konversation gesetzt ist. Indizierungs- und Suchprobleme sind die lokale Embedding-Pipeline und haben nichts mit dem Endpoint zu tun. Sobald Chats laufen, zeigt die APIsRouter-Konsole Modell, Token-Zahlen und Ausgaben pro Anfrage. Automations und Research-Runs sind, wo sich Second-Brain-Kosten verstecken, und Nutzung pro Key ist, wie du sie pro Feature statt als monatliche Überraschung siehst.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Häufige Fragen
Unterstützt Khoj einen OpenAI-kompatiblen Proxy oder ein Gateway?
Ja, als dokumentiertes Setup: erstelle einen AI-Model-API-Eintrag mit einer auf den Endpoint zeigenden Api Base Url, füge dann Chat-Modelle mit Model Type Openai hinzu. Die Compose-Datei stellt zudem OPENAI_BASE_URL für First-Run-Seeding bereit.
Kann Khoj darüber mit Claude- oder DeepSeek-Modellen chatten?
Ja. Model Type Openai reicht den Chat-Model-Name als reinen String über /v1/chat/completions an die Api Base Url weiter. Jede vom Gateway bediente ID funktioniert, einschließlich Claude-, DeepSeek-, GLM- und Gemini-IDs.
Warum hat das Ändern von OPENAI_BASE_URL in docker-compose nichts bewirkt?
Die Variable seedet Provider und Modelle nur während der First-Run-Initialisierung. Bearbeite auf einem initialisierten Server stattdessen den AI-Model-API-Eintrag im Admin-Panel; das ist die Live-Einstellung.
Beeinflusst die custom Base URL Khojs Dokumentensuche?
Nein. Khoj bettet und durchsucht deine Dokumente standardmäßig mit einem lokalen Sentence-Transformers-Modell. Der AI-Model-API-Eintrag bewegt nur Chat, Agents, Automations und Research.
Was ist Max prompt size am Chat-Model-Eintrag?
Eine Per-Modell-Obergrenze dafür, wie viel Prompt Khoj in einen Request packt. Setze sie passend zum Context-Window des Modells; zu niedrig kürzt abgerufene Notizen, und eine Long-Context-ID hilft nur, wenn dieses Feld entsprechend angehoben wird.
Gilt das auch für die gehostete Khoj-App?
Nein, custom Endpoints sind ein Self-Hosting-Feature. Die gehostete App verwaltet ihre eigenen Modelle server-seitig; die hier beschriebenen Admin-Panel- und Umgebungsflächen gehören zu einem Server, den du selbst betreibst.