Separate documentation freshness years from product identifiers

This commit is contained in:
pewdiepie-archdaemon
2026-09-17 20:58:16 +00:00
parent e2e43ec4d5
commit 492dffa811
5 changed files with 32 additions and 0 deletions
@@ -86,6 +86,9 @@ async function send(page, prompt) {
selection_mode: contract?.selection_mode ?? null, selection_mode: contract?.selection_mode ?? null,
policy_decisions: metrics?.policy_decisions || [], policy_decisions: metrics?.policy_decisions || [],
proposed_calls: (metrics?.clean_v3_turn || []).flatMap(message => message.tool_calls || []), proposed_calls: (metrics?.clean_v3_turn || []).flatMap(message => message.tool_calls || []),
runtime_trace: metrics?.clean_v3_turn || [],
actual_temperature: metrics?.temperature ?? null,
actual_max_output_tokens: metrics?.max_output_tokens ?? null,
tools: starts, outputs, final, tools: starts, outputs, final,
evidence: events.filter(event => event.type === 'tool_output').map(event => ({ evidence: events.filter(event => event.type === 'tool_output').map(event => ({
tool: canonical(event.tool), arguments: event.command, tool: canonical(event.tool), arguments: event.command,
+10
View File
@@ -260,6 +260,16 @@ def _result_has_query_overlap(query: str, result: dict) -> bool:
if entity_terms and entity_terms[0] not in result_tokens: if entity_terms and entity_terms[0] not in result_tokens:
return False return False
model_numbers = {token for token in ordered_query_tokens if token.isdigit()} model_numbers = {token for token in ordered_query_tokens if token.isdigit()}
# Temporal qualifiers are not product identifiers. In particular,
# query normalization may append "latest 2026" to a documentation
# lookup; an evergreen official page need not put that year in its
# title/snippet/URL. Retain actual product numbers (including years
# used as model names without an explicit temporal qualifier).
temporal_years = set(re.findall(
r'\b(?:latest|current|updated|as\s+of)\s+(20\d{2})\b',
str(query or ''), re.I,
))
model_numbers -= temporal_years
if model_numbers and not model_numbers.issubset(result_tokens): if model_numbers and not model_numbers.issubset(result_tokens):
return False return False
+2
View File
@@ -5662,6 +5662,8 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
'request_context_tokens': last_request_tokens, 'request_context_tokens': last_request_tokens,
'tool_schema_count': len(offered), 'tool_schema_count': len(offered),
'agent_rounds': rounds_used, 'agent_rounds': rounds_used,
'temperature': temperature,
'max_output_tokens': request_max_tokens,
'tool_calls': calls, 'tool_calls': calls,
'tool_events': executions, 'clean_v3_turn': text_only_clean_trace(history[initial_length:]), 'tool_events': executions, 'clean_v3_turn': text_only_clean_trace(history[initial_length:]),
'policy_decisions': policy_decisions, 'policy_decisions': policy_decisions,
@@ -2,6 +2,20 @@ from services.search import core
import pytest import pytest
def test_documentation_freshness_year_is_not_a_product_model_number():
result = {'title': 'Enhanced Tracking Protection in Firefox',
'url': 'https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop',
'snippet': 'Firefox privacy settings and tracking protection documentation.'}
assert core._result_has_query_overlap('Mozilla Firefox privacy documentation latest 2026', result)
def test_documentation_filter_keeps_real_product_number_requirements():
result = {'title': 'WIKING Miro 3 manual', 'url': 'https://example.org/wiking-miro-3', 'snippet': 'WIKING Miro installation guide'}
assert core._result_has_query_overlap('WIKING Miro 3 manual latest 2026', result)
assert not core._result_has_query_overlap('WIKING Miro 4 manual latest 2026', result)
assert not core._result_has_query_overlap('WIKING Miro 2026 manual', result)
@pytest.mark.parametrize('comprehensive', [False, True]) @pytest.mark.parametrize('comprehensive', [False, True])
@pytest.mark.parametrize('transient_error', [False, True]) @pytest.mark.parametrize('transient_error', [False, True])
def test_empty_results_advance_provider_but_transport_errors_get_one_retry(monkeypatch, tmp_path, comprehensive, transient_error): def test_empty_results_advance_provider_but_transport_errors_get_one_retry(monkeypatch, tmp_path, comprehensive, transient_error):
+3
View File
@@ -85,6 +85,9 @@ async def test_runtime_does_not_append_unverified_search_result_as_citation(monk
assert 'old-release' not in final assert 'old-release' not in final
assert '[Source:' not in final assert '[Source:' not in final
assert not any(event.get('type') == 'error' for event in events) assert not any(event.get('type') == 'error' for event in events)
metrics = next(event['data'] for event in events if event.get('type') == 'metrics')
assert metrics['temperature'] == 0.0
assert metrics['max_output_tokens'] == 768
def test_news_intent_survives_query_rewording_without_changing_other_fresh_queries(): def test_news_intent_survives_query_rewording_without_changing_other_fresh_queries():