From 27de71fc4f454e4f70002b5a9316d1a3ae7b0049 Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Mon, 2 Jun 2025 17:56:47 -0300 Subject: [PATCH] FIX: Proper default LLM detection for inferred concepts (#1392) --- lib/inferred_concepts/finder.rb | 4 ++-- spec/lib/inferred_concepts/finder_spec.rb | 28 ++++++++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/inferred_concepts/finder.rb b/lib/inferred_concepts/finder.rb index 37880802..9e1466f5 100644 --- a/lib/inferred_concepts/finder.rb +++ b/lib/inferred_concepts/finder.rb @@ -15,7 +15,7 @@ module DiscourseAi .find { |p| p.id == SiteSetting.inferred_concepts_generate_persona.to_i } .new - llm = LlmModel.find(persona.default_llm_id) + llm = LlmModel.find(persona.class.default_llm_id) context = DiscourseAi::Personas::BotContext.new( messages: [{ type: :user, content: content }], @@ -154,7 +154,7 @@ module DiscourseAi .find { |p| p.id == SiteSetting.inferred_concepts_deduplicate_persona.to_i } .new - llm = LlmModel.find(persona.default_llm_id) + llm = LlmModel.find(persona.class.default_llm_id) # Create the input for the deduplicator input = { type: :user, content: concept_names.join(", ") } diff --git a/spec/lib/inferred_concepts/finder_spec.rb b/spec/lib/inferred_concepts/finder_spec.rb index 231b3ed9..bd27833c 100644 --- a/spec/lib/inferred_concepts/finder_spec.rb +++ b/spec/lib/inferred_concepts/finder_spec.rb @@ -31,9 +31,12 @@ RSpec.describe DiscourseAi::InferredConcepts::Finder do bot_double = instance_double("DiscourseAi::Personas::Bot") allow(AiPersona).to receive(:all_personas).and_return([persona_class_double]) - allow(persona_class_double).to receive(:id).and_return(SiteSetting.inferred_concepts_generate_persona.to_i) + allow(persona_class_double).to receive(:id).and_return( + SiteSetting.inferred_concepts_generate_persona.to_i, + ) allow(persona_class_double).to receive(:new).and_return(persona_instance_double) - allow(persona_instance_double).to receive(:default_llm_id).and_return(llm_model.id) + allow(persona_instance_double).to receive(:class).and_return(persona_class_double) + allow(persona_class_double).to receive(:default_llm_id).and_return(llm_model.id) allow(LlmModel).to receive(:find).with(llm_model.id).and_return(llm_model) allow(DiscourseAi::Personas::Bot).to receive(:as).and_return(bot_double) allow(bot_double).to receive(:reply).and_yield( @@ -57,9 +60,12 @@ RSpec.describe DiscourseAi::InferredConcepts::Finder do bot_double = instance_double("DiscourseAi::Personas::Bot") allow(AiPersona).to receive(:all_personas).and_return([persona_class_double]) - allow(persona_class_double).to receive(:id).and_return(SiteSetting.inferred_concepts_generate_persona.to_i) + allow(persona_class_double).to receive(:id).and_return( + SiteSetting.inferred_concepts_generate_persona.to_i, + ) allow(persona_class_double).to receive(:new).and_return(persona_instance_double) - allow(persona_instance_double).to receive(:default_llm_id).and_return(llm_model.id) + allow(persona_instance_double).to receive(:class).and_return(persona_class_double) + allow(persona_class_double).to receive(:default_llm_id).and_return(llm_model.id) allow(LlmModel).to receive(:find).with(llm_model.id).and_return(llm_model) allow(DiscourseAi::Personas::Bot).to receive(:as).and_return(bot_double) allow(bot_double).to receive(:reply).and_yield(nil, nil, :text) @@ -229,9 +235,12 @@ RSpec.describe DiscourseAi::InferredConcepts::Finder do bot_double = instance_double("DiscourseAi::Personas::Bot") allow(AiPersona).to receive(:all_personas).and_return([persona_class_double]) - allow(persona_class_double).to receive(:id).and_return(SiteSetting.inferred_concepts_deduplicate_persona.to_i) + allow(persona_class_double).to receive(:id).and_return( + SiteSetting.inferred_concepts_deduplicate_persona.to_i, + ) allow(persona_class_double).to receive(:new).and_return(persona_instance_double) - allow(persona_instance_double).to receive(:default_llm_id).and_return(llm_model.id) + allow(persona_instance_double).to receive(:class).and_return(persona_class_double) + allow(persona_class_double).to receive(:default_llm_id).and_return(llm_model.id) allow(LlmModel).to receive(:find).with(llm_model.id).and_return(llm_model) allow(DiscourseAi::Personas::Bot).to receive(:as).and_return(bot_double) allow(bot_double).to receive(:reply).and_yield( @@ -255,9 +264,12 @@ RSpec.describe DiscourseAi::InferredConcepts::Finder do bot_double = instance_double("DiscourseAi::Personas::Bot") allow(AiPersona).to receive(:all_personas).and_return([persona_class_double]) - allow(persona_class_double).to receive(:id).and_return(SiteSetting.inferred_concepts_deduplicate_persona.to_i) + allow(persona_class_double).to receive(:id).and_return( + SiteSetting.inferred_concepts_deduplicate_persona.to_i, + ) allow(persona_class_double).to receive(:new).and_return(persona_instance_double) - allow(persona_instance_double).to receive(:default_llm_id).and_return(llm_model.id) + allow(persona_instance_double).to receive(:class).and_return(persona_class_double) + allow(persona_class_double).to receive(:default_llm_id).and_return(llm_model.id) allow(LlmModel).to receive(:find).with(llm_model.id).and_return(llm_model) allow(DiscourseAi::Personas::Bot).to receive(:as).and_return(bot_double) allow(bot_double).to receive(:reply).and_yield(nil, nil, :text)