Legacy prototype — no longer maintained.
Development has moved to antenna-paper-extraction. This repository is retained for historical reference. The documentation below describes this earlier prototype; refer to the successor repository for current development and implementation status.
This repository is a local MVP pipeline for single-paper ingestion, deterministic parsing, bundle generation, indexing, and field-oriented retrieval over antenna papers.
The default retrieval baseline is now:
chunking_mode="paragraph"chunk_overlap_pct=0.15paragraph_min_chars=120paragraph_max_chars=800embedding_backend="sentence_transformer"embedding_model_name="sentence-transformers/all-MiniLM-L6-v2"fusion_strategy="weighted"weighted_alpha=0.7weighted_beta=0.3rrf_k=60
This baseline was chosen because paragraph-first chunking produced cleaner evidence units than fixed chunking, weighted fusion surfaced more extraction-ready results than RRF on the benchmark set, and the sentence-transformer backend improved retrieval quality for explicit evidence such as Rogers RT5880 and numeric spans such as the 51Ω to 55Ω input-impedance range.
Build a parsed and indexed run with the project defaults:
uv run python -m mvp.cli --input data/raw/paper_001/article.pdf --indexRun the default benchmark configuration and write the concise confirmation report:
uv run python -m mvp.benchmark --input data/raw/paper_001/article.pdf --write-default-confirmationLegacy and experimental modes are still available through config flags and named benchmark presets.
Examples:
uv run python -m mvp.cli --input data/raw/paper_001/article.pdf --index --chunking-mode fixed --embedding-backend hash
uv run python -m mvp.cli --input data/raw/paper_001/article.pdf --index --fusion-strategy rrf
uv run python -m mvp.benchmark --input data/raw/paper_001/article.pdf --config-name baseline_current
uv run python -m mvp.benchmark --input data/raw/paper_001/article.pdf --config-name paragraph_real_embedding_rrfSupported retrieval toggles:
--chunking-mode fixed|paragraph--chunk-overlap-pct--paragraph-min-chars--paragraph-max-chars--embedding-backend hash|sentence_transformer--embedding-model-name--fusion-strategy weighted|rrf--weighted-alpha--weighted-beta--rrf-k
The default dense backend is now sentence_transformer instead of hash. Existing runs indexed with the older hash default are still readable, but they should be re-indexed if you want the new default behavior, updated diagnostics, and directly comparable benchmark outputs.
The repository now includes a first extraction agent that works from an existing prepared run_dir.
It uses the current retrieval layer, calls an LLM to produce antenna_architecture_spec_mvp_v2, validates the result with Pydantic, and writes:
runs/<run_id>/outputs/antenna_architecture_spec_mvp_v2.jsonruns/<run_id>/outputs/extraction_run_report.json
Manual run command:
uv run python -m mvp.extract --run-dir runs/<run_id> --model gpt-4oThe extractor loads .env from the project root and requires:
NEW_OPENAI_API_KEYpreferred, otherwiseOPENAI_API_KEYOPENAI_API_KEYOPENAI_BASE_URLOPENAI_CHANNEL_ID
More detail is in docs/extraction_agent_mvp.md.