Module: Insika::Knowledge::ConsolidatorFactory

Defined in:
lib/insika/knowledge.rb

Overview

Resolves WHICH model consolidates — the same slot the extractor uses (a deployment names one knowledge.model, not two). Reuses ExtractorFactory's ref-parsing and lazy ruby_llm ask builder rather than duplicating them (both live in this same module).

Class Method Summary collapse

Class Method Details

.build(config, utility_model: nil, ask_factory: nil, llm: nil) ⇒ Object



490
491
492
493
494
495
496
497
# File 'lib/insika/knowledge.rb', line 490

def build(config, utility_model: nil, ask_factory: nil, llm: nil)
  ref = Coercion.presence(config && config["model"]) || Coercion.presence(utility_model)
  return nil if ref.nil?

  provider, model = ExtractorFactory.split_ref(ref)
  factory = ask_factory || ->(m, p) { ExtractorFactory.ruby_llm_ask(m, p, llm: llm) }
  Consolidator.new(ask: factory.call(model, provider), model: ref)
end