Class: RerankerRuby::RerankJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/reranker_ruby/rerank_job.rb

Overview

ActiveJob for async reranking of large result sets.

Usage:

RerankerRuby::RerankJob.perform_later(
query: "What is Ruby?",
documents: ["doc1", "doc2", ...],
top_k: 5,
callback: "MyCallback"
)

The callback class must implement .on_rerank_complete(query, results):

class MyCallback
def self.on_rerank_complete(query, results)
  # results is an array of hashes: [{ text:, score:, index:, metadata: }, ...]
end
end

Instance Method Summary collapse

Instance Method Details

#perform(query:, documents:, top_k: nil, callback: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/reranker_ruby/rerank_job.rb', line 25

def perform(query:, documents:, top_k: nil, callback: nil)
  top_k ||= RerankerRuby.configuration.default_top_k
  results = RerankerRuby.rerank(query, documents, top_k: top_k)

  if callback
    callback_class = Object.const_get(callback)
    callback_class.on_rerank_complete(query, results.map(&:to_h))
  end

  results
end