Creazione di un sistema per spostare argomenti in base a criteri dati come un timestamp

Fare riferimento all’integrazione del Bot AI vedere Discourse AI - AI bot - Documentation / Site Management - Discourse Meta

Nota/modifica aggiuntiva: Sto auto-ospitando
Versione breve se non si vuole leggere tutta la storia: Voglio usare l’AI Bot per spostare gli argomenti in base alla “data di scadenza” controllando i timestamp di un post.

Quindi stavo pensando a modi per migliorare la gestione per il mio caso d’uso di Discourse. Gestisco una community di giochi Roblox e utilizziamo Discourse per il nostro team di moderazione per eseguire attività di registrazione delle azioni di moderazione del gioco e delle azioni di Discord.

Abbiamo diverse categorie, inclusi i ban temporanei. Quando effettuiamo i nostri log, questi vengono fatti come post, e il moderatore compila un formato e inserisce i timestamp pertinenti all’azione intrapresa, ad esempio un ban di 7 giorni, ad esempio Durata: 2026-03-01T05:00:00Z2026-03-08T05:00:00Z (Il timestamp è qui)

Dal punto di vista della gestione, ho aggiunto un Ban Archiviati per quando un ban è terminato. Prima… l’avete indovinato, lo facevamo manualmente, controllando i ban una volta alla settimana.

Lo scorso autunno, ho creato un’utility python [vedi sotto] che viene eseguita localmente, con l’API di Discourse, apre un menu e seleziono quale sezione di ban voglio archiviare, ed elabora tali ban controllando ogni post per un timestamp valido e se tale tempo è trascorso. Funziona bene, ma volevo migliorare ulteriormente…

Ed eccoci qui… Spero che siate ancora qui, probabilmente potrei riassumere questo, ma ehi, discourse è conversazione, giusto?

Voglio consentire al mio team di moderazione, in particolare a quelli di rango più senior, di eseguire questa attività, senza la necessità di utilizzare VS o scaricare nulla sulla loro macchina. Quindi ho tentato di creare una versione plugin, che ammetto di aver usato l’IA per cercare di realizzare. Non sono sicuro di dove sia andato storto, ho provato a guardare la documentazione, e anche a dare istruzioni per seguire i processi, ma nulla ha avuto successo.

Il mio problema con l’integrazione tramite un plugin è stato bloccato dal non capire (o dall’IA) come integrare nell’interfaccia un’interfaccia visiva (non così colorata come questa con la versione python, ma sensata in un modo che possa essere compreso) ad esempio Un grande pulsante che dice Esegui processo di archiviazione e utilizzare l’API di moderazione (?) per contrassegnare quelli senza una data valida o errori, ecc.

Quindi… eccoci alla fine della versione lunga… Voglio un input che non posso ottenere da nessun altro che un altro essere umano, motivo per cui sono qui.

  • Il Bot AI ha questa capacità?
  • Se no, quale soluzione sensata dovrei provare?
  • Cosa ho sbagliato nel percorso del plugin, che ha fatto sì che semplicemente non funzionasse/fosse difficile (come errori comuni che hai commesso quando hai iniziato in questa community?)

Apprezzo il tuo input. Grazie.

1 Mi Piace

Non penso che tu debba rivolgerti all’IA per tutto questo.

Quando crei questi argomenti di ban attivi, perché non crei anche un timer per spostarlo nella categoria corretta dopo che è passato un po’ di tempo, così è automatico.

Inoltre… c’è un motivo per cui ti stai allontanando dal core di Discourse, abbiamo già i log per gli utenti bannati, perché non dare semplicemente ai tuoi utenti fidati l’accesso a una query di esplorazione dati per visualizzare la cronologia?

Il discourse viene utilizzato per registrare i ban… Questo è l’intero scopo. Nessun giocatore è sul forum… Solo moderatori del gioco/discord. Non penso che un timer per l’argomento funzionerebbe poiché i ban variano nel tempo. Non mi sto tanto allontanando da Discourse Core quanto lo sto utilizzando per un caso d’uso specifico. (Vedi l’immagine)

1 Mi Piace

Caso d’uso interessante!

Credo che saresti servito meglio con alcune modifiche:

Sposta la scadenza del ban in un campo argomento personalizzato dedicato

Ciò ti consentirà di convalidare che ogni ban abbia una scadenza quando viene creato un nuovo argomento e renderà semplicissima l’interrogazione per i ban scaduti.

Potresti anche utilizzare la nostra Introducing Experimental Form Templates, che ti dà anche accesso programmatico a dati specifici in un argomento.

Aggiungi filtri personalizzati /filter

Con il campo personalizzato o il modello di modulo, ora è facile aggiungere nuovi filtri /filter come ban scaduti, ban archiviati, ecc. Questi diventerebbero quindi le tue liste di lavoro principali per i moderatori e potrebbero essere aggiunti alla barra laterale per facilità d’uso.

