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
|