Skip to content

Jev directory

Jevframe

A Python library that adds .jev accessors to pandas and Polars: ask a natural-language question per row and get labels, scores, and full probability distributions back.
Stars
21
Language
Python
License
MIT
Reading time
3 min
Published by
Community
Author
ktaletsk
Last verified
Sep 2026

About this project

jevframe is a Python library for AI text classification, sentiment analysis, and scoring in pandas and Polars DataFrames. Ask natural-language questions about each row using TypeSafe Jev and get structured results with complete probability distributions.

Quoted from the project's README. Read the full README.

Highlights

  • df.jev.noul, choice, score, and evaluate run per-row questions and return ordinary Series and DataFrames.
  • Choice and Score results carry complete probability distributions as p__ columns, and evaluate prefixes fields by question name.
  • Row order and pandas indexes, including duplicates and MultiIndexes, are preserved, and the input is never mutated.
  • Row concurrency is bounded, and responses can be cached in memory and reused across calls.
  • score returns the expected zero-based level rather than a probability, and no result is thresholded or renormalized.

Quickstart

python
import pandas as pd
import jevframe.pandas

df["dissatisfied"] = await df.jev.noul(
    "Is this customer dissatisfied?",
    state=["title", "review"],
)

topics = await df.jev.choice(
    "What is the main issue?",
    choices=["billing", "bug", "other"],
    state="review",
)

Watch out

MIT-licensed. v0 covers eager pandas and Polars only, not LazyFrame expressions; every uncached row sends its selected context to TypeSafe and needs a key.

Questions about this entry

Short answers drawn from the linked project or page.

From the Jev guides

Original write-ups on what this entry is for.

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai