Class: Rails::Nl2sql::QueryGenerator
- Inherits:
-
Object
- Object
- Rails::Nl2sql::QueryGenerator
- Defined in:
- lib/rails/nl2sql/query_generator.rb
Constant Summary collapse
- DEFAULT_MODEL =
'gpt-3.5-turbo-instruct'
Instance Method Summary collapse
-
#generate_query(prompt, schema, db_server = 'PostgreSQL', tables = nil) ⇒ String
Generates a SQL query from a natural language prompt.
-
#initialize(provider: nil, model: DEFAULT_MODEL) ⇒ QueryGenerator
constructor
Initializes a new QueryGenerator.
Constructor Details
#initialize(provider: nil, model: DEFAULT_MODEL) ⇒ QueryGenerator
Initializes a new QueryGenerator.
14 15 16 17 |
# File 'lib/rails/nl2sql/query_generator.rb', line 14 def initialize(provider: nil, model: DEFAULT_MODEL) @provider = provider || Rails::Nl2sql.provider || default_provider(model) @model = model end |
Instance Method Details
#generate_query(prompt, schema, db_server = 'PostgreSQL', tables = nil) ⇒ String
Generates a SQL query from a natural language prompt.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rails/nl2sql/query_generator.rb', line 26 def generate_query(prompt, schema, db_server = 'PostgreSQL', tables = nil) retrieved_context = build_context(schema, tables) full_prompt = PromptBuilder.build(prompt, db_server, retrieved_context) response = @provider.complete(prompt: full_prompt, max_tokens: 500, temperature: 0.1) generated_query = extract_text(response) generated_query = clean_sql_response(generated_query) validate_query_safety(generated_query) generated_query end |