Skip to main content

decido

Calibrated decisions from a document — on a laptop CPU or a GPU. Give Decido a document (a ticket, email, record, policy, JSON object …) and questions — yes/no, pick-one, or an ordered scale — and it returns a probability for every answer. This package runs the open Decido 1 models from the Hugging Face Hub.

  • Calibrated: probabilities you can threshold, not just a label (temperatures fitted on held-out tasks).
  • Local: runs on a laptop (no API key, no data leaves the machine); on Apple Silicon it uses the Mac GPU (Metal) automatically.
  • Deterministic: the same input gives bit-identical output every time (CPU and Mac GPU).
  • Jev-compatible: decido serve exposes the Jev 1.13 (TypeSafe "System One") HTTP API, so existing Jev clients work unchanged.

Install

pip install decido-ai      # macOS (Apple Silicon) and Linux x86_64: prebuilt, nothing to compile

NVIDIA GPU: pip install "decido-ai[gpu]" (adds torch + transformers; needs Python ≥ 3.10), then Decido(model, device="cuda").

Quick start

from decido import Decido

m = Decido("decido-ai/decido-1-fast-1.7b")      # downloads once from the Hub, then runs locally
print(m.decide(
    "Customer: I was charged twice for order 4821. Please refund one of the charges today.",
    {
        "refund":  "Is the customer asking for a refund?",                                   # yes / no
        "team":    {"q": "Which team should handle this?", "options": ["billing", "shipping", "tech"]},
        "urgency": {"q": "How urgent is it?", "scale": ["low", "normal", "urgent"]},
    },
))
# prints something like: {'refund': {'yes': 0.99, 'no': 0.01}, 'team': {'billing': 0.94, 'shipping': 0.03, 'tech': 0.03},
#     'urgency': {'low': 0.24, 'normal': 0.44, 'urgent': 0.32}}

Question formats

you write question type
"Is the customer asking for a refund?" yes / no
{"q": "Which team?", "options": ["billing", "shipping"]} pick one
{"q": "Which team?", "options": {"billing": "charges, refunds", "shipping": "delivery"}} pick one, with option descriptions
{"q": "How urgent?", "scale": ["low", "normal", "urgent"]} ordered scale
{"q": "...", "yes": "what yes means", "no": "what no means"} yes / no with definitions

m.predict({"state": ..., "questions": ...}) takes the full Jev 1.13 wire format (noul, choice with 2–255 options, score with 2–10 levels) and returns Jev-style answers (noul; choice + probabilities + confidence; score + legend). The document may be text or JSON and is treated as untrusted data (instructions inside it are not followed).

Command line and HTTP server

decido models                                                     # the family, with scores and latency
decido run decido-ai/decido-1-fast-1.7b "Customer: charged twice, refund please" \
    -q refund="Is a refund requested?" -q team="Which team?|billing,shipping,tech" -q urgency="How urgent?|scale:low,normal,urgent"
decido run decido-ai/decido-1-26b-a4b --request request.json      # wire format in, wire format out
decido serve decido-ai/decido-1-26b-a4b --port 8080 --workers 2   # POST /v1/systemone, GET /v1/models, GET /health

The server binds to 127.0.0.1 by default; set DECIDO_API_KEY to require Authorization: Bearer <key>. Jev SDK users: TypeSafeClient(base_url="http://127.0.0.1:8080"); install pip install "decido-ai[server]" so the SDK's zstd-compressed request bodies are accepted.

Models

model built on runs on six-group score (Jev 1.13 = 83.85) latency, M4 Pro: CPU · Mac GPU (1k-token document, 5 questions)
decido-1-26b-a4b Gemma-4-26B-A4B laptop (~30 GB RAM) · GPU 85.38 4.1 s · 1.1 s
decido-1-fast-1.7b Qwen3-1.7B laptop (~8 GB RAM) 73.01 0.64 s · 0.30 s
decido-1-ultra-0.6b Qwen3-0.6B laptop (~4 GB RAM) 62.16 0.41 s · 0.13 s
decido-1-max-26b-a4b Gemma-4-26B-A4B laptop (slow, ~30 GB RAM) 89.23 (GPU), most accurate ~28 s · ~11 s / question
decido-1-think-26b-a4b Gemma-4-26B-A4B GPU · laptop (slow) 88.71 (GPU) ~19 s · ~10 s / question
decido-1-xl DeepSeek-V4-Flash 4× A100 80 GB 87.25 (GPU) GPU only

