18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/llmemory/cli/commands/mine_skills.rb', line 18
def execute(argv, _opts)
user_id = argv.first
unless user_id
$stderr.puts "Usage: llmemory mine-skills USER_ID [--window N] [--outcomes LIST] [--register] [--store TYPE]"
exit 1
end
episodic = Llmemory::LongTerm::Episodic::Memory.new(user_id: user_id, storage: episodic_storage(@store_type))
procedural = Llmemory::LongTerm::Procedural::Memory.new(user_id: user_id, storage: procedural_storage(@store_type))
result = Llmemory::SkillMining::Miner.new(episodic: episodic, procedural: procedural).mine(
window: @window || Llmemory::SkillMining::Miner::DEFAULT_WINDOW,
outcomes: @outcomes,
auto_register: @register
)
if result.empty?
puts "No skills could be mined for user #{user_id}."
return
end
if @register
puts "Registered #{result.size} mined skill(s): #{result.join(', ')}"
else
puts "#{result.size} skill proposal(s) for user #{user_id} (not registered):"
result.each do |p|
puts " - #{p[:name]} (#{p[:kind]}, confidence: #{p[:confidence]}): #{p[:description] || p[:body]}"
end
end
end
|