Note: This project is now archived and is no longer being actively maintained. The code is available for educational purposes, but no further updates or support will be provided.
Transform your PDF documents into interactive conversations with AI
Disclaimer: This project is built by a daily learner. Expect bugs, incomplete features, and ongoing improvements. Use at your own discretion and feel free to contribute!
PaperWise is an intelligent PDF assistant that revolutionizes how you interact with PDF documents. Ask questions, generate summaries, and extract insights from your documents using free LLM APIs.
π Free LLM APIs - Leverages free language model APIs for AI functionality
π Lightning Fast - Streamlit-powered web interface for smooth interactions
π¬ Natural Conversations - Chat with your PDFs like talking to an expert
π Smart Insights - Extract key information and generate summaries
π¨ Beautiful Interface - Modern, intuitive design built with Streamlit
π Cross-Platform - Works seamlessly on Windows, macOS, and Linux
- Python 3.8+ π - Robust backend processing
- Streamlit π¨ - Modern web-based UI framework
- Free LLM APIs π€ - AI inference through free API services
- PyMuPDF π - Advanced PDF parsing and text extraction
- Sentence Transformers π - Semantic search and embeddings
- Python 3.8+ installed on your system
- 4GB+ RAM recommended for optimal performance
- Internet connection for LLM API access
-
Clone the repository
git clone https://github.com/adawatia/PaperWise.git cd PaperWise -
Set up virtual environment (recommended)
# Using uv (recommended) uv venv --python 3.13 source .venv/bin/activate # On Windows: .venv\Scripts\activate # Or using standard venv python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
# Using uv uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt
-
Launch PaperWise
streamlit run main.py
-
π Load Your PDF
- Upload your PDF document through the Streamlit interface
- Wait for processing to complete
-
π¬ Start Chatting
- Type questions about your document in the chat interface
- Ask for summaries of specific sections
- Request key insights and analysis
-
π― Example Queries
- "What are the main conclusions of this paper?"
- "Summarize the methodology section"
- "What are the key findings related to [topic]?"
- "List the references mentioned about [subject]"
paperwise/
βββ main.py # Streamlit application entry point
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
βββ LICENSE # MIT license file
PaperWise uses free LLM APIs for AI functionality. Configure your preferred API in src/ai/llm_client.py:
# Supported free LLM APIs
SUPPORTED_APIS = [
"huggingface", # Hugging Face Inference API
"together", # Together AI (free tier)
"replicate", # Replicate (free tier)
]- Response Time: Depends on API provider and internet connection
- Rate Limits: Respect free tier limitations of chosen API
- Quality: Different APIs provide varying response quality
Q: Application loads slowly
A: Check your internet connection and API response times.
Q: API rate limit errors
A: Wait for the rate limit to reset or try a different free API provider.
Q: PDF not loading
A: Ensure the PDF isn't password-protected or corrupted. Scanned PDFs may need OCR.
Q: Responses seem inaccurate
A: Try rephrasing your question or switch to a different LLM API for better accuracy.
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 2GB | 4GB+ |
| Storage | 1GB free | 2GB+ free |
| CPU | Dual-core | Quad-core+ |
| Internet | Broadband | High-speed |
| OS | Windows 10, macOS 10.14, Ubuntu 18.04 | Latest versions |
- Multi-PDF Support - Compare and analyze multiple documents
- OCR Integration - Support for scanned PDFs and images
- Export Features - Save conversations and summaries
- Custom Prompts - Create reusable question templates
- Plugin System - Extend functionality with custom modules
- API Key Management - Support for premium API tiers
- Collaboration - Share insights with team members
- Mobile Optimization - Better mobile web experience
We love contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Install development dependencies:
pip install -r requirements-dev.txt - Make your changes and add tests
- Run tests:
pytest tests/ - Test the Streamlit app:
streamlit run main.py - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
- Follow PEP 8 guidelines
- Use type hints where possible
- Add docstrings to all functions
- Write tests for new features
Help us improve PaperWise! When reporting issues:
For Bugs:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Python version)
- Error messages or logs
For Features:
- Describe the use case
- Explain the expected behavior
- Consider implementation complexity
This project is licensed under the MIT License - see the LICENSE file for details.
- Free LLM API providers for making AI accessible to everyone
- Streamlit for the excellent web framework
- PyMuPDF for robust PDF processing
- The open-source community for continuous inspiration
β Star this project if you find it useful! β
π Get Started β’ π Documentation β’ π Report Bug β’ π‘ Request Feature
Built with β€οΈ by adawatia - A daily learner on the journey of improvement