"""CSV 表头键、运行默认调参与关注词/场景配置(与 ``pipeline.competitor_report.jd_report`` 顶层一致)。""" from __future__ import annotations from pipeline.csv.schema import ( COMMENT_CSV_COLUMNS, JD_SEARCH_CSV_HEADERS, MERGED_FIELD_TO_CSV_HEADER, ) _JD_LIST_PRICE_KEY = JD_SEARCH_CSV_HEADERS["price"] _COUPON_SHOW_PRICE_KEY = JD_SEARCH_CSV_HEADERS["coupon_price"] _ORIGINAL_LIST_PRICE_KEY = JD_SEARCH_CSV_HEADERS["original_price"] _SELLING_POINT_KEY = JD_SEARCH_CSV_HEADERS["selling_point"] _RANK_TAGLINE_KEY = JD_SEARCH_CSV_HEADERS["hot_list_rank"] # 历史批次 CSV 表头(括号英文);新批次为纯中文,读取时新键优先 _LEGACY_JD_LIST_PRICE_KEY = "标价(jdPrice,jdPriceText,realPrice)" _LEGACY_COUPON_SHOW_PRICE_KEY = ( "券后到手价(couponPrice,subsidyPrice,finalPrice.estimatedPrice,priceShow)" ) _LEGACY_SHOP_NAME_KEY = "店铺名(shopName)" _LEGACY_RANK_TAGLINE_KEY = "榜单类文案(标签/腰带/标题数组中的榜、TOP 等)" _LEGACY_COMMENT_FUZZ_KEY = "评价量(commentFuzzy)" _LEGACY_SELLING_POINT_KEY = "卖点(sellingPoint)" _LIST_BRAND_TITLE_HEADER = "店铺信息标题" _LEGACY_LIST_BRAND_TITLE_KEY = "店铺信息标题(shopInfoTitle,brandName)" _DETAIL_PRICE_FINAL_CSV_KEYS: tuple[str, ...] = ( MERGED_FIELD_TO_CSV_HEADER["detail_price_final"], "detail_price_final", ) _LIST_PRICE_AND_COUPON_KEYS: tuple[str, ...] = ( *_DETAIL_PRICE_FINAL_CSV_KEYS, _JD_LIST_PRICE_KEY, _LEGACY_JD_LIST_PRICE_KEY, _COUPON_SHOW_PRICE_KEY, _LEGACY_COUPON_SHOW_PRICE_KEY, ) # 报告摘录「标价」:列表标价优先,缺省时用商详到手价列兜底 _LIST_SHOW_PRICE_CELL_KEYS: tuple[str, ...] = ( _JD_LIST_PRICE_KEY, _LEGACY_JD_LIST_PRICE_KEY, MERGED_FIELD_TO_CSV_HEADER["detail_price_final"], "detail_price_final", ) _MERGED_SHOP_CELL_KEYS: tuple[str, ...] = ( MERGED_FIELD_TO_CSV_HEADER["detail_shop_name"], "detail_shop_name", JD_SEARCH_CSV_HEADERS["shop_name"], _LEGACY_SHOP_NAME_KEY, ) _COMMENT_FUZZ_KEYS: tuple[str, ...] = ( MERGED_FIELD_TO_CSV_HEADER["comment_fuzzy"], _LEGACY_COMMENT_FUZZ_KEY, ) _COMMENT_CSV_SKU = COMMENT_CSV_COLUMNS[0] _COMMENT_CSV_BODY = COMMENT_CSV_COLUMNS[3] _COMMENT_CSV_SCORE = COMMENT_CSV_COLUMNS[7] # 「评分」→ commentScore # 评价星级分桶(comment_sentiment 模块):仍用于可选的情感 LLM 载荷;报告正文与 brief 已不再输出同口径图 _COMMENT_SCORE_NEG_MAX = 2 # 1~2 星 → 偏负向 _COMMENT_SCORE_POS_MIN = 4 # 4~5 星 → 偏正向(3 星为中评,归入中性) _DETAIL_CATEGORY_PATH_KEY = MERGED_FIELD_TO_CSV_HEADER["detail_category_path"] _K_CAT_COL = JD_SEARCH_CSV_HEADERS["leaf_category"] _K_PROP_COL = JD_SEARCH_CSV_HEADERS["attributes"] EXTERNAL_MARKET_TABLE_ROWS: tuple[tuple[str, str, str, str], ...] = () __all__ = [ "_COMMENT_CSV_BODY", "_COMMENT_CSV_SCORE", "_COMMENT_CSV_SKU", "EXTERNAL_MARKET_TABLE_ROWS", "_COMMENT_FUZZ_KEYS", "_COMMENT_SCORE_NEG_MAX", "_COMMENT_SCORE_POS_MIN", "_COUPON_SHOW_PRICE_KEY", "_DETAIL_CATEGORY_PATH_KEY", "_DETAIL_PRICE_FINAL_CSV_KEYS", "_JD_LIST_PRICE_KEY", "_K_CAT_COL", "_K_PROP_COL", "_LEGACY_COUPON_SHOW_PRICE_KEY", "_LEGACY_JD_LIST_PRICE_KEY", "_LEGACY_LIST_BRAND_TITLE_KEY", "_LEGACY_RANK_TAGLINE_KEY", "_LEGACY_SELLING_POINT_KEY", "_LEGACY_SHOP_NAME_KEY", "_LIST_BRAND_TITLE_HEADER", "_LIST_PRICE_AND_COUPON_KEYS", "_LIST_SHOW_PRICE_CELL_KEYS", "_MERGED_SHOP_CELL_KEYS", "_ORIGINAL_LIST_PRICE_KEY", "_RANK_TAGLINE_KEY", "_SELLING_POINT_KEY", ]