Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PaperMind

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.


Features

  • 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

Screenshots

Dashboard

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)

Dashboard


Question Answering

Users can ask questions across all uploaded research papers. The system retrieves relevant context from the documents and generates citation-aware answers.

Question Answering


Conversational Follow-up

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.

Conversational Follow-up


Knowledge Graph

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.

Knowledge Graph

Project Architecture

PaperMind
│
├── backend
│   ├── app
│   ├── uploads
│   ├── vector_store
│   └── ...
│
├── frontend
│   ├── src
│   └── ...
│
└── README.md

Tech Stack

Frontend

  • React
  • Tailwind CSS
  • React Force Graph

Backend

  • FastAPI
  • Python

AI / NLP

  • Ollama
  • Sentence Transformers
  • FAISS
  • PyPDF

System Pipeline

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

Running the Project

Clone the Repository

git clone https://github.com/<your-username>/PaperMind.git

cd PaperMind

Install Ollama

Install Ollama and download any supported local language model.

Ensure the Ollama service is running before starting the backend.


Backend Setup

cd backend

Create a virtual environment:

python -m venv venv

Activate it.

Windows

venv\Scripts\activate

Linux / macOS

source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

Start the backend:

uvicorn app.main:app --reload

The backend will be available at:

http://127.0.0.1:8000

Frontend Setup

Open another terminal:

cd frontend

Install dependencies:

npm install

Start the development server:

npm run dev

Open:

http://localhost:5173

Usage

  1. Upload one or more research papers.
  2. Wait for document indexing to complete.
  3. Ask questions about the uploaded documents.
  4. Generate summaries to quickly understand individual papers.
  5. Explore the interactive knowledge graph to visualize relationships between concepts.
  6. Continue the conversation with follow-up questions using the retrieved context.

Current Capabilities

  • 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

Future Improvements

  • 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

Acknowledgements

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.


What I Learned

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages