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"], }, }, } ]