Uruchom silnik odpowiedzi Perplexica na niestandardowym base URL OpenAI.

Updated 2026-07-29

Perplexica, przemianowana upstream na Vane, konfiguruje swojego dostawcę OpenAI polami API Key i Base URL. Ustaw Base URL na https://api.apisrouter.com/v1, dodaj identyfikatory modeli, których chcesz, a każda odpowiedź wyszukiwania będzie syntetyzowana przez bramkę, z Claude, GPT, DeepSeek albo Gemini za jednym kluczem.

Szybka odpowiedź: jedno pole Base URL, dwie generacje konfiguracji.

W obecnych wydaniach dostawca OpenAI w Perplexica eksponuje dokładnie dwa wymagane pola: API Key i Base URL, edytowalne na ekranie konfiguracji i w UI ustawień, z udokumentowanymi mapowaniami środowiskowymi OPENAI_API_KEY i OPENAI_BASE_URL. Ustaw Base URL na https://api.apisrouter.com/v1, wklej klucz bramki, a potem dodaj modele czatu, których chcesz, po ich dokładnych identyfikatorach z katalogu. Dostawca przekazuje identyfikator modelu jako zwykły string przez /v1/chat/completions, więc identyfikatory Claude i DeepSeek działają przez slot dostawcy "OpenAI". W starszych wydaniach Perplexica (generacja config.toml, przez linię v1.10 i v1.11) ta sama funkcjonalność to dostawca CUSTOM_OPENAI: blok [MODELS.CUSTOM_OPENAI] z kluczami API_KEY, API_URL i MODEL_NAME. Obie generacje są pokazane poniżej, więc dopasuj konfigurację do wersji, którą faktycznie prowadzisz.

# the settings UI fields map to these documented env vars
export OPENAI_API_KEY=sk-APIsRouter-...
export OPENAI_BASE_URL=https://api.apisrouter.com/v1
# then add chat models by id in Settings, e.g. claude-sonnet-4-6

Jak Perplexica odpowiada na pytanie i gdzie siedzi LLM.

Perplexica (ItzCrazyKns na GitHubie, około 36 tys. gwiazdek) to najbardziej znany open-source'owy silnik odpowiedzi w stylu Perplexity: bierze pytanie, uruchamia prawdziwe wyszukiwania w sieci przez dołączoną instancję SearxNG, czyta wyniki i ma LLM syntetyzujący cytowaną odpowiedź. Tryby wyszukiwania (speed, balanced, quality) wymieniają głębokość retrievalu na latencję, a tryby fokusu zawężają źródła do sieci, dyskusji albo prac akademickich. W 2026 projekt został przemianowany upstream na Vane, a obraz Dockera poszedł w jego ślady; architektura i system dostawców przeniosły się bez zmian, więc wszystko tutaj stosuje się pod obiema nazwami. Slot LLM to miejsce, gdzie żyje jakość syntezy i koszt. Każda odpowiedź to jedno albo więcej wywołań chat-completions niosących pobrane źródła jako kontekst, co czyni silnik odpowiedzi obciążeniem o wysokim wolumenie tokenów wejściowych: model czyta znacznie więcej, niż pisze. System dostawców traktuje OpenAI jako jeden z kilku backendów (Ollama, Anthropic, Gemini, Groq i inne), a dostawca OpenAI to ten ze swobodnie edytowalnym Base URL, co czyni go hakiem do bramki. Jedno zachowanie warte poznania z góry: gdy Base URL jest czymkolwiek innym niż fabryczny endpoint OpenAI, Perplexica celowo pokazuje pustą domyślną listę modeli i używa wpisów modeli, które sam dodasz do dostawcy. To celowe, ponieważ nie może wiedzieć, co obsługuje niestandardowy endpoint. Dodanie claude-sonnet-4-6 albo deepseek-v4-flash jako wpisu modelu to druga połowa konfiguracji, nie obejście.

Pełna konfiguracja: obecne wydania i starszy config.toml.

