N8n è un bel progettino per realizzare workflow automatizzati, mettendoci dentro un po di AI.
Come da esperienze precedenti ho provato a farlo funzionare utilizzando il meno possibile servizi su cloud, più che altro per essere consapevole di come funziona ogni passaggio.
Per cui, primo passo installo N8N con una immagine che gira in locale su docker. Niente di difficile. Le istruzioni sul repository sono facili. N8N parte, richiede una mail di registrazione per sbloccare un po’ di funzionalità in modo gratuito. Va bene, anche se non ho verificato bene la differenza tra con e senza registrazione.
A questo punto mi pongo il problema di cosa fargli fare. Ce ne sarebbero mille ma di cose ma provo ad implementare una trascrizione di audio mediante telegram. L’obbiettivo è avere facilmente la trascrizione di messaggio audio provenienti da varie piattaforme di messaggistica, non necessariamente solo telegram.

Per prima cosa identifico un punto da cui partire: Transcribe Voice Messages from Telegram using OpenAI Whisper-1 .
L’idea e’ bella ma non voglio usare le api di OpenAI. Whisper gira benissimo in locale e visto che comunque devo avere un pc acceso per far girare N8N non vedo perché non far girare anche Whisper. Qua trovo un progettino che incapsula whisper in una immagine docker e espone delle API: whisper-asr-webservice .
Un altra cosa che mi serve è un bot telegram che ascolti e risponda. Percui chiedo BotFather di crearmene uno.
Ok a questo punto mettiamo tutto insieme. Telegram pretende webhook in https quindi creo un sotto-dominio, un proxy apache e un certificato con Letsencrypt .
N8n deve essere consapevole di girare in un luogo diverso da localhost quindi va iniettato un parametro all’avvio. Qualcosa tipo:
docker run -it --rm --name n8n -p 5678:5678 -e WEBHOOK_URL=https://xyz.b0sh.net -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Inoltre nel flusso originale bisogna fare qualche modifica perche le API di Whisper non sono compatibili con quelle di OpenAI. Creiamo una richiesta HTTP da zero e inseriamola nel flusso:


Anche l’invio della risposta tramite il bot è da modificare per gestire il nuovo formato di output delle API:

E il gioco è fatto. Trascrizione a portata di telefono!
Lascia un commento