def generate_sql_few_shot_promptonly()

in nl2sql_src/nl2sql_generic.py [0:0]


    def generate_sql_few_shot_promptonly(self,
                                         question,
                                         table_name=None,
                                         prev_sql="",
                                         logger_file="log.txt"):
        """
        Returns only the few shot prompt
        """

        # step-1 table selection
        try:
            if not table_name:
                if len(self.metadata_json.keys()) > 1:
                    table_list = self.table_filter(question)
                    table_name = table_list[0]
                else:
                    table_name = list(self.metadata_json.keys())[0]
            table_json = self.metadata_json[table_name]
            columns_json = table_json["Columns"]
            columns_info = ""
            for column_name in columns_json:
                column = columns_json[column_name]
                column_info = f"""{column["Name"]} \
                    ({column["Type"]}) : {column["Description"]}.\
                    {column["Examples"]}\n"""
                columns_info = columns_info + column_info

            few_shot_json = self.pge.search_matching_queries(question)
            few_shot_examples = ""
            for item in few_shot_json:
                example_string = f"Question: {item['question']}"
                few_shot_examples += example_string + "\n"
                example_string = f"SQL : {item['sql']} "
                few_shot_examples += example_string + "\n\n"

            if prev_sql:
                additional_context = additional_context_prompt.format(
                    prev_sql=prev_sql
                    )
            else:
                additional_context = ""

            sql_prompt = Sql_Generation_prompt_few_shot_multiturn.format(
                                table_name=table_json["Name"],
                                table_description=table_json["Description"],
                                columns_info=columns_info,
                                few_shot_examples=few_shot_examples,
                                question=question,
                                additional_context=additional_context
                                )

            return sql_prompt
        except Exception as exc:
            raise Exception(traceback.print_exc()) from exc