|
import sqlite3
|
|
from utils import TEMP_DIR
|
|
|
|
def tools_call(session_hash):
|
|
dir_path = TEMP_DIR / str(session_hash)
|
|
connection = sqlite3.connect(f'{dir_path}/data_source.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": ["queries"],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "chart_generation_func",
|
|
"description": f"""This a 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 which will be displayed inline in our chat window. Do not edit the string returned
|
|
from the chart_generation_func function in any way and display it fully to the user in the chat window. You can add your own text supplementary
|
|
to it for context if desired.""",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"description": """The list containing a dictionary that contains the 'data' portion of the plotly chart generation. Infer this from the user's message.""",
|
|
"items": {
|
|
"type": "string",
|
|
}
|
|
},
|
|
"layout": {
|
|
"type": "array",
|
|
"description": """The dictionary that contains the 'layout' portion of the plotly chart generation""",
|
|
"items": {
|
|
"type": "string",
|
|
}
|
|
}
|
|
},
|
|
"required": ["data"],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "table_generation_func",
|
|
"description": f"""This an table generation tool useful to format data as a table from queried data from our SQL table called
|
|
'data_source with the following Columns: {columns}. Returns an html string generated from the pandas library and pandas.to_html()
|
|
function which will be displayed inline in our chat window. There will also be a link to download the CSV included in the HTML string.
|
|
This link should open in a new window. Do not edit the string returned by the function in any way when displaying to the user, as the user needs
|
|
all of the information returned by the function in it's exact state.""",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"description": """The data points to use in the table generation. Infer this from the user's message.
|
|
Send a python dictionary object with query data that correspond to data that will be converted into a pandas DataFrame and that correspond to the users request.
|
|
The keys of this python dictionary object will be the names of the columns and values will be a list of values for each object.
|
|
Make sure this is a dictionary object and not a string or an array.
|
|
Send nothing else.""",
|
|
"items": {
|
|
"type": "string",
|
|
}
|
|
}
|
|
},
|
|
"required": ["data"],
|
|
},
|
|
},
|
|
}
|
|
] |