Skip to content

ambitiouss22/PaperRAG

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 PaperRAG

PaperRAG is an AI-powered document ingestion and question-answering system.
It allows users to upload PDFs (research papers, resumes, reports, etc.), processes them into chunks, summarizes their content (text, tables, images), and stores embeddings in a vector database. Users can then chat with their documents through a simple web interface.


🚀 Live Demo

⚠️ Note: Backend is currently deployed on Google Cloud Run (ephemeral storage). Uploads may fail or reset. For persistence, see Future Scope.


✨ Features

  • 📂 Upload PDFs directly in the browser.
  • 🧩 Extracts text, tables, and images from PDFs.
  • 📝 Summarizes extracted content with LLMs.
  • 🔍 Embeds & stores summaries into Chroma DB.
  • 💬 Chat interface to query documents using semantic search + LLM reasoning.
  • 🔄 Session management (multiple chats, persistent state).
  • 🐳 Docker Compose for local development.
  • ☁️ Deployment ready for Render (frontend) and Cloud Run (backend).

🛠️ Tech Stack

Frontend

Backend

Infrastructure

  • Docker & Docker Compose
  • Persistent volumes (local dev)
  • Future support for managed DBs (Postgres, Pinecone)

⚙️ Local Development

Clone the repo and start everything with Docker Compose:

git clone https://github.com/Exynos21/PaperRAG.git
cd PaperRAG

# Copy env files
cp backend-python/.env.example backend-python/.env
cp frontend/.env.local.example frontend/.env.local

# Start services
docker-compose up --build

Services


🌍 Deployment

Frontend (Render)

  • Deploy frontend/ as a Static Site on Render.
  • Set environment variables:
NEXT_PUBLIC_BACKEND_URL=https://paperrag-backend-296287667274.us-central1.run.app

Backend (Cloud Run)

Build and push the backend Docker image to GCP Artifact Registry.

Deploy with Cloud Run:

gcloud run deploy paperrag-backend \
  --source ./backend-python \
  --platform managed \
  --allow-unauthenticated \
  --region us-central1

⚠️ Note: On Cloud Run, file storage (uploads/, chroma_db/, prisma/dev.db) is ephemeral.
For production, consider using a VM or Render with a persistent disk.


📌 Future Scope

  • ✅ Migrate from SQLite → Postgres (persistent, scalable)
  • ✅ Replace local Chroma DB → Pinecone / Weaviate / Milvus
  • 🔐 Add authentication (login, API keys)
  • 📊 Add dashboards to view ingested files & queries
  • 📱 Mobile-friendly UI

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 73.3%
  • Python 15.5%
  • TypeScript 10.4%
  • Dockerfile 0.8%