How tokenrhythm/neohorse works
NeoHorse-Jev is the repository’s clearest end-user runtime: an application submits state and Choice/Noul/Score questions, and receives decisions with probabilities (and optional confidence). The graph follows request validation, encoding, model inference, and response formatting, with separate HTTP, image, and serving-backend branches. NeoHorse-1’s routing-guided training loop is documented in the README but has no implementing source path in the tree, so it is shown only as a documented concept. Connections to unsampled backend code are limited to relationships recorded in the source index.
Main entry points: server.py HTTP Server · vision.py Vision Engine · engine.py Decision Engine · schema.py Request Schema
Components 20
Decision API
- HTTP Server
jev/package/src/neohorse_decision/server.py - System One Adapter
jev/package/src/neohorse_decision/systemone.py
Inference Engine
- Request Schema
jev/package/src/neohorse_decision/_vendor/schema.py - Decision Engine
jev/package/src/neohorse_decision/engine.py - Offline Inference
jev/package/src/neohorse_decision/_inference.py - Decision Model
jev/package/src/neohorse_decision/_vendor/model.py
Image Decisions
- Image Input
jev/package/src/neohorse_decision/image_input.py - Vision Engine
jev/package/src/neohorse_decision/vision.py - Vision Predictor
jev/vision/predictor.py
Serving Backends
- vLLM Decision Head
jev/infer/vllm/head.py - vLLM Runtime Model
jev/infer/vllm/jev_runtime/model.py - vLLM Request Schema
jev/infer/vllm/jev_runtime/schema.py - vLLM Vision Adapter
jev/infer/vllm/vision.py - vLLM Model Loader
jev/infer/vllm/vllm_loader.py - Weight Mapping
jev/infer/vllm/weight_mapping.py - SGLang Decision Head
jev/infer/sglang/head.py - SGLang Vision Adapter
jev/infer/sglang/vision.py
Other components
- Application
- Routing Harness
- Decision Result
Connections 23
- Application → HTTP Server: submits request
jev/package/src/neohorse_decision/server.py - HTTP Server → System One Adapter: validates and formats
jev/package/src/neohorse_decision/server.py - HTTP Server → Decision Engine: dispatches text
jev/package/src/neohorse_decision/server.py - HTTP Server → Image Input: decodes image
jev/package/src/neohorse_decision/server.py - HTTP Server → Vision Engine: dispatches image
jev/package/src/neohorse_decision/server.py - Decision Engine → Offline Inference: loads and predicts
jev/package/src/neohorse_decision/engine.py - Decision Engine → Request Schema: validates and encodes
jev/package/src/neohorse_decision/engine.py - Offline Inference → Decision Model: loads and runs
jev/package/src/neohorse_decision/_inference.py - Offline Inference → Request Schema: maps request
jev/package/src/neohorse_decision/_inference.py - System One Adapter → Request Schema: validates decisions
jev/package/src/neohorse_decision/systemone.py - Vision Engine → Decision Engine: reuses text model
jev/package/src/neohorse_decision/vision.py - Vision Engine → Request Schema: encodes question
jev/package/src/neohorse_decision/vision.py - Vision Engine → System One Adapter: adds confidence
jev/package/src/neohorse_decision/vision.py - Vision Predictor → Vision Engine: re-exports
jev/vision/predictor.py - HTTP Server → Decision Result: returns response
jev/package/src/neohorse_decision/server.py - vLLM Decision Head → vLLM Runtime Model: encodes and reads out
jev/infer/vllm/head.py - vLLM Decision Head → vLLM Request Schema: validates requests
jev/infer/vllm/head.py - vLLM Decision Head → vLLM Vision Adapter: routes image input
jev/infer/vllm/head.py - vLLM Model Loader → Weight Mapping: maps weights
jev/infer/vllm/vllm_loader.py - SGLang Decision Head → vLLM Runtime Model: reuses runtime
jev/infer/sglang/head.py - SGLang Decision Head → vLLM Request Schema: reuses schema
jev/infer/sglang/head.py - SGLang Decision Head → SGLang Vision Adapter: routes image input
- Routing Harness → Application: routes tasks
README.md