Class: SmartPrompt::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_prompt/engine.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_file) ⇒ Engine

Returns a new instance of Engine.



4
5
6
7
8
9
10
# File 'lib/smart_prompt/engine.rb', line 4

def initialize(config_file)
  @config_file = config_file
  @adapters={}
  @llms={}
  @templates={}
  load_config(config_file)
end

Instance Attribute Details

#adaptersObject (readonly)

Returns the value of attribute adapters.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def adapters
  @adapters
end

#configObject (readonly)

Returns the value of attribute config.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def config
  @config
end

#config_fileObject (readonly)

Returns the value of attribute config_file.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def config_file
  @config_file
end

#current_adapterObject (readonly)

Returns the value of attribute current_adapter.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def current_adapter
  @current_adapter
end

#llmsObject (readonly)

Returns the value of attribute llms.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def llms
  @llms
end

#templatesObject (readonly)

Returns the value of attribute templates.



3
4
5
# File 'lib/smart_prompt/engine.rb', line 3

def templates
  @templates
end

Instance Method Details

#call_worker(worker_name, params = {}) ⇒ Object



37
38
39
40
# File 'lib/smart_prompt/engine.rb', line 37

def call_worker(worker_name, params = {})
  worker = get_worker(worker_name)
  worker.execute(params)
end

#load_config(config_file) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/smart_prompt/engine.rb', line 12

def load_config(config_file)
  @config_file = config_file
  @config = YAML.load_file(config_file)
  @config['adapters'].each do |adapter_name, adapter_class|
    adapter_class = SmartPrompt.const_get(adapter_class)
    @adapters[adapter_name] = adapter_class
  end
  @config['llms'].each do |llm_name,llm_config|
    adapter_class = @adapters[llm_config['adapter']]
    @llms[llm_name]=adapter_class.new(llm_config)
  end
  @current_llm = @config['default_llm'] if @config['default_llm']
  Dir.glob(File.join(@config['template_path'], '*.erb')).each do |file|
    template_name = file.gsub(@config['template_path']+"/","").gsub("\.erb","")
    @templates[template_name] = PromptTemplate.new(file)
  end
  load_workers
end

#load_workersObject



31
32
33
34
35
# File 'lib/smart_prompt/engine.rb', line 31

def load_workers
  Dir.glob(File.join(@config['worker_path'], '*.rb')).each do |file|
    require(file)
  end
end