Let it look things up rather than putting it in search mode

Results announced themselves as the source, so a question it already knew got
answered by paraphrasing the first hit.
This commit is contained in:
Gmer4Lfe
2026-08-12 17:32:41 -04:00
parent e2b304daad
commit f8c4c93f20
2 changed files with 21 additions and 8 deletions
+12 -2
View File
@@ -274,8 +274,18 @@ function vv_ai_web_search(string $question): array {
// renumbering the other. // renumbering the other.
function vv_ai_web_context(array $results, int $offset = 0): string { function vv_ai_web_context(array $results, int $offset = 0): string {
if (!$results) return ''; if (!$results) return '';
$s = "Web search results. These are from outside this installation — cite them by number, and\n" // Framed as reference material, not as the answer. The search runs whenever the box is
. "say when something is a general answer rather than one about this machine.\n\n"; // ticked, because a search is one HTTP request and deciding to run it would cost a whole
// extra generation — but running it must not mean leaning on it. Answering a question the
// model already knows by paraphrasing the first search result is worse than answering it
// directly, and it was doing that because the results announced themselves as the source.
$s = "Reference material from a web search, in case it is useful. It is from outside this\n"
. "installation and nothing here has been verified against this machine.\n\n"
. "Answer from what you already know when you know it. Reach for these when you do not,\n"
. "when the question turns on something current, or when a specific version, release or\n"
. "figure needs checking rather than recalling. Cite by number only what you actually\n"
. "used, ignore the rest, and never imply the web was consulted about this installation —\n"
. "it was not. Say plainly when an answer is general rather than about this machine.\n\n";
foreach ($results as $i => $r) { foreach ($results as $i => $r) {
$s .= '[' . ($offset + $i + 1) . '] ' . $r['title'] . ' — ' . $r['url'] . "\n" $s .= '[' . ($offset + $i + 1) . '] ' . $r['title'] . ' — ' . $r['url'] . "\n"
. $r['snippet'] . "\n\n"; . $r['snippet'] . "\n\n";
+9 -6
View File
@@ -398,13 +398,16 @@ vv_ai_chat_markup('vv-ai', [
reads as broken, and the reason it does nothing is a capability boundary that takes a reads as broken, and the reason it does nothing is a capability boundary that takes a
paragraph to explain. --> paragraph to explain. -->
<div class="vv-ai-set-r" id="vv-ai-web-row" style="display:none"> <div class="vv-ai-set-r" id="vv-ai-web-row" style="display:none">
<span class="vv-ai-set-l">Web search</span> <span class="vv-ai-set-l">Looking things up</span>
<div> <div>
<label class="vv-ai-toggle"><input type="checkbox" id="vv-ai-web"> search the web for <label class="vv-ai-toggle"><input type="checkbox" id="vv-ai-web"> let it look up what
this question</label> it does not know</label>
<div class="vv-ai-set-d" id="vv-ai-web-state">General Chat only — it is the one profile <div class="vv-ai-set-d" id="vv-ai-web-state">Not a web-search mode — it still answers
that cannot change anything, which is why it is the one allowed to look outside. Your from what it knows, and reaches for results when it does not know, when the question
question is sent to the configured search provider.</div> turns on something current, or when a version or figure is worth checking rather than
recalling. General Chat only: it is the one profile that cannot change anything, which
is why it is the one allowed to look outside. Your question is sent to the configured
search provider.</div>
</div> </div>
</div> </div>
<div class="vv-ai-set-r"> <div class="vv-ai-set-r">