Class: Rails::Nl2sql::Processor

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

Class Method Summary collapse

Class Method Details

.execute(natural_language_query, options = {}) ⇒ Object



51
52
53
54
# File 'lib/rails/nl2sql.rb', line 51

def self.execute(natural_language_query, options = {})
  generated_query = self.generate_query_only(natural_language_query, options)
  ActiveRecord::Base.connection.execute(generated_query)
end

.generate_query_only(natural_language_query, options = {}) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/rails/nl2sql.rb', line 56

def self.generate_query_only(natural_language_query, options = {})
  db_server = SchemaBuilder.get_database_type
  schema = SchemaBuilder.build_schema(options)
  tables = options[:tables]

  if Rails::Nl2sql.debug && defined?(Rails)
    Rails.logger.debug "--- Rails NL2SQL Debug Info ---"
    Rails.logger.debug "Natural Language Query: #{natural_language_query}"
    Rails.logger.debug "Schema: \n#{schema}"
    Rails.logger.debug "Tables: #{tables.inspect}" if tables
  end

  query_generator = QueryGenerator.new(model: Rails::Nl2sql.model)
  generated_query = query_generator.generate_query(
    natural_language_query,
    schema,
    db_server,
    tables
  )

  if Rails::Nl2sql.debug && defined?(Rails)
    Rails.logger.debug "Generated Query: #{generated_query}"
    Rails.logger.debug "--- End Rails NL2SQL Debug Info ---"
  end

  QueryValidator.validate(generated_query)
  generated_query
end

.get_database_typeObject



93
94
95
# File 'lib/rails/nl2sql.rb', line 93

def self.get_database_type
  SchemaBuilder.get_database_type
end

.get_schema(options = {}) ⇒ Object



89
90
91
# File 'lib/rails/nl2sql.rb', line 89

def self.get_schema(options = {})
  SchemaBuilder.build_schema(options)
end

.get_tables(options = {}) ⇒ Object



85
86
87
# File 'lib/rails/nl2sql.rb', line 85

def self.get_tables(options = {})
  SchemaBuilder.get_filtered_tables(options)
end