Gonalb's picture
init commit
05e3517
import openai
def query_validation_and_optimization(state):
"""Validates and optimizes the SQL query."""
sql_query = state.get("generated_sql", "")
if not sql_query:
return {"optimized_sql": "", "validation_result": {"error": "No SQL query to validate."}}
# Optimization
prompt = f"""
Validate and optimize the following SQL query. Check for:
1. Syntax correctness
2. Proper table and column references
3. Performance optimization opportunities
```sql
{sql_query}
```
**Rules:**
- DO NOT create or suggest any indexes.
- DO NOT include any CREATE INDEX, ALTER TABLE, or similar DDL statements.
- Focus only on query structure optimization without modifying the database schema.
- Optimize filters and joins.
- Use appropriate WHERE clauses and join conditions.
- Output only the SQL query without markdown formatting.
- The table name must be the full ecommerceaie5.table_name format.
"""
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.0
)
optimized_query = response.choices[0].message.content.strip()
# Remove markdown code block formatting if present
if optimized_query.startswith("```sql"):
optimized_query = optimized_query.replace("```sql", "").replace("```", "").strip()
return {
"optimized_sql": optimized_query,
"validation_result": {"valid": True}
}