Module: Ruby::Text2sql

Defined in:
lib/ruby/text2sql.rb,
lib/ruby/text2sql/version.rb,
lib/ruby/text2sql/sql_executor.rb,
lib/ruby/text2sql/schema_parser.rb

Defined Under Namespace

Classes: Configuration, Error, SQLExecutor, SchemaParser

Constant Summary collapse

VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.call(user_request) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ruby/text2sql.rb', line 29

def call(user_request)
  # Step 1: Parse the schema automatically
  schema = SchemaParser.new.parse

  # Step 2: Generate SQL query using OpenAI
  sql_query = generate_sql_query(user_request, schema)

  # Step 3: Execute the generated SQL query using SQLExecutor, using configured allowed_actions
  query_result = SQLExecutor.new(allowed_actions: Ruby::Text2sql.configuration.allowed_actions,
                                 sql_query: sql_query).execute

  # Step 4: Generate a natural language response from the query result
  natural_language_response = generate_response(user_request, query_result)

  {
    sql_query: sql_query,
    query_result: query_result,
    natural_language_response: natural_language_response
  }
end

.configurationObject



20
21
22
# File 'lib/ruby/text2sql.rb', line 20

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



24
25
26
# File 'lib/ruby/text2sql.rb', line 24

def self.configure
  yield(configuration)
end