Initial Commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# The Octave sandbox — needed by `matlab_run`
|
||||
|
||||
**Nothing to set up** beyond building the image, which `docker compose up -d --build` does.
|
||||
This page explains what it is, because the tool is named for MATLAB and does not contain
|
||||
any.
|
||||
|
||||
## What it is
|
||||
|
||||
`matlab_run` executes code in **GNU Octave**, in a container with `network_mode: "none"` —
|
||||
no interfaces, no DNS, no route anywhere. Jobs reach it through a file drop on a shared
|
||||
tmpfs, not over a socket, so there is nothing listening to reach.
|
||||
|
||||
The tool reports three distinct verdicts, and the distinction is the point:
|
||||
|
||||
- it ran, and here is the output;
|
||||
- it is **not valid MATLAB** (the linter caught a construct Octave accepts and MATLAB does
|
||||
not, such as `endfor` or `!=`);
|
||||
- it failed for a reason that is not the code's fault.
|
||||
|
||||
The second one exists because the assistant is often asked about MATLAB by people who do
|
||||
not have it. Silently accepting Octave-only syntax would teach them something untrue.
|
||||
|
||||
## Limits
|
||||
|
||||
Set in `configs/owuitools.env`:
|
||||
|
||||
| Setting | Default | What it bounds |
|
||||
|---|---|---|
|
||||
| `OWUITOOLS_OCTAVE_TIMEOUT` | 25 s | one run |
|
||||
| `OWUITOOLS_OCTAVE_MAX_TIMEOUT` | 60 s | the most a caller may ask for |
|
||||
|
||||
## Checking it
|
||||
|
||||
```sh
|
||||
./tests/try-tool.sh matlab_run '{"code": "x = linspace(0,1,5);\ndisp(sum(x))"}'
|
||||
```
|
||||
|
||||
Expect `MATLAB run OK`. Then try `for i=1:2\n printf(\"%d\",i);\nendfor` and expect
|
||||
`NOT VALID MATLAB`.
|
||||
|
||||
## Plots
|
||||
|
||||
A figure comes back as a `data:image/png` URI. Open WebUI hands those to the *model* as a
|
||||
vision input and never shows them to you — so the `inline_tool_images` filter exists to put
|
||||
the picture in the chat as well. See [../filters.md](../filters.md).
|
||||
Reference in New Issue
Block a user