mirror of
https://github.com/mudler/LocalAI.git
synced 2026-09-25 15:44:56 -04:00
On a single-node install nothing in Operate listed the models loaded on this machine or let an admin stop one. The System page that did was retired in #11548, and its replacements (the Nodes workbench) only work in distributed mode. The Nodes page also mis-detected single-node mode: the cluster routes are not registered there, so /api/nodes answers 404, but only 503 was treated as "distributed off", which sent every single-node install to the empty worker-registration card. The rail hid the entry anyway. Nodes route on a single node becomes "This machine": - the Nodes page's VRAM / RAM / CPU / models-disk gauges, fed from this host by mapping /api/resources onto the worker heartbeat fields - a memory bar splitting host RAM by running model - a running-models table (backend, RSS, CPU share, uptime, PID) with search, sorting, logs and a confirmed Stop - the distributed setup behind an "Add machines" button The Operate overview gains a "Running now" preview (heaviest five, with Stop) on single node and a pointer to Nodes > Running models on a cluster. The rail shows "This machine" in Runtime with a running count. Backend, additive only: - /system: each loaded model carries a `process` block (pid, rss_bytes, memory_percent, cpu_percent, started_at). A sampler keeps one gopsutil handle per PID so CPU is the share since the previous poll rather than the lifetime average; it is omitted on the first reading. - /api/resources: host `cpu` and models-path `disk`, the same readings workers send in their heartbeat. Also fixes the fleet tables widening the page on phones: the headers' absolutely positioned sr-only labels escaped the scroll wrapper. Assisted-by: Claude:claude-opus-5 [Playwright] Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
106 lines
3.0 KiB
Markdown
106 lines
3.0 KiB
Markdown
+++
|
|
disableToc = false
|
|
title = "System Info and Version"
|
|
weight = 23
|
|
url = "/reference/system-info/"
|
|
+++
|
|
|
|
LocalAI provides endpoints to inspect the running instance, including available backends, loaded models, and version information.
|
|
|
|
## System Information
|
|
|
|
- **Method:** `GET`
|
|
- **Endpoint:** `/system`
|
|
|
|
Returns available backends and currently loaded models.
|
|
|
|
### Response
|
|
|
|
| Field | Type | Description |
|
|
|-----------------|----------|-------------------------------------------|
|
|
| `backends` | `array` | List of available backend names (strings) |
|
|
| `loaded_models` | `array` | List of currently loaded models |
|
|
| `loaded_models[].id` | `string` | Model identifier |
|
|
| `loaded_models[].backend` | `string` | Backend serving the model, from its config. Omitted when the model was loaded without one |
|
|
| `loaded_models[].process` | `object` | The backend process serving the model on this host. Omitted when there is no local process (a distributed worker holds the model) or it could not be read |
|
|
| `loaded_models[].process.pid` | `integer` | Process ID |
|
|
| `loaded_models[].process.rss_bytes` | `integer` | Resident host memory, in bytes. Weights offloaded to a GPU are not included |
|
|
| `loaded_models[].process.memory_percent` | `number` | `rss_bytes` as a percentage of host RAM |
|
|
| `loaded_models[].process.cpu_percent` | `number` | Share of the whole host's CPU used since the previous call, 0-100. Omitted on the first call that sees the process, because there is no earlier reading to compare against |
|
|
| `loaded_models[].process.started_at` | `string` | When the process started (RFC 3339) |
|
|
|
|
### Usage
|
|
|
|
```bash
|
|
curl http://localhost:8080/system
|
|
```
|
|
|
|
### Example response
|
|
|
|
```json
|
|
{
|
|
"backends": [
|
|
"llama-cpp",
|
|
"huggingface",
|
|
"diffusers",
|
|
"whisper"
|
|
],
|
|
"loaded_models": [
|
|
{
|
|
"id": "my-llama-model",
|
|
"backend": "llama-cpp",
|
|
"process": {
|
|
"pid": 48213,
|
|
"rss_bytes": 5368709120,
|
|
"memory_percent": 7.8,
|
|
"cpu_percent": 42.5,
|
|
"started_at": "2026-09-21T09:12:44Z"
|
|
}
|
|
},
|
|
{
|
|
"id": "whisper-1",
|
|
"backend": "whisper"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
`cpu_percent` covers the time since the previous call to this endpoint, so a
|
|
dashboard polling every few seconds gets a current reading. The WebUI's
|
|
**Operate → This machine** page polls it every five seconds.
|
|
|
|
---
|
|
|
|
## Version
|
|
|
|
- **Method:** `GET`
|
|
- **Endpoint:** `/version`
|
|
|
|
Returns the LocalAI version and build commit.
|
|
|
|
### Response
|
|
|
|
| Field | Type | Description |
|
|
|-----------|----------|-------------------------------------------------|
|
|
| `version` | `string` | Version string in the format `version (commit)` |
|
|
|
|
### Usage
|
|
|
|
```bash
|
|
curl http://localhost:8080/version
|
|
```
|
|
|
|
### Example response
|
|
|
|
```json
|
|
{
|
|
"version": "2.26.0 (a1b2c3d4)"
|
|
}
|
|
```
|
|
|
|
## Error Responses
|
|
|
|
| Status Code | Description |
|
|
|-------------|------------------------------|
|
|
| 500 | Internal server error |
|