跨平台商品聚合与 AI 分析 PRD
- 文档状态:Draft
- 版本:v0.6
- 更新时间:2026-04-02
- 参考文档:
docs/RequirementsDoc.md
docs/CrawlerFeasibility.md
docs/review-RequirementsDoc-codex.md
docs/review-PRD-codex.md
1. 文档目标
本 PRD 用于把现有需求草案收敛为可指导 MVP 设计、开发和验收的产品文档。
1.1 本文回答什么
| 主题 |
需要回答的问题 |
主要输出 |
| 产品定义 |
这到底是一个什么产品,不是什么产品 |
定位、价值、边界 |
| MVP 范围 |
首版做什么,不做什么 |
平台范围、任务范围、输出范围 |
| 流程设计 |
用户如何从输入走到报告 |
主流程、状态模型、交互决策 |
| 结果交付 |
什么叫一份可用报告 |
报告 Schema、追溯口径、质量标记 |
| 验收标准 |
什么叫 MVP 可以交付 |
成功指标、验收标准、P0/P1 划分 |
1.2 PRD 速览
| 项目 |
结论 |
| 产品定位 |
面向品牌方、电商运营和竞品研究岗位的商品分析工作台 |
| 首版平台 |
天猫、京东 |
| 主入口 |
自然语言商品名称/描述 |
| 核心闭环 |
搜索 -> 候选确认 -> 抓取 -> 标准化 -> AI 报告 -> 回看 |
| 核心约束 |
人工确认优先、部分成功可产出、报告必须可追溯 |
| 交付形态 |
内部受控部署的统一 Web 工作台 |
| 不做事项 |
不做持续监控、不做导购、不做自动绕过风控、不做无确认同款判断 |
1.3 任务闭环总览
flowchart LR
A[输入商品关键词] --> B[平台预检查]
B --> C[站内搜索候选]
C --> D[用户确认链接]
D -->|零确认| X[NoSelection 终态]
D -->|至少一个确认| E[抓取前校验]
E --> F[商品与评论抓取]
F --> G[标准化与聚合]
G --> H[AI 结构化报告]
H --> I[历史回看 / 版本切换 / 平台级重试]
对应 ASCII 视图:
+------------+ +------------+ +------------+ +------------+
| 输入查询 | -> | 候选搜索 | -> | 人工确认 | -> | 抓取分析 |
+------------+ +------------+ +------------+ +------------+
| |
| v
| +------------+
| | 报告回看 |
| +------------+
v
+------------+
| NoSelection|
+------------+
2. 产品定义
2.1 一句话定位
这是一个面向品牌方、电商运营和竞品研究岗位的跨平台商品分析工作台:用户输入商品名称,系统完成多平台搜索、人工确认、商品与评论抓取、标准化处理和 AI 分析,最终输出可追溯、可用于决策的结构化报告。
2.2 核心价值主张
当前用户的问题不是“拿不到数据”,而是“拿不到可用于决策的统一结论”。
| 价值层 |
用户原有问题 |
产品提供的价值 |
| 检索成本 |
需要在多个平台重复搜索 |
用一次任务发起收敛多平台搜索 |
| 判断成本 |
同款识别不稳定 |
用“系统召回 + 人工确认”保障对象正确性 |
| 整理成本 |
商品与评论样本难统一 |
把原始数据标准化为统一结构 |
| 决策成本 |
结论依赖个人经验和截图 |
用 AI 输出结构化、可追溯的报告 |
2.3 产品形态
MVP 形态定义为“任务型分析工具”,而不是“持续监控平台”。
一个完整任务包含:
| 阶段 |
说明 |
| 输入 |
输入商品关键词或描述 |
| 搜索 |
获取多平台候选结果 |
| 确认 |
人工确认一个、多个或零个商品链接 |
| 执行 |
系统抓取、清洗、分析 |
| 输出 |
生成结构化报告并支持回看 |
2.4 MVP 交付形态
MVP 以“内部受控部署的网页工作台”形态交付。用户通过浏览器访问统一 Web 工作台,在页面内完成任务创建、候选确认、任务执行和报告回看;采集执行、会话复用和阻塞恢复统一在服务端受控环境完成。
| 决策项 |
口径 |
| 首版运行方式 |
内部受控服务器部署 |
| 采集执行位置 |
服务端统一执行 |
| 用户设备角色 |
只负责 Web 交互和必要的人机恢复操作 |
| 多租户/外部开放 |
不纳入 MVP |
| 后续扩展 |
待稳定性、成本和权限模型成熟后再评估 |
3. 用户、场景与问题
3.1 目标用户与典型场景
| 角色 |
核心任务 |
最关心的输出 |
| 品牌方运营 |
看同款/竞品在不同平台如何卖、怎么被评价 |
平台差异、卖点总结、风险点、优化建议 |
| 电商运营 |
评估自家商品或竞品商品页与评论表现 |
价格与卖点对比、用户正负反馈、店铺差异 |
| 商品研究/竞品分析 |
快速完成一份可引用的商品分析报告 |
标准化数据、可追溯证据、结构化结论 |
3.2 非目标用户
| 用户类型 |
不覆盖原因 |
| 普通消费者导购用户 |
产品目标不是推荐购买,而是分析商品表现 |
| 内容/社媒舆情分析用户 |
当前只聚焦电商商品分析,不做内容平台监测 |
3.3 背景痛点
| 痛点 |
表现 |
| 平台分散 |
相同任务需要在多个站点重复执行 |
| 商品识别困难 |
同一商品往往有多店铺、多链接、多规格页并存 |
| 评论样本难整理 |
评论量大,但真正可用于分析的样本提取效率低 |
| 结果不可复用 |
分析结果依赖个人经验,难沉淀为结构化资产 |
3.4 机会判断
产品机会不只是“做一个抓取工具”,而是做一个围绕“商品分析任务”组织输入、处理和输出的产品化工作流。
4. MVP 目标与非目标
4.1 MVP 产品目标
| 目标 |
说明 |
| 一次任务发起 |
完成对天猫、京东的同类商品分析 |
| 人工确认保证正确性 |
不强行自动认定同款 |
| 输出可决策报告 |
报告需结构化、可回溯、可用于运营和竞品决策 |
| 支持部分成功产出 |
平台访问不稳定时仍尽量产出可用结果 |
4.2 明确的非目标
| 非目标 |
说明 |
| 持续监控/定时更新 |
不做自动巡检与自动重跑 |
| 消费者导购推荐 |
不面向普通购买决策 |
| 内容平台舆情聚合 |
不覆盖小红书、微博、B 站等场景 |
| 评论全量抓取 |
目标是足够支撑分析,不是尽可能抓全 |
| 无人工确认的同款判断 |
不自动代替用户做最终对象判断 |
| 自动绕过验证码/风控/登录限制 |
不承诺规避平台安全机制 |
5. MVP 范围与关键产品决策
5.1 覆盖平台
| 平台 |
当前状态 |
说明 |
| 天猫 |
MVP 覆盖 |
当前首发平台之一 |
| 京东 |
MVP 覆盖 |
当前首发平台之一 |
| 淘宝 |
延后 |
下一优先扩展平台 |
| 抖音电商 |
延后 |
当前阶段不进入排期 |
| 拼多多 / Amazon 等 |
延后 |
不在 MVP 范围 |
| 小红书 / 微博 / B 站等 |
不覆盖 |
不属于当前产品目标 |
5.2 输入方式
| 项目 |
口径 |
| 主输入方式 |
自然语言商品名称/描述 |
| 示例 |
iPhone 15 Pro、大疆 Pocket 3、某品牌蓝牙耳机 |
| 不作为主流程的输入 |
直接粘贴商品链接 |
| 决策原因 |
关键词搜索更符合“跨平台聚合同一商品”的核心目标 |
5.3 任务模式
| 项目 |
口径 |
| 模式 |
一次性分析任务 |
| 起点 |
搜索开始 |
| 终点 |
报告产出结束 |
| 当前不支持 |
自动巡检、自动增量更新、定时重跑 |
5.4 输出形态
| 项目 |
口径 |
| 主输出 |
任务内结构化网页报告页 |
| 同时保留 |
原始数据、标准化数据、证据索引 |
| P1 输出 |
Markdown / PDF 导出 |
| 运行方式 |
内部受控服务端部署,用户通过浏览器访问统一工作台 |
5.5 默认配置
| 配置项 |
默认值 |
说明 |
| 每个平台候选数 |
Top 5 |
默认候选返回规模 |
| 单链接评论样本上限 |
100 |
记为 N |
| 任务级评论总上限 |
500 |
超出时按已确认链接数进行比例分配并提示用户 |
6. 产品原则
| 原则 |
解释 |
| 人工确认优先于算法猜测 |
商品识别正确性优先于全自动化 |
| 证据优先于结论 |
报告结论必须能尽量回到商品链接、评论样本和抓取时间 |
| 部分成功优先于整体失败 |
允许单平台失败,但任务应尽可能产出可用结果 |
| 标准化优先于花哨展示 |
先把数据口径做对,再谈复杂展示 |
| 输出面向决策 |
报告不是信息堆叠,而是帮助用户做判断 |
7. 信息架构与核心用户流程
7.1 信息架构
| 页面/模块 |
作用 |
核心内容 |
| 新建任务页 |
发起分析任务 |
商品关键词输入、评论上限配置、平台状态提示 |
| 候选确认页 |
完成平台候选商品确认 |
候选列表、单选/多选/跳过、确认回看 |
| 任务执行页 |
展示任务进度与异常状态 |
搜索中、等待确认、抓取中、分析中、部分失败 |
| 报告页 |
浏览结果与证据 |
商品汇总、平台对比、评论主题、风险点、证据引用 |
| 历史任务页 |
回看已完成任务 |
任务状态、商品关键词、更新时间、结果入口 |
产品决策:
| 决策项 |
说明 |
| 历史任务页属于 MVP |
报告必须支持回看与复盘 |
| 候选确认页是核心页面 |
它负责正确性,不是可有可无的中间页 |
| 报告页是核心交付页面 |
它负责承接产品价值 |
7.2 主流程
flowchart TD
A[创建任务] --> B[平台预检查]
B --> C[搜索候选]
C --> D[候选返回 / 无结果 / 阻塞]
D --> E[用户确认一个、多个或零个链接]
E -->|零确认| F[NoSelection]
E -->|有确认链接| G[抓取前会话校验]
G --> H[商品与评论抓取]
H --> I[标准化]
I --> J[三级聚合]
J --> K[AI 结构化报告]
K --> L[查看报告与历史版本]
7.3 平台访问顺序与降级路径
| 规则 |
说明 |
| 新建页平台提示只用于预告 |
不替代实际执行时的预检查结果 |
每个平台维护 search_requirement |
取值为 none、recommended、required |
| 搜索前预检查只决定能否进入搜索 |
不直接决定整任务最终结果 |
| 抓取前校验只对已确认平台执行 |
避免无意义扩大人工处理面 |
| 单个平台阻塞不应立即终止其他平台 |
其余可执行平台继续 |
| 只要至少一个已确认平台可继续 |
任务继续执行 |
| 新建页提供全局会话准备入口 |
只更新会话状态,不创建任务 |
search_requirement 定义:
| 取值 |
含义 |
none |
搜索不依赖登录态,可直接搜索 |
recommended |
可直接搜索,但登录后结果更稳定或更完整 |
required |
搜索前必须有有效会话,否则该平台不进入搜索 |
7.4 关键交互决策
| 交互 |
决策 |
| 平台内选择 |
支持单选、多选、跳过 |
| 进入抓取的前提 |
至少确认一个商品链接 |
| 任务执行中遇到验证码/登录失效/风控 |
优先标记为平台级阻塞,而不是默认整任务失败 |
| 零确认收口 |
允许进入 NoSelection 正式终态 |
8. 任务与平台状态模型
为避免把“整体任务结果”“执行阶段”和“单平台异常”混在一起,MVP 采用三层状态口径:
| 状态层 |
字段 |
用途 |
| 任务层 |
task_status |
历史任务列表、默认筛选、整体结果判断 |
| 阶段层 |
task_stage |
执行页进度展示 |
| 平台层 |
platform_status |
区分平台级正常、阻塞、失败和跳过 |
8.1 状态流总览
flowchart TD
A[Draft] --> B[Searching]
B --> C[AwaitingConfirmation]
C -->|零确认| D[NoSelection]
C -->|至少一个确认| E[Running]
E --> F[Completed]
E --> G[PartialCompleted]
E --> H[Blocked]
E --> I[Failed]
H -->|人工恢复后重试| E
G -->|平台级重试| E
8.2 task_status
| 状态 |
含义 |
触发条件 |
用户动作 |
Draft |
任务已创建未启动 |
任务刚创建或等待用户发起 |
可编辑输入参数 |
Searching |
正在做平台预检查或候选搜索 |
至少一个平台仍在预检查或搜索 |
等待系统返回结果 |
AwaitingConfirmation |
等待用户确认候选商品 |
所有平台都已返回候选、无结果、阻塞或失败 |
单选、多选、跳过 |
NoSelection |
用户未确认任何链接,任务在确认阶段结束 |
全部平台均无可执行选择,或用户主动以零确认链接提交 |
调整查询、重新搜索或预处理会话后新建任务 |
Running |
已进入抓取、标准化或分析阶段 |
至少一个已确认平台仍在执行 |
等待完成或处理中断 |
Completed |
所有已确认且可执行的平台均成功完成 |
至少一个已确认平台完成,且无已确认平台处于 Blocked 或 Failed |
查看报告 |
PartialCompleted |
已产出报告,但有部分已确认平台失败或阻塞 |
至少一个已确认平台 Completed,且至少一个已确认平台 Blocked 或 Failed |
查看报告或重试失败平台 |
Blocked |
没有成功完成的平台,且剩余平台均因人工介入问题被阻塞 |
零个已确认平台 Completed,且至少一个已确认平台 Blocked,并且无其他平台仍可继续 |
处理登录、验证码、风控后重试 |
Failed |
没有成功完成的平台,且不存在可恢复的进行中平台 |
零个已确认平台 Completed,且已确认平台全部为 Failed、Skipped 或无可执行对象 |
重新发起任务或调整输入 |
8.3 task_stage
| 阶段 |
作用 |
说明 |
precheck |
平台预检查 |
判断平台能否进入搜索,不决定最终任务结果 |
search |
搜索候选 |
拉取平台候选列表或无结果状态 |
confirmation |
用户确认 |
等待用户确认候选链接 |
session_check |
抓取前校验 |
只校验已确认平台的访问条件 |
crawl |
商品与评论抓取 |
执行平台级抓取与原始数据留存 |
normalize |
标准化处理 |
统一商品与评论字段口径 |
analyze |
AI 分析 |
生成结构化结论与证据关联 |
publish |
报告发布 |
生成报告快照并更新历史版本索引 |
8.4 platform_status
| 状态 |
含义 |
是否可重试 |
备注 |
Pending |
该平台尚未开始处理 |
否 |
初始状态 |
SearchBlocked |
搜索前已知必须登录,但当前无有效会话 |
是 |
平台不进入搜索 |
Searching |
正在搜索候选商品 |
否 |
过程态 |
NoResult |
搜索成功但没有候选商品 |
否 |
不视为平台失败 |
AwaitingSelection |
候选已返回,等待用户选择 |
否 |
过程态 |
Skipped |
用户明确跳过该平台 |
否 |
不计入失败 |
Selected |
用户已确认链接,待抓取前校验 |
否 |
过程态 |
Blocked |
抓取前或抓取中遇到登录失效、验证码或风控 |
是 |
需用户人工处理 |
Running |
抓取或平台级清洗中 |
否 |
过程态 |
Completed |
该平台已产出有效结果并纳入聚合 |
否 |
可进入报告 |
Failed |
该平台出现不可恢复执行失败 |
是 |
例如解析失败、数据异常、平台错误 |
8.5 汇总与重试规则
| 规则 |
说明 |
| 单个平台异常不自动拖死整任务 |
SearchBlocked、Blocked、Failed 只影响对应平台 |
NoResult 和 Skipped 不计入失败 |
但也不计入成功完成平台 |
NoSelection 不生成报告 |
但保留历史记录和原因摘要 |
| 任务最终状态只基于已确认平台计算 |
未确认平台不影响报告完成态 |
重试只针对 SearchBlocked、Blocked、Failed |
已完成平台默认复用既有结果 |
| 重试造成结果变化才生成新版本 |
否则只追加执行日志 |
9. 功能需求
9.1 任务创建
系统需支持:
| 能力 |
要求 |
| 输入 |
输入商品关键词或商品描述 |
| 配置 |
配置单链接评论抓取上限 N |
| 平台提示 |
在任务发起前展示平台可用性提示 |
| 会话准备入口 |
可在创建任务前进入全局会话准备 |
产品口径:
| 项目 |
口径 |
| 平台状态提示来源 |
“平台能力配置 + 最近一次会话校验结果” |
search_requirement = required 且最近会话不可用 |
提示“需登录后搜索” |
search_requirement = recommended |
提示“未登录可能影响结果完整性” |
N 的作用域 |
每个已确认链接的评论样本上限 |
| 多链接场景 |
先按链接分配 N,再受任务总上限约束 |
| 超过任务上限时 |
按比例收缩,并提示已触发任务级总量控制 |
9.2 搜索召回与候选展示
系统需支持:
| 能力 |
要求 |
| 搜索执行 |
分平台执行站内搜索 |
| 搜索前预检查 |
明确平台是可搜索、受限还是阻塞 |
| 候选返回 |
返回候选列表、无结果或阻塞/失败原因 |
| 辅助判断 |
对候选展示基础识别信息与差异提示 |
候选列表至少展示:
| 字段 |
必须 |
| 平台名称 |
是 |
| 商品标题 |
是 |
| 商品链接 |
是 |
| 商品价格 |
是 |
| 店铺名称 |
是 |
| 主图/缩略图 |
是 |
| 销量/热度/评分等辅助信息 |
是 |
候选去重与差异展示规则:
| 规则 |
说明 |
相同 canonical_product_id 或规范化后完全相同链接 |
视为重复候选,只保留一张卡片 |
| 无稳定商品 ID 时 |
用“规范化标题 + 店铺名称 + 主图 + 价格区间”近似聚类 |
| 同店疑似同款但规格不同 |
不自动合并,用候选组 + 规格差异标签展示 |
| 不同店铺疑似同款 |
不自动合并,保持为独立候选 |
产品决策:
| 决策项 |
说明 |
| 默认返回规模 |
每个平台 Top 5 |
| 候选展示要求 |
必须足够支撑用户判断,不能只返回标题和链接 |
| 搜索失败反馈 |
必须给出平台级明确反馈,避免误判卡死 |
| 平台内默认排序 |
关键词匹配度 > 销量/热度 > 评分与评价量完整性 > 价格信息完整性 |
9.3 商品链接确认
系统需支持:
| 能力 |
要求 |
| 候选浏览 |
按平台浏览候选商品 |
| 平台内选择 |
单选、多选或跳过 |
| 回看确认结果 |
支持 |
产品决策:
| 决策项 |
说明 |
| 平台内多选 |
属于 MVP 核心能力 |
| 进入抓取后 |
只处理用户已确认的链接,不自动扩展范围 |
| 候选组中的规格变体 |
用户必须明确勾选具体链接,系统不默认代选 |
| 零确认提交 |
进入 NoSelection 终态,不生成报告快照 |
9.4 平台登录与访问策略
MVP 采用“用户自有账号登录 + 服务端受控会话复用”模式。
search_requirement 行为定义:
| 配置值 |
含义 |
搜索时行为 |
抓取前行为 |
none |
搜索不依赖登录态 |
直接搜索 |
对已确认链接做可访问性校验 |
recommended |
未登录也可搜索,但结果可能不完整 |
允许搜索并提示风险 |
对已确认链接做会话与可访问性校验 |
required |
搜索与抓取都依赖有效会话 |
无有效会话时标记 SearchBlocked,不进入搜索 |
用户处理会话后才能重试 |
系统需支持:
| 能力 |
要求 |
| 搜索前预检查 |
在真实搜索前判断各平台是否满足搜索前提 |
| 抓取前校验 |
只对已确认链接所在平台执行 |
| 登录态访问 |
在用户自有账号登录态下访问平台页面 |
| 阻塞识别 |
识别登录失效、验证码、风控拦截等状态 |
| 恢复入口 |
提示用户在服务端受控浏览器中完成处理后继续任务 |
| 全局会话准备 |
在任务外提供独立入口 |
产品决策:
| 决策项 |
说明 |
| 系统不保存账号密码 |
必须 |
| 会话复用方式 |
仅在当前工作区的服务端会话中心内加密复用 |
| 搜索前预检查失败 |
只阻塞对应平台 |
| 抓取前校验失败 |
只阻塞对应已确认平台,不回退已完成确认 |
| 会话缓存作用域 |
当前部署实例/工作区 |
| 默认过期时间 |
最后使用后 24 小时 |
| 平台策略变化导致失败 |
必须暴露可理解原因 |
9.4.1 当前阶段平台抓取约束
根据 docs/CrawlerFeasibility.md 在 2026-04-02 的调研结果,当前阶段增加以下硬约束:
| 平台 |
当前阶段定位 |
暂定 search_requirement |
当前产品约束 |
| 天猫 |
当前 MVP 平台 |
recommended |
默认按淘宝/天猫同构请求链路设计;浏览器仅用于登录、验证码、模板刷新和恢复 |
| 京东 |
当前 MVP 平台 |
required |
搜索和详情前必须做会话/登录预检查;默认按会话驱动请求回放设计 |
| 淘宝 |
下一优先平台 |
recommended |
预期复用天猫适配栈;待双平台闭环稳定后接入 |
| 抖音电商 |
当前延后 |
required |
不进入当前迭代范围;不参与当前验收与排期 |
补充产品决策:
| 决策项 |
说明 |
| 不承诺任何官方开放平台为直接数据源 |
当前不写入产品承诺 |
| 当前主路径 |
服务端 HTTP 请求回放与 Hydration 解析 |
平台级 Blocked |
视为产品常态,不视为偶发异常 |
| 阻塞后的默认动作 |
优先提供服务端受控浏览器恢复入口 |
| 无法刷新关键动态参数时 |
直接标记为 Blocked,不把逆向私有签名作为交付前提 |
9.5 商品信息抓取
系统需尽可能完整抓取商品页可访问信息,并保留原始字段。
MVP 优先抓取信息:
| 类别 |
字段 |
| 商品基础 |
商品标题、品牌、型号/系列 |
| 价格与促销 |
当前价格、促销信息 |
| 规格参数 |
规格参数、SKU 选项 |
| 页面内容 |
商品详情页文案、主卖点 |
| 店铺信息 |
店铺名称、店铺类型、店铺评分 |
| 表现数据 |
商品评分、评论总量、销量/热度 |
| 追溯信息 |
商品链接、平台名称、抓取时间 |
产品决策:
| 决策项 |
说明 |
| 原始字段允许平台间不一致 |
是 |
| 标准化字段用于对比 |
原始字段用于回溯与补充展示 |
9.6 评论抓取与抽样策略
评论抓取目标是“足够支撑分析”,而不是“尽可能抓全”。
MVP 抽样策略:
| 项目 |
规则 |
| 抽样单位 |
每个已确认链接独立执行抽样 |
| 抽样桶 |
最新评论、最热评论、低分/差评评论 |
| 默认比例 |
40% / 30% / 30% |
| 桶缺失时 |
将比例按剩余桶重新分配 |
评论不足 N 时 |
抓取实际可得评论并标记“样本不足” |
评论至少保留字段:
| 字段 |
必须 |
| 评论内容 |
是 |
| 评论时间 |
是 |
| 评论评分或情感标识 |
是 |
| 点赞数/互动数 |
是 |
| 规格/SKU 信息 |
是 |
| 评论来源标识 |
是 |
| 对应商品链接 |
是 |
| 抓取平台 |
是 |
去重口径:
| 规则 |
说明 |
| 优先口径 |
使用平台评论 ID 去重 |
| 无评论 ID 时 |
使用“来源链接 + 评论时间 + 归一化评论文本”组合去重 |
9.7 数据标准化与口径定义
系统需输出商品标准表与评论标准表,并保留原始字段。
核心口径:
| 字段 |
口径定义 |
platform |
平台标准名称,MVP 当前限定为天猫、京东 |
source_url |
被确认并实际抓取的商品链接 |
price |
页面可见当前成交价,统一为人民币数值;原始价格文案单独保留 |
product_rating |
统一映射到 5 分制;若无法映射则为空并保留原值 |
sales_volume |
统一转换为数值字段;无法解析时保留原始文本 |
review_time / crawl_time |
统一为 Asia/Shanghai 时区时间 |
sampling_bucket |
固定枚举为 latest、hot、negative |
产品决策:
| 决策项 |
说明 |
| 标准化后的空值 |
允许,但必须可解释 |
| 无法标准化的字段 |
不得丢弃,应挂载在原始字段区域中 |
9.8 多链接聚合逻辑
MVP 明确采用三级聚合口径:
| 层级 |
说明 |
| 链接级 |
每个已确认链接作为最小分析单元,独立抓取、独立保留 |
| 平台级 |
同一平台下多个链接汇总展示,输出平台内价格区间、卖点共性、差评共性和店铺差异 |
| 跨平台级 |
以平台级结果为主比较对象,同时保留对链接级证据的下钻能力 |
产品决策:
| 决策项 |
说明 |
| 不强行合并平台内多链接 |
保持链接级独立性 |
| 平台内允许同时展示汇总结论与具体差异 |
是 |
| 跨平台对比默认看平台聚合结果 |
避免被链接级细节淹没 |
9.9 AI 分析与报告 Schema
MVP 的 AI 分析不是自由文本生成,而是受控结构化输出。
报告结构总览:
Report
├─ summary
├─ product_snapshot
├─ platform_insights[]
├─ cross_platform_insights[]
├─ recommendations[]
├─ evidence_index[]
└─ quality_flags
顶层 Schema:
| 字段 |
类型 |
必填 |
说明 |
report_id |
string |
是 |
报告快照唯一 ID |
report_version |
integer |
是 |
同一 task_id 下从 1 递增 |
task_id |
string |
是 |
所属任务 ID |
generated_at |
datetime |
是 |
报告生成时间,使用 Asia/Shanghai 时区 |
task_status |
enum |
是 |
仅允许 Completed 或 PartialCompleted |
summary |
Summary |
是 |
执行摘要与限制说明 |
product_snapshot |
ProductSnapshot |
是 |
本次分析对象的基础汇总 |
platform_insights |
PlatformInsight[] |
是 |
每个平台一条结构化记录 |
cross_platform_insights |
InsightCard[] |
是 |
跨平台对比洞察卡片 |
recommendations |
InsightCard[] |
是 |
面向运营或竞品分析的建议卡片 |
evidence_index |
Evidence[] |
是 |
证据索引,供结论引用 |
quality_flags |
object |
是 |
样本不足、部分失败、平台阻塞等标记 |
summary 结构:
| 字段 |
类型 |
必填 |
说明 |
headline |
string |
是 |
一句话摘要 |
key_points |
string[] |
是 |
2 到 5 条关键结论摘要 |
limitations |
string[] |
是 |
样本不足、平台缺失、时间范围等限制 |
product_snapshot 结构:
| 字段 |
类型 |
必填 |
说明 |
query |
string |
是 |
用户原始输入关键词或描述 |
normalized_product_name |
string |
是 |
报告内统一使用的商品名称 |
platform_count |
integer |
是 |
纳入任务的平台数量 |
selected_link_count |
integer |
是 |
已确认链接总数 |
review_sample_count |
integer |
是 |
实际纳入分析的评论样本量 |
analysis_time_range |
object |
是 |
本次抓取与分析覆盖的时间范围 |
platform_insights[] 结构:
| 字段 |
类型 |
必填 |
说明 |
platform |
enum |
是 |
天猫、京东 |
execution_status |
enum |
是 |
completed、blocked、failed、skipped、no_result |
selected_link_count |
integer |
是 |
用户确认的链接数量 |
price_range |
object/null |
否 |
最低价、最高价,无法形成区间时为空 |
selling_points |
InsightCard[] |
是 |
平台卖点结论 |
positive_themes |
InsightCard[] |
是 |
好评主题 |
negative_themes |
InsightCard[] |
是 |
差评/风险主题 |
store_diff_notes |
InsightCard[] |
是 |
店铺或链接差异 |
发布时状态映射规则:
运行态 platform_status |
报告态 execution_status |
Completed |
completed |
Blocked 或 SearchBlocked |
blocked |
Failed |
failed |
Skipped |
skipped |
NoResult |
no_result |
补充规则:
| 规则 |
说明 |
Pending、Searching、AwaitingSelection、Selected、Running |
不得出现在已发布报告快照中 |
InsightCard 结构:
| 字段 |
类型 |
必填 |
说明 |
card_id |
string |
是 |
结论卡片唯一 ID |
title |
string |
是 |
结论标题 |
statement |
string |
是 |
结论说明 |
confidence |
enum |
是 |
high、medium、low |
sample_flag |
enum |
是 |
sufficient、insufficient、partial |
source_scope |
object |
是 |
来源平台、链接数、评论样本数 |
evidence_ids |
string[] |
是 |
指向 evidence_index;sample_flag = insufficient 时允许为空 |
evidence_index[] 结构:
| 字段 |
类型 |
必填 |
说明 |
evidence_id |
string |
是 |
证据唯一 ID |
platform |
enum |
是 |
证据所属平台 |
source_type |
enum |
是 |
product 或 review |
source_url |
string |
是 |
原始链接 |
review_ref |
string/null |
否 |
评论 ID;无 ID 时使用评论索引 |
snippet |
string |
是 |
简要摘录或摘要 |
captured_at |
datetime |
是 |
证据抓取时间 |
quality_flags 结构:
| 字段 |
类型 |
必填 |
说明 |
sample_insufficient |
boolean |
是 |
是否存在样本不足 |
partial_platform_failure |
boolean |
是 |
是否存在已确认平台失败或阻塞 |
blocked_platforms |
string[] |
是 |
被阻塞平台列表 |
failed_platforms |
string[] |
是 |
失败平台列表 |
产品决策:
| 决策项 |
说明 |
| 证据不足时 |
不输出强结论,对应卡片标记 insufficient |
| 报告风格 |
优先服务决策,不追求辞藻丰富 |
| 强结论必须有证据 |
任一 InsightCard 给出强结论时必须提供 evidence_ids |
| 平台洞察覆盖范围 |
platform_insights 必须覆盖所有纳入任务的平台,即使被阻塞/失败/无结果 |
9.10 失败重试与报告版本策略
系统需支持:
| 能力 |
要求 |
| 平台级重试 |
仅对 SearchBlocked、Blocked、Failed 平台发起 |
| 版本保留 |
重试后保留旧报告快照,并按版本回看 |
| 版本展示 |
在报告页与历史任务页显示当前默认版本和更新时间 |
| 版本字段 |
返回 default_report_version 与 latest_successful_report_version 的明确定义 |
产品决策:
| 决策项 |
说明 |
| 首次成功报告 |
report_version = 1 |
| 已完成平台在失败平台重试中 |
默认复用上一次成功抓取的数据 |
| 重试未改变结果 |
不生成新快照,只追加执行日志 |
| P0 默认版本策略 |
default_report_version = latest_successful_report_version |
| 报告默认展示 |
默认版本,允许用户切换查看旧版本 |
9.11 历史任务与结果回看
系统需支持:
| 能力 |
要求 |
| 历史任务列表 |
可查看 |
| 回看任务上下文 |
可回看任务输入、确认链接、执行状态和最终报告 |
| 失败平台查看 |
在部分失败任务中可查看失败平台及原因 |
| 报告版本切换 |
同一任务下可切换不同 report_version 的报告快照 |
产品决策:
| 决策项 |
说明 |
| 回看能力 |
是报告产品化的一部分,不是后台附属功能 |
| 报告必须绑定抓取时间 |
避免用户误把历史报告当实时结果 |
| 历史任务默认展示 |
最新成功报告版本,并允许下钻到旧版本 |
10. 数据、安全与合规边界
10.1 账号与会话
| 要求 |
说明 |
| 不保存用户账号密码 |
必须 |
| 会话复用位置 |
仅在当前工作区的服务端会话中心 |
| 会话缓存安全 |
需支持加密存储与用户手动清除 |
10.2 数据留存
| 数据类型 |
默认留存 |
| 原始抓取数据 |
30 天 |
| 标准化数据、报告快照、证据索引 |
90 天 |
| 原始大对象清理后 |
证据摘录、来源元数据和索引仍需保留到 90 天 |
| 用户主动删除 |
允许删除历史任务及相关数据 |
10.3 合规边界
| 边界 |
说明 |
| 数据范围 |
仅抓取用户有权访问、页面可见的数据 |
| 平台安全机制 |
不承诺绕过 |
| 平台规则变化导致不可用 |
优先保证用户知情,而不是静默失败 |
11. 成功指标
MVP 成功不以“功能做完”为标准,而以“任务能否稳定产出可用报告”为标准。
| 指标 |
定义 |
目标 |
| 任务完成率 |
发起任务后进入 Completed 或 PartialCompleted 的比例 |
>= 75% |
| 候选可用率 |
至少 2 个平台返回可供确认的候选项,或明确返回“无结果” |
>= 85% |
| 候选确认准确率 |
人工抽检中,被确认链接确属目标分析对象的比例 |
>= 90% |
| 人工确认效率 |
从候选页打开到提交确认的中位耗时 |
<= 5 分钟 |
| 任务时长 |
默认配置下从发起到报告完成的 P50 时长 |
<= 20 分钟 |
| 报告可追溯率 |
关键结论含来源范围与证据引用,或明确标记“样本不足”的比例 |
100% |
| 证据引用有效率 |
抽检中可通过平台、链接、评论 ID/索引与抓取时间定位到原证据的比例 |
>= 95% |
| 用户可用性评分 |
试运行用户对报告“是否可用于决策”的评分 |
>= 4/5 |
| 报告采纳率 |
试运行用户认为“无需重新整理即可进入后续分析或讨论”的比例 |
>= 70% |
补充说明:
| 规则 |
说明 |
PartialCompleted |
计入任务完成率,但必须已生成可阅读报告 |
| 无报告产出 |
即使部分步骤成功,也不计入完成率 |
NoSelection |
不计入任务完成率,也不计入失败率 |
| 质量类指标 |
以人工抽检和试运行记录为准,不依赖系统自报 |
12. MVP 验收标准
| 模块 |
验收标准 |
| 任务创建 |
用户可输入关键词并配置评论上限,成功发起任务 |
| 搜索召回 |
每个平台在搜索前完成预检查,并返回候选列表、无结果或阻塞原因 |
| 候选展示 |
每个候选项至少包含标题、价格、店铺、链接,并能体现重复项与规格差异 |
| 人工确认 |
用户可单选、多选、跳过,并能回看确认结果 |
| 状态模型 |
系统同时维护 task_status、task_stage、platform_status,支持 NoSelection 终态,且单平台阻塞不自动阻塞整任务 |
| 登录与会话 |
系统可识别登录失效、验证码、风控,并支持“任务前会话准备 + 搜索前预检查 + 抓取前校验”三段式入口 |
| 商品抓取 |
对所有确认链接抓取商品信息,并保留原始字段 |
| 评论抓取 |
按既定抽样规则抓取评论,评论附带来源信息 |
| 数据标准化 |
输出统一结构,允许空值,但不得丢失未映射原始字段 |
| 多链接聚合 |
报告中同时存在链接级结果和平台级汇总 |
| AI 报告 |
输出固定 Schema,至少包含摘要、平台洞察、跨平台对比、建议、证据索引和质量标记 |
| 重试与版本 |
失败平台重试不覆盖旧报告;结果变化时生成新的 report_version |
| 可追溯性 |
报告关键结论可回溯到平台、链接、评论样本或抓取时间 |
| 容错 |
单个平台失败不阻塞整体任务完成,最终报告可见失败说明 |
13. 版本优先级
13.1 P0
| P0 项目 |
| 新建任务页 |
| 天猫、京东站内搜索 |
| 候选结果展示 |
| 人工确认链接 |
| 登录态校验与人工阻塞处理 |
| 商品信息抓取 |
| 评论分层抽样抓取 |
| 数据标准化 |
| 多链接三级聚合 |
| 结构化 AI 报告 |
| 历史任务回看 |
13.2 P1
| P1 项目 |
| 更丰富的证据展示 |
| Markdown / PDF 导出 |
| 多租户与团队协作 |
| 更细粒度的运营建议 |
| 更强的失败重试与任务编排 |
| 更多平台接入 |
14. 风险与依赖
| 风险/依赖 |
影响 |
应对策略 |
| 平台登录与风控策略变化 |
导致搜索或抓取失败 |
明确 Blocked 状态,支持人工介入与失败提示 |
| 商品同款识别不稳定 |
导致分析对象错误 |
坚持“系统召回 + 用户确认” |
| 评论抽样偏斜 |
影响 AI 结论可靠性 |
使用分层抽样并在报告中标记样本范围 |
| 多链接结果过多 |
报告可读性下降 |
采用链接级、平台级、跨平台级三级展示 |
| 报告可读但不可验证 |
降低用户信任 |
强制引入来源范围、证据数量与引用 |
15. 一句话总结
本产品不是一个单纯的跨平台抓取工具,而是一个围绕“商品分析任务”设计的产品化工作流:把搜索、确认、抓取、标准化和 AI 分析整合为可追溯、可复用、可用于决策的结构化报告能力。