Module: Legion::Extensions::Agentic::Attention::LatentInhibition::Runners::LatentInhibition

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb

Instance Method Summary collapse

Instance Method Details

#associate(label:, outcome:, engine: nil) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 24

def associate(label:, outcome:, engine: nil, **)
  eng = engine || default_engine
  result = eng.attempt_association(label: label, outcome: outcome)

  log.debug("[latent_inhibition] associate: label=#{label} outcome=#{outcome} " \
            "effectiveness=#{result[:effectiveness].round(4)} blocked=#{result[:blocked]}")
  result
end

#disinhibit(label:, intensity: 1.0, engine: nil) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 33

def disinhibit(label:, intensity: 1.0, engine: nil, **)
  eng = engine || default_engine
  result = eng.disinhibit(label: label, intensity: intensity)

  log.debug("[latent_inhibition] disinhibit: label=#{label} " \
            "prior=#{result[:prior_score]&.round(4)} new=#{result[:new_score]&.round(4)}")
  result
end

#expose(label:, engine: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 13

def expose(label:, engine: nil, **)
  eng = engine || default_engine
  result = eng.expose_stimulus(label: label)

  log.debug("[latent_inhibition] expose: label=#{label} " \
            "exposure_count=#{result[:exposure_count]} " \
            "inhibition=#{result[:inhibition_score].round(4)} " \
            "label=#{result[:inhibition_label]} novel=#{result[:novel]}")
  result
end

#inhibition_report(engine: nil) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 58

def inhibition_report(engine: nil, **)
  eng = engine || default_engine
  report = eng.inhibition_report

  log.debug("[latent_inhibition] report: total=#{report[:total_stimuli]} " \
            "novel=#{report[:novel_count]} mean=#{report[:mean_inhibition]&.round(4)}")
  report
end

#most_inhibited(limit: 10, engine: nil) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 50

def most_inhibited(limit: 10, engine: nil, **)
  eng = engine || default_engine
  stimuli = eng.most_inhibited(limit: limit)

  log.debug("[latent_inhibition] most_inhibited: limit=#{limit} returned=#{stimuli.size}")
  { stimuli: stimuli, count: stimuli.size }
end

#novel_stimuli(engine: nil) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/legion/extensions/agentic/attention/latent_inhibition/runners/latent_inhibition.rb', line 42

def novel_stimuli(engine: nil, **)
  eng = engine || default_engine
  stimuli = eng.novel_stimuli

  log.debug("[latent_inhibition] novel_stimuli: count=#{stimuli.size}")
  { stimuli: stimuli, count: stimuli.size }
end