Performance & cost
This session
- Delivery time · median
- —
- Live model compute
- —
- Live input tokens
- 0
- Est. cost · USD
- $0.00
Free examples. Switch on to measure live inference with your key and quota.
Measurement details · 0 successful requests
- Successful requests
- 0
Run an example for free to see its measurements.
Model compute is the average per measured request. Delivery time is the median browser time for successful requests, including queue, network, and retries. Cached delivery speed is not inference speed. Model compute can exceed browser time when one request processes many inputs.
Tokens come from response headers. Inference costs use $0.04 per million input tokens, before plan credits. The estimate includes live and recorded tokens at the same rate; cached examples are not charged again. Missing usage is unavailable or a partial total (≥). Demo resets keep these totals; reload to start a new session.
Classify the grid, then try your own photo.
Build with the SDKTypeScript · Python · dm1
One request from this demo. Copy it into your app.
Uses your MS_API_KEY and quota. Keep the key on your server.
npm install @cloudraker/milliseconds
export MS_API_KEY="your-api-key"import { readFile } from "node:fs/promises";
import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
// The image carries the input; the leading text is optional context.
const dm = new DecisionMachine();
const { result, usage } = await dm.classify(
await readFile("image.jpg"),
{
"hot dog": "a cooked frankfurter or wiener served in a sliced bun, with or without toppings",
"not hot dog": "anything else, including burgers, sausages without a bun, corn dogs, an empty bun, other food and animals"
},
{ detail: "low" }
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });pip install cloudraker-milliseconds
export MS_API_KEY="your-api-key"from pathlib import Path
from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
# The image carries the input; the leading text is optional context.
dm = DecisionMachine()
result = dm.classify(
Path("image.jpg").read_bytes(),
{
"hot dog": "a cooked frankfurter or wiener served in a sliced bun, with or without toppings",
"not hot dog": "anything else, including burgers, sausages without a bun, corn dogs, an empty bun, other food and animals"
},
detail="low"
)
print(result)npm install -g @cloudraker/milliseconds
export MS_API_KEY="your-api-key"# Reads MS_API_KEY. The image and the other fields are read from disk.
cat > classify-labels.json <<'DM1_LABELS'
{
"hot dog": "a cooked frankfurter or wiener served in a sliced bun, with or without toppings",
"not hot dog": "anything else, including burgers, sausages without a bun, corn dogs, an empty bun, other food and animals"
}
DM1_LABELS
dm1 classify --image image.jpg --detail low --labels @classify-labels.json --json --usageUnder the hood How it works & limitations
API calls/classify
The smallest useful image job
Silicon Valley's SeeFood app answered one question about a photo. That question is a real API call: one classify over one image, two described labels, a probability for each. Nothing is parsed, described or summarised first.
Pick the tier the job needs
Detail selects the longest edge the model reads: 512 px at low, 768 px at medium, 1024 px at high. Telling a hot dog from a banana needs none of the extra pixels, so this demo stays at low and bills 1,000 image tokens per photo. Reading small print off a receipt is the job that needs a higher tier.
A verdict is still a reading
A probability near 0.5 means the model is undecided, not that the answer is half true. Two of the stock subjects, a corn dog and a bratwurst in a roll, divide people as well. Route the undecided cases to a person instead of forcing a label.
This demo sends one photo of at most 5 MB as JPEG, PNG or WebP. It does not accept image URLs or batches of images. Photos are processed in memory, never written to disk and never logged.