Six-group score = mean over JevBench, Kev, OpenJev, Nimble, VitaminC and MASSIVE (the benchmark groups used to compare open reproductions of TypeSafe's Jev 1.13; Jev's number is its published run). Per-group results, calibration (Brier / ECE), option-order robustness, training details, disclosures and limitations are on each model card.

Platforms

  • macOS 13+ on Apple Silicon (M1–M4): prebuilt runtime included (llama.cpp). Runs on the Mac GPU (Metal) by default, 2–4× faster than CPU; device="cpu" reproduces the published CPU numbers bit for bit.
  • Linux x86_64 (glibc ≥ 2.17 — any distribution from 2014 on): prebuilt CPU runtime included.
  • Other platforms (Linux ARM64, Intel macOS, …): the runtime is compiled automatically on first use (a few minutes, once; needs a C++ compiler — cmake is installed by pip).
  • NVIDIA GPU: Decido(..., device="cuda") with the gpu extra runs the bf16 weights with transformers (Decido-1, Fast, Ultra, Think; Decido-1-Max runs on CPU / Mac GPU for now — its GPU path is being validated). Python ≥ 3.10 for the gpu and vllm extras, ≥ 3.11 for xl. Decido-1-XL: pip install "decido-ai[xl]", one node with 4× A100 80 GB.

Environment variables: DECIDO_THREADS (CPU threads), DECIDO_N_CTX (context window, default 16384), DECIDO_MAX_REQUEST_TOKENS (server cost bound: state + all questions per request), DECIDO_MAX_BODY (server: max request body in bytes after decompression, default 32 MiB), DECIDO_VERBOSE=1 (runtime logs), DECIDO_VSERVE (custom runtime binary), HF_HOME (model download location).

License

Apache-2.0. The CPU runtime links llama.cpp (MIT). Model licences: see each model card (Apache-2.0; Decido-1-XL: MIT).

Metadata

Release files for decido-ai 1.0.8

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

Source distribution (sdist)

Source distribution for decido-ai 1.0.8
File Size Uploaded Provenance Actions
decido_ai-1.0.8.tar.gz 80.4 kB Without provenance Details for decido_ai-1.0.8.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for decido-ai 1.0.8
File Interpreter ABI Platform Actions
decido_ai-1.0.8-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for decido_ai-1.0.8-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
decido_ai-1.0.8-py3-none-macosx_13_0_arm64.whl Python 3 none macOS 13.0+ ARM64 Details for decido_ai-1.0.8-py3-none-macosx_13_0_arm64.whl
decido_ai-1.0.8-py3-none-any.whl Python 3 none any Details for decido_ai-1.0.8-py3-none-any.whl

Total release size: 14.1 MB

Release files / decido_ai-1.0.8.tar.gz

Download URL decido_ai-1.0.8.tar.gz
Size 80.4 kB
Tags Source
SHA-256 checksum
How to use checksums
24ca3a0b7c4de9dc28c04d997072c23d7521414e9d4c9dedb63e45c8963812cc
BLAKE2b-256 checksum
How to use checksums
80a32f8ff12727795fd4ca36e742c571090a524351906be1a8a0849ba4dea14c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16+meta

Release files / decido_ai-1.0.8-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL decido_ai-1.0.8-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.8 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
74da2514afa534c4b7b351ec055d52af6b7cf34d897e8fca3239dda7ba1d3fb9
BLAKE2b-256 checksum
How to use checksums
7f647ad7321e138c25629c4d0a1997fcaefa665a8838eac28764a5cfdde4af9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16+meta

Release files / decido_ai-1.0.8-py3-none-macosx_13_0_arm64.whl

Download URL decido_ai-1.0.8-py3-none-macosx_13_0_arm64.whl
Size 4.1 MB
Tags Python 3 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
0aa1bc6f902c7e20ff29b768c7eecd165871304aafac4dfd0ae96eca6c619816
BLAKE2b-256 checksum
How to use checksums
cade923211fe397046bffb3411e47cb0f93480f339ee3a5fd1ba0290abc221ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16+meta

Release files / decido_ai-1.0.8-py3-none-any.whl

Download URL decido_ai-1.0.8-py3-none-any.whl
Size 91.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7fab56a7476ab9c95985cbad4bc29ad5d936dc85963aec4e6d6d6eb1d1b61a9
BLAKE2b-256 checksum
How to use checksums
226ccf32ed79e58d8659c8773cc643c6c313719e683973f552af47f20e221be2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16+meta

Security for decido-ai 1.0.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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