Fai girare il motore di risposta di Perplexica su una Base URL OpenAI personalizzata.

Updated 2026-07-29

Perplexica, rinominato Vane a monte, configura il suo provider OpenAI con un campo API Key e un campo Base URL. Imposta la Base URL su https://api.apisrouter.com/v1, aggiungi gli id dei modelli che vuoi, e ogni risposta di ricerca viene sintetizzata attraverso il gateway con Claude, GPT, DeepSeek o Gemini dietro una chiave.

Risposta rapida: un campo Base URL, due generazioni di configurazione.

Nelle release attuali, il provider OpenAI di Perplexica espone esattamente due campi obbligatori: API Key e Base URL, modificabili nella schermata di setup e nella UI delle impostazioni, con mapping d'ambiente documentati OPENAI_API_KEY e OPENAI_BASE_URL. Imposta la Base URL su https://api.apisrouter.com/v1, incolla una chiave gateway, poi aggiungi i chat model che vuoi usando i loro id esatti dal catalogo. Il provider inoltra l'id del modello come stringa semplice su /v1/chat/completions, quindi gli id Claude e DeepSeek funzionano attraverso lo slot provider "OpenAI". Nelle release più vecchie di Perplexica (la generazione config.toml, fino alla linea v1.10 e v1.11), la stessa funzionalità è il provider CUSTOM_OPENAI: un blocco [MODELS.CUSTOM_OPENAI] con le chiavi API_KEY, API_URL e MODEL_NAME. Entrambe le generazioni sono mostrate sotto, quindi abbina la configurazione alla versione che stai effettivamente eseguendo.

# 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

Come Perplexica risponde a una domanda, e dove si colloca l'LLM.

Perplexica (ItzCrazyKns su GitHub, circa 36K stelle) è il motore di risposta open source in stile Perplexity più conosciuto: prende una domanda, esegue vere ricerche web tramite un'istanza SearxNG inclusa, legge i risultati, e fa sintetizzare a un LLM una risposta con citazioni. Le modalità di ricerca (velocità, bilanciata, qualità) scambiano profondità di recupero con latenza, e le modalità di focus restringono le fonti al web, alle discussioni o ai paper accademici. Nel 2026 il progetto è stato rinominato Vane a monte, con l'immagine Docker che ha seguito lo stesso destino; l'architettura e il sistema dei provider sono rimasti invariati, quindi tutto ciò che segue si applica sotto entrambi i nomi. Lo slot dell'LLM è dove vivono la qualità della sintesi e il costo. Ogni risposta è una o più chiamate chat-completions che portano le fonti recuperate come contesto, il che rende un motore di risposta un carico di lavoro ad alto consumo di token in input: il modello legge molto più di quanto scriva. Il sistema dei provider tratta OpenAI come uno dei diversi backend (Ollama, Anthropic, Gemini, Groq e altri), e il provider OpenAI è quello con una Base URL liberamente modificabile, il che è ciò che lo rende l'aggancio per il gateway. Un comportamento da conoscere in anticipo: quando la Base URL è qualcosa di diverso dall'endpoint OpenAI di serie, Perplexica mostra intenzionalmente un elenco di modelli predefinito vuoto e usa le voci di modello che aggiungi tu stesso al provider. È voluto, dato che non può sapere cosa serve un endpoint personalizzato. Aggiungere claude-sonnet-4-6 o deepseek-v4-flash come voce di modello è la seconda metà della configurazione, non un workaround.

Configurazione completa: release attuali e il config.toml legacy.

Le release attuali configurano tutto nell'app. Al primo avvio la schermata di setup chiede i provider; in seguito gli stessi campi vivono in Settings. Seleziona il provider OpenAI, imposta API Key e Base URL, poi aggiungi voci di chat model con gli id che prevedi di usare. Gli id devono corrispondere esattamente al catalogo del gateway, e ogni voce che aggiungi appare nel selettore di modello accanto alla casella di ricerca. La generazione legacy è basata su file. Se la tua installazione ha ancora un config.toml, sei sulla generazione CUSTOM_OPENAI: compila il blocco sotto e riavvia il container. MODEL_NAME prende un id di modello, che la UI offre poi come opzione OpenAI personalizzata.

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

