discourse-ai/spec/plugin_spec.rb
Roman Rizzi a838116cd5
FEATURE: Use dedicated reviewables for AI flags. (#4)
This change adds two new reviewable types: ReviewableAIPost and ReviewableAIChatMessage. They have the same actions as their existing counterparts: ReviewableFlaggedPost and ReviewableChatMessage.

We'll display the model used and their accuracy when showing these flags in the review queue and adjust the latter after staff performs an action, tracking a global accuracy per existing model in a separate table.


* FEATURE: Dedicated reviewables for AI flags

* Store and adjust model accuracy

* Display accuracy in reviewable templates
2023-03-07 15:39:28 -03:00

28 lines
917 B
Ruby

# frozen_string_literal: true
require "rails_helper"
require_relative "support/toxicity_inference_stubs"
describe Plugin::Instance do
before { SiteSetting.discourse_ai_enabled = true }
describe "on reviewable_transitioned_to event" do
fab!(:post) { Fabricate(:post) }
fab!(:admin) { Fabricate(:admin) }
it "adjusts model accuracy" do
ToxicityInferenceStubs.stub_post_classification(post, toxic: true)
SiteSetting.ai_toxicity_flag_automatically = true
classification = DiscourseAI::Toxicity::ToxicityClassification.new
classificator = DiscourseAI::PostClassificator.new(classification)
classificator.classify!(post)
reviewable = ReviewableAIPost.find_by(target: post)
reviewable.perform admin, :agree_and_keep
accuracy = ModelAccuracy.find_by(classification_type: classification.type)
expect(accuracy.flags_agreed).to eq(1)
end
end
end