Uruchom swój drugi mózg Khoj na niestandardowym base URL OpenAI.
Updated 2026-07-29
Khoj dokumentuje konfigurację proxy OpenAI z dwoma powierzchniami: zmienną środowiskową OPENAI_BASE_URL, która obsiewa modele przy pierwszym uruchomieniu, i wpisem AI Model API w panelu administracyjnym z polem Api Base Url. Wskaż którąkolwiek z nich na https://api.apisrouter.com/v1, a czat, agenci i automatyzacje będą działać na dowolnym modelu z katalogu.
Szybka odpowiedź: zmienna środowiskowa przy pierwszym uruchomieniu, panel administracyjny w każdej chwili.
Plik compose do self-hostingu Khoj niesie zakomentowaną linię OPENAI_BASE_URL, przeznaczoną, jak mówi dokumentacja, dla innych dostawców kompatybilnych z OpenAI API. Ustaw ją na https://api.apisrouter.com/v1, z OPENAI_API_KEY trzymającym klucz bramki, przed pierwszym uruchomieniem, a inicjalizacja Khoj robi coś niezwykle pomocnego: odpytuje listę modeli endpointu i obsiewa swoją tabelę modeli czatu każdym identyfikatorem obsługiwanym przez endpoint, więc katalog pojawia się w pickerze modeli Khoj bez ręcznego wpisywania. Na już zainicjalizowanym serwerze użyj zamiast tego panelu administracyjnego. Utwórz wpis AI Model API (pola: Name, Api Key, Api Base Url) wskazujący na bramkę, a potem utwórz wpisy Chat Model, których Name to dokładny identyfikator modelu, z Model Type ustawionym na Openai i powiązane z tym AI Model API. Obie powierzchnie są udokumentowane w przewodniku proxy OpenAI Khoj na docs.khoj.dev.
services:
server:
environment:
- OPENAI_BASE_URL=https://api.apisrouter.com/v1
- OPENAI_API_KEY=sk-YOUR-APISROUTER-KEYCo Khoj robi ze swoim modelem czatu.
Khoj (khoj-ai na GitHubie, około 36 tys. gwiazdek) to samodzielnie hostowalny drugi mózg AI: indeksuje Twoje notatki i dokumenty (markdown, org-mode, PDF-y i więcej), potem pozwala Ci rozmawiać na ich temat, uruchamiać niestandardowych agentów z własnymi personami i narzędziami, planować automatyzacje odpalane na cron i uruchamiać wieloetapowe sesje badawcze. Istnieje aplikacja hostowana, ale to samodzielnie hostowany serwer jest miejscem, gdzie stosuje się niestandardowe endpointy, i to jego dotyczy ta strona. Każda z tych funkcji przechodzi przez wybrany przez Ciebie model czatu. Czat na dokumentach upycha pobrane fragmenty notatek w prompt, agenci dodają wywołania narzędzi i instrukcje persony, automatyzacje uruchamiają ten sam pipeline bez nadzoru, a tryb badawczy łańcuchuje wiele wywołań modelu na pytanie. Model Type Openai mówi Khoj, żeby mówił /v1/chat/completions do Api Base Url powiązanego wpisu AI Model API, przekazując Name modelu jako zwykły string, dlatego identyfikator Claude albo DeepSeek działa tam, dopóki endpoint go obsługuje. Embeddingi wyszukiwania to osobny podsystem. Khoj domyślnie embeduje Twoje dokumenty lokalnym modelem sentence-transformers, więc indeksowanie i wyszukiwanie semantyczne nadal działają niezależnie od tego, co zrobisz z endpointem czatu. Kierowanie czatu przez bramkę przenosi tylko rachunek za rozumowanie.
Pełna konfiguracja: wpisy panelu administracyjnego krok po kroku.
Na działającym serwerze cała integracja to trzy ekrany administracyjne. Po pierwsze, dodaj AI Model API: otwórz /server/admin/database/aimodelapi/add, nazwij go, wklej klucz bramki do Api Key i ustaw Api Base Url na https://api.apisrouter.com/v1. Po drugie, dodaj modele czatu: pod /server/admin/database/chatmodel/add ustaw Name na dokładny identyfikator z katalogu (claude-sonnet-4-6, deepseek-v4-flash), ustaw Model Type na Openai, połącz z wpisem Ai Model Api, który właśnie utworzyłeś, i ustaw Max prompt size na wartość pasującą do okna kontekstu modelu. Dokumentacja radzi zostawić Tokenizer nieustawiony dla modeli typu OpenAI. Powtórz dla każdego modelu, który chcesz mieć w pickerze. Po trzecie, wybierz model: na /settings ustaw swój nowy model czatu jako domyślny. Agenci mogą nadpisać model per agent, co jest sposobem, w jaki jedna instancja Khoj uruchamia szybki identyfikator dla codziennych automatyzacji i identyfikator frontier dla badań.
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 modelDobór modeli dla drugiego mózgu.
Ponieważ modele czatu to wiersze, które dodajesz względem jednego AI Model API, trzymanie dwóch albo trzech identyfikatorów w pickerze nic nie kosztuje. Praktyczna konfiguracja to szybki domyślny plus eskalacja frontier, oba rozliczane przez ten sam klucz, więc log użycia pokazuje, ile każdy poziom faktycznie kosztuje na Twoich notatkach.
- Czat na dokumentach jest input-heavy: pobrane fragmenty notatek przyćmiewają odpowiedź. Cena per token wejściowy napędza koszt per pytanie, co faworyzuje claude-haiku-4-5-20251001, deepseek-v4-flash albo gemini-3.5-flash do codziennego przypominania.
- Tryb badawczy mnoży wywołania. Jedno pytanie badawcze może łańcuchować wiele tur modelu, więc identyfikator, który tam przypiszesz, rusza rachunek bardziej niż jakiekolwiek inne ustawienie; claude-sonnet-4-6 to zrównoważony wybór, gpt-5.4 to eskalacja.
- Zaplanowane automatyzacje działają bez nadzoru. Wyceniaj je jak subskrypcję: wywołania na dzień razy tokeny na wywołanie, co jest dokładnie tym, co raportuje log użycia per klucz.
- Osobista wiedza jest bogata w sprzeczności (plany się zmieniają, notatki się dezaktualizują), a modele różnią się tym, jak dobrze flagują sprzeczne notatki zamiast je mieszać; przetestuj dwa identyfikatory na tym samym zestawie pytań, zanim się zdecydujesz.
- Max prompt size jest per model czatu w Khoj, więc identyfikator o długim kontekście opłaca się tylko, jeśli podniesiesz to pole odpowiednio.
Płatność za użycie · poniżej cen oficjalnych
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Cena oficjalna | Nasza cena |
|---|---|---|
| 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 |
Tryby awarii charakterystyczne dla Khoj.
Zmienna środowiskowa to seed przy pierwszym uruchomieniu, nie ustawienie na żywo. OPENAI_BASE_URL jest odczytywana podczas inicjalizacji, żeby utworzyć wpis dostawcy i odkryć modele; na serwerze, który już się zainicjalizował, edycja pliku compose nie zmienia niczego widocznego. Użyj panelu administracyjnego do zmian po pierwszym uruchomieniu, albo zresetuj bazę danych, jeśli naprawdę chcesz świeżego seeda. Pułapka klucza-placeholdera: gdy OPENAI_BASE_URL jest ustawiona bez OPENAI_API_KEY, Khoj wypełnia klucz placeholderem, żeby działały lokalne serwery, takie jak Ollama. Bramka wymaga prawdziwego klucza, więc jeśli seeding przy pierwszym uruchomieniu odbył się bez niego, czaty zawodzą błędami uwierzytelniania, dopóki nie wklejesz klucza do wpisu AI Model API w panelu administracyjnym. Automatyczne wykrywanie obsiewa wszystko. Ponieważ inicjalizacja listuje każdy model obsługiwany przez endpoint, wielodostawcowa bramka może obsiać długą tabelę modeli. Nieszkodliwe, ale warto przyciąć w panelu administracyjnym, żeby picker pozostał używalny. Chat model Name jest dokładny. Khoj przekazuje go dosłownie; literówka ujawnia się jako model-not-found przy pierwszej wiadomości, a wynik /v1/models bramki jest autorytatywnym zapisem. A jeśli wyszukiwanie semantyczne po Twoich notatkach zachowuje się źle, to lokalny podsystem embeddingu, niezwiązany z endpointem czatu.
Kto kieruje Khoj przez bramkę.
- Self-hosterzy, którzy chcą czatu na poziomie frontier nad swoimi notatkami bez konta u dostawcy na każdą rodzinę modeli; jeden klucz pokrywa identyfikatory Claude, GPT, DeepSeek i Gemini.
- Użytkownicy uruchamiający codzienne zaplanowane automatyzacje, gdzie szybki identyfikator utrzymuje powtarzalny koszt na płaskim poziomie, a log użycia czyni go widocznym.
- Konfiguracje dbające o prywatność, które trzymają indeksowanie i embeddingi lokalnie i eksponują tylko prompty czatu do jednego audytowalnego endpointu.
- Majsterkowicze porównujący modele czatu na identycznym osobistym korpusie: każdy kandydat to jeden wiersz chat-model względem tego samego AI Model API.
- Deweloperzy bez dostępu do rozliczeń danego dostawcy. Dostęp oparty na doładowaniu, bez wymogu karty, usuwa zależność od rejestracji u każdego dostawcy z osobna.
Zweryfikuj endpoint i debuguj pierwszy czat.
Sprawdź bramkę najpierw: wylistuj modele swoim kluczem i potwierdź identyfikatory, które planujesz zarejestrować. Własne automatyczne wykrywanie Khoj robi to samo wywołanie podczas seedingu przy pierwszym uruchomieniu, więc jeśli ten curl działa, seeding też zadziała. Awarie lokalizują się czysto. Błędy uwierzytelniania oznaczają, że Api Key we wpisie AI Model API jest zły albo nadal jest zaseedowanym placeholderem. Model-not-found oznacza, że Name modelu czatu nie zgadza się z zapisem w katalogu. Odpowiedzi urywające się w połowie zwykle oznaczają, że Max prompt size albo sufit wyjścia modelu jest ustawiony za nisko dla rozmowy. Problemy z indeksowaniem i wyszukiwaniem to lokalny pipeline embeddingu i nie mają nic wspólnego z endpointem. Gdy czaty już płyną, konsola APIsRouter pokazuje model per żądanie, liczbę tokenów i wydatki. Automatyzacje i sesje badawcze to miejsca, gdzie ukrywają się koszty drugiego mózgu, a użycie per klucz to sposób, żeby zobaczyć je per funkcja, zamiast jako jedną comiesięczną niespodziankę.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Częste pytania
Czy Khoj obsługuje proxy albo bramkę kompatybilną z OpenAI?
Tak, jako udokumentowana konfiguracja: utwórz wpis AI Model API z Api Base Url wskazującym na endpoint, a potem dodaj modele czatu z Model Type Openai. Plik compose eksponuje też OPENAI_BASE_URL do seedingu przy pierwszym uruchomieniu.
Czy Khoj może rozmawiać z modelami Claude albo DeepSeek przez to?
Tak. Model Type Openai przekazuje Name modelu czatu jako zwykły string przez /v1/chat/completions do Api Base Url. Działa dowolny identyfikator obsługiwany przez bramkę, łącznie z identyfikatorami Claude, DeepSeek, GLM i Gemini.
Dlaczego zmiana OPENAI_BASE_URL w docker-compose nic nie dała?
Zmienna obsiewa dostawców i modele tylko podczas inicjalizacji przy pierwszym uruchomieniu. Na zainicjalizowanym serwerze edytuj zamiast tego wpis AI Model API w panelu administracyjnym; to jest ustawienie na żywo.
Czy niestandardowy base URL wpływa na wyszukiwanie dokumentów Khoj?
Nie. Khoj domyślnie embeduje i przeszukuje Twoje dokumenty lokalnym modelem sentence-transformers. Wpis AI Model API przenosi tylko czat, agentów, automatyzacje i badania.
Czym jest Max prompt size we wpisie modelu czatu?
Limit per model na to, ile promptu Khoj upycha w żądanie. Ustaw go tak, żeby pasował do okna kontekstu modelu; za niski przycina pobrane notatki, a identyfikator o długim kontekście pomaga tylko wtedy, gdy to pole jest odpowiednio podniesione.
Czy to dotyczy hostowanej aplikacji Khoj?
Nie, niestandardowe endpointy to funkcja self-hostingu. Hostowana aplikacja zarządza własnymi modelami po stronie serwera; opisane tu powierzchnie panelu administracyjnego i środowiska należą do serwera, który prowadzisz samodzielnie.