Skip to content
View summarizepaper's full-sized avatar

Block or report summarizepaper

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
summarizepaper/README.md

SummarizePaper 📚🤖

AI tools for researchers, from reading a paper to presenting it. Summaries and a chat that answer from the full text of a paper, collections compared cell by cell, alerts that follow a field, and tools to write, submit and present research. Papers from arXiv, bioRxiv, medRxiv, journals and other preprint servers, in English and French.

Live at www.summarizepaper.com · All tools · Guides

Paper page: the essentials of a paper with its summary Chat: a sourced comparison table of several papers

What it does ✨

Every answer rests on the paper itself: the full text is read when its license allows it (CC BY, BY-SA, BY-NC, BY-NC-SA, CC0), the abstract otherwise, and claims are checked against the passages they come from, with a link to each passage.

Free tools are open to every account; ⭐ marks Premium and ⭐⭐ Premium+.

Read papers faster

Tool What it does Guide
Summaries Essentials, detailed summary, key points, lay summary and blog article of any paper (arXiv ID, DOI, bioRxiv, medRxiv, HAL, OSF, PubMed, Europe PMC link), with its figures; rewritten for another reader or in 16 languages guide
Chat with papers Questions to one paper or several at once, answered from the full text with the passage behind each claim, figures read too; comparison tables with a source per cell; conversations kept and shared guide
Collections Papers kept together with notes and tags, edited with others, chatted with as a whole; preprints matched with their published versions, an email when a paper is published or retracted; ⭐ comparison table and open questions guide

Follow your field

Tool What it does Guide
Daily digest New arXiv, bioRxiv, medRxiv and journal papers of your fields every morning, ranked by your research profile and votes, with a line for researchers and a web page per email guide
Saved searches Every new paper of the daily announcements matching a search (plurals, "quotes", -word, OR, prefix*), ranked, by email, in the digest or by RSS. One watch free, five with Premium guide
Rising topics Topics rising each week, field by field, from several teams, with their history; "Is my topic rising?" for your own words guide
Weekly letters An article per field each week on the papers that matter beyond it, every number checked against the abstracts; web, RSS, email guide
Scoop watch ⭐ Describe a project in progress: prior art, competitors, and an email the day a new paper comes close to it guide
Citation alerts ⭐ Who cites your papers and what they do with them, citing sentence included, self-citations apart guide
Who works on it? ⭐ People and institutions signing recent papers on a topic (first, last, corresponding author), their approaches, referees without your co-authors, new names monthly guide
Research placements ⭐⭐ For students: who signs recent papers on a topic, their team and funding, readings, a first email and reminders guide

Write and submit

Tool What it does Guide
Press kit ⭐⭐ By role: a draft release and the questions journalists will ask (authors), strengths and weaknesses (commentators), angles and wording (journalists), every quote checked against the paper, outside commentators suggested, PDF and Markdown guide
Literature review ⭐⭐ From a research question: 15 to 30 founding and recent papers grouped by approach, with a referenced synthesis
What did I miss? ⭐ Papers close to your draft that it does not cite
Bibliography check ⭐ Retracted papers, preprints published since, outdated versions, citations the cited abstract does not support (.bib and .tex)
Zotero, Notion, Obsidian BibTeX, RIS and Markdown exports; papers sent to Zotero with their summary

Present and meet

Tool What it does
Journal club ⭐⭐ Slides with the paper's open-licensed figures, strengths, limitations and discussion questions; edited in the browser, exported to PDF or PowerPoint
Conference companion ⭐⭐ The talks of a conference program that matter for your research, and the people to meet

Literature reviews, bibliography checks, uncited-paper searches, topic maps and conference programs can be shared with a supervisor or co-authors through a read-only link (90 days, stopped by the owner).

Stack

Django 5.2 served by Daphne (ASGI), Channels websockets over Redis, PostgreSQL, on Heroku. Python 3.12. OpenAI models for text, embeddings and speech; paper metadata and search from arXiv, OpenAlex, Crossref, Semantic Scholar, NASA ADS, OpenReview, ORCID, bioRxiv and medRxiv. Stripe for Premium and Premium+.

Code map

