Class: Rails::Nl2sql::PromptBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/nl2sql/prompt_builder.rb

Class Method Summary collapse

Class Method Details

.build(input, db_server, retrieved_context) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rails/nl2sql/prompt_builder.rb', line 6

def self.build(input, db_server, retrieved_context)
  template = Rails::Nl2sql.prompt_template

  erb_context = Object.new
  erb_context.instance_variable_set(:@input, input)
  erb_context.instance_variable_set(:@db_server, db_server)
  erb_context.instance_variable_set(:@retrieved_context, retrieved_context)

  erb_context.define_singleton_method(:get_binding) do
    binding
  end

  erb_context.define_singleton_method(:input) { @input }
  erb_context.define_singleton_method(:db_server) { @db_server }
  erb_context.define_singleton_method(:retrieved_context) { @retrieved_context }

  system_prompt = ERB.new(template['system']).result(erb_context.get_binding)
  user_prompt = ERB.new(template['user']).result(erb_context.get_binding)

  "#{system_prompt}\n\n#{user_prompt}"
end