OpenAI has a decisions model that reads pictures: how it compares with Jev, GPT-6 Luna and Claude Haiku 5.5

OpenAI's Decisions API, in beta since October 6, runs GPT-6 Luna as a model that answers fixed questions about text and pictures with probabilities, for $0.10 per million input tokens and nothing for output.

Jon's agents sort and check with Jev, TypeSafe's decisions model: it answers a fixed question with a probability and writes no text. On October 14 Jev began taking pictures as an experimental feature. Eight days earlier, on October 6, OpenAI released the Decisions API in beta, a separate endpoint that runs GPT-6 Luna, its small general model, as a decisions model for text and images.

In OpenAI's guide, a request carries text, pictures or both, and a list of named questions. A question can be a predicate (a probability from 0 to 1), a choice (one of the supplied values, with a probability for each) or a score (a weighted position on ordered levels). Pictures travel inside the request as base64 data; a web address or an uploaded file's ID is not accepted. Input costs $0.10 per million tokens, with no charge for output or caching. OpenAI says answers come about ten times faster than through its Responses API.

The same model through the ordinary route answers in words. GPT-6 Luna costs the same $0.10 for input plus $0.50 per million tokens for what it writes. Claude Haiku 5.5 is priced the same for prompts up to 100,000 tokens, and five times that above. Both take a picture inline, by web address or by file ID (OpenAI, Anthropic).

Input now costs a dime or less per million tokens on all four, so the choice turns on what comes back. The checks Jon's agents run all day are a number's job, and Jev is no longer the only model that does that job on pictures. TypeSafe says its picture side is not ready for production. OpenAI's is a beta on a model that already reads pictures in general use.

On October 17 the agents asked all four which of 44 screenshots showed a broken page. A question naming each kind of breakage did not split them. A plain one did.

How to use it

A decisions model (Jev or OpenAI's), when the question is fixed, asked many times, and code acts on the answer: sort, route, gate, flag.

  • What it gives: a probability for each question, many questions in one request, no output charge.
  • What it takes away: any explanation, and anything nobody asked about.
  • The wording carries the result: see the table.
  • Set the cutoff from labelled examples, and again for each model. OpenRouter's Jev guide says probabilities differ between models on the same question.

OpenAI's, for a picture:

Send to https://api.openai.com/v1/decisions with model gpt-6-luna. Put the picture in a user message as {"type": "input_image", "image_url": "data:image/png;base64,..."}, beside an input_text part. Each question needs a type, a name and instructions. An answer can come back with type refusal, so handle it.

Through OpenRouter, send to https://openrouter.ai/api/alpha/decisions with model openai/gpt-6-luna-decisions. On October 17 the picture was read only as {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} directly in the state array: OpenAI's input_image part returned 200 and a wrong answer. The one refusal came as HTTP 502, not as an answer.

Jev, for a picture: $0.042 per million tokens, faster, and it has Box, which returns a rectangle around a thing. Pictures must be PNG or JPEG, 280 to 1,568 pixels a side. OpenRouter's guide says every picture request runs in a mode TypeSafe calls slower and less accurate.

A small general model (GPT-6 Luna or Haiku 5.5), when the answer needs words: saying what is wrong, reading text off a picture, pulling out fields, or answering an open question.

  • Both reason before answering by default. Luna accepts reasoning.effort of none.

Together: the decisions model looks at everything, and the general model looks only at what lands near the cutoff, and writes the explanation.

The 44 screenshots first tried with Jev, through OpenRouter, twice each:

               Named  Plain  Time
               of 44  of 10  secs
Jev 1.14       43     4, 3   0.23
Luna Decisions 42     4      0.28
GPT-6 Luna     44     9      2.19
Haiku 5.5      44     6, 7   1.46

Named is a question listing each kind of breakage: all four caught all 13 broken pages. Plain is "Is the web page broken?" on the ten hardest; two numbers are passes that differed. Each cost 15 to 22 cents per thousand screenshots. These are 44 pictures picked by hand, one question, one reader's labels: a gap of one or two could be chance.

What nobody knows yet

  • Whether "ten times faster" holds on pictures. The table puts it near eight, through OpenRouter from one computer.
  • What a picture costs on Decisions at OpenAI itself: its image sizing table does not list gpt-6-luna.
  • Whether the beta's price and request shape survive general availability.

What to watch

  • OpenAI's general availability for Decisions, "in the coming weeks".
  • October 21: jev-latest is due to move to 1.14.0.

Sources