SQL-AIX is an AI assistant to help solve analytical questions by building SQL queries against the target database and execute.
Build SQL AI assistant using the power of LLM
and tools
.
Setup a MySQL database using db_setup.sql file in sql_setup folder. It should create three tables as below -
![Screenshot 2024-09-02 at 1 27 59 PM](https://private-user-images.githubusercontent.com/69529031/363786724-583055d3-4dd5-49b1-8827-4a729d68b0eb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzA3MDUsIm5iZiI6MTczOTM3MDQwNSwicGF0aCI6Ii82OTUyOTAzMS8zNjM3ODY3MjQtNTgzMDU1ZDMtNGRkNS00OWIxLTg4MjctNGE3MjlkNjhiMGViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE0MjY0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTljZGNlYzUyMjk0NzdmZTllMmIwNDFkNjY1ZTIwNDk1MmFmOTY2NjIxNjE5NzY0YWU2NzEzYzZjODRmYWI0MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qlj8ZUWz7bgjqKZ33948ulZboP6yZMYS1I4QgwEXINE)
I've used the MySQL Docker image to spin up the SQL instance locally. You can find the latest Docker image here.
docker pull mysql
-
Download and install
Azure CLI
- Azure Cli -
Log in to Azure Cli using terminal
az login
You will be redirected to the browser to login, once logged in you will come back to terminal. Select a subscription and tenant from availbale list of subscriptions.
-
Create a resource group to use for this project
az group create --name RG_OPENAI_TEST --location eastus2
-
Create an Azure OpenAI account, use the previously created
Resource Group
az cognitiveservices account create --name OpenAIProject0924 \ --resource-group RG_OPENAI_TEST --kind OpenAI --sku S0 --location eastus2
-
Create GPT-4o deployment
az cognitiveservices account deployment create --resource-group RG_OPENAI_TEST \ --name OpenAIProject0924 --deployment-name gpt-40 --model-version 2024-05-13 \ --model-format OpenAI --sku-capacity 1 --sku-name Standard
-
Find the model endpoint and keys
az cognitiveservices account keys list \ --resource-group RG_OPENAI_TEST --name OpenAIProject0924
az cognitiveservices account show \ --resource-group RG_OPENAI_TEST --name OpenAIProject0924
Replace with this endpoint
and keys
in the code.
Test using simple to medium comlex question again the database. Prompt might need some more fine tunning to achive desired results. Ultimately functionality can be extended by introducing more tools and providing it to LLM.
Here are the some examples tested agianst GPT-4o
model.
Find top 3 products sold
![Screenshot 2024-09-02 at 11 17 31 AM](https://private-user-images.githubusercontent.com/69529031/363792559-a0ef7c49-00b3-453f-8986-f195379aea0c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzA3MDUsIm5iZiI6MTczOTM3MDQwNSwicGF0aCI6Ii82OTUyOTAzMS8zNjM3OTI1NTktYTBlZjdjNDktMDBiMy00NTNmLTg5ODYtZjE5NTM3OWFlYTBjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE0MjY0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFkNjNmMTRlOTUwZWMzODJhMzYxNjRhODA3YTA5YjY4ZGRmNzBkMDU1MmFhZTI5MjA1NzA5ZjY3ZmFiMGE4OGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.H4nO9EWpOjT-pphJbxqQYzLOsOf45t4u6FTClXS-9dI)
Find sales by each month
![Screenshot 2024-09-02 at 11 18 36 AM](https://private-user-images.githubusercontent.com/69529031/363792580-76101249-a88e-487b-89ad-ee53fb1c0d45.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzA3MDUsIm5iZiI6MTczOTM3MDQwNSwicGF0aCI6Ii82OTUyOTAzMS8zNjM3OTI1ODAtNzYxMDEyNDktYTg4ZS00ODdiLTg5YWQtZWU1M2ZiMWMwZDQ1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE0MjY0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxMWQ1ZWNkMzEyY2U3M2VkNzZiODVlYTE1MTc0NWJmOTE3NTJhM2Q0ZWM1NzQzYTNhMWI4MzNiMWNkYjFhNjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IsMrpJHj4mj05w5Q5oFQIQVb5mHEuMGolOw1_ajpnyY)
Find sales by each month and state, then pivot result for states
![Screenshot 2024-09-02 at 11 18 20 AM](https://private-user-images.githubusercontent.com/69529031/363792589-7f099e09-9b82-4ba1-af73-f5a443385e9c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNzA3MDUsIm5iZiI6MTczOTM3MDQwNSwicGF0aCI6Ii82OTUyOTAzMS8zNjM3OTI1ODktN2YwOTllMDktOWI4Mi00YmExLWFmNzMtZjVhNDQzMzg1ZTljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDE0MjY0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIzNmNlZWUxZjhjOGFmOGYxYjhhYjM3OGJhNzA1NmEzNDI3YmQ0ZWJhZWNiZjgzMTRlMGExMzkyZTRjNTc5NzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qNd51X0QZHWZtMZ2sg0HHdCJlNhLynnl955bxFCjv3E)