News · Speed · Exact answers · Quick start · Models · Options
Flide serves decision models. A request holds a state, such as an agent's trajectory or a document, and typed
questions about it. Flide forks the state into all of its questions inside one forward pass, so the state is read
once and every question gets the answer it would get if it were asked alone. Answers come back as probabilities
through the /v1/systemone API that vLLM and SGLang also serve.
🔥 News
- 🔥 2026-10-25 We added two decision model families in Flide 0.1.2 (Intern-Decision, torchcast) and up to 256 options per question. PRs welcome.
- 🔥 2026-10-24 We released Flide 0.1.0 on PyPI. Welcome to have a try.
Speed
Exact answers
Quick start
1. Install
uv venv -p 3.12 && source .venv/bin/activate
uv pip install flide torchvision
2. Start a server
Any chat model on Qwen3.5 or Gemma 4 serves as it is and answers through its next token.
flide serve --model Qwen/Qwen3.5-4B
OneJev models read their answers their own way, and Flide serves them as they are too.
flide serve --model OmniJev/OneJev1.6-0.8B
An Open-Jev release is an adapter on a Qwen3.5 base. Merge it into a checkpoint once, then serve that.
python -m flide_open_jev.prepare ZefanCai/Open-Jev-2B open-jev-2b
flide serve --model open-jev-2b
flide serve listens on all interfaces at port 8000; pass --host 127.0.0.1 to keep it local.
3. Send a request
curl http://localhost:8000/v1/systemone -H "Content-Type: application/json" -d '{
"state": "Order #1182 arrived with a cracked screen. The customer asks for a refund and attached two photos.",
"questions": {
"action": {"type": "choice", "instructions": "What should support do next?",
"criteria": {"refund": "refund the order", "replace": "send a replacement", "escalate": "ask a human"}},
"urgent": {"type": "noul", "instructions": "Does this need a reply within the hour?"}
}
}'
OneJev models also read images. Put <image:1> where the photo belongs in the state and send the photo in media.
IMG=$(base64 -w0 photo.jpg)
curl http://localhost:8000/v1/systemone -H "Content-Type: application/json" -d @- <<EOF
{
"state": {"ticket": "Order #1182 arrived with a cracked screen. The customer asks for a refund.", "photo": "<image:1>"},
"media": [{"type": "image", "data": "data:image/jpeg;base64,$IMG"}],
"questions": {
"cracked": {"type": "noul", "instructions": "The photo shows a cracked screen"},
"action": {"type": "choice", "instructions": "What should support do next?",
"criteria": {"refund": "refund the order", "replace": "send a replacement", "escalate": "ask a human"}}
}
}
EOF
Every answer carries the probability of each option, ready for a threshold.
Models
| Model | Checkpoints | Inputs |
|---|---|---|
| Gemma 4 | google/gemma-4-E2B-it, -E4B-it, -12B-it, -31B-it |
text, images |
| Intern-Decision | internlm/Intern-Decision-4B, -2B, -0.8B |
text |
| OneJev | OmniJev/OneJev1.6-0.8B, -4B, -9B, -27B |
text, images, video |
| Open-Jev | ZefanCai/Open-Jev-2B, -9B |
text |
| Qwen3.5 | Qwen/Qwen3.5-0.8B, -2B, -4B, -9B, -27B |
text, images |
| torchcast | torchcast-ai/torchcast-decision-27b |
text |
Any chat model on Qwen3.5 or Gemma 4 serves as it is; their rows name the official ones. The other rows are
decision models, each read the way its release reads it. A new family is one folder in plugins/ and one line
in pyproject.toml; a separate package can also join through the flide.formats entry point.
Options
| Option | What it does |
|---|---|
--session-cache-gb 40 |
keeps the states of earlier requests, so an agent's next step reads only what is new |
--batch-invariant |
the same bits for a request whatever it is batched with, at some cost in speed |
--quantize fp8 |
Qwen3.5 in FP8 on Ada, Hopper and Blackwell GPUs |
--frontends 2 |
HTTP, rendering and tokenizing in two processes of their own, for many clients |
License
Apache-2.0. flide/kernels/gdn.py holds a kernel derived from two kernels of
flash-linear-attention (MIT); THIRD_PARTY_NOTICES lists it with
the other code Flide builds on.
Metadata
Release files for flide 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flide-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / flide-0.1.2-py3-none-any.whl
| Download URL | flide-0.1.2-py3-none-any.whl |
|---|---|
| Size | 17.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a32867c924ae2c4aa99f5a1e629f6375616b9a976496ee5357546b2e586981fb
|
|
BLAKE2b-256 checksum How to use checksums |
301bad28219fc9f8fdfd3db821128e9a107020f5824a6bb90efd6484d838d0bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for flide 0.1.2
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.