Site settings
A site can name the LLM configuration and the DeepL key its AI calls use. A site that names neither uses the installation's: the default configuration and the key in the extension configuration. ADR-244 records the decisions.
Setting it up
- Add the set LLM Foundation (
netresearch/) to the site's dependencies. Without it the settings editor does not show the two settings, but a value innr- llm config/still applies.sites/<site>/ settings. yaml - Open Site Management > Sites, edit the site's settings and fill the category AI (LLM Foundation).
Only administrators can change site settings: TYPO3 13.4 and 14.3 offer the
settings editor to administrators only. In settings. write the nested
form shown below: a dotted key such as nrllm. is not read
on a site that does not depend on the set. Whoever can change
config/ in the project can change them as well.
nrllm:
configuration: shop-writer
deepl:
apiKeyIdentifier: shop-deepl
LLM configuration
nrllm. holds the identifier of an LLM configuration. A call
that states its site runs on that configuration instead of the installation
default. What an extension chose explicitly still wins: the configuration of
a cowriter request, of a landing page template or of an extension's own
named configuration.
A configuration that does not exist, is disabled or is restricted to backend groups makes the call fail. It does not fall back to the default, because the site was set up not to use it.
DeepL key
nrllm. holds the identifier of an nr-vault secret,
like translators. in the extension configuration.
Store the key in the vault first and enter its identifier here. Never enter
the key itself: settings. is versioned with the project.
Translations, glossary creation and glossary deletion for that site use this
key. A Free key (ending in :fx) goes to the Free endpoint, any other key to
the Pro endpoint; translators. still overrides both. A site
glossary created under the global key is created again in the site's DeepL
account when DeepL refuses the old glossary id with a 400 or 404 that names the
glossary; how DeepL answers an id of another account has not been measured. An
identifier the vault does not hold
makes the translation fail; it does not fall back to the global key.
Whether DeepL is offered as a translator at all is still decided by the global key: an installation whose sites all have their own key needs a key in the extension configuration as well, or callers that pick a translator automatically do not pick DeepL.
Which calls know their site
nr-llm does not guess a site from the request. An extension states it with
with on its option object, which selects the site's configuration
and narrows the term lists that are
bound to a site. The metadata key Provider on a
call with an explicit configuration only narrows the term lists.
The site's configuration applies to chat, complete and
stream, and through them to the completion and translation services
and to document analysis on a provider that reads PDF files natively.
Embeddings, vision, conversations, the image and speech services and a
rasterized PDF, whose pages go to vision, keep the installation default. A tool
run keeps its site across an approval or an input it waits for. An agent run
queued for the background worker loses it: its turns are checked against every
site's forbidden terms and not against its own required terms.