An open API service indexing awesome lists of open source software.

https://github.com/shaheennabi/end-to-end-qa-genai-project

πŸŽ‡πŸŽ† QAChatbot: Smart Document Q&A πŸŽ†πŸŽ‡ Transform your documents into an interactive Q&A experience! πŸ“„πŸ€– Upload PDFs or files, and let the botβ€”powered by Gemini Pro API and built with Streamlitβ€”deliver accurate answers in a snap! πŸš€βœ¨
https://github.com/shaheennabi/end-to-end-qa-genai-project

embeddings gemini llama-index llms modular-coding rag streamlit

Last synced: about 1 month ago
JSON representation

πŸŽ‡πŸŽ† QAChatbot: Smart Document Q&A πŸŽ†πŸŽ‡ Transform your documents into an interactive Q&A experience! πŸ“„πŸ€– Upload PDFs or files, and let the botβ€”powered by Gemini Pro API and built with Streamlitβ€”deliver accurate answers in a snap! πŸš€βœ¨

Awesome Lists containing this project

README

        

# πŸŽ† **End-to-End QA GenAI Project** πŸŽ†

Welcome to the **End-to-End QA GenAI Project**, where **cutting-edge technology** meets **seamless user experience**! πŸš€ This project implements a **Retrieval-Augmented Generation (RAG)** system with a **Streamlit UI** for uploading and processing **PDF documents**. It leverages the **Google Gemini API** (featuring the powerful **Gemini Pro model**) for high-performance **natural language understanding** and **generation**. The **LlamaIndex** framework is used for **efficient document indexing** and **retrieval**, enabling fast and accurate query responses. πŸ”πŸ’¬

With this system, you can interact with documents in a whole new way: **upload**, **query**, and **generate** intelligent responses! πŸŽ‰

---

## ✨ **Features** ✨

- πŸ–₯️ **Streamlit UI** for seamless PDF uploads and interactions.
- πŸ€– **Google Gemini API** integration for **powerful language generation** using the **Gemini Pro model**.
- πŸ—‚οΈ **LlamaIndex** framework for **fast and scalable document indexing** and retrieval.
- πŸ› οΈ **Modular Code Structure** for easy maintainability and modification.
- πŸš€ **High-performance QA generation** based on uploaded documents and queries.

---

## πŸ—οΈ **Architecture** πŸ—οΈ

The system is built with a **modular** design for scalability and easy maintenance. Below are the core components that make everything work:

1. **Streamlit UI**: Upload PDF files and interact with the system seamlessly.
2. **Document Preprocessing**: Extracts content from PDFs for indexing and retrieval.
3. **LlamaIndex Integration**: Indexes document content for **fast search** and retrieval.
4. **Google Gemini API**: Processes queries and generates responses using the **Gemini Pro model**.
5. **Modular Code**: Cleanly separated components for easy updates and improvements.

---

## βš™οΈ **Setup** βš™οΈ

Get ready to set up your local environment and dive into this **powerful GenAI system**! Follow the steps below to get started:

### **Prerequisites**

- Python 3.9 or higher.
- **Google Gemini API** credentials.
- **LlamaIndex** library.

### **Installation**

1. Clone the repository:

```bash
git clone https://github.com/shaheennabi/End-to-End-QA-GenAI-Project.git
cd End-to-End-QA-GenAI-Project
```

2. Create and activate a Python virtual environment:

```bash
python3.9 -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
```

3. Install the required Python packages:

```bash
pip install -r requirements.txt
```

4. Set up your **Google Gemini API** credentials. Follow [Google's official documentation](https://cloud.google.com/docs/authentication/getting-started) for setting up the API credentials.

5. Install **LlamaIndex**:

```bash
pip install llama-index
```

---

## πŸš€ **Running the Application** πŸš€

Now that you're all set up, let’s get the app running:

1. Start the **Streamlit app**:

```bash
streamlit run app.py
```

2. Open your browser and visit [http://localhost:8501](http://localhost:8501) to interact with the app. πŸŽ‰

3. **Upload a PDF file** and query it for intelligent responses generated using **Gemini Pro**!

---

## πŸ”„ **Workflow** πŸ”„

Here’s how the magic happens:

1. **Upload PDF**: The user uploads a PDF file through the **Streamlit UI**.
2. **Text Extraction**: The system extracts text content from the uploaded PDF.
3. **Document Indexing**: The text is indexed using **LlamaIndex** for **quick retrieval**.
4. **Query Generation**: The user submits a query, which is processed by the **Gemini Pro model**.
5. **Response Generation**: The system retrieves the relevant information and generates a **natural language response** using the **Gemini API**. 🎯

---

## πŸ”Œ **API Integration** πŸ”Œ

This project utilizes the **Google Gemini API** (with the **Gemini Pro model**) for natural language generation. To interact with the API, you must set up your **Google Gemini API credentials** in the `config.py` file.

---

## 🌱 **Future Enhancements** 🌱

- 🌍 **Multilingual Support**: Extend the system to support **multiple languages** for text generation.
- πŸ“ **Document Summarization**: Automatically generate summaries for **long documents**.
- πŸ”Ž **Advanced Search Features**: Add advanced search and filtering capabilities for document retrieval.

---

## 🀝 **Contributing** 🀝

We welcome contributions to improve this project! To contribute:

1. Fork the repository.
2. Create a new branch for your changes.
3. Make your changes and commit them.
4. Open a pull request for review.

---

## πŸ“„ **License** πŸ“„

This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for more details.

---

## πŸŽ‰ **Acknowledgments** πŸŽ‰

A special thank you to the following technologies and resources that made this project possible:

- **Google Gemini API**: For providing powerful AI capabilities.
- **LlamaIndex**: For efficient document indexing and retrieval.
- **Streamlit**: For creating beautiful and user-friendly web interfaces.
- **Python 3.9**: The language powering this entire project.
- **Contributors**: For making this project even better! 🌟

---

## ⭐ **Star the Project** ⭐

If you love this project, don’t forget to **star** it on GitHub! It helps us keep the project alive and motivates us to keep improving it. πŸŒŸπŸš€

---

## πŸš€ **Let's Build the Future Together** πŸš€

Ready to jump in? Clone the repository, install the dependencies, and start exploring this **next-gen AI-powered QA system**! πŸ“‚πŸ’¬