mohit67890/imajev

Space

imajev

2

10 commits

1 linked in READMEs

updated Sep 26, 2026

See the code

README

imajev

Decisions for real-world cases. imajev reads the photos, records and text a business already has and answers in the options you set, with a probability on each and an explicit can't tell. Your system acts when it is sure and hands the rest to a person.

  • A photo read against your record, and two photos in one decision (reference vs target).
  • A trained can't tell on every answer, so an app can stop instead of guessing, and the 4B abstains on 9 of the 258 answerable ImajevBench items and answers unknown correctly on 18 of 21 (2B 4 and 5, 9B 2 and 15).
  • Open, small and local: 2B, 4B and 9B, Apache-2.0, MLX on a Mac or PyTorch on one GPU.
  • Jev's request format, now with images: POST /v1/systemone with images, unknown_probability and abstained.

This Space runs imajev-4b, the recommended default: 83.9% on ImajevBench v2.0-lite and 72.1% on JevBench's public hard split (4 option orders, calibrated), 79.7% on DecisionBench 1.0 (23,900 rows, the benchmark's own harness, every row scored), about 0.1 s per decision with one option order and 0.35 s with four on an H100 under load (slower and variable on this shared hardware). Every example on the website is a checked run. At a 90% confidence threshold it decides 58% of ImajevBench's test questions on its own and gets 97.5% of them right; the rest go to a person.

API

The Gradio endpoint systemone takes the same JSON the local server accepts at POST /v1/systemone ({"state": ..., "questions": {...}, "images": ["data:image/jpeg;base64,..."]}) and returns Jev-shaped answers. Probabilities are uncalibrated by default, as on the website; add "calibrated": true to apply the shipped calibration file.

from gradio_client import Client
client = Client("mohit67890/imajev")
print(client.predict({"state": {"ticket": "Charged twice, need a refund"},
                      "questions": {"dept": {"type": "choice", "instructions": "Which team?",
                                             "criteria": {"billing": None, "support": None}}}}, api_name="/systemone"))

When the Space runs on ordinary hardware (not ZeroGPU) it also serves a plain POST /v1/systemone route.

calibrated-probabilities
decision-model
gradio
typed-decisions
vision-language

mohit67890/imajev

Space

imajev

2

10 commits

1 linked in READMEs

updated Sep 26, 2026

See the code

README

imajev

Decisions for real-world cases. imajev reads the photos, records and text a business already has and answers in the options you set, with a probability on each and an explicit can't tell. Your system acts when it is sure and hands the rest to a person.

  • A photo read against your record, and two photos in one decision (reference vs target).
  • A trained can't tell on every answer, so an app can stop instead of guessing, and the 4B abstains on 9 of the 258 answerable ImajevBench items and answers unknown correctly on 18 of 21 (2B 4 and 5, 9B 2 and 15).
  • Open, small and local: 2B, 4B and 9B, Apache-2.0, MLX on a Mac or PyTorch on one GPU.
  • Jev's request format, now with images: POST /v1/systemone with images, unknown_probability and abstained.

This Space runs imajev-4b, the recommended default: 83.9% on ImajevBench v2.0-lite and 72.1% on JevBench's public hard split (4 option orders, calibrated), 79.7% on DecisionBench 1.0 (23,900 rows, the benchmark's own harness, every row scored), about 0.1 s per decision with one option order and 0.35 s with four on an H100 under load (slower and variable on this shared hardware). Every example on the website is a checked run. At a 90% confidence threshold it decides 58% of ImajevBench's test questions on its own and gets 97.5% of them right; the rest go to a person.

API

The Gradio endpoint systemone takes the same JSON the local server accepts at POST /v1/systemone ({"state": ..., "questions": {...}, "images": ["data:image/jpeg;base64,..."]}) and returns Jev-shaped answers. Probabilities are uncalibrated by default, as on the website; add "calibrated": true to apply the shipped calibration file.

from gradio_client import Client
client = Client("mohit67890/imajev")
print(client.predict({"state": {"ticket": "Charged twice, need a refund"},
                      "questions": {"dept": {"type": "choice", "instructions": "Which team?",
                                             "criteria": {"billing": None, "support": None}}}}, api_name="/systemone"))

When the Space runs on ordinary hardware (not ZeroGPU) it also serves a plain POST /v1/systemone route.

calibrated-probabilities
decision-model
gradio
typed-decisions
vision-language