Skip to content

jevextract

Grounded extraction where code proposes spans with exact offsets and Jev only classifies each one; a LangExtract alternative.

LibrarybetaMIT

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

TypeQuestionAnswers
ChoiceWhich schema class does this candidate span belong to, or none?—
Yes / noDoes this sentence express sentence-level class X?—

How it works

  1. Define a YAML schema of classes and attributes
  2. Code enumerates candidate spans with offsets
  3. Jev classifies each candidate per sentence in parallel
  4. 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-jev
  • Grounded 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-projects
  • Open-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.

    ProjectresearchPython
  • Zero-shot named entity recognition that turns Jev's Choice answers into entity spans via nominate, verify and boundary questions.

    LibrarybetaPython
  • Zero-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.

    ProjectresearchPython
  • Jev applied to SemEval-2026 DimABSA dimensional sentiment tasks using only typed primitives, no generation or fine-tuning.

    ProjectresearchPython
  • Library, CLI and app that classify PDFs, DOCX and PPTX with Jev and split document packets at predicted boundaries.

    BenchmarkbetaPython
  • Benchmark asking models to forecast federal motion-to-dismiss rulings from the judge's record, scored with claim-defendant Brier metrics.

    BenchmarkresearchPython