Scegliere un modello di sintesi per un motore di risposta.

Poiché il selettore di modello legge qualunque voce tu abbia aggiunto rispetto a una Base URL, il test A/B dei modelli di sintesi è banale: fai la stessa domanda in due schede con due voci diverse e confronta le citazioni. Il log di utilizzo per chiave mette un prezzo alle risposte di ogni modello, il che è il modo onesto di decidere se la sintesi di frontiera merita i suoi token sul tuo mix di query.

  • I token in input dominano. Una risposta in modalità qualità può spingere contesti recuperati molto grandi nel prompt, quindi il prezzo per token di input del tuo id determina il costo di una ricerca, non la breve risposta che scrive alla fine.
  • claude-sonnet-4-6 è la scelta predefinita solida per la sintesi con citazioni: segue bene le istruzioni di aderenza alle fonti e resta coerente quando molti frammenti sono in disaccordo.
  • Le istanze personali o di team ad alto volume funzionano bene con claude-haiku-4-5-20251001, gemini-3.5-flash o deepseek-v4-flash: le risposte restano ancorate alle fonti e il costo per ricerca scende abbastanza da poter lasciare attiva la modalità qualità.
  • Tieni un id di frontiera come seconda voce. Le voci di modello stanno fianco a fianco nel selettore, quindi far salire una domanda difficile a gpt-5.5 è un cambio di menu a tendina, non una modifica di configurazione.
  • La modalità focus accademica premia i modelli a contesto lungo, dato che abstract ed estratti di paper sono più corposi degli snippet web.

Pagamento a consumo · sotto i prezzi ufficiali

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

ModelloPrezzo ufficialeIl nostro prezzo
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

Modalità di errore specifiche di Perplexica.

L'elenco di modelli vuoto è il classico. Imposti la Base URL, il selettore diventa vuoto, e sembra rotto. Non lo è: con una Base URL non predefinita, Perplexica elenca solo le voci di modello che aggiungi al provider. Aggiungi i tuoi id e appaiono. Gli embedding sono uno slot separato. Perplexica usa modelli di embedding per il reranking dei risultati, e il provider OpenAI serve gli embedding dalla stessa Base URL e chiave. Se il tuo gateway non serve l'id di embedding che configuri lì, il reranking si rompe mentre le risposte di chat continuano a funzionare. La separazione pulita è tenere gli embedding sul provider Transformers locale, che gira sulla macchina senza alcuna API, e instradare solo la sintesi di chat attraverso il gateway. Il cambio di nome inganna le guide. Perplexica e Vane sono lo stesso progetto; i vecchi tutorial fanno riferimento all'immagine Docker perplexica e a config.toml, le build attuali sono distribuite come vane con impostazioni in-app e un volume dati persistente. Se la tua installazione non ha un config.toml, non crearne uno, non viene letto; configura invece tramite la UI o le variabili d'ambiente documentate. SearxNG è indipendente. Se le risposte peggiorano o le ricerche non restituiscono nulla, è il container SearxNG o la sua impostazione di formato JSON, non l'endpoint dell'LLM. La Base URL sposta solo le chiamate di chat e di embedding.

