Spaces:
Sleeping
Sleeping
| import ollama | |
| from db import get_connection | |
| import mysql.connector | |
| def text_to_sql(user_query): | |
| prompt = f""" | |
| Convert the following natural language query into an SQL statement for MySQL: | |
| Query: "{user_query}" | |
| Ensure the query is syntactically correct and does not contain harmful operations. | |
| Only return the SQL query without any explanation. | |
| """ | |
| # Update the model name to 'llama3.2:latest' | |
| response = ollama.chat(model="llama3.2:latest", messages=[{"role": "user", "content": prompt}]) | |
| sql_query = response['message']['content'].strip() | |
| return sql_query | |
| # Uncomment this section if you wish to connect with mysql and fill out your credentials in db.py | |
| '''def execute_sql_query(user_query): | |
| sql_query = text_to_sql(user_query) | |
| try: | |
| conn = get_connection() | |
| cursor = conn.cursor() | |
| cursor.execute(sql_query) | |
| result = cursor.fetchall() | |
| except mysql.connector.Error as e: | |
| return {"error": f"MySQL Error: {e}"} | |
| except Exception as e: | |
| return {"error": str(e)} | |
| finally: | |
| conn.close() # Ensure connection is closed even if an error occurs | |
| return result''' | |
| # Example usage | |
| if __name__ == "__main__": | |
| user_input = "Show me all users whose first name starts with the letter j in the first_name column." | |
| print(text_to_sql(user_input)) | |