https://github.com/ihkcreations/ewu_rag_chatbot
A RAG application for East West University (Only Science Faculty)
https://github.com/ihkcreations/ewu_rag_chatbot
ewu groq-api groqapi llama3 llms nomic-embed-text ollama python python-project rag retrieval-augmented-generation streamlit
Last synced: 6 months ago
JSON representation
A RAG application for East West University (Only Science Faculty)
- Host: GitHub
- URL: https://github.com/ihkcreations/ewu_rag_chatbot
- Owner: ihkcreations
- License: agpl-3.0
- Created: 2024-05-25T15:37:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-30T18:21:33.000Z (over 1 year ago)
- Last Synced: 2025-04-08T09:47:02.633Z (6 months ago)
- Topics: ewu, groq-api, groqapi, llama3, llms, nomic-embed-text, ollama, python, python-project, rag, retrieval-augmented-generation, streamlit
- Language: Python
- Homepage:
- Size: 790 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EWU_RAG_Chatbot
![]()
A RAG (Retrival-Augmented Generation) application on East West University(Only Science Faculty).# Contributors
| Name | Student ID |
| ------------------ | ---------- |
| Md. Iftekhar Hossain Khan | 2020-3-60-073 |
| Md. Iftakher Alam | 2020-2-60-003 |
| Nourin Nahar Hridy | 2021-1-60-102 |
| Hasnain Ahmed | 2020-1-60-092 |# Codeocean's capsule link of the app
**[EWU RAG Chatbot](https://codeocean.com/capsule/7111456/tree)** (Student ID access needed)## Objective
This project implements the functionalities of using LLMs (Large Language Models) of ***GROQ API Interface*** to answer questions based on its own dataset.## Process Flowchart of EWU RAG Chatbot
![]()
# Tools and Libraries used
- **[Ollama]** : For creating embeddings using the open source embedding model **'nomic-embed-text'**
- **[RecursiveCharacterTextSplitter]** : For chunking the document into smaller segment
- **[ChromaDB]** : App's vector database for storing embeddings
- **[GROQ API]** : Faster inference with the LLMs hosted inside GROQ's interface.
- **[LangChain]** : Where most of the libraries are used from.
- **[Streamlit]** : App's framework or UI (User Interface)# Requirements to run the app
- Clone the repository by typing in the terminal ```git clone https://github.com/ihkcreations/EWU_RAG_Chatbot.git```
- Install the necessary libraries first in a virtual python environment by typing ```pip install -r requirements.txt```
- Then download Ollama from [here](https://ollama.com/download)
- After downloading Ollama, start Ollama server by typing: ```ollama serve``` in the terminal
- Pull the Embedding Model by typing ```ollama pull nomic-embed-text```
- Edit the **.env** file by placing your own GROQ API Key there. Get your GROQ API Key from [here](https://console.groq.com/keys). Make sure to create a GROQ account first.
- After downloading the model, start the **app.py** by typing in the terminal ```streamlit run app.py```Enjoy asking questions related to our East West University.
# Snapshot of the application
![]()
[GROQ API]:https://wow.groq.com/why-groq/
[ChromaDB]:https://docs.trychroma.com/
[LangChain]:https://python.langchain.com/v0.2/docs/introduction/
[RecursiveCharacterTextSplitter]:https://python.langchain.com/v0.1/docs/modules/data_connection/document_transformers/recursive_text_splitter/
[Ollama]:https://ollama.com/library/nomic-embed-text
[Streamlit]:https://streamlit.io/