Skip to content

Article

Jev Functions in Sail

LakeSail built five Jev functions into Sail's SQL, so Spark SQL and DataFrame queries can ask typed questions about every row, with calls overlapping in the Rust engine behind one in-flight limit per worker.
Format
Article
Reading time
3 min
Published by
Community
Author
Shehab Amin and Everett Roeth (LakeSail)
Last verified
Oct 2026

Highlights

  • Five functions ship in the engine: jev_noul, jev_choice, jev_score, jev_system_one, and jev_models, with nothing extra to install.
  • All Jev calls on a worker share one in-flight request limit, eight by default, and adding workers raises it up to your account's rate limit.
  • Sail retries rate limits, server errors, and timeouts with backoff, follows Retry-After, and fails the query on a malformed response.
  • A postal-code join plus jev_noul resolved Acme Corp against ACME Corporation at 0.93 and Initech at 0.24; results are not cached between queries.
  • Jev ships in Sail 0.7.2 via pip install pysail==0.7.2, and early access needs a TYPESAFE_API_KEY set for the server and every worker.

Watch out

Vendor-authored by LakeSail, which also sells a managed Sail platform, and Jev is in early access, so a TypeSafe API key is required. The functions are Sail-specific rather than Apache Spark, each answer records the model and tokens used, and the post gives no accuracy or latency benchmarks.

Questions about this entry

Short answers drawn from the linked project or page.

Reactions & coverage

Posts, threads, and videos about this entry from around the web.

Hacker News: A MySQL plugin that filters rows by asking Jev whether a column matches a sentence.

maayanlevy-hn2 pointsA MySQL plugin that filters rows by meaning (built on TypeSafe Jev)Read the thread on Hacker News

X: jev(): Postgres WHERE clauses in plain language

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