Class: Blazer::Ai::SqlGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/blazer/ai/sql_generator.rb

Defined Under Namespace

Classes: GenerationError

Instance Method Summary collapse

Constructor Details

#initialize(params:, data_source: nil) ⇒ SqlGenerator



5
6
7
8
9
10
11
# File 'lib/blazer/ai/sql_generator.rb', line 5

def initialize(params:, data_source: nil)
  @name = params[:name].to_s.strip
  @description = params[:description].to_s.strip
  @data_source = data_source || default_data_source
  @sanitizer = PromptSanitizer.new
  @validator = SqlValidator.new
end

Instance Method Details

#callObject

Raises:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/blazer/ai/sql_generator.rb', line 13

def call
  validate_input!
  sanitize_input!

  schema = build_schema_context
  adapter_name = determine_adapter_name

  response = generate_sql(schema, adapter_name)
  sql = @validator.extract_clean_sql(response)

  raise GenerationError, "Failed to generate valid SQL" if sql.blank?

  @validator.validate!(sql)
  sql
end