docs: swarm/services.md is one blurb per service, the host detail moves to the service's implementation page
Each service section lost its container, credential and metrics detail to a Host setup section on its own implementation page, unchanged apart from links. The four agentAuth option rows that sat above the page title moved into the telemetry page's metrics option table.
This commit is contained in:
parent
60aede950b
commit
814edd1d67
1 changed files with 392 additions and 308 deletions
|
|
@ -81,3 +81,28 @@ set them.
|
|||
Two things the daemon doesn't do yet: sweep scratch directories a crash left
|
||||
behind, and set whisper's thread count. The issue 6383 discussion has the
|
||||
choices behind the defaults.
|
||||
|
||||
## Host setup
|
||||
|
||||
The speech-to-text service, in a `swarm-stt` container on the host that sets
|
||||
`deploy.stt.enable`. `allSwarmServices` defaults it on wherever the host has the
|
||||
service's store identity, like the other swarm services. Run it where the inference
|
||||
hardware is: it transcribes with whisper.cpp.
|
||||
|
||||
An agent that receives a voice memo sends the audio to the service over the
|
||||
queue, on its own subject, and gets the text back. The service keeps each
|
||||
transcript for a day, keyed by a hash of the audio, so the same memo sent to several agents costs
|
||||
one whisper run. `deploy.stt.settings.modelSize` picks the
|
||||
model (`small` by default, or `base`), and `modelFile` takes any other ggml
|
||||
model. The cache time, the limits on file size, audio length and run time, and
|
||||
how many requests it holds at once are settings next to it.
|
||||
|
||||
The audio comes from rooms with outside people, so the service runs as its own
|
||||
unprivileged user under a tight systemd sandbox, with a memory ceiling and
|
||||
a CPU quota. Its network isn't restricted: the decoder runs in the same
|
||||
network namespace as the service and can read its credentials, so a decoder
|
||||
exploit could read them and send them anywhere the container can reach. Closing
|
||||
that's for the strict-egress work on service containers, or for running the
|
||||
decode with no network and no credentials. The file's first bytes must look like an audio container
|
||||
before anything decodes it. Its leaf and its queue client work as the notification router's
|
||||
do.
|
||||
|
|
|
|||
Loading…
Reference in a new issue