A local AI-powered research assistant for exploring and understanding academic literature.
PaperMind allows users to upload multiple research papers, ask natural language questions across them, generate concise summaries, and visualize relationships between concepts through an interactive knowledge graph. The application runs entirely on a local machine using open-source language models, ensuring privacy while eliminating the need for external APIs.
The project combines Retrieval-Augmented Generation (RAG), semantic search, document processing, and interactive visualization into a single workflow, making it easier to navigate large collections of research papers.
- Upload and index multiple PDF research papers
- Ask questions across all uploaded documents
- Semantic search using vector embeddings
- Retrieval-Augmented Generation (RAG)
- Source-grounded responses with citations
- Automatic document summarization
- Interactive knowledge graph visualization
- Local LLM inference
- Modern React-based user interface
The dashboard allows users to upload one or more research papers in PDF format. In this demo, two research papers are uploaded:
- B+ Tree Preference over B-Tree
- GiST (Generalized Search Trees)
Users can ask questions across all uploaded research papers. The system retrieves relevant context from the documents and generates citation-aware answers.
PaperMind supports conversational memory, allowing users to ask follow-up questions without repeating the original context. The system understands references to previous responses and continues the discussion naturally.
The application automatically extracts important entities and relationships from the uploaded research papers to generate an interactive knowledge graph, helping users visualize connections between concepts across multiple documents.
PaperMind
│
├── backend
│ ├── app
│ ├── uploads
│ ├── vector_store
│ └── ...
│
├── frontend
│ ├── src
│ └── ...
│
└── README.md
- React
- Tailwind CSS
- React Force Graph
- FastAPI
- Python
- Ollama
- Sentence Transformers
- FAISS
- PyPDF
PaperMind processes uploaded documents through the following pipeline:
PDF Documents
│
▼
Text Extraction
│
▼
Document Chunking
│
▼
Embedding Generation
│
▼
Vector Index
│
▼
Relevant Context Retrieval
│
▼
Local Language Model
│
▼
Answer with Source Citations
Knowledge graph generation follows a separate pipeline:
Research Papers
│
▼
Entity & Relationship Extraction
│
▼
Structured Graph Representation
│
▼
Interactive Visualization
git clone https://github.com/<your-username>/PaperMind.git
cd PaperMindInstall Ollama and download any supported local language model.
Ensure the Ollama service is running before starting the backend.
cd backendCreate a virtual environment:
python -m venv venvActivate it.
Windows
venv\Scripts\activateLinux / macOS
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtStart the backend:
uvicorn app.main:app --reloadThe backend will be available at:
http://127.0.0.1:8000
Open another terminal:
cd frontendInstall dependencies:
npm installStart the development server:
npm run devOpen:
http://localhost:5173
- Upload one or more research papers.
- Wait for document indexing to complete.
- Ask questions about the uploaded documents.
- Generate summaries to quickly understand individual papers.
- Explore the interactive knowledge graph to visualize relationships between concepts.
- Continue the conversation with follow-up questions using the retrieved context.
- Multi-document semantic search
- Context-aware question answering
- Automatic document summarization
- Source citation for generated responses
- Interactive knowledge graph generation
- Fully local inference without external APIs
- Hybrid keyword and semantic search
- Improved knowledge graph extraction
- Graph filtering and clustering
- PDF annotations and highlighting
- Conversation history and export
- Support for additional local language models
- Docker deployment
PaperMind is built using several excellent open-source projects, including FastAPI, React, FAISS, Sentence Transformers, Ollama, and PyPDF. Their tools made it possible to build a fully local, AI-powered research assistant.
Building PaperMind gave me practical experience with designing end-to-end AI applications that combine modern NLP techniques with full-stack software development.
Through this project, I learned how Retrieval-Augmented Generation (RAG) systems are built, how vector embeddings enable semantic search, and how large language models can be grounded using retrieved context to generate more reliable responses. I also gained experience building document processing pipelines, implementing vector search with FAISS, integrating local language models, and designing interactive visualizations for exploring unstructured information.
Beyond the AI components, the project strengthened my understanding of building scalable backend services with FastAPI, developing responsive interfaces with React, and integrating multiple systems into a cohesive application that runs entirely on a user's local machine.
.png)


