in nl2sql_library/app.py [0:0]
def linear_executor():
"""
Invokes the Linear Executor
"""
question = request.json["question"]
execute_sql = request.json["execute_sql"]
logger.info(f"Linear Execution engine for question : [{question}]")
from nl2sql_lib_executors import NL2SQL_Executors
try:
nle = NL2SQL_Executors()
res_id, sql, df = nle.linear_executor(
question=question, data_dict=data_dictionary_read
)
sql_result = ""
response_string = {
"result_id": res_id,
"generated_query": sql,
"sql_result": sql_result,
"error_msg": "",
}
log_sql(res_id, question, sql, "Linear Executor", execute_sql)
if execute_sql:
try:
result = execute_bq_query(sql)
sql_result = result2nl(question, result)
response_string = {
"result_id": res_id,
"generated_query": sql,
"sql_result": sql_result,
"df": df.to_json(),
"error_msg": "",
}
except RuntimeError:
print("internal try catch")
response_string = {
"result_id": res_id,
"generated_query": sql,
"sql_result": sql_result,
"df": df.to_json(),
"error_msg": "",
}
except RuntimeError:
logger.debug(f"Linear SQL Generation uncussessful : [{question}]")
response_string = {
"result_id": 0,
"generated_query": "",
"sql_result": "",
"error_msg": "Error encountered in Linear executor",
}
return response_string