Module: Legion::Extensions::Agentic::Language::FrameSemantics::Runners::FrameSemantics
- Included in:
- Helpers::Client
- Defined in:
- lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb
Overview
rubocop:disable Legion/Extension/RunnerIncludeHelpers
Instance Method Summary collapse
- #activate_semantic_frame(frame_id:) ⇒ Object
- #active_frames_report ⇒ Object
- #add_frame_relation(frame_id:, relation:, target_frame_id:) ⇒ Object
- #complete_frames_report ⇒ Object
- #create_semantic_frame(name:, domain:) ⇒ Object
- #define_frame_slot(frame_id:, name:, slot_type: :core, required: true) ⇒ Object
- #fill_frame_slot(frame_id:, slot_name:, filler:) ⇒ Object
- #frame_semantics_stats ⇒ Object
- #instantiate_semantic_frame(frame_id:, context:, confidence: 0.7) ⇒ Object
- #related_frames_report(frame_id:) ⇒ Object
- #update_frame_semantics ⇒ Object
Instance Method Details
#activate_semantic_frame(frame_id:) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 58 def activate_semantic_frame(frame_id:, **) result = engine.activate_frame(frame_id: frame_id) if result log.debug("[frame_semantics] activated frame #{frame_id[0..7]}") { activated: true, frame_id: frame_id } else { activated: false, reason: :frame_not_found } end end |
#active_frames_report ⇒ Object
68 69 70 71 72 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 68 def active_frames_report(**) frames = engine.active_frames log.debug("[frame_semantics] active_frames count=#{frames.size}") { frames: frames.map(&:to_h), count: frames.size } end |
#add_frame_relation(frame_id:, relation:, target_frame_id:) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 47 def add_frame_relation(frame_id:, relation:, target_frame_id:, **) result = engine.add_frame_relation(frame_id: frame_id, relation: relation, target_frame_id: target_frame_id) if result log.debug("[frame_semantics] added relation #{relation} #{frame_id[0..7]}->#{target_frame_id[0..7]}") { added: true, frame_id: frame_id, relation: relation, target_frame_id: target_frame_id } else { added: false, reason: :invalid_frame_or_relation } end end |
#complete_frames_report ⇒ Object
80 81 82 83 84 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 80 def complete_frames_report(**) frames = engine.complete_frames log.debug("[frame_semantics] complete_frames count=#{frames.size}") { frames: frames.map(&:to_h), count: frames.size } end |
#create_semantic_frame(name:, domain:) ⇒ Object
10 11 12 13 14 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 10 def create_semantic_frame(name:, domain:, **) frame = engine.create_frame(name: name, domain: domain) log.debug("[frame_semantics] created frame name=#{name} domain=#{domain} id=#{frame.id[0..7]}") { frame_id: frame.id, name: frame.name, domain: frame.domain, created: true } end |
#define_frame_slot(frame_id:, name:, slot_type: :core, required: true) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 16 def define_frame_slot(frame_id:, name:, slot_type: :core, required: true, **) frame = engine.define_slot(frame_id: frame_id, name: name, slot_type: slot_type, required: required) if frame log.debug("[frame_semantics] defined slot #{name} on frame #{frame_id[0..7]}") { defined: true, frame_id: frame_id, slot_name: name, slot_type: slot_type } else { defined: false, reason: :frame_not_found } end end |
#fill_frame_slot(frame_id:, slot_name:, filler:) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 26 def fill_frame_slot(frame_id:, slot_name:, filler:, **) result = engine.fill_slot(frame_id: frame_id, slot_name: slot_name, filler: filler) if result log.debug("[frame_semantics] filled slot #{slot_name} on frame #{frame_id[0..7]}") { filled: true, frame_id: frame_id, slot_name: slot_name, filler: filler } else { filled: false, reason: :slot_or_frame_not_found } end end |
#frame_semantics_stats ⇒ Object
93 94 95 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 93 def frame_semantics_stats(**) engine.to_h end |
#instantiate_semantic_frame(frame_id:, context:, confidence: 0.7) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 36 def instantiate_semantic_frame(frame_id:, context:, confidence: 0.7, **) instance = engine.instantiate_frame(frame_id: frame_id, context: context, confidence: confidence) if instance log.debug("[frame_semantics] instantiated frame #{frame_id[0..7]} instance=#{instance.id[0..7]}") { instantiated: true, instance_id: instance.id, frame_id: frame_id, filled_count: instance.filled_count } else { instantiated: false, reason: :frame_not_found } end end |
#related_frames_report(frame_id:) ⇒ Object
74 75 76 77 78 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 74 def (frame_id:, **) frames = engine.(frame_id: frame_id) log.debug("[frame_semantics] related_frames frame=#{frame_id[0..7]} count=#{frames.size}") { frames: frames.map(&:to_h), count: frames.size } end |
#update_frame_semantics ⇒ Object
86 87 88 89 90 91 |
# File 'lib/legion/extensions/agentic/language/frame_semantics/runners/frame_semantics.rb', line 86 def update_frame_semantics(**) engine.decay_all engine.prune_inactive log.debug('[frame_semantics] decay_all + prune_inactive complete') { updated: true, stats: engine.to_h } end |