展示你的工作流

接着我在原 workflows 主题中发的帖子继续说。我已经弄明白怎么实现我想要的功能了。当然,这目前还只是个测试,以下是它的具体运作方式:

这是一个重新激活系统,利用 AI 在论坛活跃度较低的时段,希望能引发讨论并提升用户参与度。

阶段 A:定位与摘要

查找那些发布超过 30 天,且符合以下部分条件的帖子:

- 曾经很热门,但很久没有新帖子的主题。

  • 浏览量很高,但很久没有回复的主题。
  • 在过去一年里有过一些活动,但随后就沉寂的主题。

一旦找到符合条件的主题,它便会启动 Discourse 的“AI 摘要”代理。让 AI 代理撰写一份摘要。它是通过向摘要 API 端点发送 HTTP POST 请求来完成的。摘要完成后,它会将该工作流的存在记录保存到数据表中。

(这每小时运行一次,但频率可能会更高)。

阶段 B:评估摘要以进行后续跟进

另一个定时工作流按照自己的计划独立运行。它检查数据表中那些已生成摘要但尚未评估的行。它从数据表中取出一个主题,然后获取该主题下最新的 5 到 10 条帖子。

接着,它会进入一个负责分诊(triage)的 AI 代理。它会做出判断:这个主题是否应该被重新激活?如果是,该怎么做? 它决定是提升(bump)该主题,还是发布一个能重新激活讨论的帖子:比如提问、追问,或者什么都不做。

它会将决定更新到数据表中。

(这应该与阶段 A 的运行频率大致相同,你也可以从阶段 A 触发它,或者将两者合并。)

阶段 C:与主题重新互动

另一个定时工作流按照自己的计划运行,频率较低。它的第一步是检查论坛最近的活跃程度。它通过查看过去 3 小时内平均每小时发布的帖子数量来实现这一点。然后,它会计算过去 2 个月中,同一星期几、同一时间段内,论坛每 3 小时平均繁忙程度的平均值。如果网站当前的繁忙程度低于通常在同一星期几、同一时间段的水平,它就会判定“现在可以进行重新激活”。

然后,它会获取最多 10 个可用的重新激活机会。它将这些发送给 AI 代理,并要求从列表中挑选出最强的重新激活候选者。AI 做出决定并返回一个 topic_id。阶段 B 中的分类器在三个选项之间做出了决定:提升主题、发布后续帖子、什么都不做。

除非指定了后续跟进,否则工作流将执行提升(bump)操作。如果指定了后续跟进,它将获取该 topic_id 并抓取该主题的最新帖子。然后,它会将其交给一个 AI 代理,由该代理决定如何回应才能最好地重新激活该主题。它设有护栏(guardrails),以确保回复非常基础,仍然紧扣主题,并且不提供建议或评论。它主要只是询问更新情况,询问原帖作者对之前发生的事情是否有新进展等等。它发布回复后,会将完成日期更新到数据表中。

希望我没有重复 Discourse 中某个我不知道的隐藏功能!虽然花了一些时间反复尝试,但我终于搞定了。

3 个赞