Obecne wydania konfigurują wszystko w aplikacji. Przy pierwszym uruchomieniu ekran konfiguracji pyta o dostawców; potem te same pola żyją w Settings. Wybierz dostawcę OpenAI, ustaw API Key i Base URL, a potem dodaj wpisy modeli czatu z identyfikatorami, których planujesz użyć. Identyfikatory muszą dokładnie zgadzać się z katalogiem bramki, a każdy dodany wpis pojawia się w pickerze modeli obok pola wyszukiwania. Starsza generacja jest oparta na pliku. Jeśli Twoja instalacja nadal ma config.toml, jesteś na generacji CUSTOM_OPENAI: wypełnij poniższy blok i zrestartuj kontener. MODEL_NAME przyjmuje jeden identyfikator modelu, który UI oferuje potem jako opcję custom OpenAI.

[MODELS.CUSTOM_OPENAI]
API_KEY = "sk-YOUR-APISROUTER-KEY"
API_URL = "https://api.apisrouter.com/v1"
MODEL_NAME = "claude-sonnet-4-6"

Dobór modelu syntezy dla silnika odpowiedzi.

Ponieważ picker modeli czyta dowolne wpisy, które dodałeś względem jednego Base URL, testowanie A/B modeli syntezy jest trywialne: zadaj to samo pytanie w dwóch kartach z dwoma wpisami i porównaj cytowania. Log użycia per klucz wycenia odpowiedzi każdego modelu, co jest uczciwym sposobem, żeby zdecydować, czy synteza frontier zarabia na swoje tokeny na Twoim miksie zapytań.

  • Tokeny wejściowe dominują. Odpowiedź w trybie quality może wepchnąć duże pobrane konteksty do promptu, więc cena per token wejściowy Twojego identyfikatora ustala koszt wyszukiwania, nie krótka odpowiedź, którą pisze z powrotem.
  • claude-sonnet-4-6 to silny domyślny wybór dla cytowanej syntezy: dobrze podąża za instrukcjami uziemienia w źródłach i zachowuje spójność, gdy wiele fragmentów jest sprzecznych.
  • Wysokowolumenowe instancje osobiste albo zespołowe dobrze radzą sobie na claude-haiku-4-5-20251001, gemini-3.5-flash albo deepseek-v4-flash: odpowiedzi zostają uziemione, a koszt per wyszukiwanie spada na tyle, żeby zostawić tryb quality włączony.
  • Trzymaj identyfikator frontier jako drugi wpis. Wpisy modeli siedzą obok siebie w pickerze, więc eskalacja jednego trudnego pytania na gpt-5.5 to zmiana z rozwijanej listy, nie edycja konfiguracji.
  • Tryb fokusu akademickiego nagradza modele o długim kontekście, ponieważ abstrakty i fragmenty prac są masywniejsze niż fragmenty z sieci.

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.

ModelCena oficjalnaNasza 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.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Tryby awarii charakterystyczne dla Perplexica.

Pusta lista modeli to klasyk. Ustawiasz Base URL, picker robi się pusty i wygląda na zepsuty. Nie jest: przy niedomyślnym Base URL Perplexica listuje tylko wpisy modeli, które dodajesz do dostawcy. Dodaj swoje identyfikatory, a się pojawią. Embeddingi to osobny slot. Perplexica używa modeli embeddingu do rerankingu wyników, a dostawca OpenAI obsługuje embeddingi z tego samego Base URL i klucza. Jeśli Twoja bramka nie obsługuje tam skonfigurowanego identyfikatora embeddingu, reranking się psuje, podczas gdy odpowiedzi czatu nadal działają. Czysty podział to trzymanie embeddingów na lokalnym dostawcy Transformers, który działa na maszynie w ogóle bez API, i kierowanie przez bramkę tylko syntezy czatu. Zmiana nazwy myli przewodniki. Perplexica i Vane to ten sam projekt; stare tutoriale odwołują się do obrazu Dockera perplexica i config.toml, obecne buildy dostarczane są jako vane z ustawieniami w aplikacji i trwałym wolumenem danych. Jeśli Twoja instalacja nie ma config.toml, nie twórz go, nie jest czytany; konfiguruj zamiast tego przez UI albo udokumentowane zmienne środowiskowe. SearxNG jest niezależny. Jeśli odpowiedzi się degradują albo wyszukiwania nic nie zwracają, to kontener SearxNG albo jego ustawienie formatu JSON, nie endpoint LLM. Base URL przenosi tylko wywołania czatu i embeddingu.