Chi instrada Perplexica tramite un gateway.

  • Self-hoster che sostituiscono un abbonamento Perplexity e vogliono sintesi di qualità frontiera per ricerca a prezzi a token, con una chiave invece di un account fornitore per famiglia di modelli.
  • Team che gestiscono un motore di risposta condiviso, dove il log di utilizzo per chiave trasforma "quanto ci costa la ricerca" in un numero per modello.
  • Setup orientati alla privacy che mantengono il recupero interamente locale (SearxNG più embedding locali) e instradano verso l'esterno solo la chiamata di sintesi finale attraverso un endpoint verificabile.
  • Smanettoni che confrontano modelli di sintesi su domande identiche: ogni candidato è una voce di modello contro la stessa Base URL.
  • Sviluppatori senza accesso alla fatturazione di un dato fornitore. L'accesso basato su ricarica senza obbligo di carta rimuove la dipendenza dalla registrazione per provider.

Verifica l'endpoint e fai debug della prima ricerca.

Conferma che il gateway serva gli id che hai aggiunto prima di dare la colpa all'app; le voci nel provider devono corrispondere esattamente all'output di /v1/models. I fallimenti al primo avvio seguono uno schema. "No chat model providers configured" significa che i campi del provider non si sono salvati o l'elenco dei modelli è ancora vuoto; aggiungi almeno una voce di chat model. Un 401 nei log del server significa che la chiave non corrisponde all'endpoint nel campo Base URL. Un errore modello-non-trovato è un errore di battitura nell'id di una voce di modello. Errori di reranking con risposte funzionanti indicano lo slot di embedding, dove il provider Transformers locale ti salva. E se non è cambiato nulla dopo aver modificato le variabili d'ambiente, ricorda che la configurazione persiste nel volume dati; i campi già salvati nella UI vincono su un successivo cambiamento d'ambiente, quindi modificali in Settings. Una volta che le ricerche scorrono, la console di APIsRouter mostra il modello per richiesta, i conteggi dei token e la spesa. I motori di risposta sono ad alto consumo di input, e vedere il numero reale di token per ricerca per il tuo mix di query batte qualsiasi stima.

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

Domande frequenti

Perplexica e Vane sono lo stesso progetto?

Sì. Il repository a monte è stato rinominato Vane nel 2026, e l'immagine Docker ha seguito. Il sistema dei provider, l'integrazione SearxNG e il campo Base URL descritti qui sono gli stessi sotto entrambi i nomi; solo le release legacy usano ancora il nome Perplexica e config.toml.

Perplexica può usare modelli Claude o DeepSeek per le risposte?

Sì. Il provider OpenAI inoltra gli id dei modelli come stringhe semplici verso qualunque Base URL tu imposti. Aggiungi claude-sonnet-4-6 o deepseek-v4-flash come voci di modello contro la Base URL del gateway e appariranno nel selettore di modello come qualsiasi altra opzione.

Perché l'elenco dei modelli è vuoto dopo che ho cambiato la Base URL?

Per progettazione. Con una Base URL non predefinita, Perplexica non può presumere quali modelli serva l'endpoint, quindi elenca solo le voci che aggiungi tu stesso al provider. Aggiungi i tuoi id in Settings e appariranno immediatamente.

Quali sono le chiavi di configurazione legacy CUSTOM_OPENAI?

Nella generazione config.toml (fino alla linea v1.10 e v1.11), il blocco [MODELS.CUSTOM_OPENAI] prende API_KEY, API_URL e MODEL_NAME. Imposta API_URL sull'endpoint del gateway incluso /v1 e MODEL_NAME su un id del catalogo, poi riavvia.

Anche gli embedding passano attraverso la Base URL personalizzata?

Se configuri modelli di embedding sul provider OpenAI, sì, usano la stessa Base URL e chiave. La maggior parte delle configurazioni gateway tiene invece gli embedding sul provider Transformers locale, che non richiede API e lascia il reranking indipendente dall'endpoint di chat.

Le variabili d'ambiente OPENAI_API_KEY e OPENAI_BASE_URL funzionano ancora?

Sì, sono i mapping d'ambiente documentati per i due campi del provider OpenAI nelle release attuali. Nota che i valori già salvati tramite la UI delle impostazioni persistono nel volume dati, quindi modificali lì se l'app è già stata configurata una volta.