diff --git a/web/messages/en/docs/monitor/ai-assistant.json b/web/messages/en/docs/monitor/ai-assistant.json index ecfb04b2..a4c38837 100644 --- a/web/messages/en/docs/monitor/ai-assistant.json +++ b/web/messages/en/docs/monitor/ai-assistant.json @@ -9,7 +9,7 @@ }, "header": { "title": "AI Assistant", - "description": "Optional AI rewriting turns eligible notification templates into plain-language messages, with per-channel detail levels, thirteen UI languages, custom prompts, a public community library and context enrichment. Backup reports backup_complete and backup_fail bypass AI entirely.", + "description": "Optional AI rewriting turns eligible notification templates into plain-language messages, with per-channel detail levels, thirteen UI languages, custom prompts, a public community library and context enrichment. Backup reports backup_complete and backup_fail are never rewritten; with AI Suggestions on, the AI only appends an explanation when a backup reports errors.", "section": "ProxMenux Monitor" }, "intro": { @@ -83,7 +83,7 @@ "intro1": "Every commercial provider charges per token, so it's worth understanding what a token is before picking a plan. A token is roughly four characters of English text or about three quarters of a word. The phrase \"Backup completed on storage local-bak\" is around eight tokens. A short journal excerpt of ten lines can be 200-400 tokens depending on the technical density.", "intro2": "Two things are billed on every call:", "items": [ - "Input tokens cover the system prompt and user message: severity, title, rendered body and enriched context. Their number depends on the actual prompt and event content. Each rewritten channel can incur its own input-token usage; backup-complete and backup-fail reports bypass AI.", + "Input tokens cover the system prompt and user message: severity, title, rendered body and enriched context. Their number depends on the actual prompt and event content. Each rewritten channel can incur its own input-token usage; backup-complete and backup-fail reports only use tokens when the AI explains backup errors.", "Output tokens — what the model writes back. The Monitor caps this with max_tokens (see the table below). The cap is a limit, not a charge: if the model produces 250 tokens with a cap of 1500, you pay for 250." ], "capsIntro": "These are the actual caps the dispatcher applies, taken straight from AI_DETAIL_TOKENS in notification_templates.py:", @@ -280,7 +280,7 @@ }, "templates": { "heading": "A note on templates", - "body1": "The AI receives a rendered template rather than raw event data. Types such as vm_start, auth_fail and health_degraded have templates in notification_templates.py. The AI rewrites eligible template output; backup_complete and backup_fail retain their deterministic reports and bypass AI.", + "body1": "The AI receives a rendered template rather than raw event data. Types such as vm_start, auth_fail and health_degraded have templates in notification_templates.py. The AI rewrites eligible template output; backup_complete and backup_fail retain their deterministic reports; with AI Suggestions on, the AI only appends an explanation when the backup reports errors.", "body2": "Two practical implications: the AI never sees a hostname or VMID it has to invent — those fields are placed by the template before the rewrite. And if AI is disabled, the templated body is what gets dispatched directly. The Notifications page documents the dispatch pipeline in full and is the right cross-reference for everything that happens to an event before it reaches this layer." }, "privacy": { diff --git a/web/messages/en/docs/monitor/notifications.json b/web/messages/en/docs/monitor/notifications.json index 3a26f7d9..5c8bde90 100644 --- a/web/messages/en/docs/monitor/notifications.json +++ b/web/messages/en/docs/monitor/notifications.json @@ -314,7 +314,7 @@ }, "aiRewrite": { "heading": "Optional AI rewrite", - "body1": "Eligible events can be rewritten by an LLM before delivery. Backup results (backup_complete and backup_fail) bypass this rewrite. AI is off by default and runs in the dispatch thread when enabled. If the call fails or times out, the original template text is used.", + "body1": "Eligible events can be rewritten by an LLM before delivery. Backup results (backup_complete and backup_fail) are not rewritten; with AI Suggestions on, the AI only appends an explanation when a backup reports errors. AI is off by default and runs in the dispatch thread when enabled. If the call fails or times out, the original template text is used.", "body2": "Six providers are supported (OpenAI, Anthropic, Google Gemini, Groq, OpenRouter and local Ollama), with per-channel detail level (brief, standard, detailed), output language, prompt mode (default or custom) and an optional custom prompt. Full configuration walk-through, captures and prompt examples live in the dedicated AI Assistant page.", "privacyTitle": "Privacy note", "privacyBody": "AI requests can include the title, severity, rendered body, system/custom prompt and collected context, including hostnames, IPs, usernames, errors and journal lines. They go to the selected endpoint. Ollama keeps processing local only with both a local server and a local model; a remote server or cloud model sends data outside the host. Disable rewriting or use a controlled local endpoint and model when event content must stay on the network."