jevextract
Grounded extraction where code proposes spans with exact offsets and Jev only classifies each one; a LangExtract alternative.
Overview
jevextract does information extraction that cannot hallucinate. You describe what to extract in a YAML schema; deterministic code enumerates candidate spans directly from the text, and Jev only chooses which schema class each candidate belongs to, or none, with a Choice, plus a Noul per sentence-level class. Every extraction comes back with its class, exact character offsets, a confidence and closed-set attributes, and is a substring of the document by construction, so no alignment step can fail. Close calls get a needs_review flag and runner-up classes.
It is positioned as an open-source alternative to Google's LangExtract and ships a bilingual benchmark (jx-bench) and a paper comparing it with LangExtract, an LLM-JSON baseline and GLiNER. The README reports $1.05 to $1.50 per 1,000 documents and a median of 0.6 to 1.1 seconds per document, versus $13 to $28 and 7 to 14 seconds for LangExtract on Gemini 3.5 Flash; a listing notes the trade-off of lower F1 (84.2 versus 88.5 on jx-bench). One typed request is made per sentence, with sentences processed in parallel. MIT licensed with CI.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which schema class does this candidate span belong to, or none? | — |
| Yes / no | Does this sentence express sentence-level class X? | — |
How it works
- Define a YAML schema of classes and attributes
- Code enumerates candidate spans with offsets
- Jev classifies each candidate per sentence in parallel
- Keep answers above per-class thresholds; flag close calls
Strengths
- Every extraction grounded in the source
- Much lower cost and latency than LangExtract per the README
- Bilingual benchmark and paper
Caveats
- Lower F1 than LangExtract on its benchmark per the listing
- Recall limited to spans code proposes
Getting started
pip install jevextract, then `jx.extract(text, "schema.yaml")`.At a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- Library
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Information extraction: LangExtract alternative where code proposes candidate spans with exact offsets and Jev answers one `Choice` per span (a schema class or none) plus a `Noul` per sentence-level class, keeping answers above a per-class threshold and flagging close calls for review, with a published benchmark measuring 10–26× lower cost than LangExtract on Gemini 3.5 Flash but lower F1 (84.2 vs 88.5 on its bilingual jx-bench).
yibie/awesome-jevGrounded information extraction that cannot hallucinate: code proposes spans, Jev decides. An open-source alternative to LangExtract, with a bilingual benchmark and paper.
logicrw/awesome-jev-projectsOpen-source alternative to LangExtract: code proposes candidate spans with exact offsets and Jev only decides each one's schema class with a Choice, plus a Noul per sentence-level class, so every extraction is grounded in the source; ships a bilingual benchmark and paper comparing it with LangExtract, an LLM-JSON baseline and GLiNER on quality, latency and cost.
hellogumbo/awesome-jev
Frequently asked questions
Can it hallucinate extractions?
No, every extraction is a substring of the document proposed by code.
How does it compare with LangExtract?
Much cheaper and faster per the README, with somewhat lower F1 per the listing.
What does Jev decide?
Which class each candidate span belongs to, or none.
Related projects
FGV Direito SP experiment comparing Jev with Gemini 3.8 Flash and GPT-5.6 Luna for annotating 12 variables in 120 TJSP court rulings.
ProjectresearchPythonZero-shot named entity recognition that turns Jev's Choice answers into entity spans via nominate, verify and boundary questions.
LibrarybetaPythonZero-shot run of Jev 1.13 on all seven LexGLUE legal tasks (23,607 examples) versus GPT-5.6 Luna, open models and fine-tuned BERT.
ProjectresearchPythonJev applied to SemEval-2026 DimABSA dimensional sentiment tasks using only typed primitives, no generation or fine-tuning.
ProjectresearchPythonLibrary, CLI and app that classify PDFs, DOCX and PPTX with Jev and split document packets at predicted boundaries.
BenchmarkbetaPythonBenchmark asking models to forecast federal motion-to-dismiss rulings from the judge's record, scored with claim-defendant Brier metrics.
BenchmarkresearchPython