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 @component class SQLiteQuery: def __init__(self, sql_database: str): self.connection = sqlite3.connect(sql_database, check_same_thread=False) @component.output_types(results=List[str], queries=List[str]) 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}