This tool converts natural language queries into SQL commands and fetches data from a configured database. It's an intuitive way for individuals without SQL knowledge to interact with databases, or for experts to streamline and automate their work.
There are two inputs
The process is
{
"subject": "student",
"relatedTables": ["subject", "midDayMealRecieved", "examMarks"]
}
SELECT name FROM sqlite_master WHERE type='table'
to the tables having the subject in it.schema-relevant.sql
file with the relevant tables and columnsvalidate_SQL(sql)
/onboard
API => schema.sql => already onboarded to the database | P2/prompt
=> takes in a two param, prompt
and schema_id
and based on that prompt return the SQL if ChatGPT provides a valid SQL.python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r src/server/sql_graph/requirements.txt
docker compose -f docker-compose.gitpod.yml up -d
python -m unittest tests.related_tables
python src/server/app.py
cd src/server/db/mock-data
sudo sh init_mock_data.sh
Note down the Schema_ID that gets stored in the schema_id.txt file. You will have to send this as param in the prompt api.
This will be required for sql_graph.
sudo apt update
sudo apt-get install libgraphviz-dev
sudo apt install pkg-config graphviz-dev -y
pip install pygraphviz
sudo apt-get install libgraphviz-dev
pip3 install --global-option=build_ext --global-option="-I/opt/homebrew/Cellar/graphviz/8.0.5/include/" --global-option="-L/opt/homebrew/Cellar/graphviz/8.0.5/lib/" pygraphviz
brew install graphviz
python -m pip install \
--global-option=build_ext \
--global-option="-I$(brew --prefix graphviz)/include/" \
--global-option="-L$(brew --prefix graphviz)/lib/" \
pygraphviz
curl --location 'https://localhost:5078/prompt/v3' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGVzdDp0ZXN0' \
--data '{
"schema_id": "<Schema ID>",
"prompt": "How many Primary School are there?"
}'
Check our QuickStart guide if you want to contribute to this project.
You can watch this video which will help you in setting up Gitpod for the project.
This tool is released under the MIT License.