Skip to main content

Multi-agent LLM tool for critically reading biomedical and pharmacology research papers

Project description

paperlab

English | Русский


English

paperlab is an open-source multi-agent LLM tool for critically reading biomedical and pharmacology research papers. Local by default, provider-agnostic, built for students and researchers.

What it does

You give paperlab a PDF of a research paper. Four AI agents read it in parallel:

  • Summarizer — what the paper actually claims
  • Methodologist — study design, CONSORT/PRISMA/STROBE compliance, reproducibility
  • Critic — statistical weaknesses, p-hacking, cherry-picking, conflicts of interest
  • Contextualizer — where this fits in the field, related work

You get a structured report in Markdown or JSON. Two modes:

  • rigorous — strict peer-review style critique for postgrads and researchers
  • learning — gentle explanation for undergraduates reading their first papers

Two output languages: English or Russian.

Install

Requires Python 3.11 or 3.12. Python 3.14 is not yet supported (some transitive dependencies do not build on 3.14).

pipx install --python python3.12 paperlab
paperlab init

Alternative — install with pip inside a project venv:

python3.12 -m venv .venv && source .venv/bin/activate
pip install paperlab
paperlab init

Install from source:

git clone https://github.com/zhakhatoff/paperlab.git
cd paperlab
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
paperlab --help

paperlab init creates ~/.paperlab/ with a default config.toml and a sessions/ subdirectory. Run with --force to overwrite an existing config.

pipx broken on Python 3.14? If pipx install fails with ensurepip errors, your pipx shared venv is running on Python 3.14. Pin it to 3.12:

rm -rf ~/.local/pipx/shared
PIPX_DEFAULT_PYTHON=$(brew --prefix python@3.12)/bin/python3.12 pipx ensurepath

CLI

Command What it does
paperlab version Print installed version
paperlab init [--force] Create ~/.paperlab/{config.toml, sessions/}
paperlab read <paper.pdf> Run the 4-agent review (see flags below)
paperlab list Table of past sessions
paperlab show <session-id> [--format markdown|json] Reprint a past session
paperlab config get <key> Read provider / model / mode / lang / extra.<k>
paperlab config set <key> <value> Update config.toml
paperlab web Launch Gradio dashboard

paperlab read flags:

Flag Values Default
--mode rigorous, learning from config
--lang en, ru from config
--provider see table below from config
--model any model string the provider accepts from config
--format markdown, json markdown
--output file path stdout
paperlab read paper.pdf --mode rigorous --lang en
paperlab read paper.pdf --mode learning --lang ru --provider ollama --model qwen2.5:7b
paperlab read paper.pdf --format json --output report.json

Providers

paperlab uses LiteLLM under the hood. Supported provider names:

Name Where it runs Auth Model string example
ollama Local (default) none qwen2.5:7b, llama3.2:3b
openrouter Cloud OPENROUTER_API_KEY openrouter/anthropic/claude-3.5-sonnet
together Cloud TOGETHER_API_KEY together_ai/meta-llama/Llama-3-70b-chat-hf
groq Cloud GROQ_API_KEY groq/llama-3.1-70b-versatile
gemini Cloud GEMINI_API_KEY gemini/gemini-1.5-pro
anthropic Cloud ANTHROPIC_API_KEY claude-3-5-sonnet-20241022
openai Cloud OPENAI_API_KEY gpt-4o
custom Any OpenAI-compatible endpoint as needed LiteLLM convention
fake In-process test double none any

Switch globally with paperlab config set provider <name> or per invocation with --provider.

Config

paperlab config get provider          # print current value
paperlab config set provider openai   # update config.toml
paperlab config set model gpt-4o
paperlab config set extra.base_url http://localhost:11434

Config is stored in ~/.paperlab/config.toml (or $PAPERLAB_HOME/config.toml).

Privacy

Everything runs locally. PDFs never leave your machine unless you explicitly configure a cloud provider. History is stored in ~/.paperlab/sessions/ as JSONL — grep, back up, delete freely.

Contributing

See CONTRIBUTING.md.

License

MIT


Русский

