import sqlite3 | |
def tools_call(session_hash): | |
connection = sqlite3.connect(f'data_source_{session_hash}.db') | |
print("Querying Database in Tools.py"); | |
cur=connection.execute('select * from data_source') | |
columns = [i[0] for i in cur.description] | |
print("COLUMNS 2") | |
print(columns) | |
cur.close() | |
connection.close() | |
return [ | |
{ | |
"type": "function", | |
"function": { | |
"name": "sql_query_func", | |
"description": f"This a tool useful to query a SQLite table called 'data_source' with the following Columns: {columns}", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"queries": { | |
"type": "array", | |
"description": "The query to use in the search. Infer this from the user's message. It should be a question or a statement", | |
"items": { | |
"type": "string", | |
} | |
} | |
}, | |
"required": ["question"], | |
}, | |
}, | |
}, | |
{ | |
"type": "function", | |
"function": { | |
"name": "rag_pipeline_func", | |
"description": f"This a tool useful to query a SQLite table called 'data_source' with the following Columns: {columns}", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"queries": { | |
"type": "array", | |
"description": "The query to use in the search. Infer this from the user's message. It should be a question or a statement", | |
"items": { | |
"type": "string", | |
} | |
} | |
}, | |
"required": ["question"], | |
}, | |
}, | |
}, | |
{ | |
"type": "function", | |
"function": { | |
"name": "chart_generation_func", | |
"description": f"This an chart generation tool useful to generate charts and graphs from queried data from our SQL table called 'data_source with the following Columns: {columns}. Returns an iframe string.", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"queries": { | |
"type": "array", | |
"description": """The data points to use in the chart generation. Infer this from the user's message. | |
Send a chart.js dictionary with options that correspond to the users request. But also format this dictionary as a string as this will allow javascript to be interpreted by the API we are using. | |
Return nothing else.""", | |
"items": { | |
"type": "string", | |
} | |
} | |
}, | |
"required": ["question"], | |
}, | |
}, | |
} | |
] |