Discourse AI - AI triage

Just following up here to note that AI triage no longer needs the following thanks to @Roman_Rizzi work on improving the prompts

3 Likes

hey all! This is more of a kudos comment to becauseI wanted to first thank you all for supplying the information provided here in addition to the posts that I had perused regarding this feature.

It provided some much-needed context into how this work has been implemented. I am currently studying the measurement and identification of online Toxicity models in enterprise, social media, and especially smaller or growing communities and I have a lot of questions but nothing huge to report as of yet.

2 Likes

Quick follow-up - does it mean that the existing prompts that were already running should be updated?

2 Likes

Yes, existing prompts should be updated now to reflect the changes

2 Likes

AI Triage is fantastic! Iā€™m looking forward how far we can go with it from classical ā€˜bag of wordsā€ algorithm. Post classifier is a great feature. I wonder if it there are plans to allow to use it with post approval queue. ( approve post count, approve unless allowed groups).

So basically use a classifier not only to add to queue for review but to automatically approve or reject from the queue. (I donā€™t mean handling flags only approvals)

I see AI post triaging and post review queue as complementary.

4 Likes

So to add tags or to change categories, there are currently the following options (correct me if I am wrong)

  • the user uses the AI helper to suggest tags and category from within the composer based on nearest neighbor embedding vectors, comparing it with previous posts.
  • the administrator sets up a separate AI post classifier that runs the topic through an LLM for every possible tag and every possible category, which adds the tag or changes the category when the LLM output says so. It will not add arbitrary tags, each classifier will only add a specific tag yes or no. This is not only cumbersome to set up and maintain, it is also expensive because you need to run them all.

What I would like to have is a classifier that takes an instruction like

You are a tagging assistant for a forum. The forum is about X, Y and Z.

Your task is to tag forum posts with one or more of the following tags:

  • one tag that specifies whether the post is selling for something or looking for something. Tags: for_sale, wanted, advice
  • one tag that specifies the kind of item the post is about: cars, services, tickets, kids_stuff, home_and_garden, other.

If you come across a message that is NSFW, tag it NSFW.

You can also set actions in order to moderate a post.
If you come across a message that is on topic for this forum but might be seen as offensive, set the action to ā€˜flagā€™.
If you come across a message that is off topic, set the action to ā€˜hideā€™

This can then be accompanied by the great new OpenAI structured outputs option to return a json structure that specifies the tags to be added or the action to be taken, which will then be processed by the classifier.

Is anything like this on the roadmap and/or is a PR welcome? Or would this be plugin territory?

5 Likes

I think the safest way to go about this would be to define a brand new automation for this. It is structurally very different to the current one.

I think we would be open to a well tested PR to Discourse AI.

Keep in mind Completion Prompt in AI does not support structured outputs at the moment, this concept would need to be added and implemented for OpenAI models, we have a ton of models, many do not have native support, I would be open for a PR just to provide OpenAI support for starters as long as it is not confusing to end users and we allow them to select a model not supporting the feature.

It is a reasonably big change though, but if you are feeling braveā€¦ go for it.

Would recommend going about it in multiple PRs starting from giving structured output support to completion prompts (tested)

7 Likes

In the process of creating an ā€˜Auto-tag postsā€™ automation, however I am not able to select a tag that has been added to a tag group. Please let me know if there are any workarounds for this. I prefer to keep the existing tag group. Thanks!