Run your own decision model in your cloud account
Status: early access. The deploy kit runs on AWS and Azure in our own test accounts (October 2026). You cannot install it yourself yet, and no Marketplace listing is live. To join early access, email [email protected].
OpenJevX is an open decision model for yes/no, pick-one and rating decisions on your own hardware. Deemwar is its open-source partner and helps teams train and run it. The point is not the base model. It is your model, trained on your decisions.
Where it runs: your account, always
The model runs in your cloud account. Deemwar never hosts your inference, and never sees your prompts, data or traffic.
What early-access customers will get
- The decision model served in your own cloud account, with one command per cloud:
- AWS: ECS Fargate behind a load balancer (private by default), models in your S3 bucket, CloudWatch logs.
- Azure: Container Apps with internal ingress by default, models in your Blob storage, Log Analytics.
- Google Cloud: next.
- On every cloud:
- an API key on every call;
- a health check;
- versioned models;
- switching to a new model or rolling back to the previous one without dropping requests (tested on AWS and Azure);
- one command that removes everything it created.
- Later: listings on AWS Marketplace, Azure Marketplace and Google Cloud Marketplace.
Want a model trained on your decisions?
You can train it yourself, or have us do it: training is one of our paid offers (see below). Either way the model is delivered into your deployment and runs in your account like the base model does.
Training inside your account works in our AWS test account (October 2026), still early access: - A small client checks your CSV on your machine and uploads it to your bucket. - A GPU job in your account trains a new version and checks it on held-out rows. - The endpoint switches to the new version only if it passes, with no dropped requests.
The CSV format
One row is one decision. Put the fact the rule needs in the state, ask the question, give the right answer.
| column | required | what | example |
|---|---|---|---|
state |
yes | the facts, as a JSON object or plain text | {"order_total_rs": 501} |
question |
yes | the instruction | Does the order get the discount? Orders over Rs 500 get 10% off. |
type |
no (default noul) |
noul (yes/no), choice or score |
choice |
options |
for choice and score |
a\|b\|c or a=what a means\|b=...; score levels lowest first; yes/no: empty or true=...\|false=... |
payments=billing repos\|web=frontend repos |
answer |
yes | yes/no: yes, no, true, false, 1, 0; choice: an option name; score: a level name or index (0 = lowest) |
yes |
split |
no | train, test or gate; empty = 90% train / 10% held out |
gate |
source |
no | a tag for where the row came from | shop |
How much data:
- At least 50 training rows for the first (smoke) run, and at least 34 for a full run. The training job refuses fewer.
- Keep some rows held out (split = gate or test, or leave split empty). A full run needs them.
- We recommend 20 or more rows per question. No single answer should be above 80% of a question's rows.
- Near-miss rows around every threshold (499 / 500 / 501), so the model learns the line, not the topic.
JSON inside a CSV cell: wrap the cell in double quotes and double the quotes inside. Any spreadsheet does this for you when you save as CSV.
Example rows:
state,question,type,options,answer,split,source
"{""day"": ""Thursday""}",Is this a working day? We work Monday to Thursday.,noul,true=it is a working day|false=it is a day off,yes,,hr-policy
"{""day"": ""Friday""}",Is this a working day? We work Monday to Thursday.,noul,true=it is a working day|false=it is a day off,no,,hr-policy
"{""order_total_rs"": 501}",Does the order get the discount? Orders over Rs 500 get 10% off.,noul,,yes,,shop
"{""order_total_rs"": 500}",Does the order get the discount? Orders over Rs 500 get 10% off.,noul,,no,gate,shop
We check every model on rows it never saw (your gate / held-out rows) and send you the numbers before delivering it.
What it needs
CPU only, no GPU to serve. The model is a 598 MB 8-bit ONNX file and uses about 1.6 GB of RAM once loaded. On a laptop CPU (Apple M5 Pro) we measured about 85 ms per typical decision (p50), and about 0.5 s for a long input. On AWS Fargate we measured about 0.3–1.05 s per short decision per vCPU, depending on the host CPU (Sapphire Rapids hosts are fast, Cascade Lake hosts about 3x slower). Add replicas for more throughput.
How good is the base model?
See the benchmark. Be clear-eyed: on the hard tier the base model scores at chance. That is why the product is training on your own decisions. The training book explains how, and the recipes show real calls.
Paid offers
Jev is free. The only paid offers are installation, support and training. Email [email protected] with what you want decided and roughly how many past decisions you have. The deployment itself is free; you pay only for the cloud resources in your own account.