PaperScope is an intelligent research assistant that helps you discover, summarize, and search academic papers efficiently.
Built with Gemini, FAISS, and Streamlit, it transforms how you interact with research — making exploration faster, smarter, and more insightful. 🧠✨
PaperScope empowers researchers, students, and enthusiasts to:
- 🔍 Search papers from arXiv instantly by topic, keyword, or direct URL.
 - 🧾 Summarize academic papers using Gemini AI.
 - 📄 Upload PDFs and generate concise summaries.
 - 🔎 Perform semantic search using FAISS to find contextually similar papers.
 
Easily search for recent papers by keywords or provide direct paper URLs (arXiv links or PDF URLs). Get concise, AI-generated summaries powered by Gemini.
Supported input formats:
- Keywords: 
"reinforcement learning robots" - arXiv URLs: 
https://arxiv.org/abs/2301.12345orhttps://arxiv.org/pdf/2301.12345.pdf - Direct PDF URLs: 
https://example.com/paper.pdf 
Retrieve relevant summaries from your saved data using keyword or semantic search.
Upload your own research paper or document — PaperScope summarizes it in seconds.
Find papers with similar meanings, not just matching keywords, using FAISS-based vector search.
| Component | Purpose | 
|---|---|
| Streamlit | Interactive user interface | 
| arXiv API | Academic paper data source | 
| Google Gemini | AI model for summaries & insights | 
| FAISS | Vector-based semantic search | 
| PyMuPDF | PDF parsing and text extraction | 
These steps will get PaperScope running locally on macOS (zsh) or Linux. The project expects a small configuration file (paperscope/config.py) to provide your Gemini API key, the model name to use, and a path for the local JSON DB.
- Create and activate a virtual environment (recommended):
 
python3 -m venv .venv
source .venv/bin/activate- Install dependencies:
 
pip install -r requirements.txt- Create a minimal configuration file at 
paperscope/config.py. This repository does not include credentials. Create the file with these three variables: 
# paperscope/config.py
API_KEY = "YOUR_GOOGLE_GENAI_API_KEY"  # keep this secret
MODEL = "your-gemini-model-name"      # e.g. a text/generative model identifier
DB_PATH = "db.json"                   # path for the local JSON database- Start the Streamlit app:
 
streamlit run streamlit_app.py- Open the URL printed by Streamlit (usually http://localhost:8501) in your browser and use the sidebar to choose actions: Search arXiv, Query Stored Summaries, Upload & Summarize PDF, or Semantic Search (FAISS).
 
db.json(or the file you set inDB_PATH) — local JSON database of fetched summaries.faiss.indexandmeta.json— created by the FAISS index builder when you run the "Rebuild Index" action.temp.pdf— a temporary file used when you upload a PDF from the Streamlit UI.
- Missing 
paperscope/config.py: the code importsAPI_KEY,MODEL, andDB_PATHfrompaperscope.config. If you forget to create this file you will see an ImportError. Create the file as shown above. - Google Gemini / 
google-generativeai: ensure your API key is active and has access to the model you picked. Keep the key secret — do not commit it to git. - FAISS install issues on macOS: if 
pip install faiss-cpufails, try using conda: 
conda install -c conda-forge faiss-cpu- If 
fitz(PyMuPDF) import fails, ensure thePyMuPDFpackage is installed (it is listed inrequirements.txt). 
- Using Google Gemini / other generative APIs may incur costs. Monitor usage in your cloud console and set appropriate limits/alerts.
 - Never commit 
paperscope/config.pywith real keys to a public repository. This file is already included in the project's.gitignore, so you do not need to add it yourself. 
PaperScope supports a lightweight Demo Mode so reviewers and curious users can try the app without providing a Gemini API key.
- Enable Demo Mode by setting the environment variable 
DEMO_MODE=1(ortrue/yes) before starting the app. Example: 
DEMO_MODE=1 streamlit run streamlit_app.py- Demo Mode does not call external generative APIs. Instead, the app returns simplified extractive summaries and deterministic embeddings so the core UI and search flows can be explored offline.
 - A banner appears in the UI when Demo Mode is active and some features may be simplified or show the 
[DEMO MODE]prefix in results. - Demo Mode is intended for evaluation and demos only. For production use or higher-quality summaries, unset 
DEMO_MODEand add a validpaperscope/config.pywith your Gemini credentials. 
A small verification script is provided to assert demo mode works without external APIs:
DEMO_MODE=1 python3 scripts/demo_mode_check.pyThis script saves a sample summary, builds the FAISS index (using local embeddings) and runs a semantic search to confirm the flow works offline.
PaperScope is developed in an open and collaborative spirit. Please read and follow the project's Code of Conduct before contributing or participating. The full policy is available in CODE_OF_CONDUCT.md.
If you encounter behavior that violates the Code of Conduct, please follow the reporting instructions described in CODE_OF_CONDUCT.md.