Scholar-Lens / README.md
LumiDPengu's picture
updated
c8c8788 verified
|
Raw
History Blame Contribute Delete
3.74 kB
---
title: Scholar Lens
emoji: 🔬
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 6.0.0
app_file: app.py
pinned: false
license: mit
tags:
- build-small-hackathon
- backyard-ai
- nvidia-nemotron
- openai-codex
- modal
- gradio
- literature-review
- semantic-scholar
---
# Scholar Lens
Scholar Lens is a small-model literature review assistant for atmospheric science. It searches scholarly sources, de-duplicates papers, maps paper relationships, and uses NVIDIA Llama-Nemotron-Nano 8B on Modal to write grounded, cited answers from retrieved abstracts.
## Submission Links
- **Live Space:** https://huggingface.co/spaces/build-small-hackathon/Scholar-Lens
- **GitHub:** https://github.com/Mr-Gondal/scholar-lens
-
- **Social post:** You can see the LIVE DEMO AT https://youtu.be/IvhU4a2kTnI?si=gM5FjZWltF2sKTV8
## Team
- **@kinggondal731** - builder / app owner
## What It Does
- **Ask:** enter a research question and get a cited synthesis grounded only in retrieved abstracts.
- **Search:** search Semantic Scholar, OpenAlex, Crossref, arXiv, and PubMed from one query.
- **Constellation:** build a connected literature map that shows papers, clusters, and relationships.
- **Compare:** choose two papers and ask Nemotron to compare methods, claims, limitations, and best use cases.
- **Summarize:** summarize a selected paper or pasted abstract/results section and export Markdown.
## Why This Matters
The app is built for a real atmospheric-science literature review workflow: papers are scattered across databases, abstracts need to be compared quickly, and researchers need evidence-grounded synthesis rather than another list of links.
Scholar Lens keeps the model task focused: it retrieves paper metadata and abstracts first, then asks a small model to reason only over that context. If evidence is missing, the app is designed to say so instead of inventing sources.
## Model And Infrastructure
- **Model:** `nvidia/Llama-3.1-Nemotron-Nano-8B-v1`
- **Inference:** Modal-hosted FastAPI endpoints
- **App:** Gradio on Hugging Face Spaces
- **Paper APIs:** Semantic Scholar, OpenAlex, Crossref, arXiv, PubMed
Required Hugging Face Secrets:
```text
MODAL_SUMMARIZE_URL
MODAL_SYNTHESIZE_URL
SCHOLAR_LENS_MODAL_TOKEN
SEMANTIC_SCHOLAR_API_KEY
SCHOLAR_LENS_CONTACT_EMAIL
```
Optional:
```text
OPENALEX_API_KEY
```
## Judging Fit
| Criterion | Scholar Lens proof |
|---|---|
| Specific real problem | Built around atmospheric-science literature review: search, triage, compare, synthesize. |
| Small-model fit | Nemotron handles bounded grounded synthesis over retrieved abstracts instead of open-ended web guessing. |
| NVIDIA fit | The main AI workflow is powered by NVIDIA Llama-Nemotron-Nano 8B on Modal. |
| Codex fit | OpenAI Codex was used to build, debug, polish, and prepare the app. |
| App polish | Dark UI, source badges, search pagination, paper comparison, constellation map, exports, and friendly empty states. |
## Run Locally
```bash
pip install -r requirements.txt
python app.py
```
The app starts a local Gradio server on port `7860`.
## Deploy Modal Inference
```bash
modal deploy modal_inference.py
```
After deployment, copy the Modal endpoint URLs into the Hugging Face Space secrets:
```text
MODAL_SUMMARIZE_URL=https://your-summarize-endpoint.modal.run
MODAL_SYNTHESIZE_URL=https://your-synthesize-endpoint.modal.run
SCHOLAR_LENS_MODAL_TOKEN=your-shared-secret-token
```
## Tests
```bash
python -m pytest tests/test_app_core.py
```
## Final README Checklist
- Tags are in the YAML block at the top.
- Demo video link is listed in **Submission Links**.
- Social post link is listed in **Submission Links**.
- Team Hugging Face usernames are listed in **Team**.