NQL, or Natural Query Language, aims to assist in data insights by providing a natural language interface to data. NQL is a query language that allows users to query data using natural language. NQL is a domain specific language that is designed to be used by non-technical users. NQL is designed to be used with a data sources such as Athena, RDS, S3, or On-Prem Database.
NQL project was intiated during my internship at AWS on May 2023 - August 2023. This repository is a continuation of the project to be presented in ISE Open House 2023 which is held on 11th November 2023 at International School of Engineering, Chulalongkorn University.
There are several improvements that I have made/will make to the project, which are:
- Utilizing Turborepo to manage all source code related to backend and frontend
- Using Nest.js as the backend framework, replacing the previous Flask framework to improve robustness and scalability
- Using Next.js as the frontend framework with proper utilization of RSC (React Server Component) to improve performance and user experience
- Implemented prompt caching layer to improve performance and minimize unnecessary inference calls
- Added data streaming support to allow users see generated SQL in real-time
- Minor improvements on User Interface
- Clone the repository
git clone git@github.com:tontan2545/NQL.git
- Install dependencies
pnpm install
- Start the development server
pnpm dev
and open in a seperate terminal
docker-compose up
Note: If you want to start the development server with a specific project, you can run
pnpm dev --filter <project>
- You'll be able to access
- Frontend App at http://localhost:3000
- Backend API Server at http://localhost:8000
- Postgres Database at http://localhost:5432
This project uses pnpm as the package manager, you can install dependencies by running
pnpm install <package>
Since this project uses Turborepo, you can install dependencies to a specific project by running
pnpm install --filter <project> <package>