Class: Rails::Nl2sql::Processor
- Inherits:
-
Object
- Object
- Rails::Nl2sql::Processor
- Defined in:
- lib/rails/nl2sql.rb
Class Method Summary collapse
- .execute(natural_language_query, options = {}) ⇒ Object
- .generate_query_only(natural_language_query, options = {}) ⇒ Object
- .get_database_type ⇒ Object
- .get_schema(options = {}) ⇒ Object
- .get_tables(options = {}) ⇒ Object
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, = {}) generated_query = self.generate_query_only(natural_language_query, ) 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, = {}) db_server = SchemaBuilder.get_database_type schema = SchemaBuilder.build_schema() tables = [: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_type ⇒ Object
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( = {}) SchemaBuilder.build_schema() end |
.get_tables(options = {}) ⇒ Object
85 86 87 |
# File 'lib/rails/nl2sql.rb', line 85 def self.get_tables( = {}) SchemaBuilder.get_filtered_tables() end |