Local AI: a page to set up AI spam filtering, and the form hooks the spec asks for
Settings › Spam Filter › Local AI (CustomComponent/LocalAi) shows whether the language-model classifier is on and which model it asks. It's off until someone turns it on. Setting it up asks "Guided or manual?": guided explains what's sent (subject and text only), that the model's word is one bounded signal and never holds up mail, and recommends running Qwen3 4B Instruct 2507 locally under llama.cpp or Ollama; it then takes the model's address and the prompt, creates the model (or reuses one of the same name) and switches the classifier on with its real id. Manual goes to the ordinary forms. Turning it off is one click and keeps the model. The page also edits inbuxa:AiLimits, sending a return to a default as null so the server keeps following it. On the schema-driven forms (ai-spam-classification spec, "INBUXA Admin"): the default prompt is prefilled when the classifier is switched to Enabled, the model form suggests local addresses, a model outside the network gets the AI-2 warning (advisory, never blocking), and the classifier form says failures never hold up mail. The server's schema gains the menu link separately, after this release.
This commit is contained in:
@@ -71,6 +71,11 @@ function checkSpecialLink(
|
||||
return { visible: canGet ? canGet('sysNetworkListener') : true, enterprise: false };
|
||||
}
|
||||
|
||||
// inbuxa: the Local AI page is for whoever may see the AI classifier.
|
||||
if (viewName === 'CustomComponent/LocalAi') {
|
||||
return { visible: canGet ? canGet('sysSpamLlm') : true, enterprise: false };
|
||||
}
|
||||
|
||||
if (viewName.startsWith('CustomComponent/')) {
|
||||
return { visible: true, enterprise: false };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user