--- 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**.