IM.Umbraco.AI.Local
1.0.1
dotnet add package IM.Umbraco.AI.Local --version 1.0.1
NuGet\Install-Package IM.Umbraco.AI.Local -Version 1.0.1
<PackageReference Include="IM.Umbraco.AI.Local" Version="1.0.1" />
<PackageVersion Include="IM.Umbraco.AI.Local" Version="1.0.1" />
<PackageReference Include="IM.Umbraco.AI.Local" />
paket add IM.Umbraco.AI.Local --version 1.0.1
#r "nuget: IM.Umbraco.AI.Local, 1.0.1"
#:package IM.Umbraco.AI.Local@1.0.1
#addin nuget:?package=IM.Umbraco.AI.Local&version=1.0.1
#tool nuget:?package=IM.Umbraco.AI.Local&version=1.0.1
Umbraco AI Local LLM Provider
Run Umbraco's AI features on your own hardware. This package adds a Local LLM provider to Umbraco.AI, connecting the backoffice AI features — prompts, agents, Copilot and embeddings — to any OpenAI-compatible self-hosted server such as Ollama, LM Studio or vLLM. No cloud account, no API key, no data leaving your network.
Source availability: the source repository is private. The package is distributed through NuGet.org — for support, bug reports or feature requests, contact Idea Makers.
Why a dedicated provider?
The cloud providers bundled with Umbraco.AI assume a hosted API. Local servers break those assumptions in three ways, and this provider fixes all of them:
- No external verification probe. Cloud providers validate API keys against vendor endpoints. The Local LLM provider never calls out — an endpoint URL is all it needs, and the API key field stays optional (Ollama and friends ignore authentication entirely).
- No model-id filtering. Cloud providers filter the model list to known id shapes, which
silently hides local models like
qwen3:14borllama3.3:70b-instruct-q4_K_M. This provider exposes every model the server reports from its/modelsendpoint, for both chat and embeddings. - Tool-call schema sanitization. .NET's tool schema generation emits boolean JSON-Schema
subschemas (
"x": true) that Ollama's OpenAI-compatible endpoint rejects, breaking Umbraco.AI agents and Copilot. The provider transparently rewrites them into accept-anything object schemas, while preserving boolean values inenum/const/defaultpositions.
Requirements
- Umbraco CMS 17+
- Umbraco.AI 1.14+
- An OpenAI-compatible server reachable from the website (Ollama, LM Studio, vLLM, …)
Installation
dotnet add package IM.Umbraco.AI.Local
The provider is discovered automatically — no composer or configuration code required.
Configuration
In the Umbraco backoffice, open the AI section and add a Connection.
Pick Local LLM as the provider.
Set the Endpoint to your server's OpenAI-compatible base URL:
Server Typical endpoint Ollama http://localhost:11434/v1LM Studio http://localhost:1234/v1vLLM http://localhost:8000/v1Leave API Key empty unless a gateway in front of the server requires one.
Create profiles as usual — the model dropdowns list everything your server reports. With no explicit model selected, chat defaults to
qwen3:14band embeddings tobge-m3.
Capabilities
| Capability | Notes |
|---|---|
| Chat | OpenAI chat completions, streaming included; agent/Copilot tool calls work against Ollama thanks to schema sanitization |
| Embeddings | OpenAI /embeddings endpoint (e.g. bge-m3, nomic-embed-text) |
Building from source (maintainers)
dotnet build
dotnet test
dotnet pack src/IM.Umbraco.AI.Local/IM.Umbraco.AI.Local.csproj -o artifacts
Releasing (maintainers)
Tag a commit vX.Y.Z and push it. The release workflow builds,
tests, packs with that version, pushes the package to NuGet.org via
trusted publishing (an OIDC
policy on nuget.org tied to this repository and workflow file — no API key secret) and creates
a GitHub release. The Umbraco Marketplace picks up tagged
packages within 24 hours; a sync can be triggered manually:
curl -X POST https://functions.marketplace.umbraco.com/api/InitiateSinglePackageSyncFunction \
-H "Content-Type: application/json" \
-d '{"PackageId": "IM.Umbraco.AI.Local"}'
Note on naming: the NuGet package id uses the
IM.*vendor prefix (Idea Makers) because the bareUmbraco.*prefix is reserved on NuGet.org for Umbraco HQ packages.
License
MIT © Idea Makers
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.AI.Abstractions (>= 10.6.0 && < 11.0.0)
- Microsoft.Extensions.AI.OpenAI (>= 10.6.0 && < 11.0.0)
- OpenAI (>= 2.10.0 && < 3.0.0)
- Umbraco.AI.Core (>= 1.14.0 && < 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.