Class: SmartBrain::Fusion::Merger

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_brain/fusion/merger.rb

Constant Summary collapse

RERANK_THRESHOLD =
4
RERANK_MAX =
20

Instance Method Summary collapse

Constructor Details

#initialize(config:, model_provider: nil) ⇒ Merger

Returns a new instance of Merger.



9
10
11
12
# File 'lib/smart_brain/fusion/merger.rb', line 9

def initialize(config:, model_provider: nil)
  @config = config
  @model_provider = model_provider
end

Instance Method Details

#merge(query:, memory_evidence:, resource_evidence:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/smart_brain/fusion/merger.rb', line 14

def merge(query:, memory_evidence:, resource_evidence:)
  combined = (memory_evidence + normalize_resource(resource_evidence))
  deduped = dedupe(combined)
  ranked = deduped.sort_by { |item| -rerank_score(item, query) }
  ranked = llm_rerank(query, ranked) if llm_rerank_enabled? && ranked.size >= RERANK_THRESHOLD
  diversified, dropped = apply_diversity(ranked)
  selected = apply_budget(diversified)

  {
    selected: selected,
    dropped: dropped,
    ignored_fields: []
  }
end