Area Modules (summarizer/)
Pages, search views.py, homepage.py, unified_search.py (arXiv and journals at once), search_filters.py, sitemaps.py, guides.py, tool_list.py (the tools page and menu)
Paper text and sources paper_source.py (arXiv HTML, then PDF), sources.py (DOI, bioRxiv, medRxiv, OSF, HAL, Europe PMC, OpenAlex), publication_status.py, bibliography.py
Summaries consumers.py (websocket), assistant.py, keypoints.py, summary_text.py, reading.py (other reader or language), evidence.py (claims found in the text), generated.py (background results polled by the page)
Chat chat_page.py, chat_table.py (comparison tables), chat_figures.py, chat_vision.py, comparison.py
Collections library.py, collection_tools.py, questions.py, publication_alerts.py, exports.py (BibTeX, RIS, Markdown, Zotero)
Following a field digest.py, digest_web.py, digest_bundle.py, saved_searches.py, trends.py, trends_web.py, trend_sources.py, letters.py, audio.py (read aloud), synthesis.py
Research tools scoops.py, citations.py, changes.py (versions), teams.py, students.py, student_papers.py, student_sources.py, missed.py, refcheck.py, literature.py, presskit.py, presskit_pdf.py, slides.py, slides_pptx.py, conference.py, result_share.py
Accounts and billing accounts.py (email links, Google sign-in, bot checks), access.py (quotas, never trusts the browser), billing.py (Stripe), premium_tools.py, reactivation.py
Operations usage.py (AI tokens and cost by task, model, day and user), activity.py (daily staff page), loadshed.py (503 past 14 requests in flight), threadwatch.py, cache.py, canonical_host.py, mailcheck.py

Local setup 💾

python3.12 -m venv venv
venv/bin/pip install -r requirements.txt
export SECRET_KEY=dev OPENAI_KEY=sk-...
venv/bin/python manage.py migrate
venv/bin/python manage.py runserver

Websockets need Redis on 127.0.0.1:6379 (brew services start redis).

Tests: venv/bin/python manage.py test summarizer and node --test tests/*.test.cjs.

Translations: French strings live in locale/fr/LC_MESSAGES/django.po; compile them with python manage.py compilemessages. Guides are Markdown in content/guides/{en,fr}/, copied into the database with python manage.py import_guides.

Configuration (Heroku config vars)

Variable Purpose
SECRET_KEY, ON_HEROKU, SITE_URL Django secret key, production settings, public address
DATABASE_URL, REDISCLOUD_URL Set by the Postgres and Redis Cloud add-ons
OPENAI_KEY OpenAI API key
SECRETCMTA SMTP password (outgoing email)
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET Google sign-in
OPENALEX_API_KEY Optional, free: raises the OpenAlex daily budget and reads full texts OpenAlex keeps
ADS_TOKEN, S2_API_KEY NASA ADS and Semantic Scholar, sources of the citation alerts
SCOOP_DRAFT_KEY Encrypts the scoop watch's kept drafts
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_PRICE_* Premium and Premium+ (monthly, yearly, EUR and USD); closed while unset
UMAMI_WEBSITE_ID, SENTRY_DSN Optional analytics and error reporting

Umami events (static/summarizer/js/funnel.js) carry only allowlisted language, period, placement and tool identifiers, never queries, manuscript text or email addresses. Stripe webhooks and UserPlan remain the source of truth for subscriptions.

Deployment and scheduled jobs

git push heroku master; the release phase of the Procfile applies migrations.

One hourly Heroku Scheduler job, python manage.py send_digest, sends the digests that are due, then counts the day's terms for the rising topics, writes the weekly letters and sends scoop, citation, version, publication, saved-search and topic-map alerts and research placement reminders, within what is left of the hourly email budget.

Other commands:

Command Purpose
letters_write Write the weekly letters of a week now, or print what they would hold
trends_backfill, trends_calibrate Count past weeks for the rising topics; print rising terms with their statistics
scoop_calibrate, citations_calibrate, teams_calibrate, students_calibrate Run a tool on sample inputs and print what it counts and why, to check thresholds (they write nothing)
digest_stats Click-through rate by rank, votes and unsubscriptions of the digests
embed_papers Embed summarized papers that have none; --rescore recomputes closest papers
import_guides Copy the Markdown guides into the database
send_reactivation, suppress_emails, announce_tools Account activation reminders, bounced addresses, announcement of new tools

Stripe webhook: https://www.summarizepaper.com/stripe/webhook/ with checkout.session.completed and customer.subscription.created, .updated and .deleted.

Contributors :octocat:

Developed by ✨ Quentin Kral ✨. Questions and suggestions are welcome.

License 📃

MIT License, see the LICENSE file.

Popular repositories Loading

  1. summarizepaper summarizepaper Public

    AI tools for researchers: summaries and a chat that answer from the full text of papers (arXiv, bioRxiv, medRxiv, journals), collections with sourced comparison tables, daily digest, saved searches…

    Python 314 46