lllm3090.state#
One description of the machine, in one shape, for every front end.
The panel serves this over HTTP for a browser; the terminal UI builds the same dict in this process when no panel is running. It lives here rather than inside the FastAPI handler so that the two cannot drift – a field the panel gains is a field the terminal UI can render without anyone having to remember it.
Nothing here starts, stops or downloads anything. Every call is a read of the
catalogue’s arithmetic, a pidfile, or nvidia-smi, which is what makes it
safe to run from a process that is not the panel.
- lllm3090.state.vram() dict[str, int] | None[source]#
Used and total VRAM in MiB as
nvidia-smireports it, or None.None means the question could not be asked – no driver, no card, a container – rather than zero, which would render as an empty card.
- lllm3090.state.disk() dict[str, float] | None[source]#
Free and total space where the models are kept, in GB, or None.
The panel is where the decision to fetch 21 GB is actually made, so this is the number that has to be next to it.
doctorchecks the same thing, but by the time anyone runsdoctorthe download has already failed.The nearest existing parent is measured, not
MODELS_DIRitself: on a fresh install the directory is created by the first download, and “no answer” would be the wrong one for a disk that has plenty of room.
- lllm3090.state.installed_models() list[dict[str, Any]][source]#
What is on disk, with a stray GGUF carrying the window it would get.
Both front ends now draw one merged list, so a checkpoint the catalogue has never heard of sits in it beside the curated ones and has to say the same things they do. Its window comes from
catalog.launch_plan– the same call a start makes – rather than from each renderer restatingUNKNOWN_MODEL_CTXin its own language, which is how the console and the browser would end up describing one model two ways.