pg-jev adds plain-language row filtering to Postgres via TypeSafe's Jev API
pg-jev, a PostgreSQL extension, lets SQL queries filter, rank and classify rows with plain-language conditions judged by TypeSafe's Jev model.
pg-jev is a PostgreSQL extension that lets you write semantic conditions directly in SQL, such as WHERE jev(tickets, 'the customer is angry'). It sends each row to TypeSafe's Jev model, which returns probabilities rather than generated text. If you triage a support inbox or CRM table, this replaces the usual loop of exporting rows, calling a model, parsing output and writing results back. It needs no embeddings or vector column. Avi Chawla demoed it on X against Hacker News stories, filtering, classifying by topic and ranking by technical depth.
Besides the boolean jev(), the README documents jev_prob(), jev_choice() for labels and jev_score() for ordered levels. All of them compose with ordinary SQL predicates, joins and LIMIT. Rows are batched 20 per request. The author reports 100% accuracy at that size on their 400-row tests, with accuracy dropping at 40 and 80.
The README reports one benchmark. A 2,000-row table took about 3.5 s and cost about $0.012 on the first run, and about 50 ms on a cached rerun. Treat that as a single measurement.
Requirements limit where it runs. You need PostgreSQL 14–17, plpython3u, superuser access and a TypeSafe API key. The README says managed hosts like Supabase, Neon and RDS can't run it.
The main caveat is that every judged row goes to a third-party API, and each query is a full scan by design. The README advises against using it on data you may not share. It suggests views to limit which columns are sent and jev.max_rows_per_statement to cap spend.
We found no documentation on retention or data handling, and no independent reviews.