Class: Ragdoll::GenerateEmbeddingsJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
app/jobs/ragdoll/generate_embeddings_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(document_id, chunk_size: nil, chunk_overlap: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/jobs/ragdoll/generate_embeddings_job.rb', line 9

def perform(document_id, chunk_size: nil, chunk_overlap: nil)
  document = Ragdoll::Document.find(document_id)
  return unless document.content.present?
  return if document.all_embeddings.exists?

  # Process all content records using their own generate_embeddings! methods
  document.contents.each(&:generate_embeddings!)

  # Update document status to processed
  document.update!(status: "processed")
rescue ActiveRecord::RecordNotFound
  # Document was deleted, nothing to do
rescue StandardError => e
  if defined?(Rails)
    Rails.logger.error "Failed to generate embeddings for document #{document_id}: #{e.message}"
  end
  raise e
end