Loading page
Ask a model yes/no, which-one and how-much questions about a piece of text, and get typed probabilities back. No prompt engineering for JSON, no parsing a chat reply, no retry when it answers in prose.
Most classification through a chat API is a workaround: you write a prompt begging for JSON, parse what comes back, and handle the times it answers in a sentence instead. The decision endpoint skips that. You send a state (the thing to judge) and a map of typed questions, and every question comes back answered in its own type, with probabilities.
It returns judgments, not generated text. There is no chat history, no system prompt, and nothing to stream. Every question is evaluated in parallel and in isolation against the same state, so adding a fourth question does not change the answer to the first three.
Comes back as:
noul is a yes/no probability, returned as a number between 0 and 1 rather than a word, so you can set your own threshold instead of accepting the model's. choice picks one option and returns the full distribution across all of them plus a confidence, so a 0.51/0.49 split is visible instead of looking like a decision. score places the state on an ordered rubric you define, which is how you get "how much" without inventing a 1-to-10 scale in a prompt.
Question ids are yours and are not sent to the model. Answers come back under the same ids, so this maps cleanly onto a typed struct on your side.
The state does not have to be a string. An object or an array goes through as-is, which is the natural shape for a conversation, a record, or a chunk of application state you want judged without flattening it into prose first.
Two token ceilings apply, and they are not one plus a derived one. max_state_tokens bounds the state plus the single longest question; max_total_tokens bounds the state plus all questions together. A request can clear one and breach the other, so both are published per model on the model list and on GET /v1/models. Today jev-latest publishes 32,000 and 64,000.
Gondola caps a single request at 64 questions. That is ours, not Venice's, and it exists because each question is token-counted before your request is priced.
Venice serves this endpoint at both /v1/decisions and /v1/systemone, and so do we, so the TypeSafe SDK works against Gondola by changing two environment variables.