How ankit-aglawe/tinyjev works
TinyJev is a local typed-decision inference library: callers provide state and Choice, Noul, or Score questions, and receive option probabilities and selected answers without text generation. Its main path normalizes a request, encodes model-family-specific candidate paths, runs a Qwen3 backbone, scores and calibrates logits, and formats results. The Python API and loopback HTTP endpoints share this runtime; conversion prepares compatible checkpoints. README-described capabilities are included where supported by the tree, but unsampled modules’ internal wiring is not inferred.
Main entry points: agent.py Agent API · serve.py Local HTTP server · cli.py CLI · registry.py Model registry
Components 14
User interfaces
- Local HTTP server
tinyjev/serve.py - CLI
tinyjev/cli.py
Decision runtime
- Agent API
tinyjev/agent.py - Decision results
tinyjev/agent.py
Model execution
- Family factory
tinyjev/families/__init__.py - Marker family
tinyjev/families/marker.py - Pointer family
tinyjev/families/pointer.py - MLX backend
tinyjev/backends/mlx_backend.py - PyTorch backend
tinyjev/backends/torch_backend.py
Checkpoint lifecycle
- Model registry
tinyjev/registry.py - Checkpoint conversion
tinyjev/convert.py
Other components
- Python caller
- HTTP client
- Model weights
Connections 14
- Python caller → Agent API: calls predict
- HTTP client → Local HTTP server: sends request
- CLI → Model registry: loads model
- CLI → Local HTTP server: starts server
- Local HTTP server → Agent API: dispatches predict
- Local HTTP server → Agent API: dispatches System One
- Agent API → Family factory: creates family
- Agent API → MLX backend: selects backend
- Agent API → PyTorch backend: selects backend
- Agent API → Marker family: encodes and scores
- Agent API → Pointer family: encodes and scores
- Agent API → Decision results: formats probabilities
- Model registry → Model weights: fetches weights
- Checkpoint conversion → Model weights: converts checkpoints