From a18f0cfc8441f3b7b3d062a8d1dfdd79e0b3e10a Mon Sep 17 00:00:00 2001 From: Gmer4Lfe Date: Wed, 12 Aug 2026 18:03:54 -0400 Subject: [PATCH] Do not let the web note decide what the question was about The detector answers no to "why is my array so slow", so claiming that meant a question about the wider world would have answered it from general web pages. --- Plugin/unraid/Tools/ai_chat_worker.php | 34 +++++++++++++++++++------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/Plugin/unraid/Tools/ai_chat_worker.php b/Plugin/unraid/Tools/ai_chat_worker.php index b6e4cb1..3387662 100644 --- a/Plugin/unraid/Tools/ai_chat_worker.php +++ b/Plugin/unraid/Tools/ai_chat_worker.php @@ -856,15 +856,31 @@ if ($profile === 'chat' && vv_ai_chat_needs_varaverk($question)) { // Deterministic on both sides: this fires only when detection says there is nothing Varaverk in // the question, so the cautious branch above keeps every question it would have caught. } elseif ($profile === 'chat' && $webHave) { - $system .= "NOTE: nothing in the operator's message names a Varaverk script, setting or " - . "component, and a web search has already run for it — the results are in the " - . "passages. This is an ordinary question about the wider world, so answer it from " - . "those results and your own knowledge, and cite what you use.\n" - . "Do NOT reply that you cannot see the documentation in this mode. No documentation " - . "is needed for a question like this, none was asked for, and the Varaverk " - . "Assistant profile would be a worse answer rather than a better one — it reads " - . "this installation's own documents and knows less about the outside world than " - . "you do. Refusing here while holding the sources is simply a wrong answer.\n\n"; + // Removes a false prohibition. It does NOT classify the question, and the first version of + // this did: it told the model that nothing named a Varaverk component so this was a question + // about the wider world. That inference is not the detector's to make. The detector finds + // script names, SCREAMING_CASE keys and the project's own name — it answers NO to "why is my + // array so slow tonight", "how much space do I have left" and "is everything healthy", every + // one of which is about this machine and none of which names anything. + // + // So asserting "wider world" here would have handed those a confident answer assembled from + // whatever the web returned about Unraid in general, dressed as an answer about their box — + // the exact failure the absolute rule exists to prevent, reintroduced by the fix for a + // different problem. Saying only what is true — results exist, the machine is still invisible + // — leaves the model free to answer the Unraid-release question and still deflect that one. + $system .= "NOTE: a web search ran for this question and the results are in the passages.\n" + . "Looking things up is therefore something you CAN do here, and the rule above " + . "about having no tools does not cover it — that rule is about inspecting this " + . "machine. For a question about the outside world — a product, a release, a " + . "version, how some technology works — answer it from these results and your own " + . "knowledge and cite what you use. Saying you cannot look it up while holding the " + . "sources is simply wrong, and the Varaverk Assistant would be no help: it reads " + . "this installation's documents and knows less about the outside world than you.\n" + . "What has NOT changed: you still cannot see this installation. A web search says " + . "nothing about this operator's array, pool, containers, logs or settings, and no " + . "number of results makes a general page about Unraid into a fact about their " + . "machine. If the question is about their system rather than the world, the honest " + . "answer is still that you cannot see it in this mode.\n\n"; } if ($context !== '') $system .= "PASSAGES\n" . $context;