from typing import List | |
from haystack import component | |
import pandas as pd | |
pd.set_option('display.max_rows', None) | |
pd.set_option('display.max_columns', None) | |
pd.set_option('display.width', None) | |
pd.set_option('display.max_colwidth', None) | |
import sqlite3 | |
class SQLiteQuery: | |
def __init__(self, sql_database: str): | |
self.connection = sqlite3.connect(sql_database, check_same_thread=False) | |
def run(self, queries: List[str]): | |
print("ATTEMPTING TO RUN QUERY") | |
results = [] | |
for query in queries: | |
result = pd.read_sql(query, self.connection) | |
results.append(f"{result}") | |
self.connection.close() | |
return {"results": results, "queries": queries} | |
def sqlite_query_func(queries: List[str], session_hash): | |
sql_query = SQLiteQuery(f'data_source_{session_hash}.db') | |
try: | |
result = sql_query.run(queries) | |
return {"reply": result["results"][0]} | |
except Exception as e: | |
reply = f"""There was an error running the SQL Query = {queries} | |
The error is {e}, | |
You should probably try again. | |
""" | |
return {"reply": reply} | |