paperlab — open source инструмент для критического чтения биомедицинских и фармакологических научных статей с помощью команды ИИ-агентов. Локальный по умолчанию, поддерживает разных провайдеров, сделан для студентов и исследователей.

Что делает

Вы даёте paperlab PDF научной статьи. Четыре агента читают её параллельно:

  • Summarizer — что статья реально утверждает
  • Methodologist — дизайн исследования, соответствие CONSORT/PRISMA/STROBE, воспроизводимость
  • Critic — статистические слабости, p-hacking, cherry-picking, конфликты интересов
  • Contextualizer — место в поле, связь с литературой

Получаете структурированный разбор в Markdown или JSON. Два режима:

  • rigorous — жёсткая критика в стиле peer-review для аспирантов и исследователей
  • learning — мягкий разбор для студентов, читающих первые статьи

Два языка вывода: английский или русский.

Установка

Требуется Python 3.11 или 3.12. Python 3.14 пока не поддерживается (часть транзитивных зависимостей не собирается на 3.14).

pipx install --python python3.12 paperlab
paperlab init

Или через pip в проектном venv:

python3.12 -m venv .venv && source .venv/bin/activate
pip install paperlab
paperlab init

Из исходников:

git clone https://github.com/zhakhatoff/paperlab.git
cd paperlab
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
paperlab --help

pipx падает на Python 3.14? Если pipx install валится с ошибкой про ensurepip, у pipx общий venv на Python 3.14. Перегони его на 3.12:

rm -rf ~/.local/pipx/shared
PIPX_DEFAULT_PYTHON=$(brew --prefix python@3.12)/bin/python3.12 pipx ensurepath

Команда paperlab init создаёт ~/.paperlab/ с дефолтным config.toml и поддиректорией sessions/. Флаг --force перезаписывает существующий конфиг.

Использование

paperlab read paper.pdf --mode rigorous --lang ru
paperlab read paper.pdf --mode learning --lang en --provider ollama --model qwen2.5:7b
paperlab list                    # история разборов
paperlab show <session-id>       # открыть прошлый разбор
paperlab web                     # веб-интерфейс в браузере (фаза 8)

Формат вывода:

paperlab read paper.pdf --format markdown          # по умолчанию
paperlab read paper.pdf --format json --output report.json

Провайдеры

Работает с любым из этих без изменений в коде:

  • ollama (локально, по умолчанию, бесплатно)
  • openrouter (единый доступ к GPT, Claude, Gemini, Llama и т.д.)
  • together, groq, gemini, anthropic, openai
  • custom (любой OpenAI-совместимый endpoint)

Переключение: paperlab config set provider ollama или флаг --provider при запуске.

Конфигурация

paperlab config get provider          # показать текущее значение
paperlab config set provider openai   # обновить config.toml
paperlab config set model gpt-4o
paperlab config set extra.base_url http://localhost:11434

Конфиг хранится в ~/.paperlab/config.toml (или $PAPERLAB_HOME/config.toml).

Приватность

Всё работает локально. PDF не покидает вашу машину, если вы явно не настроили облачного провайдера. История хранится в ~/.paperlab/sessions/ в формате JSONL — можно грепать, бэкапить, удалять.

Участие в разработке

См. CONTRIBUTING.md.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paperlab-0.1.2.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paperlab-0.1.2-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file paperlab-0.1.2.tar.gz.

File metadata

  • Download URL: paperlab-0.1.2.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paperlab-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ead89cb8986717e8df07c8aa096b71d39bd01ed1085992f8d077c17f030cfa5c
MD5 ad9cf1504388e43c36bf7036da690d8e
BLAKE2b-256 786b2a2886df029ed28ffa7d41a765c734f00801f669b3c526dd1a3cd26d7007

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.2.tar.gz:

Publisher: publish.yml on zhakhatoff/paperlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paperlab-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: paperlab-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paperlab-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 04119b54d5ee6e6051ca120e74250d5887c2466cedbaf30292148ed2c72a35df
MD5 b277044e659a8b00c75cffeb6caf4fa7
BLAKE2b-256 43713ead13306879e541f84ff65345a7ffa56eef0f711b78c0e2eba2700b3dbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.2-py3-none-any.whl:

Publisher: publish.yml on zhakhatoff/paperlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page