Come creare un chatbot per moderare un gruppo Telegram

In un nostro precedente articolo abbiamo visto come creare e pubblicare un chatbot per Telegram usando Xenioo.

Abbiamo spiegato le basi di come gestire una conversazione singola o di gruppo ed i concetti legati alla privacy del bot, ma non siamo entrati nel dettaglio di come poter gestire un gruppo su Telegram attraverso un chatbot.

L’obiettivo di questo articolo è proprio questo: vi mostreremo come creare un semplice chatbot che funzioni come gestore e moderatore di un gruppo Telegram.

Impostare la privacy di un gruppo Telegram

Nella creazione del chatbot attraverso il BotFather, avrai notato come è possibile configurare una serie di opzioni come il nome, l’avatar e molte altre ancora.

Una di queste opzioni è la /setprivacy e può essere impostata per abilitare o disattivare la “Group Privacy“.

Ma cos’e’ la Group Policy di Tegram?

  • con la Group Policy OFF (disabilitata), il chatbot riceverà ogni messaggio inviato dagli utenti. Se il tuo chatbot ha migliaia di utenti nel gruppo, Xenioo riceverà e processerà tutti i messaggi inviati da ciascuno di essi.
  • con la Group Policy ON (attivata), nessun messaggio scritto dagli utenti in chat raggiungerà Xenioo. Gli unici messaggi che verranno ricevuti e processati da Xenioo saranno quelli che iniziano con il carattere ‘/’ oppure menzioni dirette.

Per impostazione predefinita, la Group Policy è impostata ad ON ed è quindi attivata.

Per il momento lasceremo l’impostazione della privacy predefinita, in quanto non ci interessa ricevere tutti i messaggi degli utenti per gestire i comandi nel gruppo. Vedremo successivamente come disattivarla quando dovremo configurare il nostro chatbot per funzionare anche da moderatore del gruppo.

Rispondere ai comandi ricevuti in chat

Come descritto nel paragrafo precedente, con la Group Privacy attivata, il chatbot riceverà solo i messaggi che iniziano con il carattere ‘/’. Chiameremo questi messaggi “comandi”.

L’utilizzo tipico di questi comandi è per richiedere aiuto (/help) oppure informazioni aggiuntive (/about), ma è possibile creare e gestire qualsiasi tipo di comando.

In Xenioo è possibile creare i comandi nella sezione Global Bot Operations del chatbot. Infatti, ogni operazione inserita nella Global Bot Operations viene sempre processata indipendentemente dallo stato del chatbot ed in qualsiasi punto della conversazione utente.

Per impostare il comando è sufficiente inserire (/help) nel campo Control Expression di una operazione Text Parse. Questo tipo di operazione cattura l’input dell’utente e reagisce se il testo corrisponde ad una specifica espressione regolare.

Nel nostro caso ci si aspetta che l’utente scriva esattamente il testo /help ed il chatbot risponderà con un semplice messaggio proponendo quello che sono gli altri comandi disponibili.

Inoltre ogni testo che inizia con il carattere ‘/’ viene trasformato da Telegram in un comando cliccabile. L’utente può quindi attivare il comando sia scrivendolo nella chat, sia cliccando direttamente sul link del comando.

Gestire gli utenti in entrata ed uscita dal gruppo

Nel momento in cui si aggiunge un chatbot ad un gruppo Telegram, Xenioo comincerà a ricevere una serie di eventi relativi agli utenti che si iscrivono oppure lasciano il gruppo.

Ognuno di questi eventi viene intercettato dal chatbot e Xenioo valorizza delle specifiche variabili che possono essere poi utilizzate all’interno del flusso, per esempio per dare il benvenuto agli utenti oppure salutarli nel momeno in cui se ne vanno.

Abbiamo già discusso come utilizzare le variabili per gestire il flusso in articoli precedenti, quindi per ora ci limiteremo a vedere nel dettaglio le variabili che sono disponibili quando il chatbot è collegato ad un gruppo Telegram.

