Skip to content

๐ŸŽ‡๐ŸŽ† 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! ๐Ÿš€โœจ

License

Notifications You must be signed in to change notification settings

shaheennabi/End-to-End-QA-GenAI-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ† 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:

    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:

    python3.9 -m venv venv
    source venv/bin/activate   # On Windows, use `venv\Scripts\activate`
  3. Install the required Python packages:

    pip install -r requirements.txt
  4. Set up your Google Gemini API credentials. Follow Google's official documentation for setting up the API credentials.

  5. Install LlamaIndex:

    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:

    streamlit run app.py
  2. Open your browser and visit 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 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! ๐Ÿ“‚๐Ÿ’ฌ

About

๐ŸŽ‡๐ŸŽ† 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! ๐Ÿš€โœจ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published