Collega un LLM locale o un'AI personalizzata al tuo browser con SurfMind
SurfMind non ti vincola a un unico insieme di modelli. Puoi collegarlo a un modello in esecuzione sulla tua macchina (Ollama, LM Studio, Jan, llama.cpp, vLLM) oppure a quasi qualsiasi provider AI esterno che supporti la completion API di OpenAI — Poe, z.ai, Together, Groq, DeepSeek, AWS Bedrock e decine di altri.
La maggior parte dei provider più diffusi e dei runner locali è già configurata nelle impostazioni di SurfMind: clicchi su Connect e incolli la tua chiave API. Per tutto il resto, il modulo Custom Providers / API ti permette di aggiungere l'endpoint da solo.
Se qualcosa non va: quando non funziona al primo tentativo, spesso è colpa di un piccolo errore di configurazione. E l'errore che ricevi ("connection failed", "401", "404", "model not found") non sempre aiuta a capire cosa sia andato storto.
Questo articolo è una guida rapida di verifica e diagnosi. Scorri la checklist e controlla la tua configurazione. Se ancora non funziona, scrivici a wave@surfmind.ai.
Cerchi un provider specifico? Dai un'occhiata al nostro elenco: modelli locali (Ollama, LM Studio, OpenWebUI, Jan…) o provider AI (Poe, z.ai, Together, Groq, AWS…).
La checklist di 60 secondi
Prima di ogni altra cosa, scorri questi punti. La maggior parte dei problemi di configurazione si riduce a uno di essi:
- Il server è effettivamente in esecuzione? Per i modelli locali, il runner (Ollama, LM Studio, ecc.) deve essere avviato e avere un modello caricato.
- La porta è giusta? Ollama è
11434. LM Studio è1234. Non sono intercambiabili, ed è l'errore più comune in assoluto. - Il percorso è giusto? Il percorso nativo di Ollama è
/api/chat. Quasi tutto il resto usa/v1/chat/completions. Confonderli genera un errore. - Il protocollo è giusto —
httpohttps? I modelli locali sulocalhostusanohttp://(senzas). I provider cloud usanohttps://. Se li confondi, sembrerà che la connessione non funzioni. - Hai incollato l'endpoint completo, non solo la base? Il campo API URL di SurfMind vuole l'URL completo che termina con
/chat/completions(o/api/chatper Ollama), non solohttps://api.provider.com/v1. - La chiave API (e il suo formato) è corretta? I runner locali di solito non richiedono alcuna chiave. I provider esterni vogliono Authentication impostato su API Key, il formato Authorization: Bearer e la tua chiave vera.
- Per i modelli locali nel browser: il CORS è consentito? È l'unico passaggio aggiuntivo richiesto dalle configurazioni locali (
OLLAMA_ORIGINSoppure "Enable CORS" in LM Studio).
Se dopo tutto questo sei ancora bloccato, continua a leggere — ognuno di questi punti ha un risvolto meno ovvio su cui in molti inciampano.
Come collegare un provider
Bastano pochi clic dal selettore dei modelli:
Passaggio 1. Clicca sul nome del modello in fondo al pannello di SurfMind per aprire i tuoi Preferiti, poi clicca su Show all.

Passaggio 2. In cima all'elenco dei modelli, clicca su Add model provider. Si apre la pagina Models nelle impostazioni di SurfMind.

Passaggio 3. Trova il tuo provider. I runner locali (Ollama, LM Studio, vLLM, llama.cpp, Open WebUI) si trovano sotto Self-hosted. I provider cloud (OpenAI, Anthropic, Google, OpenRouter, Groq, DeepSeek, Mistral, Poe, z.ai, Together, AWS Bedrock e altri) si trovano sotto Providers. Se l'elenco è lungo usa la casella di ricerca, poi clicca su Connect.

Passaggio 4. Per un provider cloud, incolla la tua chiave API e clicca su Connect. La finestra di dialogo contiene un link alla pagina dove puoi ottenere una chiave. Per un runner self-hosted, il modulo si apre con gli URL locali già compilati, quindi devi solo salvarlo (Open WebUI richiede anche la tua chiave).

