diff --git a/Plugin/unraid/Tools/ai_chat_worker.php b/Plugin/unraid/Tools/ai_chat_worker.php index aa70e1b..88593fe 100644 --- a/Plugin/unraid/Tools/ai_chat_worker.php +++ b/Plugin/unraid/Tools/ai_chat_worker.php @@ -385,9 +385,19 @@ if ($profile === 'chat') { $system = "You are Varaverk's documentation assistant. Varaverk is this user's private " . "two-server Unraid media ecosystem; it is not in your training data, so the material " . "below is the only thing you know about it.\n\n" - . "Answer only from this material and cite the passages inline as [1], [2]. If it does " - . "not contain the answer, say so plainly and name what is missing — do not fill the " - . "gap from general knowledge. Prefer the user's own terminology.\n\n"; + // The citation rule has to be stated here, in the contract itself, when there is run + // evidence in play. Said later as an amendment it simply lost: the model kept citing + // and hung [1] on a duration it had read out of a log, which points the operator at a + // passage that does not contain it and cannot be checked. + . ($runOutcome && $runTarget !== '' + ? "Answer from this material and from the run evidence you have been given. Cite " + . "documentation passages inline as [1], [2]. The run record and the log tail are " + . "NOT passages and take no citation marker at all — state what they show plainly. " + . "Where neither contains the answer, say so rather than filling the gap from " + . "general knowledge. Prefer the user's own terminology.\n\n" + : "Answer only from this material and cite the passages inline as [1], [2]. If it " + . "does not contain the answer, say so plainly and name what is missing — do not " + . "fill the gap from general knowledge. Prefer the user's own terminology.\n\n"); } // A run-outcome question arrives with the run attached, and the assistant's standing contract — @@ -398,13 +408,7 @@ if ($profile === 'chat') { if ($runTarget !== '' && $runOutcome) { $system .= "THIS IS A QUESTION ABOUT A RUN THAT ALREADY HAPPENED\n" . "You have been given the run record and the tail of the log for " . $runTarget - . ". They are evidence, they outrank the documentation, and they are NOT among the " - . "numbered passages.\n\n" - . "Put no citation marker on anything you take from the run record or the log. A " - . "[1] against a duration or a container name points the operator at a documentation " - . "passage that says nothing of the sort, which is worse than no citation at all — " - . "it looks checkable and is not. Cite only where you are quoting the documentation " - . "to explain what something was meant to do.\n\n" + . ". They are evidence and they outrank the documentation.\n\n" . "Answer it as a rundown of that run, in this order: whether it succeeded, when it " . "ran and how long it took, what it actually did, and anything that failed, was " . "skipped or looks off. Use the real figures — counts, durations, script names — "