Massen-Upload von Themen und Beiträgen aus Slack

Hallo zusammen,

ich richte meine Website mit dem gehosteten Discourse/CDCK ein. Derzeit arbeite ich daran, Konversationen aus einem Slack-Export zu übernehmen, den Text vorzuverarbeiten, einen Titel mit einem Hugging Face Transformer zu generieren und ihn dann über die API zu Discourse hinzuzufügen.

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

Ich habe in einem anderen Forum (kann es leider nicht finden) gelesen, dass die Verwendung der API für Massenvorgänge keine gute Praxis ist. Außerdem stoße ich immer wieder auf Ratenbegrenzungen und andere Probleme, für die ich versucht habe, die Einstellungen zu ändern, aber letztendlich stoße ich weiterhin auf Ratenbegrenzungen ohne Erfolg. Habt ihr Vorschläge, wie ich beliebige Dateien, die ich mit den Slack-Nachrichten erstellen könnte, in großen Mengen importieren kann?

Die verarbeiteten (Discourse-freundlichen) Slack-Nachrichten befinden sich in einer Datenbank und ich habe ein Skript, das sie abruft und an die Discourse-API sendet. Ich könnte dies leicht ändern, um eine Datei zu erstellen, die Discourse verarbeiten und Themen in großen Mengen generieren könnte.

Danke

1 „Gefällt mir“

Normalerweise verwenden Sie ein Importskript auf einem Server, den Sie kontrollieren, oder eine Entwicklungsinstand. Sie müssten Ihre Website in den schreibgeschützten Modus versetzen, das Backup von Ihrer gehosteten Instand herunterladen, die Arbeit erledigen, ein Backup erstellen, es auf Ihre gehostete Instand hochladen und darum bitten, dass Ihr Backup wiederhergestellt wird. Wenn Ihre Website live ist und ein Tag schreibgeschützter Zeit kein Problem darstellt, machen Sie das.

Wenn schreibgeschützte Zeit wirklich schlecht ist und Sie nur ein paar tausend Beiträge haben, schreiben Sie Ihr Skript so, dass es Verzögerungen zwischen den Aufrufen gibt und auch bei Ablehnung erneut versucht wird.

Wenn Sie Zehntausende von Beiträgen haben, müssen Sie sich selbst und alle anderen davon überzeugen, dass ein Tag schreibgeschützter Zeit nicht wirklich schlecht ist.

Siehe scripts/import_scripts im Quellcode für Beispiele.

1 „Gefällt mir“

Ich ziehe nur ein paar hundert auf einmal, also werde ich wahrscheinlich einfach Verzögerungen einbauen, damit ich die lokale Instanz nicht überlasten muss. Wir verlagern langsam die längeren Gespräche mit bestimmten Personen, um unsere Discourse-Seite mit einer Reihe wertvoller Gespräche zu bestücken, die über Slack nicht mehr durchsuchbar sind.

Wird CDCK jemals die Möglichkeit unterstützen, diese Massenimport-Skripte aufzurufen oder eine Massenimport-Funktion über die API bereitzustellen?

Ich bezweifle es, da es sich um eine ziemlich spezielle Anfrage handelt und potenziell sehr gefährlich ist. Zufälligerweise werde ich bald mit der Arbeit an einem Plugin beginnen, das eine URL einer Google Docs-Tabelle mit Blättern für Kategorien, Benutzer, Themen und Beiträge akzeptiert und diese importiert. Ich würde jedoch erwarten, dass es nur für Self-Hosters und Unternehmenskunden verfügbar sein wird.

1 „Gefällt mir“

In Ordnung, ich füge eine Ausnahmebehandlung hinzu und überspringe den Vorgang, wenn die externe ID bereits vorhanden ist. Dieser Workflow funktioniert gut, da wir nur ein paar hundert auf einmal importieren und sie dann manuell durchgehen und korrigieren. Ich wollte nur sichergehen, dass ich nichts tue, was mich in einen schlechten Zustand bringen könnte.

Davon abgesehen scheint dieses Plugin eine großartige Alternative zu sein! Hoffentlich bieten Sie eine Gebühr an, um es für einen Monat zu aktivieren, und kehren dann zum Teamplan zurück.

Wenn Sie die API verwenden, haben Sie eine Reihe von Schutzmechanismen, die von Rails bereitgestellt werden, um sicherzustellen, dass Sie nichts tun, was wirklich schlecht ist.

3 „Gefällt mir“

Danke, Jay!

Habe gerade 500 hochgeladen. Es hat eine Weile gedauert, aber alles, was ich getan habe, war, die Wartezeiten für Beiträge und Themen auf 1 Sekunde zu verkürzen und nach jedem Erstellungsaufruf eine Sekunde Schlaf hinzuzufügen, und das hat es gelöst. Es dauerte etwa 4 Stunden, um ~500 Nachrichten hochzuladen.

Das ist definitiv der richtige Weg. Das gibt uns genug zum Kauen und Moderieren für eine Weile.

Übrigens, das alles ist derzeit in einem privaten Discourse, also werden wir es hübsch machen, bevor wir die Tore öffnen.

Nochmals vielen Dank für all deine Hilfe! Ich freue mich auf dieses neue Plugin!

1 „Gefällt mir“

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