Kto kieruje Perplexica przez bramkę.

  • Self-hosterzy zastępujący subskrypcję Perplexity, którzy chcą syntezy jakości frontier per wyszukiwanie w cenach tokenowych, z jednym kluczem zamiast konta u dostawcy na każdą rodzinę modeli.
  • Zespoły prowadzące współdzielony silnik odpowiedzi, gdzie log użycia per klucz zamienia "ile kosztuje nas wyszukiwanie" w liczbę per model.
  • Konfiguracje skupione na prywatności, które trzymają retrieval w pełni lokalnie (SearxNG plus lokalne embeddingi) i kierują na zewnątrz tylko finalne wywołanie syntezy przez jeden audytowalny endpoint.
  • Majsterkowicze porównujący modele syntezy na identycznych pytaniach: każdy kandydat to jeden wpis modelu względem tego samego Base URL.
  • 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 pierwsze wyszukiwanie.

Potwierdź, że bramka obsługuje identyfikatory, które dodałeś, zanim obwinisz aplikację; wpisy u dostawcy muszą dokładnie zgadzać się z wynikiem /v1/models. Awarie pierwszego uruchomienia mają wzorzec. "No chat model providers configured" oznacza, że pola dostawcy się nie zapisały albo lista modeli nadal jest pusta; dodaj przynajmniej jeden wpis modelu czatu. 401 w logach serwera oznacza, że klucz nie zgadza się z endpointem w polu Base URL. Błąd model-not-found to literówka identyfikatora we wpisie modelu. Błędy rerankingu przy działających odpowiedziach wskazują na slot embeddingu, gdzie ratuje Cię lokalny dostawca Transformers. A jeśli nic się nie zmieniło po edycji zmiennych środowiskowych, pamiętaj, że konfiguracja utrwala się w wolumenie danych; pola już zapisane w UI wygrywają z późniejszą zmianą środowiskową, więc edytuj je w Settings. Gdy wyszukiwania już płyną, konsola APIsRouter pokazuje model per żądanie, liczbę tokenów i wydatki. Silniki odpowiedzi są input-heavy, a widzenie prawdziwej liczby tokenów per wyszukiwanie na Twoim miksie zapytań bije każde szacowanie.

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

Częste pytania

Czy Perplexica to ten sam projekt co Vane?

Tak. Repozytorium upstream zostało przemianowane na Vane w 2026, a obraz Dockera poszedł w jego ślady. System dostawców, integracja SearxNG i opisane tu pole Base URL są takie same pod obiema nazwami; tylko starsze wydania nadal używają nazwy Perplexica i config.toml.

Czy Perplexica może używać modeli Claude albo DeepSeek do odpowiedzi?

Tak. Dostawca OpenAI przekazuje identyfikatory modeli jako zwykłe stringi do dowolnego Base URL, który ustawisz. Dodaj claude-sonnet-4-6 albo deepseek-v4-flash jako wpisy modeli względem Base URL bramki, a pojawią się w pickerze modeli jak każda inna opcja.

Dlaczego lista modeli jest pusta po zmianie Base URL?

Celowo. Przy niedomyślnym Base URL Perplexica nie może zakładać, jakie modele obsługuje endpoint, więc listuje tylko wpisy, które sam dodajesz do dostawcy. Dodaj swoje identyfikatory w Settings, a pojawią się natychmiast.

Jakie są starsze klucze konfiguracji CUSTOM_OPENAI?

Na generacji config.toml (przez linię v1.10 i v1.11) blok [MODELS.CUSTOM_OPENAI] przyjmuje API_KEY, API_URL i MODEL_NAME. Ustaw API_URL na endpoint bramki, łącznie z /v1, i MODEL_NAME na jeden identyfikator z katalogu, a potem zrestartuj.

Czy embeddingi też są kierowane przez niestandardowy Base URL?

Jeśli skonfigurujesz modele embeddingu u dostawcy OpenAI, to tak, używają tego samego Base URL i klucza. Większość konfiguracji z bramką zamiast tego trzyma embeddingi na lokalnym dostawcy Transformers, który nie potrzebuje API i pozostawia reranking niezależny od endpointu czatu.

Czy zmienne środowiskowe OPENAI_API_KEY i OPENAI_BASE_URL nadal działają?

Tak, to udokumentowane mapowania środowiskowe dla dwóch pól dostawcy OpenAI w obecnych wydaniach. Zauważ, że wartości już zapisane przez UI ustawień utrwalają się w wolumenie danych, więc edytuj je tam, jeśli aplikacja została już raz skonfigurowana.