pplx-decider:27b-q4_K_M

83 3 hours ago

pplx-decider is a 27B decision model from Perplexity, fine-tuned from Qwen3.8-27B

vision 27b
ollama run pplx-decider:27b-q4_K_M

Details

3 hours ago

f3950da72565 · 17GB

qwen35
·
26.9B
·
Q4_K_M
clip
·
461M
·
F16
{ "num_ctx": 16384 }

Readme

pplx-decider is a 27B decision model from Perplexity, fine-tuned from Qwen3.8-27B. Give it a state (text, JSON, or images) and a set of typed questions, and it returns a calibrated probability for every answer in a single forward pass. It doesn’t generate text.

It’s compatible with the Jev and System One APIs, so it works through Ollama’s /v1/systemone endpoint and ollama run --ask.

ollama pull pplx-decider

Highlights

  • Accurate: 85.7% across 11 public benchmarks in Perplexity’s evaluation, ahead of Jev (84.5%) and its Qwen3.8-27B base (74.8%).
  • Multimodal: decide over text, JSON, or images such as screenshots, receipts, and forms.
  • One forward pass: every option of every question is scored together, with no output tokens.
  • Apache 2.0 license

What you can build

Task You define You get back
Route a request The destinations and when each applies The chosen destination and each destination’s probability
Check a condition A yes or no question True or false, and the probability of each
Grade an answer A rubric of levels The probability-weighted level and each level’s probability
Gate an agent step A condition and the agent’s proposed action Go or no-go, with the probability of each

CLI

ollama run pplx-decider --ask "Is a refund being requested?" < ticket.txt
ollama run pplx-decider --ask "Which team should handle this?" \
  --choice billing="Payments and refunds" \
  --choice technical="Outages and errors" < ticket.txt
ollama run pplx-decider --ask "How urgent is this?" \
  --level "Routine" \
  --level "Soon" \
  --level "Immediate" < ticket.txt

The state can also follow the model name instead of coming from stdin.

API

Decision models use Ollama’s /v1/systemone endpoint, documented here. Put the text you want judged in state and your questions in questions. Ollama builds pplx-decider’s prompt for you.

Field Description
model pplx-decider
state The text to judge. Use a string, or a JSON object or array for structured input.
images Optional. Base64-encoded PNG, JPEG, or WebP images shared by all questions, in request order.
questions 1 to 64 named questions. Answers come back in the same order.
keep_alive Optional. How long the model stays loaded after the request.

Every question has a type, instructions, and usually criteria:

Type criteria Answer fields
choice An object mapping each option to a description. Use null to let the option name describe itself. choice, probabilities, confidence
noul Optional. {"true": "...", "false": "..."} to describe each side. noul, the probability that the answer is true
score An array of 2 to 10 level descriptions, lowest first. Levels are numbered from 0. score (the probability-weighted level), legend, probabilities, confidence

confidence runs from 0 to 1 and shows how strongly the probabilities favor one answer. It isn’t the chance that the answer is right.

cURL

curl http://localhost:11434/v1/systemone -d '{
  "model": "pplx-decider",
  "state": "Our app crashes on launch for every user since this morning'\''s update. Please fix it now.",
  "questions": {
    "urgent": {"type": "noul", "instructions": "Is this support request urgent?"},
    "team": {
      "type": "choice",
      "instructions": "Which team should handle this request?",
      "criteria": {
        "billing": "Payments, invoices, and refunds",
        "technical": "Outages, errors, and configuration",
        "sales": "Plans and upgrades"
      }
    },
    "severity": {
      "type": "score",
      "instructions": "How severe is the customer impact?",
      "criteria": ["No impact", "Minor", "Major", "Critical"]
    }
  }
}'

Response:

{
  "model": "pplx-decider",
  "answers": {
    "urgent": {"type": "noul", "noul": 0.994},
    "team": {
      "type": "choice",
      "choice": "technical",
      "probabilities": {"billing": 0.002, "technical": 0.996, "sales": 0.002},
      "confidence": 0.994
    },
    "severity": {
      "type": "score",
      "score": 2.975,
      "legend": {"0": "No impact", "1": "Minor", "2": "Major", "3": "Critical"},
      "probabilities": {"0": 0.001, "1": 0.002, "2": 0.017, "3": 0.98},
      "confidence": 0.975
    }
  },
  "usage": {"input_tokens": 338, "output_tokens": 0}
}

Python

Use TypeSafe’s official Python SDK and point it at Ollama. The SDK requires an API key, but Ollama ignores it, so any value works.

pip install typesafe-sdk
export TYPESAFE_BASE_URL=http://localhost:11434
export TYPESAFE_API_KEY=ollama
export TYPESAFE_DEFAULT_MODEL=pplx-decider
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

questions = {
    "urgent": Noul(instructions="Is this support request urgent?"),
    "team": Choice(
        instructions="Which team should handle this request?",
        criteria={"billing": "Payments, invoices, and refunds", "technical": "Outages, errors, and configuration", "sales": "Plans and upgrades"},
    ),
    "severity": Score(instructions="How severe is the customer impact?", criteria=["No impact", "Minor", "Major", "Critical"]),
}

with TypeSafeClient(timeout=120) as client:
    result = client.system_one(state="Our app crashes on launch for every user since this morning's update. Please fix it now.", questions=questions)

print(result.choices["team"].choice)  # technical

Images

curl http://localhost:11434/v1/systemone -d '{
  "model": "pplx-decider",
  "state": "The agent wants to submit the attached form.",
  "images": ["<base64-encoded image>"],
  "questions": {
    "complete": {"type": "noul", "instructions": "Are all required fields filled in?"},
    "kind": {
      "type": "choice",
      "instructions": "What kind of document is this?",
      "criteria": {"invoice": null, "receipt": null, "contract": null, "other": null}
    }
  }
}'

Benchmarks

Accuracy reported by Perplexity, measured through the Perplexity API. See the model card for all 11 benchmarks.

Benchmark pplx-decider Jev Qwen3.8-27B
RAGTruth 88.8% 77.3% 61.5%
FinancialPhraseBank 84.2% 77.0% 75.7%
TabFact 90.6% 89.8% 78.6%
JudgeBench 78.3% 78.6% 68.9%
WinoGrande 83.3% 90.7% 73.1%
Overall (11 benchmarks) 85.7% 84.5% 74.8%

License

Apache 2.0