matrixcloud / internal /models /runtime.go
github-actions[bot]
Deploy from 4dfd54f2
857a91b
Raw
History Blame Contribute Delete
883 Bytes
// Package models provides model-serving runtime detection and the model
// inspection logic used by the model.inspect job.
package models
import "os/exec"
// Runtimes reports which model-serving runtimes are available on the host.
type Runtimes struct {
Node bool `json:"node"`
Python bool `json:"python"`
Ollama bool `json:"ollama"`
VLLM bool `json:"vllm"`
SGLang bool `json:"sglang"`
}
// DetectRuntimes probes the host PATH for known runtimes.
func DetectRuntimes() Runtimes {
return Runtimes{
Node: hasBinary("node"),
Python: hasBinary("python3") || hasBinary("python"),
Ollama: hasBinary("ollama"),
VLLM: hasBinary("vllm"),
SGLang: hasBinary("sglang") || hasBinary("python") && false, // sglang is a python module; treated as unavailable unless CLI present
}
}
func hasBinary(name string) bool {
_, err := exec.LookPath(name)
return err == nil
}