An experiment to generate working SQL queries for real databases from natural language questions.
It uses GPT-3 (via the OpenAI API) to generate SQL queries based on a user question, and then runs them against the database to get the real results.
GPT SQL currently supports the following database types:
- Postgres
- Snowflake (documentation to come)
Set your OpenAI API token in the OPENAI_API_TOKEN environment variable. If you have an OpenAI account, you can obtain a token at https://platform.openai.com/account/api-keys.
Set the POSTGRES_CONN_STRING environment variable to the URL of your database. For example, if you're using Postgres, you might set it to postgres://user:password@localhost:5432/dbname.
You can now run gptsql:
go run .A Docker Compose file is included to run a Postgres database with some example data.
To provide example data, create a file data/init.sql with the SQL commands to create the tables and insert the data.
Then start the database with the command:
docker compose upYou can now use the example.sh script to run queries against your example database.