Repository navigation
Releases: scienceverse/bibr
Release list
v0.7.4
What's Changed
- Update the docs for 0.7.3 by @thesanogoeffect in #202
- Document the OCR server and model settings a Docker deploy needs by @thesanogoeffect in #200
- Write only printed values to BibTeX, RIS and CSL-JSON by default by @thesanogoeffect in #203
- Stop cloud OCR early when the provider keeps answering 429 by @thesanogoeffect in #195
- Retry a busy resolver and cap its requests per process by @thesanogoeffect in #205
- Link the public JATS benchmark from the README, docs and limitations page by @thesanogoeffect in #206
- Keep a data-sharing results section from posing as the data statement by @thesanogoeffect in #207
- Refresh uv.lock to releases at least a week old by @thesanogoeffect in #208
- Give a hand-set LLM provider its own default model by @thesanogoeffect in #210
- Switch the NER reference parser to UltraBERT-150M (v5.1) and take its encoder from the checkpoint by @thesanogoeffect in #209
- Release 0.7.4 by @thesanogoeffect in #211
- Take a printed non-English references heading before weaker list guesses by @thesanogoeffect in #213
- Find sections and references in Word manuscripts without heading styles, and fix HTML/ePub text loss (#215) by @thesanogoeffect in #216
- Release 0.7.4: add the fixes merged since 10-18 to its changelog by @thesanogoeffect in #235
- Keep title-page labels such as "Corresponding Author" as .docx headings by @thesanogoeffect in #236
Full Changelog: v0.7.3...v0.7.4
v0.7.3
What's Changed
- Release 0.7.3: make setup's cloud plan work on a plain install, and fix first-run messages by @thesanogoeffect in #198
- Give the launch build's 4B results on the development sets by @thesanogoeffect in #199
- Skip the umask file-mode test on Windows by @thesanogoeffect in #201
Full Changelog: v0.7.1...v0.7.3
v0.7.1
What's Changed
- Release 0.7.1 with the retrained section classifier by @thesanogoeffect in #177
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- Update README.md - adjusted acknowledgements, added Lakens GH link by @thesanogoeffect in #83
- build(deps): bump the actions group across 1 directory with 5 updates by @dependabot[bot] in #94
- Add issue forms for wrong extractions and crash or install problems by @thesanogoeffect in #106
- build(deps): bump nvidia/cuda from 12.4.1-runtime-ubuntu22.04 to 13.4.2-runtime-ubuntu22.04 by @dependabot[bot] in #92
- build(deps): bump lmsysorg/sglang from v0.5.13.post1 to v0.5.21 by @dependabot[bot] in #93
- Release 0.7.0 with automatic fine-tuned reference review by @thesanogoeffect in #175
Full Changelog: v0.6.0...v0.7.0
Fine-tuned reference parser: Qwen3.5-0.8B balanced v1
Fine-tuned Qwen3.5-0.8B reference parser, balanced multilingual LoRA adapter (rank 32), for bibr 0.7.0 automatic NER review and the ref-llm backend.
The archive contains the actual trained adapter, tokenizer, immutable manifest and licenses. It does not contain the base model or training data. Adapter keys are converted for vLLM's Qwen3.5 language-model loader.
- Base:
Qwen/Qwen3.5-0.8B, revision2fc06364715b967f1860aea9cf38778875588b17. - Bundle SHA-256:
d827c8c7dc96df8f2ab98d722d37339ecd356b1f06c069f99bc672a35c11c650. - Adapter SHA-256:
dc7380ae4125d36134c6071c99896a616bb37e6a1ac8fc93fef5de2824ef934f. - Contract:
ref-llm-sft@1, 14 fields, temperature 0, thinking disabled. - Adapter license: AGPL-3.0-or-later. Base and tokenizer: Apache-2.0.
With bibr 0.7.0, install using bibr ref-model download --output ./models/bibr-ref-qwen35-08b-balanced-v1. Serve the adapter as a dedicated OpenAI-compatible endpoint; configure both REF_LLM_BASE_URL and REF_LLM_MODEL to enable bounded automatic review behind NER. The base model alone is not this parser. Source-grounding checks are routing signals, not calibrated confidence; incorrect field assignments remain possible.
This is a model artifact release, separate from bibr's Python package versions.
v0.6.0
What's Changed
- Add software citation metadata and Zenodo setup guidance by @thesanogoeffect in #9
- Keep a printed leading parenthetical in the extracted title by @thesanogoeffect in #41
- Classify every surface when a force push drops the diff base by @thesanogoeffect in #40
- Export schema 12.0: separate the paper from how it was extracted by @thesanogoeffect in #42
- Stop a GPU install from running ONNX models on the CPU by @thesanogoeffect in #47
- Share chew's opencv preflight with bibr batch by @thesanogoeffect in #43
- Free unused GPU memory after each ONNX run by @thesanogoeffect in #50
- Support PP-DocLayoutV4 behind the existing layout settings by @thesanogoeffect in #45
- Stamp the expected NuExtract3 pins only on the FP8 repo by @thesanogoeffect in #46
- Reconcile metrics_version across code, docs and changelog by @thesanogoeffect in #44
- Load the GPU build of onnxruntime after a gpu install by @thesanogoeffect in #48
- Keep the printed cell text in table contents by @thesanogoeffect in #54
- Run the OCR text repairs only on OCR text by @thesanogoeffect in #55
- Capture complete statistic values in eq[] by @thesanogoeffect in #56
- Fix the paper-DOI and funding-statement selection rules by @thesanogoeffect in #57
- Fix the path from setup to the first run by @thesanogoeffect in #58
- Require DOI agreement and read every citation style in reference matching by @thesanogoeffect in #59
- Re-run outages on batch resume and keep paper ids stable by @thesanogoeffect in #60
- Anchor the reference section and keep printed reference text by @thesanogoeffect in #61
- Keep sections in document order and anchor lettered appendices by @thesanogoeffect in #65
- Stop linking statistics, labels and units as citations, and keep the LLM tier to the shortlist by @thesanogoeffect in #66
- Close the loopback, export and credential-handling security gaps by @thesanogoeffect in #67
- Keep the resolved OCR identity across windows and recover Paddle tables locally by @thesanogoeffect in #68
- Isolate the test suite from global state, the network and busy ports by @thesanogoeffect in #69
- Cut CPU memory and wasted LLM calls, and gate header/footer native text by @thesanogoeffect in #70
- Fix local model server and ML utility findings from the audit sweep by @thesanogoeffect in #71
- Fix CLI and batch/evaluation tooling findings from the audit sweep by @thesanogoeffect in #72
- Fix input validation and export validation findings from the audit sweep by @thesanogoeffect in #73
- Fix client, core API, pipeline core and MCP findings from the audit sweep by @thesanogoeffect in #74
- Fix serve readiness, single-flight, metering and OCR table findings from the audit sweep by @thesanogoeffect in #75
- Fix email, date, paper-classifier and equation xref extraction findings from the audit sweep by @thesanogoeffect in #76
- Fix setup-wizard, batch and export findings from the audit sweep by @thesanogoeffect in #79
- Keep JATS structure: every ref-list, one alternative, blocks inside paragraphs, back matter by @thesanogoeffect in #80
- Send presets and config writes through the settings parser and bound numeric settings by @thesanogoeffect in #82
- Keep bracketed text in CLI status lines and hints by @thesanogoeffect in #51
- Delete bibr demo files, cap uploads while they arrive, and show metadata literally by @thesanogoeffect in #53
- Name the repair when onnxruntime is empty, and show its build in doctor by @thesanogoeffect in #49
- Skip batch run_info.json, count lost references in micro accuracy, tokenize section text in every script (metrics v5) by @thesanogoeffect in #84
- Score GROBID output with the bibr evaluator by @thesanogoeffect in #52
- Stop managed-server startup on cancellation and give Paddle Rapid-MLX its own extra args by @thesanogoeffect in #85
- Budget classifier VRAM across both models and the managed vLLM servers by @thesanogoeffect in #86
- Resolve an OCR URL to one backend in the CLI, library, ResourceManager and runtime identity by @thesanogoeffect in #87
- Select the front-matter record all records agree on instead of abstaining by @thesanogoeffect in #62
- Contain LLM and page failures per field and export a state for each field by @thesanogoeffect in #64
- Decide each metadata field once, with a receipt, and fix title and byline faults by @thesanogoeffect in #78
- Name the paper's DOI only from what it prints, and read the PDF text layer for it by @thesanogoeffect in #77
- Segment references on one line stream with pooled start evidence by @thesanogoeffect in #63
- Fix PDF structure-parsing findings from the audit sweep by @thesanogoeffect in #81
- Take a reference box's text read in another order as covered by @thesanogoeffect in #88
- Repair NER reference field boundaries from the reference text by @thesanogoeffect in #90
- Read scanned pages with OCR instead of their invisible OCR layer by @thesanogoeffect in #91
- Read the reference list from footnote citations when none is found by @thesanogoeffect in #95
- Fix native-text spaces and page box, and drop joined title translations by @thesanogoeffect in #96
- Let mistyped byline rows reach the author call and ground CJK names by @thesanogoeffect in #97
- Find the paper's own reference list and split entries holding several works by @thesanogoeffect in #98
- Fix cover and manuscript titles, note citation kinds and dash-byline references by @thesanogoeffect in #99
- Select agreeing front-matter records, drop title note marks and bound reference lists by @thesanogoeffect in #100
- Bump PyJWT to 2.14.0 for a new pip-audit advisory by @thesanogoeffect in #102
- Fix docs rough edges found in the release candidate end-to-end run by @thesanogoeffect in #101
- Make the core suite pass on macOS and Windows for the release workflow by @thesanogoeffect in #103
- Prepare the 0.6.0 release by @thesanogoeffect in #104
- Keep Windows system variables in the no-torch test's child environment by @thesanogoeffect in #105
Full Changelog: v0.5.1...v0.6.0
bibr 0.5.1
This patch release fixes six pipeline reliability issues affecting cancellation, OCR cache quality, request overrides, mixed input batches, and model cleanup.
Fixes
- Reclaim OCR and local LLM servers that finish starting after cancellation, including repeated interrupts and shutdown racing with startup.
- Keep local sentence segmentation serialized until inference finishes, preventing cancellation from releasing the model lock or unloading the model too early.
- Preserve OCR page-failure counts and warnings in cached results, and apply the current minimum success rate to cache hits.
- Allow served requests to enable reference parsing and Crossref enrichment when the deployment defaults reference parsing to off.
- Let native documents finish when layout initialization fails for PDFs in a mixed batch, including streaming runs.
- Release resident layout and segmentation models and front-matter classifier cache references when closing a pipeline.
Upgrade notes
Existing OCR cache entries are rebuilt once because older entries lack the completion evidence needed for quality checks. Cancellation waits for an active blocking operation to finish so its resources can be reclaimed safely.
python -m pip install --upgrade bibr==0.5.1bibr 0.5.0
bibr 0.5.0 brings the current scientific paper extraction pipeline to PyPI alongside its public source repository.
What is included
- PDF, DOCX, JATS XML, HTML, and ePub input, with metadata, references, text, tables, figures, and equations exported as versioned JSON.
- CLI and Python APIs, optional web demo and MCP integration, and an HTTP serving layer.
- Local reference parsing, configurable local or cloud OCR/LLM backends, and optional Crossref enrichment.
- A core installation using ONNX Runtime, with PyTorch and hardware-specific serving runtimes available as optional extras.
- Current installation documentation, extraction limitations, and preserved early project design contributions.
This remains an alpha release. Extraction quality varies by document and configuration; current evaluation is strongest for English-language social science papers. See the known limitations and full changelog.
Containers can be built from the public release source using the Docker deployment guide. Prebuilt GHCR images are not included in this release.
Install
Requires Python 3.11–3.14 and the system prerequisites.
uv init --python 3.12 paper-extraction
cd paper-extraction
uv add bibr==0.5.0
uv run bibr setup
uv run bibr chew paper.pdf -o result.jsonAn existing Python environment can use python -m pip install bibr==0.5.0. Models and runtimes may download on first use; the setup wizard detects hardware and helps configure them.