From 6c892e2501b2a8f0b5b09e8284d78fb23dddcab5 Mon Sep 17 00:00:00 2001 From: no_gen_mu Date: Fri, 3 Jul 2026 16:57:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(compare):=20/api/v1/trace/epilogue=20?= =?UTF-8?q?=E9=80=8F=E4=BC=A0=E5=A3=B3(=E6=AF=94=E4=BB=B7=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E9=A1=B5=E5=B0=BE=E5=A3=B0=E5=B8=A7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit App 收到 done、渲染完比价结果页后, 把自己页面的截图(base64 ~几百 KB)经本壳透传给 pricebot /api/trace/epilogue, 存进 trace 目录并触发重传 —— trace 里补上"用户实际 看到的汇总页"(步骤帧只有目标 App 画面)。壳同 finalize: 不鉴权、带 trace_id 亲和。 配套: pricebot-backend(端点+viewer)/android(拍屏上报)同名分支 7-3-ljh-testlab。 Co-Authored-By: Claude Fable 5 --- app/api/v1/compare.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/api/v1/compare.py b/app/api/v1/compare.py index 29362c1..b29ca8b 100644 --- a/app/api/v1/compare.py +++ b/app/api/v1/compare.py @@ -119,6 +119,14 @@ async def price_step(request: Request) -> dict[str, Any]: return await _passthrough(request, "/api/price/step") +@router.post("/trace/epilogue", summary="比价结果页尾声帧 (透传到 pricebot, 用户视角截图入 trace)") +async def trace_epilogue(request: Request) -> dict[str, Any]: + # App 收到 done、渲染完结果页后,把自己页面的截图(base64)传给 pricebot 存进 trace + # 目录并触发重传 —— trace 里补上"用户实际看到的汇总页"(步骤帧只有目标 App 画面)。 + # body ~几百 KB(截图 base64), 透传壳同 finalize(带 trace_id 亲和)。 + return await _passthrough(request, "/api/trace/epilogue") + + @router.post("/trace/finalize", summary="比价 trace 收尾上云 (透传到 pricebot, 终止/未识别拿 trace_url)") async def trace_finalize(request: Request) -> dict[str, Any]: # 用户终止 / Phase1 未识别没走到 done 帧, pricebot 没上云也没回传 trace_url。客户端收尾时