An interactive tool that allows users to chat with their PDF documents using advanced language models and semantic search. Built with Angular frontend and Flask backend.
-
PDF Document Processing
- Upload and process PDF files
- Automatic text extraction
- Smart table detection and formatting
- Real-time processing status updates
-
Intelligent Chat Interface
- Natural language question answering
- Context-aware responses
- HTML-formatted answers with proper styling
- Support for tables and structured data
- Image upload and analysis capabilities
-
Advanced Search & Retrieval
- Semantic search using FAISS vector store
- Multi-query retrieval for better results
- Automatic question rephrasing
- Table-aware search optimization
- Angular 15
- Angular Material UI
- RxJS for reactive programming
- PDF.js for PDF rendering
- Flask
- FAISS for vector search
- PyMuPDF for PDF processing
- Ollama for embeddings and chat
- LangChain for document processing
- Python 3.12+
- Node.js and npm
- Ollama installed and running locally
- Navigate to the backend directory
- Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the backend server:
The server will start at http://localhost:5000
python backend.py
- Navigate to the frontend directory
- Install dependencies:
npm install
- Start the development server:
The application will be available at http://localhost:4200
ng serve
-
Upload PDF
- Click "Select PDF" to upload your document
- Wait for processing to complete
- Progress indicators will show current status
-
Ask Questions
- Type your question in the chat input
- Get HTML-formatted responses
- View tables and structured data
- Upload images for visual context
-
View Results
- See PDF preview in the right panel
- Get context-aware answers
- View formatted tables and lists
- Track processing stages
