← Use cases

Multimodal Jev

Jev went multimodal with jev-1.14.0: a decide call can now carry images alongside your text state, and a new Box question type returns where a described target sits in a picture. It's still a decision model — you get back typed, calibrated values, not a paragraph — only now the context it judges can include what's in an image. These are opt-in preview features: you pick the model and send one header, and nothing changes for your existing text calls.

Multimodal Jev doesn't turn Jev into an image generator or a vision-language chatbot. Jev is TypeSafe AI's System One model: you hand it state plus one or more typed questions, and it returns structured values — choice, score, noul, and now box — in a single non-autoregressive parallel pass. "Multimodal" here means the state it reasons over can include images, so the same calibrated decide call can judge a photo, a screenshot, or a scanned document, not just text.

image + state box Jev 1.14.0 vision · box box {top,left,     right,bottom} present  noul 0.97 typed answer + confidence
Send an image in the assets map plus typed questions; Jev 1.14.0 returns a bounding box for a described target and a calibrated yes/no for whether it's present — one typed round trip, confidence attached.

What's new in Jev 1.14

jev-1.14.0 (also reachable as jev-preview) is the version that adds the vision path. It introduces the box question type and is required for it; images themselves are accepted by both jev-1.13 and jev-1.14. The long-context ceiling also lifts in this line. Everything here is marked preview by TypeSafe — the field and header names are theirs, and the exact shapes and limits may still move — so pin the version explicitly rather than relying on jev-latest if you depend on vision.

Send an image

Put each image in a top-level assets map keyed by a reference string, then mention that reference from state, a question's instructions, or its criteria. Over HTTP an asset is a base64 payload with a format; you opt in with the TypeSafe-Danger-Zone-Images header — without it the request is rejected. Through this site's gateway you send exactly the same request you'd send to TypeSafe directly; the danger-zone header is forwarded verbatim.

curl https://jevtypesafeai.com/api/v1/decide \
  -H "Authorization: Bearer $JEV_KEY" \
  -H "Content-Type: application/json" \
  -H "TypeSafe-Danger-Zone-Images: true" \
  -d '{
    "model": "jev-1.14.0",
    "state": { "photo": "shot" },
    "assets": {
      "shot": { "type": "image", "data_base64": "<base64 jpg>", "format": "jpg" }
    },
    "questions": {
      "tidy": { "type": "noul", "instructions": "Is the kitchen in `photo` tidy and free of hazards?" }
    }
  }'

The Box question — locate something in an image

A box question answers where, not whether. It returns a box with top / bottom / left / right as 0–1 fractions measured from the top-left corner, plus a confidence. It always returns a box — there is no "not found" answer — so pair it with a noul question that checks the target is actually present before you trust the coordinates. box requires jev-1.14.0 (or jev-preview) and the same images header.

// Locate a target in an image, and check it's really there first.
const res = await fetch("https://jevtypesafeai.com/api/v1/decide", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.JEV_KEY}`,   // jv_live_...
    "TypeSafe-Danger-Zone-Images": "true",            // forwarded verbatim
  },
  body: JSON.stringify({
    model: "jev-1.14.0",                               // box needs 1.14.0 / jev-preview
    state: { photo: "shelf" },
    assets: { shelf: { type: "image", data_base64: imgB64, format: "png" } },
    questions: {
      present: { type: "noul", instructions: "Is there a red mug in `photo`?" },
      where:   { type: "box",  instructions: "the red mug in `photo`" },
    },
  }),
});
const { answers } = await res.json();
if (answers.present.noul > 0.8) crop(answers.where.box); // {top,bottom,left,right}, 0–1

Opt-in headers, model, and limits

What it costs

Images are billed as ordinary input tokens — the same per-token rate as text, with output free. A single image decision is still a fraction of a cent; a client-side character count won't estimate image tokens well, so the reservation is a floor that reconciles to real usage after the call. For current per-million rates (they fall as your prepaid pack gets larger) see the pricing page.

FAQ

Is Jev multimodal?

Yes, as of jev-1.14.0. A decide call can carry images in a top-level assets map, and the new box question type locates a described target in an image. It's a preview capability you opt into per request with the TypeSafe-Danger-Zone-Images header; plain text calls are unchanged.

What is Jev 1.14?

jev-1.14.0 (also addressable as jev-preview) is the Jev version that adds the vision path: the box question type, which it requires, plus the lifted long-context ceiling. Images are accepted by both jev-1.13 and jev-1.14. Pin the version explicitly if your code depends on these preview features rather than using jev-latest.

How do I send an image to Jev?

Put the image in a top-level assets map keyed by a reference name, reference that name from your state or a question, and send the header TypeSafe-Danger-Zone-Images: true. Over HTTP each asset is { type: "image", data_base64: "…", format: "png"|"jpg"|"jpeg" }. Without the header the request is rejected.

What does the box question return?

A box with top/bottom/left/right as 0–1 fractions from the top-left corner, plus a confidence. It always returns a box — there's no "not found" — so pair it with a noul question ("is the target present?") and only trust the coordinates when that confidence is high. box needs model jev-1.14.0 or jev-preview.

Does using images cost more?

Images are metered as ordinary input tokens at the same rate as text, with output free, so a single image decision is still a fraction of a cent. Because exact image tokenization happens on the model, the charge is reserved as a floor and reconciled to real usage; see the pricing page for current per-million rates.

See also: Jev for computer use · Jev context window & long context · Docs — Vision & advanced · API reference · Pricing

Put an image in front of a decision

Grab a jv_live_ key, pin jev-1.14.0, send the images header, and get a typed, calibrated answer about what's in a picture — one round trip.

▶ Try Jev freeGet an API key →
Multimodal Jev — image input & the Box question (Jev 1.14) · Jev by TypeSafe AI