Class: RubyCanUseLLM::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/rubycanusellm/cli.rb

Constant Summary collapse

COMMANDS =
{
  "generate:config" => :generate_config,
  "generate:completion" => :generate_completion,
  "generate:embedding" => :generate_embedding,
  "generate:agent" => :generate_agent,
  "generate:chat" => :generate_chat
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.start(args) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rubycanusellm/cli.rb', line 15

def self.start(args)
  command = args.first

  if COMMANDS.key?(command)
    new.send(COMMANDS[command])
  else
    puts "Usage: rubycanusellm <command>"
    puts ""
    puts "Commands:"
    puts "  generate:config      Generate configuration file"
    puts "  generate:completion  Generate completion service object"
    puts "  generate:embedding   Generate embedding service object"
    puts "  generate:agent       Generate agent service object with tool loop"
    puts "  generate:chat        Generate stateful chat service object with message history"
  end
end

Instance Method Details

#generate_agentObject



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/rubycanusellm/cli.rb', line 67

def generate_agent
  if rails?
    FileUtils.mkdir_p("app/services")
    path = "app/services/agent_service.rb"
  else
    FileUtils.mkdir_p("lib")
    path = "lib/agent_service.rb"
  end

  write_template("agent", path)
end

#generate_chatObject



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/rubycanusellm/cli.rb', line 79

def generate_chat
  if rails?
    FileUtils.mkdir_p("app/services")
    path = "app/services/chat_service.rb"
  else
    FileUtils.mkdir_p("lib")
    path = "lib/chat_service.rb"
  end

  write_template("chat", path)
end

#generate_completionObject



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rubycanusellm/cli.rb', line 43

def generate_completion
  if rails?
    FileUtils.mkdir_p("app/services")
    path = "app/services/completion_service.rb"
  else
    FileUtils.mkdir_p("lib")
    path = "lib/completion_service.rb"
  end

  write_template("completion", path)
end

#generate_configObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/rubycanusellm/cli.rb', line 32

def generate_config
  if rails?
    path = "config/initializers/rubycanusellm.rb"
  else
    FileUtils.mkdir_p("config")
    path = "config/llm.rb"
  end

  write_template("config", path)
end

#generate_embeddingObject



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/rubycanusellm/cli.rb', line 55

def generate_embedding
  if rails?
    FileUtils.mkdir_p("app/services")
    path = "app/services/embedding_service.rb"
  else
    FileUtils.mkdir_p("lib")
    path = "lib/embedding_service.rb"
  end

  write_template("embedding", path)
end