Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.2.1 instead.

bev-decider

Run bev-decider-0.4B, a 0.4B-parameter System One decision model. It reads a state (text or JSON) and typed questions about it, and returns calibrated probabilities in a single forward pass. It uses TypeSafe Jev's question and answer format, so a local server can stand in for the /v1/systemone API.

  • 0.4B parameters. It runs on a laptop CPU, Apple Silicon or any GPU.
  • Choice-order invariant. Options are read in parallel from the same position, so reordering them cannot change the answer.
  • Typed answers: choice (a key and probabilities), noul (P(yes)) and score (an expected level and probabilities).

See the model card for benchmarks and known weaknesses.

Install

pip install bev-decider            # library
pip install "bev-decider[serve]"   # + local /v1/systemone server

The weights (about 35 MB) and the base Qwen/Qwen3-0.6B are downloaded from the Hugging Face Hub on first use.

Python

from bev_decider import load

decider = load()  # downloads avbiswas/bev-decider-0.4B

state = {
    "message": (
        "URGENT: you charged my card twice this month. "
        "Refund the duplicate within 24 hours or I'm disputing it with my bank."
    )
}

questions = {
    "intent": {
        "type": "choice",
        "instructions": "What does the customer want?",
        "criteria": {
            "refund": "money returned or a duplicate charge reversed",
            "technical_help": "a bug, outage or integration problem",
            "cancellation": "wants to cancel or downgrade",
        },
    },
    "urgent": {
        "type": "noul",
        "instructions": "Does the message communicate time pressure or a deadline?",
    },
    "anger": {
        "type": "score",
        "instructions": "How angry is the customer?",
        "criteria": ["calm", "mildly annoyed", "frustrated", "furious"],
    },
}

answers = decider.decide(state, questions)

Output:

{
  "intent": {
    "type": "choice",
    "choice": "refund",
    "probabilities": {"refund": 1.0, "technical_help": 0.0, "cancellation": 0.0}
  },
  "urgent": {"type": "noul", "noul": 0.99},
  "anger": {
    "type": "score",
    "score": 1.88,
    "probabilities": {"0": 0.09, "1": 0.10, "2": 0.64, "3": 0.16}
  }
}

To choose a device, pass load(device="cpu"), "mps" or "cuda".

Question types:

type criteria answer
choice {key: description} (a description may be empty) choice: the most likely key, and probabilities per key
noul optional {"true": ..., "false": ...} noul: P(yes)
score a list of level descriptions, lowest first score: the expected level, and probabilities per level

Questions about the same state are batched together. States longer than 2,048 tokens are truncated; change the limit with load(max_state_tokens=...). The model was trained on states up to 1,024 tokens.

Server

bev-decider serve --port 8008
curl -s localhost:8008/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Order 1182 arrived with a cracked screen.",
  "questions": {
    "damaged": {"type": "noul", "instructions": "Was the item damaged on arrival?"}
  }
}'

POST /v1/systemone accepts {"state", "questions", "model"?} and returns {"model", "answers", "latency_ms"}. GET /v1/models describes the loaded model. The server has no authentication and binds to 127.0.0.1 by default.

Command line

echo '{"state": "...", "questions": {...}}' | bev-decider decide

Tests

uv run pytest

The tests check that the package reproduces the probabilities of the released checkpoint on 50 fixed questions, in fp32 on CPU. They also check that answers do not depend on option order and that the server works.

License

The code is Apache-2.0. The model weights are CC-BY-NC-4.0 (see the model card).

Metadata

Release files for bev-decider 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bev-decider 0.1.0
File Size Uploaded
bev_decider-0.1.0.tar.gz 37.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bev-decider 0.1.0
File Interpreter ABI Platform
bev_decider-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 52.6 kB

Release files / bev_decider-0.1.0.tar.gz

Download URL bev_decider-0.1.0.tar.gz
Size 37.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0736f7a6e279ca3490abeac8a28967c744cb0bf81f54cc17ccaafb756f09bba3
BLAKE2b-256 checksum
How to use checksums
602da9a1a19d20415615cdad03e2bac0b1e6e230aa217793ed851733453b9638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bev_decider-0.1.0-py3-none-any.whl

Download URL bev_decider-0.1.0-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
beab7fc510496847cb81b59881a2075e9734f8ee40656e4f92ebb03688d5eadd
BLAKE2b-256 checksum
How to use checksums
dfafaeb7a20fb284f915f1abb820c33f5c4274f5642d67bed46e2968a39e21ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page