FIX: Proper default LLM detection for inferred concepts (#1392)

This commit is contained in:
Rafael dos Santos Silva 2025-06-02 17:56:47 -03:00 committed by GitHub
parent 478f31de47
commit 27de71fc4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 10 deletions

View File

@ -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(", ") }

View File

@ -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)