Reply bot for Discourse?

Has anyone built a bot like thing that can reply to posts if specific conditions are met (e.g. "topic in category foo, does not contain string bar)?

I have quite a few “issue” type topics in the developer community I am moderating, and 75% of my replies are just asking for software and environment information. It would be great if I could have a bot version of myself that could check with some simple rules and then create a reply to the topic if they are not met.

1 „Gefällt mir“

Use a post template for the category?

I know it is frustrating, especially when using Discourse as a technical support forum. There are standard questions you need to ask e.g. serial number, model number, product series etc. that 90% of the posters don’t care to provide.

Maybe also consider the “Canned Answer” plugin.

1 „Gefällt mir“

Post template doesn’t work as only ~75% of the posts need that information :confused:
Also having one makes 50% of all posts have parts of the template (not filled out) inside them :frowning:

“Canned Replies” plugin is in use, still have to 1) read the post and 2) do the mental decision then 3) click the cog 4) click the Canned Replies 5) click the search box 6) type the name of the reply I need 7) click the insert icon 8) click the “Reply” button. That gets old really fast unfortunately (which means after at least 30 minutes of doing this every morning…). :man_shrugging: (Also it is all from my account which is gives me notifications even though I only made them offer the necessary information and didn’t really reply)

But thanks for the suggestions - unfortunately I already tried both :sunny:

If you’re comfortable configuring and self-hosting your own bot software, I wrote a hubot adapter for discourse that may handle your use case.

6 „Gefällt mir“

Not yet, but you have to start somewhere :wink:

Awesome, I don’t know anything about Hubot as well (yet), but that looks like what I was looking for.

2 „Gefällt mir“

Maybe something similar to the Akismet plugin, but only verifies each new post based on whether the required content is there instead of sending the content to Akismet?

Zuerst wurde dies vom System hochgeschoben, ich habe dies nicht ausgegraben, um eine Antwort zu geben.
Zweitens habe ich geprüft, ob der OP auf dieser Seite aktiv war, und der OP wurde seit dem 14. Februar 2019 nicht mehr gesehen, also erwarten Sie nicht, dass der OP eine Antwort liest oder eine Lösung dafür auswählt.


Dies könnte potenziell mit dem Discourse AI - AI Bot gelöst werden, der sich noch in der Entwicklung befindet. Da ich frühen Zugang dazu habe, probiere ich hier nur sehr wenige der eigentlichen ersten Themenbeiträge damit aus, um zu sehen, was er tut, und obwohl der KI-Bot eine intelligente, für Menschen lesbare Antwort geben kann, sind viele der Antworten nicht das, was ich als Antwort akzeptieren würde. Da ich solche Technologie jedoch anderswo entwickelt sehe, hat die KI-Technologie das Potenzial, das hier genannte Ziel zu erreichen.

1 „Gefällt mir“

Es gibt das Automatisierungs-Skript „Auto Responder“, das eine Antwort basierend auf den Wörtern/Phrasen posten kann, die in einem Beitrag enthalten sind. Ich bin mir nicht sicher, aber ich frage mich, ob das umgekehrt und ein wenig erweitert werden könnte? :thinking:

Ich schiebe das mal in Feature, aber es ist schon ziemlich alt, daher gibt es vielleicht andere ähnliche Funktionsanfragen, die aufgeräumt werden müssen.

1 „Gefällt mir“

Wenn Sie vorschlagen, dass der Auto Responder mit KI erweitert werden könnte, stimme ich voll und ganz zu. Sie sollten dies als Funktionsanforderung für KI hinzufügen. Das Schlimmste, was passieren kann, ist, dass der Beitrag einfach dort liegt und nichts tut. Das Beste ist, dass er implementiert wird.

1 „Gefällt mir“

Das ist technisch einfach für jemanden mit Ruby-Programmiererfahrung. Schreibe einfach ein Plugin, das auf das :post_created-Ereignis reagiert, und schreibe etwas Code wie diesen:

DiscourseEvent.on(:post_created) do |*params|
    post, opt, user = params

    if post.raw.include "foo"
        PostCreator.create!(
             User.find_by(id: bot_id),
             topic_id: post.topic_id,
             raw: "bar",
        )
    end
end
4 „Gefällt mir“