From d2135e9a6e467380d71f223657136893dee67cb3 Mon Sep 17 00:00:00 2001 From: hub-gif <2487812171@qq.com> Date: Tue, 14 Apr 2026 15:49:58 +0800 Subject: [PATCH] feat(report): drop chapter 7 product claims (detail attributes summary) Made-with: Cursor --- .../jd_pc_search/jd_competitor_report.py | 15 +-------------- backend/pipeline/llm_generate.py | 4 ++-- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/backend/crawler_copy/jd_pc_search/jd_competitor_report.py b/backend/crawler_copy/jd_pc_search/jd_competitor_report.py index 616f60b..b1f0047 100644 --- a/backend/crawler_copy/jd_pc_search/jd_competitor_report.py +++ b/backend/crawler_copy/jd_pc_search/jd_competitor_report.py @@ -3,7 +3,7 @@ 关键词 → 调用 ``jd_keyword_pipeline`` 全链路采集 → 生成 **标准化竞品分析报告**(Markdown)。 报告结构对齐常见竞品分析框架:研究范围与方法、执行摘要、**整体市场观察(列表可见度 proxy)**、 -市场与竞争结构、**按细分类目分组的竞品对比矩阵**、价格分析、产品与宣称、**按细分类目的消费者反馈与用户画像**、策略提示与附录;并明确数据边界。 +市场与竞争结构、**按细分类目分组的竞品对比矩阵**、价格分析、**按细分类目的消费者反馈与用户画像**、策略提示与附录;并明确数据边界。 若运行配置中提供了外部市场规模摘录(``EXTERNAL_MARKET_TABLE_ROWS``),则追加对应表格小节;否则不输出占位行。 依赖:全量抓取时与 ``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( [ "---", diff --git a/backend/pipeline/llm_generate.py b/backend/pipeline/llm_generate.py index d9155a0..d254e7a 100644 --- a/backend/pipeline/llm_generate.py +++ b/backend/pipeline/llm_generate.py @@ -158,7 +158,7 @@ def split_competitor_report_for_bridges( md: str, *, max_excerpt: int = 1200 ) -> dict[str, dict[str, str]]: """ - 按「## 一、」…「## 九、」切分规则报告,供大模型按章写衔接分析。 + 按「## 一、」…「## 九、」切分规则报告;**只返回正文中实际出现的章**(略去未输出的章)。 每键含完整标题行与正文摘录(过长截断)。 """ pat = re.compile(r"^## ([一二三四五六七八九])、([^\n]*)$", re.MULTILINE) @@ -469,7 +469,7 @@ PRICE_GROUPS_SYSTEM = """你是定价与渠道顾问。输入为 JSON:``keywor 请**为每个细类**输出一小段 Markdown(全部 groups 都要写,顺序与输入一致): - 以 ``#### `` + 与该 group 字段**完全一致**的细类名作为小节标题; - 每段约 **80~200 字**中文,**只写价盘与价差**:用 ``price_stats`` 概括价带/离散度(如 min~max、中位数、相对集中或拉得开);用 ``listing_snippets`` 归纳**标价 vs 券后 vs 详情价**是否常一致、是否常见券后低于标价、价差幅度的大致印象;**可一句**联系标题里**显式出现的规格数字**(如克重、件数)解释**价高/价差大是否可能来自大规格或组合装**——仅当摘录里确有数字时写,勿展开成宣称解读; -- **硬性禁止**(本章不是卖点章):不要列举或归纳「0 蔗糖 / 低 GI / 全麦 / 代餐 / 孕妇 / 控糖」等**营销宣称或场景关键词**;不要写配料、功效、品牌叙事、用户画像;这些若出现应留给报告 **§5 细类要点归纳** 或 **§7**; +- **硬性禁止**(本章不是卖点章):不要列举或归纳「0 蔗糖 / 低 GI / 全麦 / 代餐 / 孕妇 / 控糖」等**营销宣称或场景关键词**;不要写配料、功效、品牌叙事、用户画像;这些若出现应留给报告 **§5 细类要点归纳**; - **禁止** Markdown 表格、禁止罗列全部 SKU;勿编造未出现的到手价、销量排名; - 若 ``price_stats`` 中 n=0 或缺失,写「该细类无可解析数值价,从略」。