Module: AsktiveRecord::Model::ClassMethods
- Includes:
- SchemaLoader
- 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
Methods included from SchemaLoader
#ensure_schema_is_not_empty!, #load_schema_content, #validate_llm_api_key!
Instance Method Details
#ask(natural_language_query) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/asktive_record/model.rb', line 21 def ask(natural_language_query) validate_llm_api_key! schema_content = load_schema_content ensure_schema_is_not_empty!(schema_content) 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_record ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/asktive_record/model.rb', line 13 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 |