mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-04 13:32:13 +00:00
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.
This commit is contained in:
parent
262bd8b145
commit
a94daa14e2
@ -10,7 +10,7 @@ module DiscourseAi
|
|||||||
|
|
||||||
def related_topic_ids_for(topic)
|
def related_topic_ids_for(topic)
|
||||||
return [] if SiteSetting.ai_embeddings_semantic_related_topics < 1
|
return [] if SiteSetting.ai_embeddings_semantic_related_topics < 1
|
||||||
return [] if SiteSetting.ai_embeddings_selected_model.blank? # fail-safe in case something end up in a broken state.
|
return [] if !DiscourseAi::Embeddings.enabled? # fail-safe in case something end up in a broken state.
|
||||||
|
|
||||||
cache_for = results_ttl(topic)
|
cache_for = results_ttl(topic)
|
||||||
|
|
||||||
|
@ -22,6 +22,20 @@ describe DiscourseAi::Embeddings::SemanticRelated do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "#related_topic_ids_for" do
|
describe "#related_topic_ids_for" do
|
||||||
|
it "returns empty array if AI embeddings are disabled" do
|
||||||
|
SiteSetting.ai_embeddings_enabled = false
|
||||||
|
SiteSetting.ai_embeddings_selected_model = 1234
|
||||||
|
|
||||||
|
expect(semantic_related.related_topic_ids_for(normal_topic_1)).to eq([])
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns empty array if AI embeddings model is invalid" do
|
||||||
|
SiteSetting.ai_embeddings_enabled = true
|
||||||
|
SiteSetting.ai_embeddings_selected_model = 1234
|
||||||
|
|
||||||
|
expect(semantic_related.related_topic_ids_for(normal_topic_1)).to eq([])
|
||||||
|
end
|
||||||
|
|
||||||
context "when embeddings do not exist" do
|
context "when embeddings do not exist" do
|
||||||
let(:topic) do
|
let(:topic) do
|
||||||
post = Fabricate(:post)
|
post = Fabricate(:post)
|
||||||
|
@ -11,7 +11,10 @@ describe DiscourseAi::Embeddings::EntryPoint do
|
|||||||
|
|
||||||
fab!(:vector_def) { Fabricate(:cloudflare_embedding_def) }
|
fab!(:vector_def) { Fabricate(:cloudflare_embedding_def) }
|
||||||
|
|
||||||
before { SiteSetting.ai_embeddings_selected_model = vector_def.id }
|
before do
|
||||||
|
SiteSetting.ai_embeddings_enabled = true
|
||||||
|
SiteSetting.ai_embeddings_selected_model = vector_def.id
|
||||||
|
end
|
||||||
|
|
||||||
# The Distance gap to target increases for each element of topics.
|
# The Distance gap to target increases for each element of topics.
|
||||||
def seed_embeddings(topics)
|
def seed_embeddings(topics)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user