Skip to content

jevframe

pandas and Polars .jev accessor for classifying, sentiment-scoring and grading DataFrame rows with Jev probabilities.

DemobetaMIT

Overview

jevframe is a Python library for text classification, sentiment analysis and scoring inside pandas and Polars DataFrames. Importing an integration registers a .jev accessor that asks natural-language questions about each row using TypeSafe Jev and returns structured results with complete probability distributions as ordinary Series and DataFrames, preserving row order and pandas indexes. Typical uses are labelling customer reviews, categorising support tickets, flagging urgent messages and grading answers against a rubric.

The request is built only from the columns you name, nothing else in the row, and a failed row raises naming the row rather than silently becoming a null. Several questions can be evaluated together per row, with bounded async concurrency and optional caching. It uses the official typesafe-sdk for inference, requires Python 3.10+, and keeps DataFrame libraries optional. An interactive marimo notebook demo includes an anatomy-of-a-request view and runs without a key thanks to cached example results. It is on PyPI with CI and an MIT licence.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich category does this ticket or review belong to?(inferred)—
Yes / noIs this message urgent?(inferred)—
ScoreHow well does this answer meet the rubric?(inferred)—

How it works

  1. Install with pandas or Polars extra and set the key
  2. Call the .jev accessor naming input columns and questions
  3. Rows evaluated with bounded concurrency and optional cache
  4. Results returned as Series or DataFrame; failed rows raise

Strengths

  • Native DataFrame results with probabilities
  • Explicit column selection limits data sent
  • Fails loudly instead of silent nulls
  • Keyless cached demo

Caveats

  • Early 0.1.0 release
  • Costs scale with rows and questions

Getting started

uv add 'jevframe[pandas]==0.1.0' and export TYPESAFE_API_KEY.

At a glance

Type
Demo
Status
beta
Language
Python
Runtime
pandas / Polars library
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Semantic AI for pandas and Polars: classify text, analyze sentiment, and score DataFrame rows with natural-language questions and full probabilities using TypeSafe Jev.

    logicrw/awesome-jev-projects
  • Semantic AI for pandas and Polars: classify text, analyze sentiment, and score DataFrame rows with natural-language questions and full probabilities using TypeSafe Jev.

    hellogumbo/awesome-jev
  • A `.jev` accessor for pandas and Polars: the request is built from the columns you name and nothing else in the row, and a failed row raises naming the row instead of becoming a null.

    MrJev/awesome-jev

Frequently asked questions

What data is sent to Jev?

Only the columns you name for each row.

What happens if a row fails?

It raises an error naming the row rather than becoming a null.

Does it support Polars?

Yes, via the polars extra.

Related projects

  • Python and Node library that classifies Hugging Face dataset rows on typed Choice, Score and Noul dimensions using Jev.

    ProjectbetaPython, TypeScript
  • Codex plugin for batch labelling JSONL records with Jev under custom policies, with Codex reviewing uncertain labels.

    MCP serverbetaTypeScript
  • Polars library for parallel LLM inference that also asks Jev per-row Noul, Choice and Score questions through a native Rust layer.

    LibrarybetaPython
  • Live race labelling 1,000 app reviews with four typed Jev questions versus Gemini 3.8 Flash JSON output.

    AppprototypeJavaScript
  • Pipeline that ingests Google Maps restaurant reviews and classifies sentiment, five rating pillars and flags with Jev or an LLM.

    ServiceprototypeTypeScript
  • Python library with a TypeScript port that turns Jev questions into functions over lists and DataFrames, with caching and escalation.

    LibrarybetaPython, TypeScript