How yrl-aida/docs_extractor works
This is a scientific-document extraction system: a user supplies a PDF, the demo orchestrates page/content parsing, article-field extraction and enrichment, then writes structured JSON. The README documents sections, references, figures and tables as output capabilities. Extractor source is partial, so the graph leaves internal substeps unspecified and does not assume wiring beyond the visible calls and documented integrations.
Main entry points: extractor.py Article extractor · demo.py Demo runner · mineru_compact.py MinerU parser · llm_extractor.py LLM extractor
Components 12
PDF parsing
- Demo runner
demo.py - MinerU parser
extractor/mineru_compact.py - Local model
model
Article extraction
- Article extractor
extractor/extractor.py
Enrichment services
- LLM extractor
extractor/llm_extractor.py - Extraction prompts
data/prompts/prompts.yaml
Structured output
- Article JSON
Other components
- PDF submitter
- Input PDF
- Parsed content
- LLM service
- GROBID service
Connections 14
- PDF submitter → Demo runner: starts extraction
- PDF submitter → Input PDF: provides PDF
- Demo runner → MinerU parser: calls parse_doc
- MinerU parser → Input PDF: reads
- MinerU parser → Local model: uses model
- MinerU parser → Parsed content: returns content list
- Demo runner → Article extractor: calls extraction
- Parsed content → Article extractor: supplies parsed content
- Article extractor → LLM extractor: requests extraction
- LLM extractor → Extraction prompts: reads prompts
- LLM extractor → LLM service: sends prompt
- Article extractor → GROBID service: requests author data
- Demo runner → Article extractor: calls JSON dump
- Article extractor → Article JSON: writes result