thtaai 1.0.9
dotnet add package thtaai --version 1.0.9
NuGet\Install-Package thtaai -Version 1.0.9
<PackageReference Include="thtaai" Version="1.0.9" />
<PackageVersion Include="thtaai" Version="1.0.9" />
<PackageReference Include="thtaai" />
paket add thtaai --version 1.0.9
#r "nuget: thtaai, 1.0.9"
#:package thtaai@1.0.9
#addin nuget:?package=thtaai&version=1.0.9
#tool nuget:?package=thtaai&version=1.0.9
ThtaAi — AI Content Generation for Umbraco
ThtaAi adds AI-powered content generation directly into the Umbraco 17 backoffice, using a local LLM (e.g. Ollama) or another external LLM API, so your content and prompts never leave your own infrastructure.
It provides AI-assisted property editors, a rich text editor toolbar extension, and a full AI Page Generation tool that can scaffold entire content pages — document type, blocks, and all — from a single natural-language prompt.
Features
- AI Textstring / AI Textarea — property editors with a "Generate" button that opens a chat-style modal for iterative content drafting.
- AI Rich Text Editor extension — a Tiptap toolbar button that generates and inserts content at the current cursor position, without leaving the editor.
- AI Image — generates several image variations from a text prompt, sourced from Pixabay, so editors can pick the closest match.
- AI Page Generation — analyses your site's document types and block structures, then generates a complete unpublished page from a prompt, ready for editorial review.
Prerequisites
- Umbraco CMS 17
- Umbraco Delivery API Enabled
- Ollama running and reachable from your Umbraco site, with a chat-capable model pulled (we've had the best results with
qwen2.5:7b) - Optional: a Pixabay API key if you want the AI Image editor to return results
Installation
dotnet add package thtaai
Then add configuration to your project's appsettings.json (see below) and restart the site. The property editors and the AI Generation backoffice section become available immediately — no further setup required.
Configuration
Add an AiGeneration section to appsettings.json:
{
"AiGeneration": {
"BaseUrl": "http://localhost:11434",
"ApiKey": "",
"Model": "qwen2.5:7b",
"TimeoutSeconds": 300,
"PixabayKey": "YOUR_PIXABAY_API_KEY"
}
}
| Option | Description |
|---|---|
BaseUrl |
Endpoint of your LLM instance (or any OpenAI-compatible chat completions endpoint). |
ApiKey |
Auth key for the LLM endpoint, if required. Leave empty for a local LLM instance with no auth. |
Model |
The model to use for generation. Must already be pulled on the LLM instance. |
TimeoutSeconds |
Maximum time allowed per request before it's aborted. |
PixabayKey |
Auth key for AI Image's stock photo search. Leave empty to disable the AI Image editor. |
If
BaseUrlis left unset, generation requests will fail with a clear configuration error rather than a silent timeout.
How It Works
- Assign an AI property editor (Textstring, Textarea, Rich Text extension, or Image) to a Data Type.
- In the backoffice, click Generate on that field.
- A chat-style modal opens — describe what you want in plain language and refine it iteratively.
- Click Insert to place the result into the field, then save and publish as normal.
Each time the modal opens, a fresh conversation begins server-side, so context from a previous editing session never bleeds into a new one.
AI Page Generation
For generating whole pages rather than individual fields, use the AI Generation section in the backoffice:
- The extension inspects your site's document types, Block List / Block Grid configurations, and available block types to build a schema of what content structures exist.
- You describe the page you want and pick a parent page for it to be created under.
- The model generates a full page — including nested blocks where applicable — conforming to your existing content architecture.
- The page is created unpublished, so an editor can review, adjust, and publish it through Umbraco's normal workflow.
Because generation is schema-aware, output aligns with your site's actual document types and property editors rather than requiring manual restructuring afterwards.
Prompt Handling
You don't need to write carefully engineered prompts. Plain natural-language input is automatically restructured before being sent to the model, with system-level guidance applied for tone, formatting, and CMS-appropriate content length, and prior conversation turns included for continuity.
Contributing
Build instructions and architecture notes for contributors live in CONTRIBUTING.md.
License
MIT
| 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
- MessagePack (>= 3.1.7)
- Umbraco.Cms.Api.Common (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Api.Management (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Web.Website (>= 17.0.0 && < 18.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.