v0.22.0
What's in this release
This release brings three retrieval/document capabilities into the base library, extends the named-configuration model to completion and translation, and closes two gaps around budget enforcement and consumer testing.
Pick a configuration per call — now for completion and translation too
Extensions can already run chat, tool-calling and embeddings against a named configuration (its provider, model, prompt and skills). That now covers the last two feature families:
- Completion gains a
*ForConfiguration()family, so a plain completion resolves a chosen configuration and runs through the middleware pipeline — budgets enforced, cost attributed per configuration — instead of only the instance default. - Translation gains
translateForConfiguration(), so an editor menu can offer several configurations (different tones or prompts) and translate with the chosen one's persona and model. A droppedmodeloption on the translation path is fixed along the way.
Rerank retrieved results with a cross-encoder
A supported reranking API backed by a bundled scoring sidecar reorders retrieved candidates by true relevance (measured on a real corpus to lift top-1 accuracy where embedding similarity alone fell short). Installs without a sidecar are unaffected — reranking stays off until an endpoint is configured — and the service and its protocol now ship together so they can't drift apart.
Understand whole documents
A new document-analysis service answers questions about a PDF in one call: providers that ingest documents natively reason over the whole document at once, and everything else falls back transparently to page rendering plus image understanding (rendering needs the optional poppler tools).
Merge ranked lists
The rank-fusion math used by hybrid search (combining keyword and semantic rankings) is now part of the library, drop-in identical to the implementation it generalizes.
Budgets and testing
- Budget ceilings now apply to image and speech. The DALL-E, FAL, Whisper and text-to-speech services dispatched HTTP directly and skipped the spend checks; they now enforce per-user and per-configuration limits before the provider request, like chat-shaped calls already did.
- First-party test doubles for the completion, vision and budget services ship under the testing namespace, so extensions stop hand-maintaining fakes that break whenever an interface grows.
Installation
composer require netresearch/nr-llmPublication status
- TER: extensions.typo3.org/extension/nr_llm — 0.22.0 verified
- Packagist: packagist.org/packages/netresearch/nr-llm — 0.22.0 verified
- Documentation: docs.typo3.org/p/netresearch/nr-llm/0.22/en-us/ — render verified
Security
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-llm-0.22.0.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-llm-0.22.0.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.