Introduzione a n8n: automazione no-code per Intelligenza Artificiale
In questo ultimo periodo, tra le varie cose, sto giocando con n8n e mi pare giusto iniziare ad introdurlo qui per poi valutare (grazie anche al tuo feedback) se ha senso parlarne più in dettaglio.
1. Che cos’è n8n?
n8n è la versione open-source di servizi a pagamento come Zapier Make IFTTT. In estrema sintesi sono piattaforme web che si prefiggono di automatizzare e far dialogare differenti servizi web.
Ad esempio: io usa Zapier (nella versione gratuita) per pubblicare un post su LinkedIn ogni volata che pubblico un articolo qui.
Questi strumenti, tuttavia, se utilizzati in modo massiccio diventano velocemente costosi.
Vengono volgarmente chiamati strumenti no-code perché promettono di interfacciarsi con le API di una pletora di servizi web senza la necessità di scrivere codice. Questo viene fatto attraverso astrazioni grazie ad una interfaccia web della specifica applicazione.
Personalmente trovo che gli strumenti no-code siano una bufala di marketing: sì, per flussi di lavoro molto semplici (come il mio sistema di pubblicazione degli articoli su LinkedIn) non è richiesta una conoscenza elevata ma appena vuoi creare qualcosa di più complesso e funzionale, le cose cambiano velocemente e sono richieste competenze più specifiche.
Ciò detto sono strumenti utili e, in parte, simili a Comandi Rapidi di Apple.
Recentemente n8n (probabilmente anche per rilanciarsi sul mercato) ha introdotto alcune interessanti funzioni legate alle IA ed in particolare la possibilità di interfacciarsi con Ollama e, quindi, LLM locali.
Era quindi scontato che iniziassi a giocarci ed approfondire.
2. Un po' di storia
L’amico Alessandro mi ha fatto conoscere n8n svariati anni fa. All’epoca l’interfaccia era ancora acerba e le mie capacità di creare un container e sperimentare con n8n non particolarmente evolute.
Tuttavia proprio perché ci vedevo possibili interessanti sviluppi avevo acquistato un libro (ebook a dir il vero) su come utilizzarlo.
Il libro si chiamava “Rapid Product Development with n8n” di Jason McFeetors e Tanay Pant (il creatore di n8n). Oggi il libro non è più in commercio perché obsoleto.
Fatte tutte queste premesse vediamo perché mi interessa (e potrebbe interessare anche a te) n8n.
3. Cosa mi interessa di n8n?
I motivi per il mio interesse in n8n sono svariati di seguito ti indico i punti fondamentali.
Anzitutto il mio scopo principale è quello di utilizzare il sistema internamente e con i miei dati non per interfacciarmi con servizi esterni.
Uno dei problemi maggiori che trovo nei servizi come Zapier e simili è che tutto deve risiedere nel web (ovvero su server di altri soggetti, su cui io non ho il minimo controllo).
Se questo approccio ha senso per la maggior parte delle persone, vista la mia attività non posso / voglio dare l’accesso ai miei dati e quelli dei miei clienti a soggetti di cui non posso avere la massima fiducia.
n8n può risiedere direttamente nella mia rete locale (o addirittura su di un singolo Mac) e questo è “impagabile” a livello di sicurezza.
Non solo, grazie l’accesso vis sFTP può accedere ai dati residenti sui miei Mac caricando, manipolando e scrivendo i file.
Secondariamente è un sistema di automazione e questo ovviamente mi attira. L’interfaccia è a blocchi e, anche se per flussi di lavoro complessi, non è proprio comodissima è in parte simile a quella di Comandi Rapidi: varie azioni o blocchi che possono essere concatenati per creare il tuo flusso di lavoro. Rispetto a Comandi Rapidi n8n si differenzia perché può gestire dei flussi condizionali in modo più semplice e visuale.
3.1. Integrazione avanzata con IA ed in particolare LLM locali
Se leggi le pagine di questo sito sai che nel corso del 2024 i miei maggiori sforzi sono stati dedicati alla IA, in particolare LLM, in locale.
n8n non solo si integra perfettamente con Ollama ma, sotto la scocca, utilizza LangChain un framework che permette di utilizzare gli LLM creando agenti e flussi di lavoro complessi.
Questa attualmente è la caratteristica di n8n che più mi interessa.
Gli LLM da soli infatti sono “stupidi”, ovvero non possono sapere nulla di più del materiale usato per il loro addestramento.
Per ovviare a questo enorme limite esistono vari trucchi il framework di LangChain permette ai programmatori di accedere a questi trucchi e funzionalità aggiuntive.
n8n permette di fare altrettanto ma in maniera grafica.
È quindi possibile attraverso n8n creare una memoria vettoriale delle chat con l’LLM, dialogare con i documenti e tant’altro senza dover sporcarsi troppo le mani con il codice.
Dal mio punto di vista vuol dire poter creare dei prototipi di flussi di lavoro con LLM locali relativamente complessi senza avere ancora tutte le capacità di scrivere il relativo codice.
3.2 Manipolazione dei dati
A ciò si aggiunga che una delle caratteristiche di base di n8n è la sua capacità di manipolare i dati. Ciò fa si che quanto inviato e/o generato dall’LLM può essere a sua volta manipolato.
Nel flusso di lavoro che segue ho estratto il testo di varie sentenze della cassazione, l’ho manipolato con n8n per ottimizzarlo togliendo le nuove righe e creando un blob di testo meglio digeribile dall’LLM, per poi passarlo ad un LLM ed estrarre le massime delle sentenze. Infine crea e salva un documento in cui sono contenute le massime estratte ed il testo del provvedimento.
Questo è un primissimo esperimento che ho fatto (se c'è interesse non ho problemi a condividerlo nel dettaglio) ma mostra le potenzialità del sistema.
3.3 Possibilità di interfacciarsi con Comandi Rapidi
Altro punto che mi ha fatto apprezzare n8n è la possibilità di utilizzarlo in congiunzione con Comandi Rapidi. Ti ho già mostrato come è possibile interfacciare Comandi Rapidi con delle API in particolare quelle di Ollama, qui tuttavia il sistema è ancora più semplice.
Come si vede nel breve video (meno di 3 minuti) qui sotto, ho creato rapidamente una interfaccia tra n8n e Comandi Rapidi per l’utilizzo di un LLM locale.
Grazie alle funzioni di Comandi Rapidi puoi far leggere il testo direttamente a Siri. Basta aggiungere l’azione Leggi testo.
3.4 Costi limitati
n8n, rispetto ad altri servizi è relativamente economico.
Non è mia intenzione entrare qui in dettaglio ma esiste la versione c.d. self-hosted, ovvero installata su proprio hardware o su hardware in affitto (server web), in cui non si hanno costi per i workflow azionati e si hanno workflow infiniti. Esiste una versione di n8n cloud in cui invece si paga in base all’utilizzo.
3.5 Possibilità di “rubare” i workflow di altri
Da ultimo, ma non per importanza, n8n ha una enorme collezione di template di flussi di lavoro.
Questo significa che, anche se non sei super esperto, puoi utilizzare flussi di lavoro creati da altri e/o modificarli per le tue esigenze. Un po' come con Comandi Rapidi e la gallery.
4. Un discorso sulla licenza di n8n e sul modello di business
n8n, come dicevo, è un software open-source ma con un un asterisco.
Infatti rispetto ad altri sviluppatori open-source quelli di n8n hanno “inventato” la licenza fair-code.
Qui trovi in dettaglio la licenza spiegata.
Per quel che ci interessa riporto i casi in cui occorre pagare n8n anche se lo si utilizza in self-hosting.
La nostra licenza limita l’uso a "scopi commerciali interni". In pratica questo significa che tutto l’uso è consentito a meno che non si stia vendendo un prodotto, un servizio o un modulo in cui il valore deriva interamente o sostanzialmente dalla funzionalità n8n.
Il modello di business di n8n è quindi quello di vendere il servizio cloud e, in caso di grossi business, ottenere ricavi da servizi di terzi che si basino prevalentemente su n8n.
Per quanto ci riguarda quindi sicuramente possiamo giocare con il servizio self-hosted e, ma qui ti consiglio di approfondire, creare servizi ad uso interno anche per lo studio legale.
In conclusione
Spero che questa iniziale carrellata di n8n ti sia piaciuta e possa spingerti ad approfondire. Come sempre amo ricevere il feedback e, visto che è un argomento nuovo su queste pagine, sapere se ti possono interessare ulteriori approfondimenti.
Come sempre, se ti è piaciuto quel che hai letto o visto e non l’hai già fatto, ti suggerisco di iscriverti alla mia newsletter. Ti avvertirò dei nuovi articoli che pubblico (oltre ai podcast e video su YouTube) e, mensilmente, ti segnalerò articoli che ho raccolto nel corso del mese ed ho ritenuto interessanti.