Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cfahlgren1/natural-sql
A series of top performing Text to SQL LLMs
https://github.com/cfahlgren1/natural-sql
Last synced: about 1 month ago
JSON representation
A series of top performing Text to SQL LLMs
- Host: GitHub
- URL: https://github.com/cfahlgren1/natural-sql
- Owner: cfahlgren1
- License: apache-2.0
- Created: 2024-01-18T05:17:51.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-12T23:45:33.000Z (10 months ago)
- Last Synced: 2024-08-01T13:28:47.310Z (4 months ago)
- Language: Jupyter Notebook
- Size: 15.6 KB
- Stars: 859
- Watchers: 3
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NaturalSQL by ChatDB
NaturalSQL by [ChatDB](https://chatdb.ai) is a series of models with state-of-the-art performance on Text to SQL instructions.
[HuggingFace](https://huggingface.co/chatdb/natural-sql-7b)
## Introducing NaturalSQL-7B
#### Percentage of Correct SQL Queries on Novel Schemas
*Big thanks to the folks at Defog for open sourcing the [SQL-Eval](https://github.com/defog-ai/sql-eval) framework*![image](https://cdn-uploads.huggingface.co/production/uploads/648a374f00f7a3374ee64b99/5ynfoKPzI3_-WasQQt7qR.png)
NaturalSQL-7B is the leading model for it's size, benchmarked on SQL-Eval.
#### Example
**Question:** `Determine the customer with the largest total order value last month, and list all the products and their quantities they ordered.`
**Output**:
```sql
WITH
LastMonthOrders AS (
SELECT
o.customerid,
o.orderid,
op.productid,
op.quantity,
p.productname,
op.quantity * p.unitprice AS total_order_value
FROM
orders o
JOIN order_details op ON o.orderid = op.orderid
JOIN products p ON op.productid = p.productid
WHERE
o.orderdate >= date_trunc('month', CURRENT_DATE) - INTERVAL '1 month'
AND o.orderdate < date_trunc('month', CURRENT_DATE)
),
CustomerTotalOrderValue AS (
SELECT
customerid,
SUM(total_order_value) AS total_value
FROM
LastMonthOrders
GROUP BY
customerid
ORDER BY
total_value DESC
LIMIT
1
)
SELECT
c.customerid,
c.companyname,
lm.productid,
lm.productname,
lm.quantity
FROM
CustomerTotalOrderValue ctov
JOIN LastMonthOrders lm ON ctov.customerid = lm.customerid
JOIN customers c ON c.customerid = lm.customerid;
```NaturalQuery performs really well with subqueries, ratios, and questions like above.
### License
This repo code is licensed under `apache-2.0`, the model license is `CC BY-SA 4.0`.