VariableValore contenuto
telegram_new_users_countNumero di nuovi utenti aggiunti al gruppo. Se è uguale a 0, nessun utente è stato aggiunto al gruppo.
telegram_new_user_<num>Nome utente completo dell’ utente aggiunto al gruppo, dove <num> rappresenta l’indice della lista di utenti aggiunti complessiva.
telegram_new_user_<num>_typeTipo di utente che si è appena aggiunto al gruppo, dove <num> rappresenta l’indice della lista di utenti aggiunti complessiva. Il valore può essere USER per un normale utente oppure BOT per un bot.
telegram_user_leavingNome utente completo dell’utente che ha appena lasciato il gruppo.
last_userNome utente completo dell’ultimo utente che ha inviato del testo o un comando nella chat del gruppo.

Qando si gestisce un gruppo Telegram bisogna tener presente che gli utenti possono essere aggiunti massivamente con un singolo invito. Dal momento che il bot viene chiamato quando uno o più utenti sono stati aggiunti al gruppo, diventa quindi necessario verificare correttamente il numero indicato dalla variabile telegram_new_user_count.

Sfruttando la capacità di Xenioo nel manipolare le variabili, è possibile creare facilmente dei blocchi per gestire questa casistica, come è possibile vedere nell’immagine sottostante.

Al contrario, la rimozione di un utente dal gruppo è immediata e quindi mai si verificheranno rimozioni massive di utenti contemporaneamente. La variabile telegram_user_leaving è sempre relativa ad un singolo utente e il bot verrà chiamato una volta per ogni utente che lascia il gruppo.

Moderare il gruppo

Un aspetto importante nella gestione di un gruppo è la supervisione del comportamento degli utenti. Se per esempio il gruppo adotta delle regole specifiche riguardanti il linguaggio non permesso, il chatbot si presta come una soluzione ideale per verificare che queste vengano fatte rispettare.

Xenioo permette non solo di rilevare e processare ogni testo scritto dagli utenti nel gruppo, ma consente al chatbot di rimuovere automaticamente dal gruppo gli utenti che non rispettino per esempio quelle determinate regole.

La prima cosa da fare per sì che il chatbot funzioni da moderatore del gruppo è quella di disabilitare la Group Policy, disattivandola come abbiamo visto nel paragrafo iniziale. Questo permetterà a Xenioo di ricevere tutti i messaggi inviati dagli utenti nel gruppo.

Il passo successivo è quello di creare una serie di intenti NLP contenenti tutte le espressioni che non si vuole vengano utilizzate all’interno del gruppo (parole volgari, argomenti politici, etc…)

Le espressioni possono variare da una semplice sentenza, anche a singola parola, fino ad arrivare a sentenze complesse che coprono diversi argomenti. Il motore NLP di Xenioo sarà in grado di imparare automaticamente da queste espressioni e quindi capace di individuare anche testi che sono differenti ma esprimono lo stesso intento.

Una volta creati gli intenti, possono essere utilizzati all’interno delle Global Bot Operations collegandoli ad una interazione che si occuperà di gestire la risposta del chatbot.

Come è possibile vedere dall’immagine, l’approccio che abbiamo usato nel chatbot di esempio è quello di dare all’utente 3 avvertimenti prima di essere rimosso dal gruppo. Ogni avvertimento viene gestito con una specifica variabile per utente ed il chatbot sarà in grado di ricordarsi del conteggio anche dopo mesi (oppure si potrebbe implementare un meccanismo per il reset del contatore degli avvisi usando un broadcast).

Se il gruppo da gestire contiene un numero molto alto di utenti, potrebbe essere necessario implementare una soluzione un poco più complessa e basata su database, ma per il nostro chatbot di esempio l’approccio scelto è più che sufficiente.

Ricapitolando…

In questo articolo abbiamo visto come creare un chatbot per gestire e moderare un gruppo Telegram con Xenioo sia estremamente semplice e flessibile.

Vorresti provarlo subito? Questo chatbot è disponibile come Template gratuito all’interno di Xenioo, ti basta entrare nel tuo account per poterlo utilizzare.

Hai delle richieste specifiche per il tuo chatbot Telegram? Non esitare a contattare direttamente il nostro team oppure scrivi alla nostra community Facebook!