IT ▾
Ottieni la chiave API

Open WebUI e n8n: collega la chat a un'API senza censura

Open WebUI ti offre una finestra di chat, n8n ti offre l'automazione e entrambi possono utilizzare lo stesso endpoint compatibile con OpenAI. Ecco come configurare ciascuno e come chattare da un flusso di lavoro n8n.

Aggiornato

Finestra di chat e bacheca del flusso di lavoro collegati da un cavo a un server API, che mostrano Open WebUI e n8n che condividono un endpoint

Punti chiave

  1. Su Open WebUI, aggiungi l'URL di base e la chiave in Impostazioni amministratore, Connessioni, oppure imposta due variabili d'ambiente in Docker.
  2. In n8n, sovrascrivi l'URL di base nelle credenziali OpenAI oppure usa una Richiesta HTTP.
  3. Usa l'ID del modello uncensored in entrambi gli strumenti.
  4. Mantieni i loop n8n sotto le 8 richieste concorrenti e attiva il retry per le risposte 429.

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: Bearer che 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:

  1. URL: https://api.nofilteraichat.com/v1
  2. Chiave: la tua chiave API
  3. 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:main

Apri 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:

  1. In n8n, crea una nuova credenziale di tipo OpenAI.
  2. Incolla la tua chiave API.
  3. Imposta il Base URL su https://api.nofilteraichat.com/v1.
  4. 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 Authorization e valore Bearer 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

SintomoCausa probabileSoluzione
Open WebUI non mostra modelliURL o chiave erratiUsa l'URL base che termina con /v1; testa GET /v1/models con curl
Modifiche env Docker ignorateImpostazioni già memorizzateModifica la connessione in Impostazioni amministratore
401 da n8nValore header mancante della parola BearerIl valore deve leggere Bearer, uno spazio, poi la chiave
Open WebUI in Docker non riesce a raggiungere un proxy localelocalhost punta al containerUsa l'indirizzo dell'host, non localhost
429 in mezzo a un loopTroppi elementi in paralleloRaggruppa il nodo HTTP e abilita il ritentativo
Modello non trovatoNome digitato maleL'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.

Domande e risposte

Come aggiungo un endpoint OpenAI personalizzato a Open WebUI?

Vai su Impostazioni amministratore, Connessioni, aggiungi una connessione API OpenAI con l'URL di base e la tua chiave. Oppure imposta OPENAI_API_BASE_URL e OPENAI_API_KEY quando avvii il container Docker.

n8n può usare un URL di base diverso per i nodi OpenAI?

Sì. Le credenziali OpenAI hanno un campo URL di base. Se il menu a discesa del modello rifiuta uncensored, digitalo in modalità espressione o usa una Richiesta HTTP.

Perché il mio loop n8n restituisce errori 429?

Stai inviando più di 8 richieste parallele o più di 300 al minuto con una chiave completa. Aggiungi il batching al nodo HTTP e abilita Retry On Fail.

Posso usare la stessa chiave in Open WebUI e n8n contemporaneamente?

Sì, ma entrambi gli strumenti condividono un limite di 8 richieste concorrenti, quindi mantieni i batch del flusso di lavoro piccoli durante la chat.

La tua chiave è a un passo di distanza

Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.

Ottieni la chiave API