在 Discourse 上创建机器人

是否有办法在 Discourse 中创建一个机器人,以类似我构建的许多 Discord 机器人的方式回复我的命令?

基本上,我知道可以安装各种插件,但在我看来,如果我能有一个机器人来监听评论中的文本,而不是尝试安装容易弄乱东西的插件,尤其是当维护者决定不再维护该插件时,维护起来会容易得多。

1 个赞

您将需要一个插件。

请参考我的 Frotz 插件作为示例/起点

像这样的仅限 API 的插件往往会随着时间的推移更加稳定,所以不用担心不稳定。无论如何,所有代码都需要维护。我随着时间的推移对 Frotz-bot 进行了最小的更改。

请查看我的 Discord 机器人插件,了解如何针对新帖子等事件编写代码:

您的需求可能可以通过以下方式满足:

如果您想更好地控制代码的命运,请自行维护一个 fork/repo。

6 个赞

如果你真的想让它完全独立,你可以结合使用 webhook 将事件传递给你的机器人,以及 HTTP 请求 API 让你的机器人对 Discourse 进行更改。

Discourse API 文档

正如 @merefield 所暗示的,可以创建不覆盖核心功能的插件,而是接收事件通知并与核心 API 交互,这样更容易维护,并且不太可能产生不必要的副作用。

采用 webhook/API 路线还需要设置一个堆栈来运行你的机器人,并确保它在 Discourse 可用的同时始终可用,这两者都可以通过加载到 Discourse 中的插件免费获得。

编写插件需要学习 Ruby 并熟悉 Discourse 类,但如果你已经能够用其他东西编写和维护机器人,我相信你可以很快学会所需的东西。

3 个赞

啊,是的,你说得对,西蒙!说得好!

感谢大家的建议——我一定会仔细看看的。 :smiley:

可以在帖子/评论中完成,

可以在群聊中设置机器人吗?
我看到有传入 Webhook 可以将消息传递到群聊,
但似乎没有办法让机器人帐户收听聊天消息,然后相应地执行操作……?

是的,例如:

支持群聊(以及主题、私信等)

(这是一个纯粹的 AI 机器人,没有命令(界面是 100% 自然语言,因此不需要命令),但结构将是相同的)

1 个赞

感谢 @merefield

使用插件,可以为群聊消息添加事件处理程序/监听器。
我有一个 REST 端点服务器,可以处理 webhook 事件,这对于添加机器人到帖子/评论非常有效。
但遗憾的是,群聊消息没有触发事件,这行不通…… :frowning: