An AI-powered Retrieval-Augmented Generation (RAG) application that allows users to upload enterprise PDF documents and ask questions using natural language. The system retrieves relevant information from uploaded documents using semantic search and generates accurate responses using Google Gemini 2.5 Flash.
-
Upload one or more PDF documents
-
Extract text from PDF files
-
Intelligent text chunking
-
Semantic embeddings using Google Gemini
-
FAISS vector database for similarity search
-
Context-aware question answering
-
Source document and page number citations
-
Conversation history
-
Multiple assistant modes:
- Answer Questions
- Summarize
- Generate Interview Questions
- Explain Like a Beginner
-
Interactive Streamlit web interface
User │ ▼ Streamlit UI │ ▼ Upload PDF Documents │ ▼ PDF Loader │ ▼ Text Splitter │ ▼ Gemini Embeddings │ ▼ FAISS Vector Store │ ▼ Retriever │ ▼ Gemini 2.5 Flash │ ▼ Answer + Source Citation
- Python
- Streamlit
- LangChain
- FAISS
- Google Gemini API
- PyPDFLoader
Enterprise-Knowledge-Assistant/ │ ├── app.py ├── requirements.txt ├── README.md ├── .env ├── uploads/ ├── data/ ├── docs/ ├── utils/ │ ├── pdf_loader.py │ ├── text_splitter.py │ ├── embeddings.py │ ├── vector_store.py │ ├── rag_pipeline.py │ └── file_manager.py └── vectorstore/
git clone <repository-url>
cd Enterprise-Knowledge-Assistantpython -m venv venvWindows
venv\Scripts\activateLinux / macOS
source venv/bin/activatepip install -r requirements.txtCreate a .env file:
GOOGLE_API_KEY=YOUR_GEMINI_API_KEY
streamlit run app.py- Launch the application.
- Upload one or more PDF documents.
- Click Process Documents.
- Select the desired assistant mode.
- Ask questions related to the uploaded documents.
- Review the generated answer and the cited source pages.
Add screenshots in the docs/Screenshots/ folder and reference them here.
Example:
- Home Page
- PDF Upload
- Chat Interface
- Answer with Source Citation
- Support DOCX, TXT, PPTX, and Excel files
- Persistent vector database
- User authentication
- Cloud deployment
- Hybrid keyword and semantic search
- Multilingual support
Subba Rami Reddy Janga
Enterprise Knowledge Assistant – AI RAG Project