Slack 批量上传主题和帖子

大家好,

我正在使用托管的 Discourse/CDCK 来设置我的网站。我目前正在处理来自 Slack 导出的对话,对文本进行一些预处理,使用 hugging face transformer 生成标题,然后通过 API 将其添加到 Discourse。

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

我在另一个论坛(抱歉找不到)上看到,使用 API 进行批量操作不是最佳实践。我还会遇到速率限制和其他问题,我已经尝试修改设置,但最终还是无法克服速率限制。你们有人对如何批量导入我可以用 Slack 消息生成的任何类型的文件有什么建议吗?

经过处理(适合 Discourse)的 Slack 消息存储在数据库中,我有一个脚本可以从中提取数据并将其推送到 Discourse API,我可以轻松地将其更改为生成 Discourse 可以使用的文件,以批量生成主题。

谢谢

1 个赞

通常,您会在自己控制的服务器或开发实例上使用导入脚本。您需要将站点设为只读模式,从托管实例下载备份,进行工作,创建备份,将其上传到托管实例,然后请求恢复您的备份。如果您的站点已上线,并且一天只读时间不是问题,请执行此操作。

如果只读时间非常糟糕,并且您只有几千个帖子,请编写脚本,在调用之间设置延迟,并在被拒绝时重试。

如果您有成千上万个帖子,您需要说服自己和他人,一天只读时间并非非常糟糕。

有关示例,请参阅源代码中的 scripts/import_scripts

1 个赞

我一次只提取几百条,所以可能会添加延迟,这样就不必启动本地实例了。我们正逐步将包含特定人员的长对话转移到我们的 Discourse 站点,以填充大量无法再通过 Slack 搜索到的有价值的对话。

CDCK 是否会支持某种方式来调用这些批量导入脚本,或者通过 API 公开批量导入功能?

我对此表示怀疑,因为这是一个相当小众的要求,而且可能非常危险。碰巧,我将开始开发一个插件,该插件将接受一个包含类别、用户、主题、帖子的工作表的 Google 文档电子表格的 URL 并导入它们,但我预计它仅对自托管者和企业客户可用。

1 个赞

没问题,我将添加一些异常处理,并在外部 ID 已存在时跳过。此工作流程运行正常,因为我们一次只尝试导入几百条记录,然后手动进行修复。我只是想确保我没有做任何可能导致我陷入糟糕状态的事情。

话虽如此,那个插件似乎是一个很好的替代方案!希望你们能提供一个付费选项,启用一个月,然后恢复到团队计划。

如果您正在使用 API,那么 Rails 会为您提供许多保护措施,以确保您不会做任何真正糟糕的事情。

3 个赞

谢谢 Jay!

刚上传了 500 条。花了一段时间,但我所做的只是将帖子和主题的等待时间缩短到 1 秒,并在每次创建调用后添加了一秒的休眠,这就解决了问题。上传大约 500 条消息花了大约 4 个小时。

这绝对是可行的方法。这将为我们提供足够的内容来消化和审核一段时间。

顺便说一句,这目前都在一个私有的 Discourse 中,所以在开放之前我们会让它看起来更漂亮。

再次感谢您的所有帮助!期待那个新插件!

1 个赞

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