






















alias cc="ANTHROPIC_API_KEY=sk-cp-lB2wlR1QMfv1ZhMNx0KxzNy_s0vpEIxLL3XWGCiAg31OW3OvehielcFTpUNd_KZ9fjh4wJvR6_WNq3K3gWFr7ms69vuKrzpIdYhL0ummKVozSuj-IZeImBw \
ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic \
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7 \
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7 \
ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7 \
CLAUDE_CODE_SUBAGENT_MODEL=MiniMax-M2.5 \
claude""""
TODO:
- 语义相似度:
二手车需求 车辆用途(通勤 vs 上下班通勤) 车辆特点(有排面和豪华 ) 配置倾向性(动力强和加速快加速迅猛,价格低和性价比高);
这些字段如果走“字符串全匹配”,很容易因为同义改写/格式差异被误判为不可用;建议优先做规则归一化,归一化失败再用 embedding 相似度兜底
- 候选车系、车系版型(已做:embedding+覆盖匹配+尾缀兜底)
- 能源类型(已做:desc_similarity_threshold)
- 车辆功能配置(已做:desc_similarity_threshold)
- 新能源配置(电池类型/电芯品牌/快充慢充/800V 等描述文本)
- 电机配置(电机类型/电机数/电机布局等描述文本)
- 车辆用途(家用/通勤/自驾/接送小孩等)
- 用车人群(新手/年龄标签/家庭结构等)
- 车辆特点、配置倾向性(空间/安全/动力/油耗等自然语言描述)
- 内部配置、外部配置(配置项口径多、易同义改写)
- 其他需求、二手车需求、改装信息(自由文本)
- 车辆颜色(银灰/银色/珍珠白等同义或近义)
- 车辆类型、车身级别、驱动方式、变速箱配置、悬架配置、车门、座位布局(优先做规范化/枚举映射;仍存在表达差异时再用相似度兜底)
- 必要和强烈可混用;
- 若多出来的 field 为“数量限制”则先不判错 ;
- 座位布局要想办法总数一样就不算冗余条件(比如 座位布局##2+2+2##必要
座位布局##6座##必要)
- 还有的 field 不同但是值相同,也就不算冗余条件了(如内部配置##方向盘加热##必要
内部配置##零重力座椅##必要 和 车辆功能配置##方向盘加热##必要
车辆功能配置##零重力座椅##必要)
规则(按当前代码逻辑):
select:
- output 包含 label 即可;
- output 比 label 少:如果 output 的 select 数量 >= 5,则不报错/默认可用;否则按 label 做缺失检查并报错;
where:
- where 中除“候选车系/车系版型”之外的条件:仍按原逻辑做字段/值/倾向性/排除的全匹配判定可用性
- where 缺筛选条件可以可用
- “候选车系 + 车系版型”:抽取后拼接成文本,用 embedding 向量余弦相似度比较;相似度 >= similarity_threshold 视为相同,否则该 params block 判为不可用
- 多候选车系(>=2)场景:对每个“候选车系(+紧随的车系版型)”构成一组,与 label 侧的组做一一覆盖匹配;只要有一组达不到阈值就不可用(实现里会寻找一组能让所有 pair 都过阈值的匹配方式,避免仅因顺序差异误判)
- 四种对比取 max(防止):
output(车系+版型) vs label(车系+版型)
output(车系) vs label(车系)
output(车系+版型) vs label(车系)
output(车系) vs label(车系+版型)
另外加了一个很小的鲁棒性:车系文本候选里额外加入“去掉尾部英文字母后缀”的版本(如 515CDI → 515),避免尾缀把相似度拉低导致误判。
同样的 max-相似度逻辑也用于 params block 的兜底对齐(找不到精确 key 时用相似度对齐)。
- params block 对齐:原本 _block_key() 只靠字符串相等对齐;现在在找不到精确 key 时,会用“候选车系+车系版型”的相似度做兜底,把 label block 对齐到最相近且过阈值的 output block
- 增加desc_similarity_threshold 参数,默认值为 0.7,用于控制描述文本的相似度阈值;
- 适用属性:车辆功能配置,能源类型
- 增加“版型替代字段绑定”:在只有 1 组候选车系 的场景下,如果某侧缺少 车系版型,但 where 里有 座位布局,会把它绑定为该组的版型并从剩余 where 中消费掉。
orderby(order):
- 按全匹配做缺失/多余校验(字段/值/倾向性/排除;顺序无关);
- 当前仅产出错误标签,不参与“可用/不可用”判定;
groupby(group_by):
- 缺失:label 有但 output 没有;多余:output 有但 label 没有;
- 额外规则:output 的 group_by 里出现“候选车系”直接报错;
- 当前仅产出错误标签,不参与“可用/不可用”判定;
"""