This is an end to end LLM project based on Google Palm
, Langchain
, ChromaDB
. We are building a system that can talk (Query in Natural Language) to MySQL database.
User asks questions in a natural language and the system generates answers by converting those questions to an SQL query and then executing that query on MySQL database.
Echo & Eden is a T-shirt store where they maintain their inventory, sales and discounts data in MySQL database.
A store manager may ask questions such as,
- How many white color Adidas t shirts do we have left in the stock?
- How much sales our store will generate if we can sell all extra-small size t shirts after applying discounts? The system is intelligent enough to generate accurate queries for given question and execute them on MySQL database
- Eden & Echo Tees is a t shirt store that sells Adidas, Nike, Van Heusen and Levi's t shirts
- Their inventory, sales and discounts data is stored in a MySQL database
- We will build an LLM based question and answer system that will use following,
- Google PaLM LLM
- Hugging face embeddings
- Streamlit for UI
- Langchain framework
- Chromadb as a vector store
- Few shot learning
- In the UI, store manager will ask questions in a natural language and it will produce the answers
1.Clone this repository to your local machine using:
git clone https://github.com/junaid-o/NLP-LLM-13-SQLPaLM.git
2.Navigate to the project directory:
cd NLP-LLM-13-SQLPaLM
- Install the required dependencies using pip:
pip install -r requirements.txt
4.Acquire an api key through makersuite.google.com and put it in .env
file
GOOGLE_API_KEY="your_api_key_here"
- For database setup, run database/db_creation_echo_eden_t_shirts.sql in your MySQL workbench and set the db as default.
Setup your MySQL and Google PaLM credentials in
.env
file
- Run the Streamlit app by executing:
streamlit run main.py
2.The web app will open in your browser where you can ask questions
- How many total t shirts are left in total in stock?
- How many t-shirts do we have left for Nike in XS size and white color?
- How much is the total price of the inventory for all S-size t-shirts?
- How much sales amount will be generated if we sell all small size adidas shirts today after discounts?
main.py
: The main Streamlit application script.langchain_helper.py
: This has all the langchain coderequirements.txt
: A list of required Python packages for the project.few_shots.py
: Contains few shot prompts.env
: Configuration file for storing your Google API key.