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