Skip to content

Commit 9f08b89

Browse files
authored
docs: update (#56)
1 parent abc2115 commit 9f08b89

5 files changed

Lines changed: 72 additions & 19 deletions

File tree

cloud_config.toml

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
#
44
# Here the chat/vision endpoints are remote (backend = "openai") and therefore
55
# NOT served locally — `pixi run inference` skips backend = "openai". Only the
6-
# RAG embedding/reranker run in-cluster (separate llama.cpp containers), so they
7-
# carry an explicit base_url pointing at those services.
6+
# RAG embedding/reranker still run locally on llama.cpp, exactly as in
7+
# config.toml.
8+
#
9+
# To use it: everything (agents, `pixi run inference`, download-models) reads
10+
# config.toml, so swap this file in and provide the API key:
11+
# cp cloud_config.toml config.toml && export OPENAI_API_KEY=sk-...
812
#
913
# Because cloud agents use several distinct remote models, endpoints are split
1014
# per model (chat_mini / vlm_mini / vlm_nano) and agents reference the right one.
@@ -30,25 +34,27 @@ backend = "openai"
3034
model = "gpt-5-nano"
3135
base_url = "https://api.openai.com/v1"
3236

33-
# RAG models served by dedicated llama.cpp containers (see docker/compose.yaml).
34-
# Start the EMBEDDING model with:
35-
# llama-server -m Qwen3-Embedding-0.6b_Q8_0.gguf --embedding --pooling last \
36-
# -c 4096 -b 2048 -ub 2048 --port 8082 --host 0.0.0.0
37-
# Start the RERANKER model with:
38-
# llama-server -m Qwen3-Reranker-0.6B_BF16.gguf --embedding --pooling rank \
39-
# -c 4096 -b 2048 -ub 2048 --port 8083 --host 0.0.0.0
37+
# RAG models are the only endpoints still served locally (backend = "gpu"):
38+
# `pixi run inference` launches these two llama.cpp servers and skips the
39+
# remote backend = "openai" endpoints above. Same specs as config.toml.
4040
[endpoints.embeddings]
41-
type = "embedding"
42-
backend = "gpu"
43-
model = "qwen3-embedding:0.6b"
44-
base_url = "http://safety-embeddings:8082/v1"
41+
type = "embedding"
42+
backend = "gpu"
43+
model = "qwen3-embedding:0.6b"
44+
host = "localhost"
45+
port = 8082
46+
model_path = "${DEMO_ROOT}/models/Qwen3-Embedding-0.6B-Q8_0.gguf"
47+
model_url = "https://huggingface.co/Qwen/Qwen3-Embedding-0.6B-GGUF/resolve/main/Qwen3-Embedding-0.6B-Q8_0.gguf?download=true"
4548

4649
# NOTE: The reranker and the embedding model are two separate models!
4750
[endpoints.reranker]
48-
type = "reranker"
49-
backend = "gpu"
50-
model = "qwen3-reranker:0.6b"
51-
base_url = "http://safety-reranker:8083/v1/reranking"
51+
type = "reranker"
52+
backend = "gpu"
53+
model = "qwen3-reranker:0.6b"
54+
host = "localhost"
55+
port = 8083
56+
model_path = "${DEMO_ROOT}/models/qwen3-reranker-0.6b-q8_0.gguf"
57+
model_url = "https://huggingface.co/ggml-org/Qwen3-Reranker-0.6B-Q8_0-GGUF/resolve/main/qwen3-reranker-0.6b-q8_0.gguf?download=true"
5258

5359
# ─── Agents ─────────────────────────────────────────────────────────────────
5460

docs/operating.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,15 @@ The mission is handed to the orchestrator, which breaks it into steps and drives
5656
the robot. You do not need to wait for one mission to fully finish before queueing
5757
another; the orchestrator keeps a task queue.
5858

59+
### Custom tasks
60+
61+
The predefined buttons publish to the `/user_tasks` topic, which you can also use
62+
directly for free-form tasks:
63+
64+
```bash
65+
ros2 topic pub --once /user_tasks std_msgs/msg/String "data: 'Do Housekeeping of rack J01'"
66+
```
67+
5968
## Monitoring progress
6069

6170
While a mission runs, the **Mission** tab shows:

docs/quickstart.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Run the full **Mobile Manipulator Demo** — simulation, ROS 2 stack, local infe
88
- The host's **amdxdna** driver loaded: check with `ls /dev/accel/accel0`.
99
- [Docker Engine](https://docs.docker.com/engine/install/) + [ROCm Docker prerequisites](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/docker.html#prerequisites).
1010
- A running X server (the O3DE simulation and HMI open windows on your display).
11-
- ~60 GB free disk for the image, plus room under `models/` for the weights.
11+
- **Disk & network**: ~60 GB free for the image (the prebuilt image is a ~18 GB compressed pull), plus ~20 GB under `models/` for the weights. On a slow connection the first pull + model download takes a while.
1212

1313
## 1. Clone the repository
1414

@@ -114,6 +114,22 @@ Before running a GPU-only image, edit `docker/compose.yaml` to:
114114
- remove the `/dev/accel/accel0` device and the `memlock` ulimit (NPU-only), and
115115
- point `config.toml`'s `vlm_safety` endpoint at a `gpu` backend — otherwise `pixi run inference` aborts on the missing NPU engine.
116116

117+
## Cloud models
118+
119+
To run the agents on OpenAI-hosted models instead of local inference, swap in the
120+
cloud config before starting (the compose bind-mounts `config.toml` and passes
121+
`OPENAI_API_KEY` into the container):
122+
123+
```bash
124+
cp cloud_config.toml config.toml
125+
export OPENAI_API_KEY=sk-...
126+
```
127+
128+
Only the RAG embedding + reranker are still served locally, so step 3 downloads
129+
just those two GGUFs. See
130+
[Using cloud models](setup_single_machine.md#using-cloud-models-instead-low-vram-machines)
131+
for details, including the required OpenAI model access.
132+
117133
## Troubleshooting
118134

119135
- **O3DE doesn't start / no windows appear**: ensure you ran `xhost +local:root` and that `DISPLAY` is set (`echo $DISPLAY`). Verify your AMD GPU drivers + ROCm container prerequisites are installed.

docs/setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Run HMI, agents and simulation on one computer
2222

2323
> [!IMPORTANT]
2424
> This setup targets systems with approximately 48GB of available VRAM.
25-
> If your system does not meet this requirement, you can configure the agents to use cloud-based models instead via `cloud_config.toml`.
25+
> If your system does not meet this requirement, you can configure the agents to use cloud-based models instead via `cloud_config.toml` — see [Using cloud models](./setup_single_machine.md#using-cloud-models-instead-low-vram-machines).
2626
2727
[Single-machine setup](./setup_single_machine.md)
2828

docs/setup_single_machine.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,28 @@ The NPU `vlm_safety` model (`gemma3:4b`) has no GGUF; `flm pull` downloads it fo
113113

114114
---
115115

116+
### Using cloud models instead (low-VRAM machines)
117+
118+
If the machine cannot serve the chat/vision models locally, switch the agents to
119+
OpenAI-hosted models via `cloud_config.toml`:
120+
121+
```shell
122+
cp cloud_config.toml config.toml
123+
export OPENAI_API_KEY=sk-...
124+
```
125+
126+
Your OpenAI account must have access to the models it names (`gpt-5-mini`,
127+
`gpt-5-nano`) — edit the `[endpoints.*]` `model` fields to use different ones.
128+
129+
Everything reads `config.toml`, so the usual commands work unchanged:
130+
`download-models` now fetches only the two RAG GGUFs (embedding + reranker, the
131+
only endpoints still served locally) and `pixi run inference` launches just
132+
those two llama.cpp servers, skipping the remote `backend = "openai"` endpoints.
133+
The NPU is not used in this configuration, so the GPU-only `single-pc-gpu`
134+
environment suffices.
135+
136+
---
137+
116138
## Verify your installation
117139

118140
Once the build is done and the weights are downloaded, run one command to exercise

0 commit comments

Comments
 (0)