ADR-012: A Page Job Names Its Site
- Status
-
Accepted
- Date
-
2026-11-02
- Authors
-
Netresearch DTT GmbH
Context
From version 0.43.4 on, nr-llm lets a site name the LLM configuration its AI
calls run on, in the site setting nrllm. (nr-llm ADR-244). It
applies to a call that states its site with with on its options.
nr-llm does not take the site from the request, because a worker has none.
Every generation of this extension runs in the worker.
Decision
A page job takes its site from the page it reads. When the form assigns a
page source, Job stores the identifier of the site that
the stored public URL (source_) comes from in the column site. That
is the site of the first page the job reads. The worker reads the column
through Job. Nothing has to be looked up again in the worker,
and a retry runs for the same site.
Other jobs name no site. An external URL, a PDF URL and a PDF file belong to no site of the installation. The page selected in the module's page tree says nothing about the source either. It is part of the request, and nr-llm rejects a site guessed from the request for the same reason. Such jobs, and jobs stored before the column existed, keep the instance default.
Every text call of the run names the site. Job adds it to
the options of the analysis (synthesis, retry and every map step), the podcast
script, the diagram body, the story copy and every text and document format.
What the site changes is nr-llm's decision.
- The configuration
nr_is the extension's own named configuration. nr-llm treats it as an explicit choice that wins over the site. While it exists, is active and is not restricted to backend groups, a call runs on it, and the site only selects the term lists bound to the site.repurpose_ text - Without that record,
Configuredtakes the instance default. For a call that names a site, nr-llm puts the site's configuration in place of the default.Completion Service - A site that names a configuration that does not exist, is disabled or is restricted to backend groups makes the call fail. It does not fall back. The worker has no user to check the backend groups against.
Image, speech and the OCR of PDF pages do not name the site. Of the nr-llm
0.43.4 services this extension calls, only chat, complete and
stream read the site. The image and speech services take their configuration by identifier
(nr_, nr_), and vision keeps the instance
default. A site on those options would change nothing.
The site API exists from nr-llm 0.43.4 on, so the requirement rises to
^0..
Consequences
- ● An installation with several sites runs a page job on the configuration of
- the page's site, without a configuration per job.
- ◐ While
nr_can be used, which the extension's setuprepurpose_ text - recommends, the site's configuration does not apply to the text calls. To use it, an administrator marks another configuration as the instance default (one with a directly assigned model and no backend-group restriction, the only kind nr-llm uses as the default) and then deletes or deactivates that record; removing the instance default would fail every job without a site configuration.
- ◐ A running worker keeps what it read: changes to
nr_and torepurpose_ text - a site's
nrllm.reach it after it restarts.configuration - ◐ A tree whose pages belong to several sites runs on the site of the first
- page it reads.
- ◐ Without
nr_, a site that names a configuration that cannotrepurpose_ text - be used fails the job at the analysis, its first text call.
✕ A URL or PDF job cannot be run on a site's configuration.