feat(report): drop chapter 7 product claims (detail attributes summary)

Made-with: Cursor
This commit is contained in:
hub-gif 2026-04-14 15:49:58 +08:00
parent f994555f9f
commit d2135e9a6e
2 changed files with 3 additions and 16 deletions

View File

@ -3,7 +3,7 @@
关键词 → 调用 ``jd_keyword_pipeline`` 全链路采集 → 生成 **标准化竞品分析报告**(Markdown)。 关键词 → 调用 ``jd_keyword_pipeline`` 全链路采集 → 生成 **标准化竞品分析报告**(Markdown)。
报告结构对齐常见竞品分析框架:研究范围与方法、执行摘要、**整体市场观察(列表可见度 proxy)**、 报告结构对齐常见竞品分析框架:研究范围与方法、执行摘要、**整体市场观察(列表可见度 proxy)**、
市场与竞争结构、**按细分类目分组的竞品对比矩阵**、价格分析、产品与宣称、**按细分类目的消费者反馈与用户画像**、策略提示与附录;并明确数据边界。 市场与竞争结构、**按细分类目分组的竞品对比矩阵**、价格分析、**按细分类目的消费者反馈与用户画像**、策略提示与附录;并明确数据边界。
若运行配置中提供了外部市场规模摘录(``EXTERNAL_MARKET_TABLE_ROWS``),则追加对应表格小节;否则不输出占位行。 若运行配置中提供了外部市场规模摘录(``EXTERNAL_MARKET_TABLE_ROWS``),则追加对应表格小节;否则不输出占位行。
依赖:全量抓取时与 ``jd_keyword_pipeline.py`` 相同(Node、h5st、Playwright、``common/jd_cookie.txt``)。 依赖:全量抓取时与 ``jd_keyword_pipeline.py`` 相同(Node、h5st、Playwright、``common/jd_cookie.txt``)。
@ -2225,19 +2225,6 @@ def build_competitor_markdown(
] ]
) )
attrs: list[str] = []
for row in merged_rows:
a = _cell(row, "detail_product_attributes")
if a and a not in attrs:
attrs.append(a)
lines.extend(["---", "", "## 七、产品与宣称(商详参数摘要)", ""])
if attrs:
for i, a in enumerate(attrs[:12], 1):
lines.append(f"{i}. {_md_cell(a, 600)}")
else:
lines.append("*无可用商详参数摘要。*")
lines.append("")
lines.extend( lines.extend(
[ [
"---", "---",

View File

@ -158,7 +158,7 @@ def split_competitor_report_for_bridges(
md: str, *, max_excerpt: int = 1200 md: str, *, max_excerpt: int = 1200
) -> dict[str, dict[str, str]]: ) -> dict[str, dict[str, str]]:
""" """
按「## 一、」…「## 九、」切分规则报告,供大模型按章写衔接分析。 按「## 一、」…「## 九、」切分规则报告;**只返回正文中实际出现的章**(略去未输出的章)。
每键含完整标题行与正文摘录(过长截断)。 每键含完整标题行与正文摘录(过长截断)。
""" """
pat = re.compile(r"^## ([一二三四五六七八九])、([^\n]*)$", re.MULTILINE) pat = re.compile(r"^## ([一二三四五六七八九])、([^\n]*)$", re.MULTILINE)
@ -469,7 +469,7 @@ PRICE_GROUPS_SYSTEM = """你是定价与渠道顾问。输入为 JSON:``keywor
请**为每个细类**输出一小段 Markdown(全部 groups 都要写,顺序与输入一致): 请**为每个细类**输出一小段 Markdown(全部 groups 都要写,顺序与输入一致):
- 以 ``#### `` + 与该 group 字段**完全一致**的细类名作为小节标题; - 以 ``#### `` + 与该 group 字段**完全一致**的细类名作为小节标题;
- 每段约 **80~200 字**中文,**只写价盘与价差**:用 ``price_stats`` 概括价带/离散度(如 min~max、中位数、相对集中或拉得开);用 ``listing_snippets`` 归纳**标价 vs 券后 vs 详情价**是否常一致、是否常见券后低于标价、价差幅度的大致印象;**可一句**联系标题里**显式出现的规格数字**(如克重、件数)解释**价高/价差大是否可能来自大规格或组合装**——仅当摘录里确有数字时写,勿展开成宣称解读; - 每段约 **80~200 字**中文,**只写价盘与价差**:用 ``price_stats`` 概括价带/离散度(如 min~max、中位数、相对集中或拉得开);用 ``listing_snippets`` 归纳**标价 vs 券后 vs 详情价**是否常一致、是否常见券后低于标价、价差幅度的大致印象;**可一句**联系标题里**显式出现的规格数字**(如克重、件数)解释**价高/价差大是否可能来自大规格或组合装**——仅当摘录里确有数字时写,勿展开成宣称解读;
- **硬性禁止**(本章不是卖点章):不要列举或归纳「0 蔗糖 / 低 GI / 全麦 / 代餐 / 孕妇 / 控糖」等**营销宣称或场景关键词**;不要写配料、功效、品牌叙事、用户画像;这些若出现应留给报告 **§5 细类要点归纳** 或 **§7**; - **硬性禁止**(本章不是卖点章):不要列举或归纳「0 蔗糖 / 低 GI / 全麦 / 代餐 / 孕妇 / 控糖」等**营销宣称或场景关键词**;不要写配料、功效、品牌叙事、用户画像;这些若出现应留给报告 **§5 细类要点归纳**;
- **禁止** Markdown 表格、禁止罗列全部 SKU;勿编造未出现的到手价、销量排名; - **禁止** Markdown 表格、禁止罗列全部 SKU;勿编造未出现的到手价、销量排名;
- 若 ``price_stats`` 中 n=0 或缺失,写「该细类无可解析数值价,从略」。 - 若 ``price_stats`` 中 n=0 或缺失,写「该细类无可解析数值价,从略」。