Cosa stai configurando
Se sei arrivato qui digitando openwebui come chattare n8n, probabilmente stai cercando di fare due cose correlate: parlare con un modello in Open WebUI ed eseguire chiamate allo stesso modello dai flussi di lavoro n8n. Entrambi gli strumenti possono puntare a qualsiasi server che segua il formato delle completazioni chat OpenAI, quindi un unico account copre entrambi.
Open WebUI è un'interfaccia di chat self-hosted. n8n è uno strumento di automazione dei flussi di lavoro in cui colleghi i nodi. L'API che sta dietro è la stessa in entrambi i casi:
- URL base:
https://api.nofilteraichat.com/v1 - ID modello:
uncensored - Auth: un'intestazione
Authorization: Bearerche trasporta la tua chiave
Hai prima bisogno di una chiave. La pagina della chiave API guida alla registrazione e al credito di prova di $0,50 con un clic, sufficiente per testare tutto quanto segue.
Parte uno: Open WebUI
Opzione A: il pannello di amministrazione
Se Open WebUI è già in esecuzione, accedi come amministratore e apri Impostazioni amministratore, poi Connessioni. Aggiungi una nuova connessione API OpenAI con questi valori:
- URL:
https://api.nofilteraichat.com/v1 - Chiave: la tua chiave API
- Salva, quindi usa il pulsante di verifica se la tua versione lo prevede.
I nomi dei menu cambiano un po' tra le versioni, quindi cerca la sezione che elenca le connessioni in stile OpenAI. Dopo il salvataggio, avvia una nuova chat e apri il selettore del modello. Il modello uncensored dovrebbe apparire, perché Open WebUI carica l'elenco da GET /v1/models.
Opzione B: variabili d'ambiente in Docker
Se parti da zero, passa le impostazioni quando avvii il container:
docker run -d --name open-webui -p 3000:8080 \
-e OPENAI_API_BASE_URL="https://api.nofilteraichat.com/v1" \
-e OPENAI_API_KEY="$NOFILTER_API_KEY" \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:mainApri http://localhost:3000, crea il primo account locale e il modello sarà in attesa nel selettore. Nota che Open WebUI memorizza le impostazioni di connessione nel suo database dopo il primo avvio. Se modifichi le variabili in seguito e non succede nulla, modifica la connessione nel pannello di amministrazione.
Regolazione di una chat
Nei controlli della chat puoi impostare temperatura, top_p, una sequenza di arresto e un prompt di sistema. Questi parametri vengono passati al modello. Per la finzione e il roleplay, una temperatura tra 0,7 e 1,0 dà una prosa più vivace. Per domande fattuali, scendi. Se il modello inizia a ripetere frasi, aumenta un po' la penalità di frequenza.
Parte due: n8n con il nodo OpenAI
n8n ha una credenziale OpenAI nativa. La sua configurazione include un campo URL di base, che di default è impostato sul server ufficiale. Modificalo e il nodo parlerà al tuo endpoint:
- In n8n, crea una nuova credenziale di tipo OpenAI.
- Incolla la tua chiave API.
- Imposta il Base URL su
https://api.nofilteraichat.com/v1. - Salva e allega la credenziale a un nodo Chat Model OpenAI o a un flusso di lavoro AI Agent.
Il problema è il campo del modello. Alcuni nodi mostrano un menu a discesa popolato dall'elenco dei modelli, altri limitano le scelte ai nomi noti. Se non puoi selezionare uncensored, passa il campo in modalità espressione e digita l'ID a mano. Se la tua versione di n8n lo rifiuta ancora, usa l'approccio HTTP Request nella sezione successiva, che non ha tali restrizioni.
Con le credenziali funzionanti, puoi collegare il modello di chat a un nodo AI Agent e assegnargli degli strumenti. La chiamata di funzioni è supportata dall'API (tools, tool_choice, e risultati come role: "tool"). Come per qualsiasi modello a pesi aperti, testa l'agente con input reali e mantieni le descrizioni degli strumenti brevi e letterali.
Parte tre: chat da un nodo HTTP Request
L'opzione più prevedibile è un semplice nodo HTTP Request. Mostra esattamente cosa viene inviato e funziona in ogni versione di n8n. Configura il nodo in questo modo:
- Metodo: POST
- URL:
https://api.nofilteraichat.com/v1/chat/completions - Autenticazione: Header Auth, con nome
Authorizatione valoreBearer YOUR_KEY(memorizzalo come credenziale, non nel nodo) - Invia Body: on, content type JSON
Imposta il corpo su quanto segue, usando un'espressione per il testo dell'utente:
{
"model": "uncensored",
"messages": [
{ "role": "system", "content": "You are a concise story assistant for adult fiction writers." },
{ "role": "user", "content": "{{ $json.prompt }}" }
],
"temperature": 0.8,
"max_tokens": 600
}Il testo della risposta si trova a choices[0].message.content. Nel nodo successivo, leggilo con l'espressione {{ $json.choices[0].message.content }}. La stessa risposta contiene anche un blocco usage, così puoi registrare i conteggi dei token su un foglio o un database.
Un flusso di lavoro tipico è un trigger webhook, questo nodo HTTP e un nodo di risposta che restituisce il testo. Un altro comune legge le righe da un foglio di calcolo, genera una bozza per ciascuna e scrive i risultati indietro. Puoi anche testare la richiesta fuori da n8n prima con curl:
curl https://api.nofilteraichat.com/v1/chat/completions \
-H "Authorization: Bearer $NOFILTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}]}'Limiti, retry e batch in n8n
Una chiave completa permette 8 richieste concorrenti e 300 richieste al minuto; una chiave di prova ne permette 2 e 60. n8n può facilmente superare questi numeri, perché un nodo elabora ogni elemento in arrivo e può attivarli rapidamente.
Nel nodo HTTP Request, apri Opzioni e usa Batching: imposta una dimensione batch di 4 o 6 e un intervallo di un secondo o due. Nelle Impostazioni del nodo, attiva Retry On Fail con 3 tentativi e un'attesa di 5000 ms. Questo corrisponde al comportamento dell'API: quando è brevemente sovraccarico, restituisce HTTP 429 con un'intestazione Retry-After: 5. Altri codici 429 ti dicono quale limite hai raggiunto: rate_limited significa troppe richieste al minuto, concurrency significa troppe contemporaneamente.
Lo streaming merita una nota. Una richiesta in streaming mantiene il suo slot di concorrenza fino alla fine dello stream. In n8n, lascia lo streaming disattivato nel nodo HTTP, poiché il flusso di lavoro attende comunque l'intera risposta. Open WebUI fa lo streaming di default, il che è giusto per una finestra di chat.
Costo di un flusso di lavoro
Supponiamo che un workflow elabori 500 righe, inviando 800 token di input e ottenendo 250 token di output per ciascuna. Input: 500 × 800 = 400.000 token, che costano 400.000 × $0,15 / 1.000.000 = $0,06. Output: 500 × 250 = 125.000 token, che costano 125.000 × $0,50 / 1.000.000 = $0,0625. L'esecuzione totale costa $0,1225, circa 12 centesimi. Vedi la pagina dei prezzi per i ricarichi.
Risoluzione dei Problemi
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Open WebUI non mostra modelli | URL o chiave errati | Usa l'URL base che termina con /v1; testa GET /v1/models con curl |
| Modifiche env Docker ignorate | Impostazioni già memorizzate | Modifica la connessione in Impostazioni amministratore |
| 401 da n8n | Valore header mancante della parola Bearer | Il valore deve leggere Bearer, uno spazio, poi la chiave |
| Open WebUI in Docker non riesce a raggiungere un proxy locale | localhost punta al container | Usa l'indirizzo dell'host, non localhost |
| 429 in mezzo a un loop | Troppi elementi in parallelo | Raggruppa il nodo HTTP e abilita il ritentativo |
| Modello non trovato | Nome digitato male | L'unico ID è uncensored |
Ricorda i limiti del prodotto quando progetti un flusso: solo chat testuale, una finestra di contesto di 100.000 token condivisa tra prompt e risposta, e un corpo della richiesta di 8 MB. Non esiste un endpoint per gli embeddings, quindi mantieni la ricerca vettoriale su un altro servizio. Il quickstart contiene il riferimento completo alle richieste, e la guida all'integrazione copre più interfacce. I prompt inviati tramite l'API non vengono utilizzati per l'addestramento.
La regola rigida vale per ogni strumento: nessun contenuto sessuale che coinvolga minorenni. Nell'uso adulto legale, il modello è ottimizzato per rispondere senza rifiuti sui contenuti, il che si adatta a fiction, gioco di ruolo e app companion per adulti.
