nolanzandi's picture
Updates to prompts
fedb4e9 verified
raw
history blame
2.69 kB
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": "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 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. You can add your own text supplementary to it for context if desired.",
"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"],
},
},
}
]