Small decisions. Interesting possibilities.Submit contentSubmit
DuckDB Jev GIF preview

DuckDB Jev

The DuckDB extension passes each ticket row's body text and constant criteria to jev_ask.

Added to Jevfast

How it uses Jev

The DuckDB extension passes each ticket row's body text and constant criteria to jev_ask. Jev returns typed SQL fields for intent and urgency, plus a severity score in the documented example. The sample orders and selects those fields in SQL. The README does not establish a host agent or an autonomous call interval.

What Jev decides

Illustrative example: classify ticket intent and urgencyExample answers · not a recorded Jev response · Source ↗
Question 1 · intent
YOUR APP
INSTRUCTION

Choose the ticket intent: refund, bug, or praise, using the documented meanings.

STATE

For each row in tickets, pass its body text to jev_ask with an intent choice among refund, bug, or praise, and an urgent yes/no question defined by whether a reply is needed today.

JEV · CHOICE
  1. refund
  2. bug
  3. praise
Question 2 · urgent
YOUR APP
INSTRUCTION

Does this need a reply today?

STATE

For each row in tickets, pass its body text to jev_ask with an intent choice among refund, bug, or praise, and an urgent yes/no question defined by whether a reply is needed today.

JEV · NOUL
YesNo

App workflow

  1. Provide credentials

    Create a DuckDB Jev secret with an API key. Endpoint and model settings are optional; without a secret, the query fails at planning time.

  2. Ask per row with constant criteria

    Call jev_ask on each ticket's body and pass one constant criteria object containing the intent choice, severity rubric, and urgent yes/no definitions. A single request carries those questions together.

  3. Use typed results in SQL

    Select the returned intent, severity, and urgency fields and order the rows. The README notes one request per row, batches rows sixteen at a time, caches identical requests for the process lifetime, and warns that repeating a function expression in WHERE and SELECT can bill twice per row.

Why it is interesting

It brings typed Jev decisions into SQL beside table or Parquet data. The criteria define both allowed answers and result column types, so downstream SQL can use an ENUM or STRUCT rather than parse generated text.