13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/legion/extensions/synapse/runners/retrieve.rb', line 13
def retrieve_and_seed(knowledge_entries:, **)
Data::Model.define_synapse_model
seeded = []
knowledge_entries.each do |entry|
next unless entry[:confidence] && entry[:confidence] >= SEED_CONFIDENCE_THRESHOLD
next unless entry[:content_type] == 'synapse_pattern'
pattern = parse_pattern(entry)
next unless pattern
next if synapse_exists?(pattern[:source_function_id], pattern[:target_function_id])
synapse = Data::Model::Synapse.create(
source_function_id: pattern[:source_function_id],
target_function_id: pattern[:target_function_id],
attention: pattern[:attention],
transform: pattern[:transform],
routing_strategy: pattern[:routing_strategy] || 'direct',
origin: 'seeded',
confidence: Helpers::Confidence.starting_score(:seeded),
status: 'active'
)
seeded << { id: synapse.id, source: pattern[:source_function_id], target: pattern[:target_function_id] }
end
{ success: true, seeded: seeded, count: seeded.size }
end
|