Una volta collegato, i modelli del provider compaiono nel selettore dei modelli. Espandi la riga del provider per scegliere quali mostrare.
Non trovi il tuo provider? Aggiungilo come provider personalizzato
Se il tuo provider o runner non è nell'elenco (Jan, LocalAI, il gateway della tua azienda o un provider che non abbiamo ancora aggiunto), clicca su Custom Providers / API in cima alla pagina Models.

Si apre il modulo "Custom Model API", in cui inserisci tu stesso l'endpoint.

Il resto di questa guida riguarda soprattutto questo modulo, perché è lì che si commettono gli errori di configurazione.
Cosa va inserito in ogni campo
Quando clicchi su Custom Providers / API, ottieni il modulo "Custom Model API". Ecco esattamente cosa vuole ogni campo:
| Campo | Cosa inserire |
|---|---|
| API Name | L'etichetta che preferisci (ad es. "Il mio gateway" o "Jan"). È il nome che vedrai nel selettore dei modelli. |
| API URL | L'endpoint chat completo, non l'URL di base. Per Ollama è http://localhost:11434/api/chat; per tutti gli altri termina con /chat/completions. Vedi Errore #1. |
| Models URL (opzionale) | L'endpoint che elenca i modelli disponibili, così SurfMind può mostrarli in un menu a discesa invece di farti digitare i nomi. Ollama: /api/tags. Compatibile con OpenAI: /v1/models. Lascialo vuoto se il provider non ha un endpoint di elenco — digiterai semplicemente tu stesso l'id del modello. |
| Authentication | No authentication per i modelli locali. API Key per tutto ciò che richiede una chiave, che fa comparire i due campi qui sotto. |
| API Key Format | Come viene inviata la tua chiave. Authorization: Bearer = Authorization: Bearer <key>, che usa quasi ogni provider cloud. x-api-key = x-api-key: <key>, usato dalle API in stile Anthropic e da pochi altri. Custom header ti permette di indicare un header con un nome a tua scelta. |
| API Key | La chiave stessa — niente di più. Non digitare la parola Bearer; la aggiunge SurfMind. |
Le due cose che si sbagliano più spesso sono API URL (base vs. endpoint completo) e API Key Format (quale header). Il resto della guida approfondisce proprio questi.
Errore #1: il percorso dell'API URL (la trappola /api/chat vs /v1/chat/completions)
Questo è il problema principale, e vale la pena capire perché accade.
Qui si usano due formati API diversi:
- L'API nativa di Ollama, che usa
http://localhost:11434/api/chat. - La completion API di OpenAI, che usa
.../v1/chat/completions. È quella usata da LM Studio, vLLM, Jan, Poe, z.ai, Together, Groq — praticamente tutti gli altri.
Quindi se copi una guida di configurazione scritta per LM Studio e provi a usare quel percorso con Ollama (o viceversa), otterrai un 404 anche se il server funziona perfettamente. Il server è attivo; stai solo bussando alla porta sbagliata.
| Runner / provider | API URL corretto |
|---|---|
| Ollama (nativo) | http://localhost:11434/api/chat |
| Ollama (modalità compatibile OpenAI) | http://localhost:11434/v1/chat/completions |
| LM Studio | http://localhost:1234/v1/chat/completions |
| OpenWebUI | http://localhost:3000/api/chat/completions |
| Tutti i compatibili con OpenAI | https://<host>/v1/chat/completions |
Buono a sapersi: Ollama supporta entrambi i formati API. La voce Ollama sotto Self-hosted in SurfMind usa il percorso nativo
/api/chat, che è la via più semplice e ti offre il rilevamento automatico dei modelli. Il percorso/v1/chat/completionsdi Ollama ti serve solo se uno strumento richiede espressamente il formato OpenAI. Con SurfMind, clicca semplicemente su Connect nella riga di Ollama.
Errore #2: il numero di porta
Ogni runner locale usa la propria porta predefinita, e i numeri si somigliano, quindi è facile sbagliare a digitarli:
| Strumento | Porta predefinita | URL chat completo |
|---|---|---|
| Ollama | 11434 |
http://localhost:11434/api/chat |
| LM Studio | 1234 |
http://localhost:1234/v1/chat/completions |
| Jan | 1337 |
http://localhost:1337/v1/chat/completions |
llama.cpp (llama-server) |
8080 |
http://localhost:8080/v1/chat/completions |
| vLLM | 8000 |
http://localhost:8000/v1/chat/completions |
| LocalAI | 8080 |
http://localhost:8080/v1/chat/completions |
11434 vs 1234 è la classica confusione — sono facili da scambiare a colpo d'occhio, ma con una cifra sbagliata non si connette nulla. Se hai cambiato tu stesso la porta (ad es. hai avviato vLLM con --port 9000), usa la tua porta, non quella predefinita.
Una verifica veloce: apri nel browser l'indirizzo del server, includendo la porta. Visitando http://localhost:11434 dovresti vedere il messaggio "Ollama is running" di Ollama. Se la pagina non si carica affatto, il server non è attivo oppure hai sbagliato porta.
Errore #3: incollare l'URL di base invece dell'endpoint
La documentazione dei provider ti fornisce quasi sempre un URL di base — qualcosa come https://api.poe.com/v1. Questo perché i loro esempi di codice usano l'SDK di OpenAI, che aggiunge /chat/completions al posto tuo dietro le quinte.
Il campo API URL di SurfMind non lo fa al posto tuo. Si aspetta l'endpoint completo. Quindi il percorso devi aggiungerlo tu:
- URL di base dalla documentazione:
https://api.poe.com/v1 - Cosa incolli in SurfMind:
https://api.poe.com/v1/chat/completions
Stesso ragionamento per il campo Models URL (usato per elencare automaticamente i modelli disponibili): prendi la base e aggiungi /models → https://api.poe.com/v1/models.
Due sviste correlate:
- Doppio
/v1. Se la base termina già con/v1, non aggiungerne un altro..../v1/v1/chat/completionsè un 404. - Slash finali.
.../chat/completions/con uno slash finale può fallire su alcuni server. Rimuovilo.
Errore #4: discordanza tra http e https
Lo schema all'inizio dell'URL conta, e confonderlo produce un "connection failed" che sembra un server spento quando invece non lo è.
- I modelli locali sono
http. Ollama, LM Studio, Jan, llama.cpp — qualsiasi cosa sulocalhost— serve semplicehttp://. Digitarehttps://localhost:11434fallisce, perché su un server locale non c'è alcun certificato TLS. Se hai copiato uno snippet conhttpsdavanti alocalhost, togli las. - I provider cloud sono
https. Poe, z.ai, Together, Groq e tutti gli altri accettano solohttps://. Inviare lorohttp://viene rifiutato o reindirizzato silenziosamente.
C'è anche un aspetto legato alla sicurezza del browser: le pagine servite via https bloccano le richieste verso endpoint in semplice http ("mixed content"). SurfMind gestisce http://localhost come un'eccezione fidata, quindi i modelli locali funzionano — ma un semplice IP della LAN come http://192.168.1.50:11434 potrebbe comunque essere bloccato. Se stai puntando a un'altra macchina della tua rete, preferisci https, oppure servi il modello dietro un proxy https locale.
Regola pratica: http per localhost, https per tutto ciò che è su internet pubblico.
Errore #5: il Models URL non corrisponde all'API URL
Il Models URL è opzionale. È l'endpoint che SurfMind chiama per recuperare l'elenco dei modelli offerti da un provider, così da poterli mostrare in un menu a discesa invece di farti digitare i nomi. Se i tuoi modelli non compaiono nel selettore dopo aver salvato, di solito il colpevole è questo campo. Deve usare lo stesso formato API dell'endpoint di chat:
| Formato API | Models URL |
|---|---|
| Ollama (nativo) | http://localhost:11434/api/tags |
| Compatibile con OpenAI (tutti gli altri) | https://<host>/v1/models |
Un errore comune è mescolarli — usare /api/tags con un provider compatibile con OpenAI, oppure /v1/models con il percorso nativo /api/chat di Ollama. Se ti sei collegato tramite la riga Ollama sotto Self-hosted, questo viene compilato correttamente al posto tuo; non toccarlo.
Quando lasciarlo vuoto: alcuni provider non espongono un endpoint pubblico di elenco modelli, oppure lo bloccano. Va bene — lascia il Models URL vuoto e digita semplicemente l'id esatto del modello nel campo del modello tu stesso (vedi Errore #8). La chat funzionerà comunque; semplicemente non avrai il menu a discesa popolato automaticamente.
Errore #6: il formato della chiave API (Bearer vs x-api-key)
Nel modulo personalizzato, Authentication e API Key Format decidono come la tua chiave viene allegata alla richiesta. Se scegli quello sbagliato otterrai un 401 Unauthorized anche con una chiave perfettamente valida. Le opzioni:
| Impostazione | Cosa invia SurfMind | Quando usarlo |
|---|---|---|
| No authentication | niente | I modelli locali di solito non hanno bisogno di autenticazione, ma vale la pena verificare la tua configurazione effettiva. |
| API Key → Authorization: Bearer | Authorization: Bearer <your key> |
Quasi ogni provider cloud: Poe, z.ai, Together, Groq, DeepSeek, Mistral, Fireworks, xAI, AWS Bedrock. Questo è il valore predefinito per le API compatibili con OpenAI. |
| API Key → x-api-key | x-api-key: <your key> |
API in stile Anthropic e una manciata di provider che si aspettano un header con la chiave grezza invece di un token Bearer. |
| API Key → Custom header | <your header>: <your key> |
Gateway e proxy che leggono la chiave da un header con un nome proprio. |
Poi il campo API Key accetta solo la chiave stessa:
- Non digitare la parola
Bearer— la aggiunge SurfMind quando scegli Authorization: Bearer. - Non lasciare uno spazio finale (una causa sorprendentemente comune di 401).
- Per i modelli locali, scegli No authentication. (LM Studio è l'eccezione — vuole un qualche valore non vuoto; la sua documentazione usa
lm-studio.)
Se non sei sicuro di quale formato usi un provider: il 99% dei provider compatibili con OpenAI usa Authorization: Bearer. Ricorri a x-api-key solo se la documentazione del provider mostra esplicitamente un header x-api-key. Continui a ricevere un 401? Rigenera la chiave, ricontrolla il formato e verifica che non ci sia uno spazio di troppo.
Errore #7: CORS — l'inghippo solo locale
I browser rifiutano di chiamare un server locale a meno che quel server non consenta esplicitamente le richieste dall'estensione. Questo mette in difficoltà specificamente le configurazioni locali (i provider esterni lo consentono già).
Ollama: avvialo con l'accesso da browser abilitato:
# Mac/Linux OLLAMA_ORIGINS="*" ollama serve # Windows (PowerShell) $env:OLLAMA_ORIGINS="*"; ollama serve"port 11434 already in use"? L'app Ollama in background è già in esecuzione. Chiudila prima (barra dei menu su Mac, area di notifica su Windows), poi esegui il comando qui sopra.
LM Studio: nella scheda Developer / server locale, attiva Enable CORS prima di avviare il server.
Un'ultima sottigliezza: se localhost non si connette, prova 127.0.0.1 (o viceversa). Su alcuni sistemi non si risolvono allo stesso modo.
Errore #8: il nome del modello deve corrispondere esattamente
Una volta connesso, il nome del modello che selezioni deve corrispondere a ciò che il provider si aspetta — esattamente, maiuscole comprese. È un problema che si presenta con i provider che non elencano automaticamente i modelli, o che usano una nomenclatura insolita:
- Poe usa nomi dei bot così come vengono visualizzati, tipo
Claude-Sonnet-4.6eGPT-5.4— copiali esattamente come appaiono su Poe. - z.ai usa id come
glm-4.6eglm-5. - Together AI usa id con namespace:
meta-llama/Llama-3.3-70B-Instruct-Turbo,deepseek-ai/DeepSeek-V3. - Fireworks usa un id a percorso completo:
accounts/fireworks/models/llama-v3p3-70b-instruct.
Se la connessione funziona ma ottieni "model not found", quasi sempre è un errore di battitura nel nome o un uso sbagliato delle maiuscole. Quando SurfMind può elencare i modelli automaticamente tramite il Models URL, scegli dall'elenco invece di digitare a mano.
Riferimento rapido: modelli locali
Tutti questi girano sulla tua macchina. Ollama, LM Studio, vLLM, llama.cpp e Open WebUI sono già elencati sotto Self-hosted nella pagina Models: clicca su Connect e gli URL qui sotto vengono compilati al posto tuo. Per Jan e LocalAI, clicca su Custom Providers / API, incolla gli URL e imposta Authentication su No authentication. Se hai cambiato la porta di un runner, modifica l'URL di conseguenza. I nomi dei provider rimandano alla documentazione di configurazione di ciascuno strumento.
- API URL:
http://localhost:11434/api/chat - Models URL:
http://localhost:11434/api/tags - API key: nessuna
- API URL:
http://localhost:1234/v1/chat/completions - Models URL:
http://localhost:1234/v1/models - API key: qualsiasi valore non vuoto (ad es.
lm-studio)
- API URL:
http://localhost:1337/v1/chat/completions - Models URL:
http://localhost:1337/v1/models - API key: nessuna (oppure la tua chiave Jan)
- API URL:
http://localhost:8080/v1/chat/completions - Models URL:
http://localhost:8080/v1/models - API key: nessuna (a meno che tu non l'abbia avviato con
--api-key)
- API URL:
http://localhost:8000/v1/chat/completions - Models URL:
http://localhost:8000/v1/models - API key: la tua
--api-keyse ne hai impostata una
- API URL:
http://localhost:8080/v1/chat/completions - Models URL:
http://localhost:8080/v1/models - API key: nessuna
OpenWebUI: l'eccezione alla regola "nessuna chiave". OpenWebUI richiede una chiave API, e i suoi percorsi sono /api/..., non /v1/.... Collegalo dall'elenco Self-hosted e incolla la tua chiave sk-… presa da Settings → Account → API keys. Usa http://localhost:3000 per una tipica installazione con Docker, oppure l'indirizzo del tuo server se gira altrove.
- API URL:
http://localhost:3000/api/chat/completions - Models URL:
http://localhost:3000/api/models - API key: la tua chiave OpenWebUI (
sk-…)
Configurazione completa e risoluzione dei problemi sono nella nostra guida all'OpenWebUI API.
Non dimenticare il passaggio CORS (Errore #7) per ognuno di questi. Per Ollama in particolare, la guida completa con screenshot si trova nella nostra guida a Ollama, e se stai decidendo tra i primi due, vedi Ollama vs LM Studio.
Riferimento rapido: provider AI popolari
Tutti i provider qui sotto sono già elencati sotto Providers nella pagina Models: clicca su Connect e incolla la tua chiave — gli URL vengono compilati al posto tuo. Li riportiamo qui come riferimento, o nel caso preferissi aggiungerne uno a mano con Custom Providers / API (imposta Authentication su API Key con il formato Authorization: Bearer). I nomi dei provider rimandano alla documentazione API di ciascun provider.
Poe — una sola chiave per centinaia di modelli (Claude, GPT, Gemini, Llama…), addebitati sui punti del tuo abbonamento Poe. I nomi dei modelli sono i nomi dei bot così come vengono visualizzati — copiali esattamente come appaiono su Poe (ad es. Claude-Sonnet-4.6, GPT-5.4). Chiave da poe.com → Settings → API key.
- API URL:
https://api.poe.com/v1/chat/completions - Models URL:
https://api.poe.com/v1/models
CanopyWave — provider GPU-cloud che serve modelli aperti (Kimi, DeepSeek, Llama, Qwen). Chiave dalla dashboard di CanopyWave.
- API URL:
https://inference.canopywave.io/v1/chat/completions - Models URL:
https://inference.canopywave.io/v1/models
z.ai (GLM) — i modelli GLM di Zhipu (glm-4.6, glm-5). Attenzione: z.ai pubblica anche un endpoint Coding Plan separato (https://api.z.ai/api/coding/paas/v4) e un endpoint PaaS (https://api.z.ai/api/paas/v4) — usa quello compatibile con OpenAI qui sotto e non aggiungere un /v1 extra.
- API URL:
https://api.z.ai/api/openai/v1/chat/completions - Models URL:
https://api.z.ai/api/openai/v1/models
Together AI — ampio catalogo di modelli aperti. Gli id dei modelli sono lunghi (meta-llama/Llama-3.3-70B-Instruct-Turbo) — copiali esattamente dalla pagina dei modelli di Together.
- API URL:
https://api.together.xyz/v1/chat/completions - Models URL:
https://api.together.xyz/v1/models
Groq — inferenza estremamente veloce. Inghippo: il percorso è /openai/v1, non solo /v1.
- API URL:
https://api.groq.com/openai/v1/chat/completions - Models URL:
https://api.groq.com/openai/v1/models
DeepSeek — i modelli attuali sono deepseek-v4-flash e deepseek-v4-pro (i vecchi alias deepseek-chat / deepseek-reasoner stanno per essere ritirati — controlla la documentazione di DeepSeek per gli ultimi aggiornamenti). Il /v1 è opzionale; DeepSeek accetta l'URL con o senza.
- API URL:
https://api.deepseek.com/v1/chat/completions - Models URL:
https://api.deepseek.com/v1/models
Mistral — mistral-large-latest, mistral-small-latest, ecc. Standard compatibile con OpenAI.
- API URL:
https://api.mistral.ai/v1/chat/completions - Models URL:
https://api.mistral.ai/v1/models
Fireworks AI — inghippo: il percorso è /inference/v1, non /v1. Gli id dei modelli hanno l'aspetto accounts/fireworks/models/llama-v3p3-70b-instruct.
- API URL:
https://api.fireworks.ai/inference/v1/chat/completions - Models URL:
https://api.fireworks.ai/inference/v1/models
xAI (Grok) — modelli Grok (grok-4, ecc.). Standard compatibile con OpenAI.
- API URL:
https://api.x.ai/v1/chat/completions - Models URL:
https://api.x.ai/v1/models
AWS Bedrock — Bedrock ora ha un endpoint compatibile con OpenAI, ma con due inghippi: l'host è specifico per regione (ad es. us-west-2) e il percorso è /openai/v1. Devi usare una Bedrock API key (un token bearer che generi nella console) — non le tue normali chiavi di accesso AWS/SigV4. Gli id dei modelli hanno l'aspetto openai.gpt-oss-120b-1:0. Quando colleghi Bedrock dall'elenco Providers, scegli la tua regione dal menu a discesa e SurfMind costruisce l'URL al posto tuo.
- API URL:
https://bedrock-runtime.<region>.amazonaws.com/openai/v1/chat/completions - Models URL: lascia vuoto — inserisci l'id del modello in seguito
Ancora non si connette? Ultimi controlli
Segui questi passaggi in ordine:
- Controlla prima la pagina Models. Se il tuo provider è elencato, collegalo da lì invece di creare una voce personalizzata.
- Apri l'host dell'API URL nel tuo browser. Server locale che non si carica → non è in esecuzione, oppure la porta è sbagliata.
- Rileggi il percorso. Ollama →
/api/chat. Tutti gli altri →/v1/chat/completions(o il percorso speciale del provider dalla tabella). - Verifica di aver incollato l'endpoint completo, non la base, e che non ci sia un doppio
/v1o uno slash finale. - 401? È la chiave o il suo formato. Formato = Authorization: Bearer, chiave senza spazi, senza prefisso
Bearer. - 404 "model not found"? La connessione va bene — correggi il nome del modello (maiuscole esatte).
- Modello locale, browser bloccato? Abilita il CORS (
OLLAMA_ORIGINS="*"o l'interruttore di LM Studio) e prova127.0.0.1vslocalhost.
Questi passaggi risolvono la grande maggioranza dei problemi di configurazione.
Hai ancora bisogno di aiuto?
Se hai seguito tutta la checklist e il tuo provider continua a non connettersi, scrivici una email all'indirizzo wave@surfmind.ai indicando il provider che stai provando e l'errore che vedi. Ti aiuteremo a connetterlo.
Connesso? Apri SurfMind sulla prossima pagina che stavi per leggere e metti al lavoro il tuo modello.
Post correlati
Vedi tuttoOpenWebUI API: usa i tuoi modelli su qualsiasi pagina web
Collega l'OpenWebUI API a SurfMind e chatta con qualsiasi pagina web usando i modelli che già hai. Chiave API, endpoint corretti ed errori comuni risolti.
Ollama vs LM Studio: quale strumento di IA locale fa per te?
Un confronto pratico e senza esagerazioni tra Ollama e LM Studio per eseguire modelli di IA in locale nel 2026, oltre alle istruzioni per usare uno dei due per chattare con qualsiasi pagina web.
Significato di BYOK: cos'è 'Bring Your Own Key' e perché è il futuro degli strumenti IA
BYOK significa Bring Your Own Key: colleghi la tua chiave API agli strumenti IA invece di pagare abbonamenti. Scopri come risparmiare il 40–90% e iniziare in 5 minuti.