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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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?

Premièrement, ceci a été déterré par le système, je ne l’ai pas déterré pour fournir une réponse.
Deuxièmement, j’ai vérifié si l’OP était actif sur ce site et l’OP n’a pas été vu depuis le 14 février 2019, donc ne vous attendez pas à ce que l’OP lise une réponse ou sélectionne une solution pour cela.


Ceci pourrait potentiellement être résolu avec le Discourse AI - AI Bot qui est encore en cours de développement. En tant que personne ayant un accès anticipé, j’essaie d’utiliser très peu de choses du premier sujet réel ici avec lui pour voir ce qu’il fait et bien que l’AI Bot puisse donner une réponse intelligente et lisible par l’homme, beaucoup de réponses ne sont pas ce que j’accepterais comme réponse. Cependant, ayant vu une telle technologie être développée ailleurs, la technologie de l’IA a le potentiel d’atteindre l’objectif noté ici.

1 « J'aime »

Il existe le script d’automatisation « Répondeur automatique » qui peut publier une réponse en fonction des mots/phrases inclus dans une publication. Je ne suis pas sûr, mais je me demande si cela pourrait être inversé et développé un peu ? :thinking:

Je vais faire glisser ceci vers Feature, mais c’est un sujet assez ancien, il peut donc y avoir d’autres demandes de fonctionnalités similaires à organiser.

1 « J'aime »

Si vous suggérez que le Auto Responder pourrait être amélioré avec l’IA, alors je suis entièrement d’accord. Vous devriez ajouter cela comme une demande de fonctionnalité d’IA, le pire qui puisse arriver est que le message reste là sans rien faire. Le mieux est qu’il soit implémenté.

1 « J'aime »

C’est techniquement facile pour quelqu’un ayant une certaine expérience en programmation Ruby. Écrivez simplement un plugin, en répondant à l’événement :post_created, écrivez du code comme ceci :

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 « J'aime »