Module: AsktiveRecord::Model::ClassMethods

Defined in:
lib/asktive_record/model.rb

Overview

Provides class-level methods for AsktiveRecord models, enabling natural language queries and configuration checks.

Instance Method Summary collapse

Instance Method Details

#ask(natural_language_query) ⇒ Object

Raises:



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/asktive_record/model.rb', line 17

def ask(natural_language_query)
  ensure_api_key_configured!

  schema_content = load_schema
  raise ConfigurationError, "Schema content is empty." if schema_content.to_s.strip.empty?

  llm_service = AsktiveRecord::LlmService.new(AsktiveRecord.configuration)
  current_table_name = respond_to?(:table_name) ? table_name : name.downcase.pluralize

  raw_sql = llm_service.generate_sql(natural_language_query, schema_content, current_table_name)

  AsktiveRecord::Query.new(natural_language_query, raw_sql, self)
end

#asktive_recordObject

Raises:



9
10
11
12
13
14
15
# File 'lib/asktive_record/model.rb', line 9

def asktive_record
  return if AsktiveRecord.configuration

  raise ConfigurationError,
        "AsktiveRecord is not configured. Please run the installer and " \
        "ensure config/initializers/asktive_record.rb is set up."
end