V10.547 強化單位價覆核洞察

This commit is contained in:
OoO
2026-06-01 12:19:48 +08:00
parent e5ecf5512e
commit f10d73ff83
9 changed files with 350 additions and 30 deletions

View File

@@ -239,6 +239,43 @@ def test_rescore_accepted_review_item_has_actionable_decision_envelope():
assert any(evidence["metric"] == "candidate_gap_pct" for evidence in envelope["evidence"])
def test_manual_unit_price_review_item_keeps_business_insight():
from services.competitor_intel_repository import (
_format_competitor_review_item,
summarize_review_decision_envelopes,
)
item = _format_competitor_review_item({
"sku": "11223344",
"name": "理膚寶水 B5 全面修復霜 40ml x2 超值組",
"momo_price": 1199,
"attempt_status": "manual_unit_price_required",
"candidate_count": 1,
"best_competitor_product_id": "DABC01-B5",
"best_competitor_product_name": "理膚寶水 全面修復霜 B5 40ml",
"best_competitor_price": 679,
"best_match_score": 0.742,
"match_diagnostic_json": {
"match_type": "same_product_different_pack",
"price_basis": "unit_price",
"alert_tier": "unit_price_review",
"reasons": ["unit_comparable"],
},
})
assert item["unit_comparison"]["comparable"] is True
assert item["unit_price_insight"]["direction"] == "momo_cheaper"
assert "MOMO 單位價低" in item["unit_price_insight"]["summary"]
envelope = item["decision_envelope"]
assert envelope["recommended_action"]["action"] == "unit_price_required"
assert envelope["expected_impact"]["unit_price_insight"]["unit_gap_pct"] == -11.71
assert any(evidence["metric"] == "unit_price_gap_pct" for evidence in envelope["evidence"])
brief = summarize_review_decision_envelopes([item], limit=5)
assert "單位價差 -11.7%" in brief["text"]
assert brief["items"][0]["unit_price_gap_pct"] == -11.71
def test_protected_existing_match_envelope_explains_candidate_conflict():
from services.competitor_intel_repository import _format_competitor_review_item