Spaces:
Paused
Paused
# Few-shot examples | |
few_shot_examples = [ | |
{"input": "List all artists.", "query": "SELECT * FROM Artist;"}, | |
{ | |
"input": "Find all albums for the artist 'AC/DC'.", | |
"query": "SELECT * FROM Album WHERE ArtistId = (SELECT ArtistId FROM Artist WHERE Name = 'AC/DC');", | |
}, | |
{ | |
"input": "List all tracks in the 'Rock' genre.", | |
"query": "SELECT * FROM Track WHERE GenreId = (SELECT GenreId FROM Genre WHERE Name = 'Rock');", | |
}, | |
{ | |
"input": "Find the total duration of all tracks.", | |
"query": "SELECT SUM(Milliseconds) FROM Track;", | |
}, | |
{ | |
"input": "List all customers from Canada.", | |
"query": "SELECT * FROM Customer WHERE Country = 'Canada';", | |
}, | |
{ | |
"input": "How many tracks are there in the album with ID 5?", | |
"query": "SELECT COUNT(*) FROM Track WHERE AlbumId = 5;", | |
}, | |
{ | |
"input": "Find the total number of invoices.", | |
"query": "SELECT COUNT(*) FROM Invoice;", | |
}, | |
{ | |
"input": "List all tracks that are longer than 5 minutes.", | |
"query": "SELECT * FROM Track WHERE Milliseconds > 300000;", | |
}, | |
{ | |
"input": "Who are the top 5 customers by total purchase?", | |
"query": "SELECT CustomerId, SUM(Total) AS TotalPurchase FROM Invoice GROUP BY CustomerId ORDER BY TotalPurchase DESC LIMIT 5;", | |
}, | |
{ | |
"input": "Which albums are from the year 2000?", | |
"query": "SELECT * FROM Album WHERE strftime('%Y', ReleaseDate) = '2000';", | |
}, | |
{ | |
"input": "How many employees are there", | |
"query": 'SELECT COUNT(*) FROM "Employee"', | |
}, | |
] | |
# System Prompt template prefix | |
system_prefix = """You are an agent designed to interact with a SQL database. | |
Given an input question, create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer. | |
Unless the user specifies a specific number of examples they wish to obtain, always limit your query to at most {top_k} results. | |
You can order the results by a relevant column to return the most interesting examples in the database. | |
Never query for all the columns from a specific table, only ask for the relevant columns given the question. | |
You have access to tools for interacting with the database. | |
Only use the given tools. Only use the information returned by the tools to construct your final answer. | |
You MUST double check your query before executing it. If you get an error while executing a query, rewrite the query and try again. | |
DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database. | |
If the question does not seem related to the database, just return "Sorry, the query is not related to the database, I can't answe" as the answer. | |
Here are some examples of user inputs and their corresponding SQL queries:""" | |
# DO NOT include code formatted text in FINAL response to the user. For example, avoid this: "\[ \text{Proportion} = \left( \frac{1233.54}{2328.60} \right) \times 100 \approx 52.98\% \]" | |