SQL Generation Services
The SQL Generation Service Module is responsible for generating SQL queries from prompts and managing their lifecycle within the KAI system. This module handles the creation, retrieval, updating, and execution of SQL queries and integrates with other services to provide comprehensive SQL generation capabilities.
Key Components
Imports
HTTPException: Manages HTTP-related exceptions.PromptSQLGenerationRequest,SQLGenerationRequest,UpdateMetadataRequest: Request models for SQL generation operations.LLMConfig,SQLGeneration: Models for SQL generation and configuration.SQLGenerationRepository: Handles SQL generation data storage and retrieval.ContextStoreService: Manages context-related data.PromptRepository,PromptService: Manages prompts.SQLDatabase: Provides SQL database interactions.SimpleEvaluator: Evaluates SQL queries.SQLAgent: Generates SQL queries using language models.create_sql_query_status: Updates SQL query status.
SQLGenerationServiceClassInitialization
__init__(self, storage): Initializes the service with a storage object and sets up theSQLGenerationRepository.
Methods
create_sql_generation(self, prompt_id: str, sql_generation_request: SQLGenerationRequest) -> SQLGenerationCreates a new SQL generation entry linked to a specific prompt.
Handles SQL generation either from a provided SQL or by generating it via
SQLAgent.Evaluates the SQL query if required.
Returns the created
SQLGenerationobject.
create_prompt_and_sql_generation(self, prompt_sql_generation_request: PromptSQLGenerationRequest) -> SQLGenerationCreates a new prompt.
Generates SQL based on the prompt.
Returns the created
SQLGenerationobject.
get_sql_generations(self, prompt_id: str) -> list[SQLGeneration]Retrieves all SQL generations associated with a specific prompt.
Returns a list of
SQLGenerationobjects.
get_sql_generation(self, sql_generation_id: str) -> SQLGenerationRetrieves a specific SQL generation by its ID.
Returns the requested
SQLGenerationobject.
update_sql_generation(self, sql_generation_id: str, metadata_request: UpdateMetadataRequest) -> SQLGenerationUpdates metadata for an existing SQL generation.
Returns the updated
SQLGenerationobject.
execute_sql_query(self, sql_generation_id: str, max_rows: int = 100) -> tuple[str, dict]Executes the SQL query associated with a specific SQL generation.
Returns the result of the query execution.
Helpers
generate_response_with_timeout(self, sql_generator: SQLAgent, user_prompt, db_connection, metadata=None)Generates an SQL response with a timeout using
SQLAgent.
update_error(self, sql_generation: SQLGeneration, error: str) -> SQLGenerationUpdates the error information for a SQL generation entry.
update_the_initial_sql_generation(self, initial_sql_generation: SQLGeneration, sql_generation: SQLGeneration)Updates the initial SQL generation entry with details from the generated SQL.
Usage Scenarios
Creating SQL Generations: Generate SQL queries based on prompts using
create_sql_generationorcreate_prompt_and_sql_generation.Retrieving SQL Generations: Access all SQL generations associated with a specific prompt or a particular SQL generation by ID using
get_sql_generationsandget_sql_generation.Updating SQL Generations: Modify metadata of existing SQL generations using
update_sql_generation.Executing SQL Queries: Run SQL queries associated with a SQL generation and get the results using
execute_sql_query.
Last updated