MotherDuck prompt_jev
MotherDuck prompt_jev() runs Jev choice, score, noul, and box questions in SQL on paid plans with published AG News benchmarks.
Overview
MotherDuck shipped prompt_jev() in September 2026: a SQL function that runs Jev choice, score, noul, multiple_choice, box, and bundled questions over VARCHAR or image inputs. It is available on all paid MotherDuck plans per the launch blog and PROMPT_JEV reference.
Problem: Analytics engineers need to classify, score, or gate millions of table rows without shipping text to a chat model for every line.
Built for: MotherDuck customers on paid plans who want Jev choice, score, noul, box, and multi-question batches inside SQL over DuckDB tables.
First indexed on Jev Directory: 2026-09-21
Creator and team
- Name
- Hamilton Ulmer
- Organization
- MotherDuck
- Handle
- @hamiltonulmer
How Jev is used
- Role in the product flow
- Per-row or batched Jev primitives inside SELECT pipelines: classify columns, score levels, yes/no gates, bounding-box questions, and multi-question bundles
- Primitives
- ChoiceScoreNoul
- State in
- SQL VARCHAR input and instructions, or PNG/JPEG images for box mode. Batching defaults to 32 rows per request (batch_size 1 to 64). Context limit 64k tokens for input plus questions; about 250 tokens of overhead per request per docs.
- Decision out
- Structured Jev answers per row (choice label, score level, noul, box coordinates, or question map). Per-row failures return NULL; TypeSafe 422 validation errors fail the whole query.
- Write prompt_jev(input, instructions[, choice|score|noul|multiple_choice := ...]) in SQL
- Optional: prompt_jev(images, box := ...) or prompt_jev(input, questions := {...}) for bundles
- Tune batch_size and use AS MATERIALIZED CTEs when docs warn about re-calling the model
- Text runs on jev-latest; images use jev-1.14.0 with no model parameter in SQL
prompt_jev() is MotherDuck's hosted SQL surface for Jev, distinct from catalog-only SQL experiments such as eugeneboondock-jevsql or giuliosmall-pg-typesafe. Hamilton Ulmer teased DuckDB row classification in https://x.com/hamiltonulmer/status/2100370557405667768 on September 17, 2026 (duckdb-jev-classifier in this directory); that post described about 10 seconds per 1,000 rows and has no detail page. This listing is the canonical MotherDuck product page and supersedes that teaser row in explore. Syntax covers prompt_jev(input, instructions[, choice|score|noul|multiple_choice := ...]), image box mode, and questions bundles. choice accepts 2 to 255 labels; score accepts 2 to 10 levels; multiple_choice expands into independent noul questions at threshold 0.5. Images must be PNG or JPEG with each side between 280 and 1,568 px and 8 MiB per request; the API does not resize. Box has no not-found result, so MotherDuck docs advise pairing box with a noul. dommonte-n8n-nodes-typesafe-ai and datawhalechina-jev-cookbook cover workflow and notebook patterns outside warehouses. openlayer-ai-jevals helps teams benchmark gates. Cite MotherDuck's September 21, 2026 blog (https://motherduck.com/blog/motherduck-supports-jev/?ref=jev.aitools.fyi) and the PROMPT_JEV SQL reference (https://motherduck.com/docs/sql-reference/motherduck-sql-reference/ai-functions/prompt-jev/?ref=jev.aitools.fyi).
Sourced performance claims
- On 100,000 AG News rows (4 classes), MotherDuck measured Jev at 2,484 rows/s, 89% accuracy, $0.50 per 100k rows, 40 seconds total.Source: MotherDuck blog, Sep 21 2026 (MotherDuck-measured)
- Same AG News test: gpt-4o-mini at 84 rows/s, 80% accuracy, $1.93, 19m45s; gpt-5-nano 94 rows/s, 83%, $1.58, 17m49s; gpt-5.6-luna 61 rows/s, 84%, $3.53, 27m25s; gpt-5.6-terra 52 rows/s, 88%, $37.58, 31m59s.Source: MotherDuck blog, Sep 21 2026 (MotherDuck-measured)
- Tests at 1M and 10M rows gave similar results; reproduction SQL is in the MotherDuck post.Source: MotherDuck blog, Sep 21 2026
- AI Unit throughput (input tokens only): about 345,000 rows per AI Unit for a 50-char noul, about 260,000 for a 50-char choice, about 60,000 for a 1,000-char choice or score, about 25,800 for noul plus box on one 500x334 image.Source: MotherDuck PROMPT_JEV docs
Features and stack
Features
- prompt_jev() on all paid MotherDuck plans
- choice, score, noul, multiple_choice, box, and questions modes
- Batching with batch_size 1 to 64 (default 32 rows per request)
- MotherDuck-measured AG News benchmark table through 100k rows
- AS MATERIALIZED CTE guidance to avoid duplicate model calls
Stack
- MotherDuck cloud DuckDB
- TypeSafe Jev (jev-latest text, jev-1.14.0 images)
- SQL PROMPT_JEV function
Links
FAQ
- What did MotherDuck measure on AG News?
- On 100,000 AG News rows with four classes, MotherDuck reported Jev at 2,484 rows/s, 89% accuracy, $0.50 per 100k, and 40 seconds. gpt-4o-mini scored 84 rows/s and 80% at $1.93 over 19m45s; gpt-5.6-terra scored 52 rows/s and 88% at $37.58 over 31m59s. These are MotherDuck-measured figures from their September 21, 2026 blog, not independent audits.
- How is this different from the duckdb-jev-classifier X post?
- The September 17, 2026 X teaser (https://x.com/hamiltonulmer/status/2100370557405667768) by @hamiltonulmer described early DuckDB row classification speed. prompt_jev() is MotherDuck's shipped SQL function with full docs and benchmarks; the explore row duckdb-jev-classifier now points here so the two listings do not compete.
- What happens when a row fails?
- Per-row failures return NULL. TypeSafe 422 validation errors fail the entire query. MotherDuck docs recommend AS MATERIALIZED CTEs to avoid re-invoking the model on replans.
- Is Snowflake Decision the same as Jev?
- No. Snowflake Decision is Snowflake's own decision model in private preview, not TypeSafe Jev. MotherDuck prompt_jev() calls hosted Jev models directly in DuckDB SQL.
Related learn guides
Original Jev guidance that pairs with this product pattern.
- Jev use cases
The patterns builders actually search for: moderation, routing, triage, RAG verify, and agent gates.
- Jev vs LLM classification
When to gate with System One probabilities instead of asking a chat model to label things.
Related products
Hand-picked neighbors with rich profiles or overlapping tags.