Skip to main content
valen

Deploy with the vLLM plugin

valen-vllm serves Valen decisions through /v1/systemone.

Requirements​

Linux x86-64, Python 3.12, glibc 2.34+, CUDA 13, and official vLLM 0.32.1rc1.dev253+g30aded62d. Follow the pinned environment setup before installing the plugin.

The plugin supports single-GPU text/image Choice, Noul and Score with shared_state execution. Tested with Valen-2B on H200. For direct video inference, use Transformers.

Build the kit​

Run from the Valen repository root:

python -m pip install build
python -m build --wheel serving/vllm
python serving/vllm/build_kit.py \
serving/vllm/dist/valen_vllm-0.1.0.dev1-py3-none-any.whl ./vllm-kit

Copy vllm-kit/ and a complete checkpoint to the GPU host.

Install and start​

Inside the required vLLM environment:

bash /path/to/vllm-kit/install.sh
MODEL=/path/to/Valen-2B CUDA_VISIBLE_DEVICES=0 \
bash /path/to/vllm-kit/serve.sh

Defaults: 127.0.0.1:8000, model name valen. Override with HOST, PORT and MODEL_NAME.

Send a request​

Once the model is ready, run in another terminal:

curl http://127.0.0.1:8000/v1/systemone \
-H 'Content-Type: application/json' \
-d '{"model":"valen","state":"A cat is on the sofa.","questions":{"on_sofa":{"type":"noul","instructions":"The cat is on the sofa."}}}'

answers.on_sofa.noul is the probability that the statement is true. This uses the same local request format as SGLang; the hosted /v1/decisions format is different.

Send an image request​

The client encodes a local PNG/JPEG/WebP as a data URL:

python /path/to/vllm-kit/example_client.py --image /path/to/cat.jpg

See the kit guide for launch options and input limits.