def nl2sql_lite_generate()

in nl2sql_src/app.py [0:0]


def nl2sql_lite_generate():
    """
    Invokes the NL2SQL Lite SQL Generator
    """
    question = request.json["question"]
    execute_sql = request.json["execute_sql"]
    few_shot = request.json["few_shot"]

    logger.info(f"NL2SQL Lite engine for question : [{question}]")

    try:
        logger.info("Reading the configuration file")
        curdir = os.getcwd()
        proj_conf = get_project_config()["config"]
        print(proj_conf)
        data_file_name = proj_conf["metadata_file"]

        logger.info(f"Using the metadata file : {data_file_name}")

        metadata_json_path = f"{curdir}/utils/{data_file_name}"
        logger.info(f"path  {metadata_json_path}")

        nl2sqlbq_client_base = Nl2sqlBq(project_id=proj_conf["proj_name"],
                                        dataset_id=proj_conf["dataset"],
                                        metadata_json_path=metadata_json_path,
                                        model_name="text-bison@002",
                                        tuned_model=False)
        if few_shot:
            logger.info("NL2SQL Studio Lite - Few shot SQL generation")
            sql = nl2sqlbq_client_base.generate_sql_few_shot(question)
        else:
            logger.info("NL2SQL Studio Lite - SQL generation")
            sql = nl2sqlbq_client_base.generate_sql(question)

        logger.info(f"NL2SQL Studio Lite generated SQL = {sql}")
        sql_result = ""
        res_id = str(uuid.uuid4())  # "lite"
        print(res_id)
        response_string = {
            "result_id": res_id,
            "generated_query": sql,
            "sql_result": sql_result,
            "error_msg": "",
        }
        log_sql(res_id, question, sql, "Lite", False)
        if execute_sql:
            try:
                results = nl2sqlbq_client_base.execute_query(sql)
                sql_result = nl2sqlbq_client_base.result2nl(result=results,
                                                            question=question)
                response_string = {
                    "result_id": res_id,
                    "generated_query": sql,
                    "sql_result": sql_result,
                    "error_msg": "",
                }
            except Exception:
                logger.error("Error executing the query on BigQuery")
                response_string = {
                    "result_id": res_id,
                    "generated_query": sql,
                    "sql_result": sql_result,
                    "error_msg": "Error - NL2SQL Studio Lite Query Generation",
                }
    except Exception as e:
        logger.error(
            f"NL2SQL Lite SQL Generation unsuccessful: [{question}] {e}"
            )
        response_string = {
            "result_id": 0,
            "generated_query": "",
            "sql_result": "",
            "error_msg": "Error in NL2SQL Studio Lite Query generation",
        }

    return json.dumps(response_string)