Article
CommunityJev Guides & Articles
Jev on BigQuery via Cloud Run
A Google Cloud Community walkthrough by developer advocate Jeff Nelson that calls Jev from BigQuery through a private Cloud Run adapter, turning support-ticket text into owning-team, urgency, and blocking columns for 30 fictional tickets.
- Format
- Article
- Reading time
- 2 min
- Published by
- Community
- Author
- Jeff Nelson
- Last verified
- Oct 2026
- Capabilities
- Requires API key
Highlights
- Cloud Run hosts a Python adapter that translates BigQuery's batched calls into Jev questions and returns one JSON object per ticket in an ordered replies array.
- The API key lives in Secret Manager; BigQuery remote functions reach the adapter through a Cloud Resource connection with max_batching_rows set to 5.
- Choice picks the owning team; Noul returns urgency and blocking probabilities across the 30 fictional tickets in the sample dataset.
- A 0.80 threshold on urgent_probability and blocked_probability surfaces four of 30 tickets; the Nightly import failed ticket is urgent but not blocking.
- Saving scores to a table lets queue rules change without calling Jev again; the author notes MotherDuck introduced Jev in SQL the day before.
Watch out
The sample dataset is 30 fictional tickets, thresholds are illustrative, and the post publishes no accuracy, latency, or cost measurements. The companion repository (github.com/jeffonelson/jev-bigquery-cloudrun) carries the setup guide, SQL scripts, and a two-ticket example, but the page states no licence for it, and Jev calls need a TypeSafe key.
Questions about this entry
Short answers drawn from the linked project or page.
It turns support-ticket text into queryable BigQuery columns by calling Jev through a private Cloud Run adapter: one Choice question for the owning team and Noul questions for urgency and blocking probabilities.
BigQuery remote functions invoke the adapter through a Cloud Resource connection, batching rows with max_batching_rows = 5. The adapter translates each batch into Jev questions and returns one JSON object per ticket in an ordered replies array.
In Secret Manager. The Python adapter on Cloud Run reads the key from there, so it does not appear in the BigQuery SQL or the remote function definition.
With a 0.80 threshold on urgent_probability and blocked_probability, four of the 30 fictional tickets surface; the Nightly import failed ticket is flagged urgent but not blocking, which the post uses to show the two signals differ.
Saved scores let queue rules change without calling Jev again. The post says the stored columns can be re-filtered or re-routed as priorities shift, so the model calls are paid for once.
30 fictional support tickets, a Choice question for the owning team, and two Noul questions returning urgency and blocking probabilities; answers come back with per-question probabilities in the adapter's replies array.
It notes MotherDuck introduced Jev in SQL the day before, and that a follow-up post will compare Jev with BigQuery's AI.CLASSIFY, AI.IF, and AI.SCORE; this post does not include that comparison.
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 NewsX: 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.