Multi-stage academic paper review using the OpenJudge PaperReviewPipeline:
bash
# Install OpenJudge
pip install py-openjudge
# Extra dependency for paper_review
pip install litellm
pip install pypdfium2 # only if using vision mode (use_vision_for_pdf=True)
InfoRequired?NotesPaper file pathYesPDF or .tar.gz/.zip TeX packageAPI keyYesEnv var preferred: OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.Model nameNogpt-5.2, anthropic/claude-opus-4-6, dashscope/qwen-vl-plus. See Model selection belowDisciplineNoIf not given, uses general CS/ML-oriented promptsVenueNoe.g. "NeurIPS 2025", "The Lancet"InstructionsNoFree-form reviewer guidance, e.g. "Focus on experimental design"LanguageNo"en" (default) or "zh" for Simplified Chinese outputBibTeX fileNoRequired only for reference verificationCrossRef emailNoImproves API rate limits for BibTeX verification
File type is auto-detected: .pdf → PDF review, .tar.gz/ .zip → TeX review, .bib → BibTeX verification.
bash
# Basic PDF review
python -m cookbooks.paper_review paper.pdf
# With discipline and venue
python -m cookbooks.paper_review paper.pdf \
--discipline cs --venue "NeurIPS 2025"
# Chinese output
python -m cookbooks.paper_review paper.pdf --language zh
# Custom reviewer instructions
python -m cookbooks.paper_review paper.pdf \
--instructions "Focus on experimental design and reproducibility"
# PDF + BibTeX verification
python -m cookbooks.paper_review paper.pdf \
--bib references.bib --email your@email.com
# Vision mode (for models that prefer images over text extraction)
python -m cookbooks.paper_review paper.pdf \
--vision --vision_max_pages 30 --format_vision_max_pages 10
# TeX source package
python -m cookbooks.paper_review paper_source.tar.gz \
--discipline biology --email your@email.com
# TeX source package with Chinese output and custom instructions
python -m cookbooks.paper_review paper_source.tar.gz \
--language zh --instructions "This is a short paper, be concise"
# Verify a standalone BibTeX file
python -m cookbooks.paper_review --bib_only references.bib --email your@email.com
FlagDefaultDescriptioninput (positional)—Path to PDF, TeX package, or .bib file--bib_only—Path to .bib file for standalone verification (no review)--model``gpt-4oModel name--api_keyenv varAPI key--base_url—Custom API endpoint — must end at /v1, not /v1/chat/completions (litellm appends the path automatically)--discipline—Academic discipline--venue—Target conference/journal--instructions—Free-form reviewer guidance--language``enOutput language: en or zh``--bib—Path to .bib file (for PDF review + reference verification)--email—CrossRef mailto for BibTeX check--paper_namefilename stemPaper title in report--outputautoOutput .md report path--no_safetyoffSkip safety checks--no_correctnessoffSkip correctness check--no_criticalityoffSkip criticality verification--no_biboffSkip BibTeX verification--visiononUse vision mode (requires pypdfium2); enabled by default--vision_max_pages``30Max pages in vision mode (0 = all)--format_vision_max_pages``10Max pages for format check (0 = use --vision_max_pages)--timeout``7500API timeout in seconds
Review score (1–6):
Correctness score (1–3):
BibTeX verification:
verified: found in CrossRef/arXiv/DBLPsuspect: title/author mismatch or not found — manual check recommendedThis pipeline uses litellm for model calls. Provider prefixes are handled automatically by the pipeline — see the table below.
IMPORTANT: The model MUST support multimodal (vision) input. PDF review uses vision mode
( --vision) to render pages as images, which requires a vision-capable model. Text-only models
will fail or produce empty reviews.
The --model value uses a provider/model-name convention so the pipeline knows
which API endpoint to call. The table below shows the exact string to pass:
Provider--model valueEnv varNotesOpenAIgpt-5.2, gpt-5-mini, …OPENAI_API_KEYNo prefix needed; gpt-5.2 is the current flagship vision model; check OpenAI models for the latestAnthropicanthropic/claude-opus-4-6, anthropic/claude-sonnet-4-6, …ANTHROPIC_API_KEYUse anthropic/ prefix; claude-opus-4-6 is the current flagship; check Anthropic models for the latestDashScope (Qwen)dashscope/qwen-vl-plus, dashscope/qwen-vl-max, …DASHSCOPE_API_KEYUse dashscope/ prefix; the pipeline auto-routes to DashScope’s OpenAI-compatible endpointCustom endpointbare model name--api_key + --base_urlUse the model name your endpoint expects; no prefix needed when --base_url is set
Note on prefixes: The
dashscope/andanthropic/prefixes are interpreted by the pipeline itself — do not add them to the actual API key or base URL. For OpenAI models the bare model name (e.g.gpt-5.2) is sufficient.
If the user does not specify a model, choose one based on available API keys:
DASHSCOPE_API_KEY set → use dashscope/qwen-vl-plus (vision-capable)OPENAI_API_KEY set → search web for the latest vision-capable OpenAI model and use it (currently gpt-5.2)ANTHROPIC_API_KEY set → search web for the latest vision-capable Anthropic model and use it with anthropic/ prefix (currently anthropic/claude-opus-4-6)Vision mode is enabled by default for PDF review. Pages are rendered as images, which
preserves formatting, figures, and tables. To disable, pass --no_vision (not recommended).
The model must support multimodal (vision) input.
PipelineConfig options: reference.mdCRITICAL: When the pipeline fails with an API error, you MUST diagnose and fix the root cause. Do NOT fall back to reading the PDF as plain text yourself and calling the API manually — this bypasses the entire review pipeline and produces incorrect, incomplete results.
Diagnose by reading the full error message, then follow the checklist below:
echo $DASHSCOPE_API_KEY — must be non-empty.--model and re-run.--base_url ending with /v1/chat/completions instead of /v1.
litellm appends the path automatically — strip everything after /v1.--vision.--base_url or switch to a vision-capable model and re-run.--base_url points to the wrong host or port.curl <base_url>/models -H "Authorization: Bearer <key>"--base_url to the reachable endpoint and re-run.--timeout (default 7500 s) or reduce --vision_max_pages.Never summarise or interpret the paper yourself as a substitute for a failed pipeline run.