| import logging |
| import time |
| import csv |
| from django.core.management.base import BaseCommand |
| from core.text2sql.handler import QueryDataHandler |
| from core.text2sql.prompt import get_prompt |
| from core.text2sql.eval_queries import queries |
|
|
| logger = logging.getLogger(__name__) |
|
|
| class Command(BaseCommand): |
| help = "Morningstar API to save the JSON response to a file which contains secIds with other details" |
|
|
| def handle(self, *args, **options) -> None: |
| t1 = time.perf_counter() |
| q=[] |
| count =1 |
| for query in queries[26:]: |
| print("count: ", query["Query Number"]) |
| prompt = get_prompt(query["Query Description"]) |
| logger.info(f"Prompt: {prompt}") |
| generated_query, data = QueryDataHandler().get_data_from_query(prompt) |
| print(f"Description: {query['Query Description']}, Query: {query.get('SQL Statement')}, Generated: {generated_query} ") |
| q.append({ |
| "Query Number": query["Query Number"], |
| "Complexity Level": query["Complexity Level"], |
| "Description": query["Query Description"], |
| "Query": query.get("SQL Statement", "-"), |
| "Generated": generated_query, |
| }) |
| count+=1 |
| time.sleep(1) |
| csv_file_path = 'queries_data.csv' |
|
|
| |
| with open(csv_file_path, 'w', newline='', encoding='utf-8') as csv_file: |
| fieldnames = q[0].keys() |
| print(fieldnames) |
| writer = csv.DictWriter(csv_file, fieldnames=fieldnames) |
|
|
| |
| writer.writeheader() |
|
|
| |
| writer.writerows(q) |
|
|
| print(f'Data has been written to {csv_file_path}.') |
| self.stdout.write(f"Time taken for evaluation: {time.perf_counter() - t1}") |
| |
|
|
|
|