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.5.tar.gz (41.4 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.5-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paperlab-0.1.5.tar.gz
  • Upload date:
  • Size: 41.4 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.5.tar.gz
Algorithm Hash digest
SHA256 8d8bcd4c2b5a7224e0e4e999d7205fc92dd3aac3b0e7ab86b58537ab191b6a2b
MD5 3aa712e31d3af49f0f840b437e0c277b
BLAKE2b-256 780e3d4d1a624c43291529c7cef37f711feff5feeb73f6d33f39ca45d542495b

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: paperlab-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 34.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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3e85b9d513360a46e20e9b1ee7e6b18ddbaba2a21fe6b3753b1929d1d0127b39
MD5 1e8f40ea1e573e9fb384afb80fce5311
BLAKE2b-256 101c932c8f2075f15f2fe9d638785358b88226a1856dbfb4fa2aedcfbe64ed9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.5-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