Caricamento massivo di argomenti e post da Slack

Ciao a tutti,

Sto utilizzando Discourse/CDCK ospitato per configurare il mio sito. Attualmente sto lavorando per trasferire conversazioni da un’esportazione di Slack, eseguire un po’ di pre-elaborazione sul testo, generare un titolo con un transformer di Hugging Face, quindi aggiungerlo a Discourse tramite l’API.

https://tabular.discourse.group/t/why-wouldn-t-we-commit-a-snapshot-that-has-made-no-changes/42

Ho visto su un altro forum (non riesco a trovarlo, mi dispiace) che l’uso dell’API per operazioni di massa non è una buona pratica. Continuo anche a incontrare limiti di frequenza e altri problemi per i quali ho provato a modificare le impostazioni, ma alla fine continuo a incontrare limiti di frequenza senza successo. Avete suggerimenti su come importare in massa qualsiasi tipo di file che potrei produrre con i messaggi di Slack?

I messaggi di Slack elaborati (compatibili con Discourse) sono in un database e ho uno script che li estrae e li invia all’API di Discourse, potrei facilmente modificarlo per creare un file che Discourse possa ingerire e generare argomenti in massa.

Grazie

1 Mi Piace

Di solito si utilizza uno script di importazione su un server che si controlla o su un’istanza di sviluppo. Dovresti mettere il tuo sito in modalità di sola lettura, scaricare il backup dalla tua istanza ospitata, eseguire il lavoro, creare un backup, caricarlo sulla tua istanza ospitata e chiedere che il tuo backup venga ripristinato. Se il tuo sito è attivo e un giorno di sola lettura non è un problema, fai così.

Se il tempo di sola lettura è davvero un problema e hai solo poche migliaia di post, scrivi il tuo script in modo che abbia un ritardo tra le chiamate e ritenti quando viene negato.

Se hai decine di migliaia di post, dovrai convincere te stesso e chiunque altro che un giorno di sola lettura non è davvero un problema.

Vedi scripts/import_scripts nel codice sorgente per esempi.

1 Mi Piace

Ne sto recuperando solo poche centinaia alla volta, quindi probabilmente aggiungerò dei ritardi per non dover avviare l’istanza locale. Stiamo spostando lentamente le conversazioni più lunghe con persone specifiche per popolare il nostro sito Discourse con un sacco di conversazioni preziose che non sono più ricercabili tramite Slack.

CDCK supporterà mai un modo per invocare questi script di importazione di massa o esporre una funzionalità di importazione di massa tramite API?

Ne dubito, poiché si tratta di una richiesta piuttosto di nicchia e potenzialmente molto pericolosa. Tra l’altro, sto per iniziare a lavorare su un plugin che accetterà un URL di un foglio di calcolo di Google Docs con fogli per categorie, utenti, argomenti, post e li importerà, ma mi aspetto che sia disponibile solo per gli auto-hoster e i clienti enterprise.

1 Mi Piace

Va bene, sto aggiungendo una gestione delle eccezioni e saltando se l’ID esterno esiste già. Questo flusso di lavoro funziona bene poiché stiamo solo cercando di importare poche centinaia alla volta e poi esaminarle manualmente e correggerle. Volevo solo assicurarmi di non fare nulla che potesse mettermi in una brutta situazione.

Detto questo, quel plugin sembra un’ottima alternativa! Spero che offriate una tariffa per abilitarlo per un mese e poi tornare al piano team.

Se stai usando l’API, hai una serie di protezioni fornite da Rails per assicurarti di non fare nulla di veramente grave.

3 Mi Piace

Grazie Jay!

Ho appena caricato 500. Ci è voluto un po’ ma tutto quello che ho fatto è stato ridurre i tempi di attesa a 1 secondo per post e argomenti, e ho aggiunto una pausa di un secondo dopo ogni chiamata di creazione e questo ha risolto il problema. Ci sono volute circa 4 ore per caricare ~500 messaggi.

Questo è decisamente il modo giusto. Questo ci darà molto su cui lavorare e moderare per un po’.

A proposito, tutto questo è attualmente in un Discourse privato, quindi lo renderemo carino prima di aprire i cancelli.

Grazie ancora per tutto il tuo aiuto! Non vedo l’ora che arrivi quel nuovo plugin!

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.