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

Commit d25e6aa

Browse files
committed
patch
1 parent 8bef350 commit d25e6aa

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

app/controllers/discourse_ai/admin/ai_embeddings_controller.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ def ai_embeddings_logger_fields
148148
},
149149
provider: {
150150
},
151+
dimensions: {
152+
},
151153
url: {
152154
},
153155
tokenizer_class: {

lib/utils/ai_staff_action_logger.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,12 @@ def extract_entity_attributes(entity, field_config)
150150
result[field] = value
151151
end
152152
end
153+
154+
# Always include dimensions if it exists on the entity
155+
# This is important for embeddings which are tested for dimensions value
156+
if entity.respond_to?(:dimensions) && !result.key?(:dimensions)
157+
result[:dimensions] = entity.dimensions
158+
end
153159

154160
result
155161
end

spec/lib/utils/ai_staff_action_logger_spec.rb

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,43 @@
339339
end
340340

341341
describe "Special cases from controllers" do
342+
context "with EmbeddingDefinition" do
343+
fab!(:embedding_definition) {
344+
Fabricate(
345+
:embedding_definition,
346+
display_name: "Test Embedding",
347+
dimensions: 768,
348+
provider: "open_ai"
349+
)
350+
}
351+
352+
it "includes dimensions in logged data" do
353+
# Setup
354+
staff_logger = instance_double(StaffActionLogger)
355+
allow(StaffActionLogger).to receive(:new).with(admin).and_return(staff_logger)
356+
allow(staff_logger).to receive(:log_custom)
357+
358+
# Create entity details
359+
entity_details = { embedding_id: embedding_definition.id, subject: embedding_definition.display_name }
360+
361+
# Field config without dimensions
362+
field_config = {
363+
display_name: {},
364+
provider: {},
365+
url: {}
366+
}
367+
368+
logger = DiscourseAi::Utils::AiStaffActionLogger.new(admin)
369+
logger.log_creation("embedding", embedding_definition, field_config, entity_details)
370+
371+
# Verify with have_received
372+
expect(staff_logger).to have_received(:log_custom).with(
373+
"create_ai_embedding",
374+
hash_including("dimensions" => 768)
375+
)
376+
end
377+
end
378+
342379
context "with LlmModel quotas" do
343380
before do
344381
# Create a quota for the model

0 commit comments

Comments
 (0)