Automatizzare i ban nel loro complesso?

L’ultimo pezzo sarebbe fare in modo che Discourse crei automaticamente i ban su Roblox e Discord ogni volta che viene creato un argomento, e anche rimuovere automaticamente i ban quando scadono.

Questo è piuttosto facile da fare con un lavoro ricorrente e accesso API.


Se hai un Set up a local Discourse Development Environment, puoi persino passare il mio post qui come specifica a Claude Code e lo costruirà in pochi minuti.

3 Mi Piace

Questa è un’osservazione davvero interessante! Ci darò un’occhiata! In particolare i campi personalizzati e i modelli. Grazie per la tua opinione!

Più retroscena, dato che sembro incuriosirvi con il mio caso d’uso… E mi piace contribuire con idee che altre comunità di gioco possano trovare in futuro…

Ho davvero un caso d’uso piuttosto unico. Abbiamo usato Trello per anni, ma a causa delle limitazioni che hanno iniziato a imporre, stava diventando troppo disordinato. Abbiamo dovuto usare 10 aree di lavoro per ospitare tutto il nostro team. (Per non parlare del fatto che hanno iniziato a limitare i livelli di accesso a una funzionalità a pagamento)

Quindi, con la continua lotta contro i cambiamenti del modello di business, è stato molto più facile passare a una soluzione self-hosted. Ho provato altri software in stile kanban, ma con l’uso di prova passato di Discourse, e il fatto che sia open source e utilizzi pratiche più moderne per il backend delle cose, semplicemente non ho potuto resistere a usarlo, e sono sempre stupito dai risultati e dalla crescita che continua con questa piattaforma nel suo complesso. Settembre sarà il mio secondo anniversario dal passaggio, e abbiamo creato oltre 6.000 argomenti!

La funzionalità che stavo cercando di imitare era simile a quella dell’epoca, che era un’automazione per passare da una lista all’altra con un trigger specifico (quindi per noi era la data di fine). Sfortunatamente, è una funzionalità premium che non posso nemmeno più dimostrare.

image

Tornerò qui una volta finito di esplorare e vi farò sapere come va/cosa ho fatto, soprattutto a beneficio di altri che vedono un’idea per un uso simile!

2 Mi Piace

Una volta che il tuo plugin sarà attivo, dovresti anche essere in grado di visualizzare come al solito grazie a Kanban Board

2 Mi Piace

Eccomi di nuovo… con parecchi progressi. Ho dedicato circa 6,5 ore a questo progetto.

Ho iniziato con alcuni concetti basati sui tuoi suggerimenti, ma ho riscontrato alcuni inconvenienti che mi hanno portato in un’altra direzione, ma spero che concettualmente sia comunque un’ottima idea!

Inizialmente avevo intenzione di usare i Template Forms, ma non ero molto soddisfatto dello spazio tra ogni risposta in linea. Cercavo un formato più simile a quello attuale. Inoltre, non mi piaceva dover scrivere tutto manualmente nel codice, il che mi ha scoraggiato.

Ho portato il mio script Python a un Plugin di Discourse (si noti che l’IA è stata utilizzata per la maggior parte della conversione). Ho avuto alcuni problemi per iniziare, e ora che è operativo, ho ancora bisogno di ottimizzarlo. Il design è un po’ goffo, e probabilmente ci sono alcune altre piccole questioni. Non sono molto bravo con Ruby, quindi la revisione in quel campo è un tentativo al meglio delle mie capacità.

Quindi, riguardo al plugin…

Concetto/scopo: La capacità di spostare argomenti più velocemente da una categoria all’altra tramite trigger specifici.

Viene fornito con due modalità operative: Manuale e Automatizzata (programmata).
Per costruire il trigger, è possibile selezionare le categorie di destinazione/origine, e quindi restringere ulteriormente tramite specifiche, ad esempio i tag. L’azione finale/il trigger effettivo, a parte i filtri di restrizione, è basato sul tempo/data di fine (o inizio), Chiuso, Risolto, Archiviato.

C’è anche una funzione di log che include l’argomento spostato, e si può decidere per quanto tempo i log sono disponibili.

Non ho ancora testato completamente i trigger per chiuso, risolto o archiviato al momento di questa risposta.
Una volta che lo sistemerò un po’ meglio, e lo testerò ulteriormente per assicurarmi che tutto funzioni, sarò lieto di pubblicarlo affinché altri possano accedervi nella categoria plugin, ma per ora, lo lascerò solo su GitHub. Probabilmente devo anche tornare indietro e ricontrollare i permessi in modo che non chiunque possa eseguirlo. O consentire specificamente che ciò sia attivabile/disattivabile.

Sentitevi liberi di farmi sapere cosa ne pensate, o se sono semplicemente completamente pazzo a fare questo.

Fonte: https://github.com/jdc20181/DiscourseTopicMigrationTool