V10.519 對齊 Webcrumbs host data 新覆蓋口徑

This commit is contained in:
OoO
2026-05-31 23:39:34 +08:00
parent 11896c24dc
commit 371a2b325e
7 changed files with 54 additions and 21 deletions

View File

@@ -75,6 +75,22 @@ def _empty_payload(reason: str = "no_price_alert_exact") -> dict:
}
def _coverage_metadata(coverage: dict, row_count: int) -> dict:
return {
"source": "competitor_intel_repository",
"matched_count": int(coverage.get("valid_matches") or coverage.get("matched_count") or 0),
"coverage_rate": _num(coverage.get("match_rate")),
"fresh_match_count": int(coverage.get("fresh_matches") or coverage.get("fresh_match_count") or 0),
"fresh_match_rate": _num(coverage.get("fresh_match_rate")),
"stale_match_count": int(coverage.get("stale_matches") or coverage.get("stale_match_count") or 0),
"pending_match_count": int(coverage.get("pending") or coverage.get("pending_match_count") or 0),
"row_count": row_count,
"writes_database": False,
"calls_llm": False,
"fetches_external": False,
}
def build_webcrumbs_marketplace_host_data(engine=None, limit: int = 5) -> dict:
"""Build read-only host data for the Webcrumbs diagnostic page.
@@ -96,15 +112,7 @@ def build_webcrumbs_marketplace_host_data(engine=None, limit: int = 5) -> dict:
if not risks:
payload = _empty_payload("no_current_exact_risk")
payload["metadata"] = {
"source": "competitor_intel_repository",
"matched_count": int(coverage.get("valid_matches") or coverage.get("matched_count") or 0),
"coverage_rate": _num(coverage.get("match_rate")),
"row_count": 0,
"writes_database": False,
"calls_llm": False,
"fetches_external": False,
}
payload["metadata"] = _coverage_metadata(coverage, row_count=0)
return payload
rows = []
@@ -147,13 +155,5 @@ def build_webcrumbs_marketplace_host_data(engine=None, limit: int = 5) -> dict:
"evidence_refs": evidence_refs,
"updated_at": top.get("crawled_at") or "latest_competitor_prices",
},
"metadata": {
"source": "competitor_intel_repository",
"matched_count": int(coverage.get("valid_matches") or coverage.get("matched_count") or 0),
"coverage_rate": _num(coverage.get("match_rate")),
"row_count": len(rows),
"writes_database": False,
"calls_llm": False,
"fetches_external": False,
},
"metadata": _coverage_metadata(coverage, row_count=len(rows)),
}