Remove AI summaries and semantic searches

We were not using either. We can restore if we revisit.
This commit is contained in:
Jorge Manrubia
2025-10-29 11:55:32 +01:00
parent 23c889e564
commit aa1ffb3357
44 changed files with 25 additions and 66474 deletions
-29
View File
@@ -1,21 +1,6 @@
module Searchable
extend ActiveSupport::Concern
included do
has_one :search_embedding, as: :record, dependent: :destroy, class_name: "Search::Embedding"
after_create_commit :refresh_search_embedding_later
after_update_commit :refresh_search_embedding_later
after_destroy_commit :remove_search_embedding
scope :search_similar, ->(query) do
query_embedding = Rails.cache.fetch("embed-search:#{query}") { RubyLLM.embed(Ai::Tokenizer.truncate(query)) }
joins(:search_embedding)
.where("embedding MATCH ? AND k = ?", query_embedding.vectors.to_json, 20)
.order(:distance)
end
end
class_methods do
def searchable_by(*fields, using:)
define_method :search_fields do
@@ -55,12 +40,6 @@ module Searchable
update_in_search_index
end
def refresh_search_embedding
embedding = RubyLLM.embed(Ai::Tokenizer.truncate(search_embedding_content))
search_embedding = self.search_embedding || build_search_embedding
search_embedding.update! embedding: embedding.vectors.to_json
end
private
def create_in_search_index
fields_sql = [ "rowid", *search_fields ].join(", ")
@@ -95,12 +74,4 @@ module Searchable
self.class.connection.execute self.class.sanitize_sql(statement)
self.class.connection.raw_connection.changes.nonzero?
end
def refresh_search_embedding_later
Search::RefreshEmbeddingJob.perform_later(self)
end
def remove_search_embedding
search_embedding&.destroy
end
end