Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit a94daa1

Browse files
authored
FIX: Return no topics when embeddings is disabled (#1473)
When an invalid model is set for embeddings, topics do not load even if embeddings is disabled. Error: ## RuntimeError in TopicsController#show Invalid embeddings selected model This commit checks for valid settings before attempting to load related topics.
1 parent 262bd8b commit a94daa1

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

lib/embeddings/semantic_related.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def self.clear_cache_for(topic)
1010

1111
def related_topic_ids_for(topic)
1212
return [] if SiteSetting.ai_embeddings_semantic_related_topics < 1
13-
return [] if SiteSetting.ai_embeddings_selected_model.blank? # fail-safe in case something end up in a broken state.
13+
return [] if !DiscourseAi::Embeddings.enabled? # fail-safe in case something end up in a broken state.
1414

1515
cache_for = results_ttl(topic)
1616

spec/lib/modules/embeddings/semantic_related_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@
2222
end
2323

2424
describe "#related_topic_ids_for" do
25+
it "returns empty array if AI embeddings are disabled" do
26+
SiteSetting.ai_embeddings_enabled = false
27+
SiteSetting.ai_embeddings_selected_model = 1234
28+
29+
expect(semantic_related.related_topic_ids_for(normal_topic_1)).to eq([])
30+
end
31+
32+
it "returns empty array if AI embeddings model is invalid" do
33+
SiteSetting.ai_embeddings_enabled = true
34+
SiteSetting.ai_embeddings_selected_model = 1234
35+
36+
expect(semantic_related.related_topic_ids_for(normal_topic_1)).to eq([])
37+
end
38+
2539
context "when embeddings do not exist" do
2640
let(:topic) do
2741
post = Fabricate(:post)

spec/lib/modules/embeddings/semantic_topic_query_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111

1212
fab!(:vector_def) { Fabricate(:cloudflare_embedding_def) }
1313

14-
before { SiteSetting.ai_embeddings_selected_model = vector_def.id }
14+
before do
15+
SiteSetting.ai_embeddings_enabled = true
16+
SiteSetting.ai_embeddings_selected_model = vector_def.id
17+
end
1518

1619
# The Distance gap to target increases for each element of topics.
1720
def seed_embeddings(topics)

0 commit comments

Comments
 (0)