Class: Legion::Extensions::Agentic::Language::Language::Helpers::Lexicon

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/agentic/language/language/helpers/lexicon.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLexicon

Returns a new instance of Lexicon.



12
13
14
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 12

def initialize
  @domain_summaries = {}
end

Instance Attribute Details

#domain_summariesObject (readonly)

Returns the value of attribute domain_summaries.



10
11
12
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 10

def domain_summaries
  @domain_summaries
end

Instance Method Details

#clear(domain = nil) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 46

def clear(domain = nil)
  if domain
    @domain_summaries.delete(domain.to_sym)
  else
    @domain_summaries.clear
  end
end

#get_summary(domain) ⇒ Object



21
22
23
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 21

def get_summary(domain)
  @domain_summaries[domain.to_sym]
end

#knowledge_mapObject



29
30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 29

def knowledge_map
  @domain_summaries.transform_values do |summary|
    {
      knowledge_level: summary[:knowledge_level],
      trace_count:     summary[:trace_count],
      cached_at:       summary[:cached_at]
    }
  end
end

#known_domainsObject



25
26
27
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 25

def known_domains
  @domain_summaries.keys
end

#sizeObject



54
55
56
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 54

def size
  @domain_summaries.size
end

#stale?(domain, max_age: 300) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 39

def stale?(domain, max_age: 300)
  summary = get_summary(domain)
  return true unless summary

  (Time.now.utc - summary[:cached_at]) > max_age
end

#store_summary(domain, summary) ⇒ Object



16
17
18
19
# File 'lib/legion/extensions/agentic/language/language/helpers/lexicon.rb', line 16

def store_summary(domain, summary)
  domain = domain.to_sym
  @domain_summaries[domain] = summary.merge(cached_at: Time.now.utc)
end