fix: 修复匹配详情提示及公积金可选路径问题

修复匹配详情中“用户自填未经核验”等来源说明,清理未参与项的橙色注意提示,修正贷款统计口径文案;补充公积金完整可选路径提取逻辑,确保明确无额外时长要求的公积金分支可正确识别并通过。
This commit is contained in:
hujun
2026-10-19 16:11:59 +08:00
parent c95482a0f3
commit e5406c23a6
75 changed files with 31813 additions and 107 deletions
+83
View File
@@ -1,5 +1,88 @@
# 产品匹配规则开发契约
## 2026-10-15 最新增量:自填资质参考建议(本地未发布)
用户已授权必要的后端配套调整,覆盖下方“仅提示词”的旧边界:默认已填内容真实;未采集、模型不可见或精度不足的细项不补填、不阻断参考建议。职业类型和单位名称可外发,姓名、完整身份证、手机号仍排除。现有小程序填写、保存与回填不删减,线上和付费/真机复测继续暂缓。
新资质capture冻结profileAdvicePolicy=self-reported-profile-advice-v1,纳入目录/执行摘要及成功检查点绑定;无标记的历史目录、旧任务与报告保留原三态及missingFields非空语义。需求模式不启用。离线freeze新增末位显式opt-in参数,默认保持历史重建行为。
新策略条件仍为pass/fail/unknown,但所有missingFields必须为空。已完成unknown证据标为AI_CONDITION_NOT_ASSESSED,保留unknown,不阻断参考候选、不加分、不显示旧补填模板;待处理/超范围仍阻断。完整与或路径、引用、版本/摘要、数值及充分分支检查保持,明确不符仍fail。当前表单真实缺填/无效项仍由既有完整度体现;主报告improvements引用仅可对应真实缺填、无效或一致性问题。
标准比较在验证原规则后以self_reported副本执行,不伪造verified,原银行配置保留。未采集的标准细项缺失时标PROFILE_DETAIL_NOT_ASSESSED;当前字段缺填或异常不静默跳过。编译器固定“适用地区尚未核实。”且regionMode=unverified、regions=null时同样不阻断参考筛选,地区仍未核实,不标全国;其他配置提示和损坏配置仍拒绝或阻断。
新个人事实增加occupation(profession,100字符)与employer(50字符)文本白名单,主报告和条件共用引用,空白/超长/控制字符/HTML不外发。仅作不可信用户数据,禁止执行命令或据单位名猜未明示的身份资格;企业模式保持原外发边界。未采集性别不从证件推导,省份不猜城市,时长、金额、机构数等沿原粒度解释。
新策略unknown理由模板必须applicable=false、values=[];追加解释对未参与细项使用服务端固定说明,避免再次索要。报告、内部匹配项保存策略标记,原三态、存储与只读投影兼容,不重算旧报告。详细实现与验证见[资质参考建议调整](资质参考建议调整-20261015.md)。本轮6个后端运行文件、1份新增内存测试,未改产品原文/配置或小程序运行文件,未访问数据库/生产或调用真实模型。
## 2026-10-15 增量:仅加强资质评估提示词(本地未发布)
用户选择“只调整AI提示词”,小程序现有填写项、用户已填内容与回填保持。运行改动仅限ProductAiConditions的提示文字及AssessmentNeedsReport的system提示;不修改产品原文、事实白名单、输出结构、服务端校验、评分、分批或用量策略。
profileOnly=true的请求提示模型继续使用已有资质,不将本次申请金额、本次融资期限/贷款年限、本次资金用途、本笔新增贷款月供列为当前表单补填项或完整度不足依据。原产品约束仍须保留,不把未采集信息当零;复合条件按原与/或关系判断,明确不符仍fail,完整约束未确认仍unknown。unknown的missingFields沿用原非空结构,提示可写相关资料名称或核实事项,如“申请阶段负债核实依据”,不罗列未采集的具体申请字段;其他适用且确实缺失的资质仍保留。当前贷款月还款、当前信用卡使用额、有房不能分别代替完整银行月负债、近六个月均值、房产价值。
主报告待完善项只依原完整度缺失、无效项及一致性问题生成;固定理由正文若要求补填上述具体申请字段或断言未确认约束已满足,提示applicable=false并清空values,原绑定三态/引用规则保持。适用范围由已有冻结profileOnly标记控制,无该标记的需求模式不追加本段提示。已保存报告不重算;部署后重新构造的资质请求/重试使用新提示,成功批次检查点仍按既有规则复用。
这仅是模型提示约束,未增加服务端过滤或新的语义强制校验;现有unknown显示框架与“需补充”前缀保持。15项改动前后兼容核对及相关内存回归通过,但没有新的真实模型调用,不能认定模型已稳定遵守。证据D:/AAdesk/202609/airz-backups/profile-prompt-20261015。本轮未部署或重发小程序。
## 2026-10-15 增量:仅省份选择与地区事实冻结
当前填写页仅选择34省级地区,form.city存省份名称,显式provinceCode为六位省级代码,cityCode=null。新省份名称/代码须严格配对,不能同时提交具体城市;province_code仅冻结在评估版本,排除user_info写入列,不作表结构迁移。未带provinceCode的旧请求保持原五城推码及规范化摘要。历史版本不改写;编辑时已知城市转换为省份,未知旧地区须重选。
新目录regionFactsPolicy=region-label-v1冻结cityNames及provinceNames并计入catalogSnapshotId。cityCode可带冻结displayValue;provinceCode只表达所在省份,代码和输入名称不一致不外发。省份不能猜测城市/户籍/工作城市/申请地区/银行网点,缺具体城市仍unknown;不新增标准城市匹配的省级自动通过规则。旧目录不动态获得新省份事实或新标签,非法策略/名称映射拒绝。本轮零真实模型调用,不以本地输入回归冒充模型语义验收。
数据及生成入口见docs/data/city-options.json、scripts/generate-city-options.py;省级列表与历史城市回填数据分开使用。690项PHP、108项UTS、18项受控H5检查及微信29页编译通过,未部署、未验收持久化并发/真机/生产worker。证据D:/AAdesk/202609/airz-backups/city-options-20261015。
## 2026-10-15 明确充分分支与理由事实规范化(本地待发布)
新冻结目录带aiGroundingPolicy=product-ai-grounding-v1并纳入目录摘要。无标记的历史目录保留原条件解释与填值;未知标记拒绝,不能读历史报告时套用新行为。
仅从明示任选的硬条件eq原文中,保守提取独立、无附加要求的公积金分支为sufficientAlternatives。备注与尾句只允许空或当前已核对的纯路径固定说明;分号划分顶层时不拆内部顿号,圈号需每支完整同级,其他编号和嵌套括号歧义退回模型。带且关系、时长限制、否定或共同要求时不能把其中一个子条件升级为充分条件。当前实现是窄范围路径保护,不是通用自然语言规则编译器。
正向housingFund事实命中充分分支时,该模型条件必须pass且引用fact:housingFund;unknown、fail或缺少相关引用拒绝。服务端不自动改写供应商三态,不推导其他条件或整款产品通过;未命中不等于fail。批次中间证据副本可暂时移除新策略以建立未调用条件的unknown占位,但模型响应、成功检查点、最终报告均用原冻结目录重新验证,模型不能靠占位文字豁免检查。
理由保留模板固定正文,只规范有事实依据的填值:紧邻“月收入(信息)(为/是/冒号)”且无固定金额单位的槽中,裸数字必须等于引用的实际monthlyIncome,才补元;不能借用其他金额或猜万元换算。“你的/您的{X}符合……年龄要求/范围/条件”中的裸年龄或N岁规范为“年龄(N岁)”,数值必须直接等于所引实际age,已规范格式同样校验,不能借条件上下限作为用户年龄。固定单位槽与旧目录不改写,其他数值、单位、引用和三态检查保持。
622项相关内存检查及7批离线回放通过。旧目录判断/填值保持;新目录拦截原ID69矛盾。修正夹具通过合并与恢复并不等于新的真实模型评估,仍须验证新提示的真实返回后安排配套发布;本轮无新增模型调用、数据库访问或部署。
## 2026-10-15 待补资料不设固定条数上限(本地待发布)
按用户最新要求,customConditionJudgments的missingFields不再限制为最多4项。unknown至少提供1个相关资料名称,服务端保留完整列表;pass/fail仍必须为空。每项继续要求非空字符串、最多60字,不含控制字符或HTML;名称不得重复,列表须为连续下标数组。条件/产品绑定、版本/摘要、证据引用及三态校验保持,其他列表的既有限制不变。
模型提示同步取消固定条数。5项、6项及64项回归覆盖条件校验、报告解析和匹配理由展示,全部保留。第3次真实调用未改写的原始首批15条件+16模板已离线解析通过,5/6项待补资料及unknown判断均原样保留;没有新增模型调用或完成后6批评估。
本节覆盖下方“最多4项”“5项以上拒绝”的旧条数约定;尚未部署,不重写已发布报告或历史失败任务。已有模型响应整体大小/token预算仍沿用原有机制。
## 2026-10-15 不展示的绑定理由允许省略重复引用(本地待发布)
当理由已绑定有效条件(ruleId非空且存在最终条件证据)、conditionOutcome与该条件一致、applicable=false且values=[]时,允许evidenceRefs=[],复用关联条件已校验的证据。不补造引用、不替换判断,关闭的理由仍不展示,不影响准入、分数或排名。
实际展示的pass/fail理由,以及未绑定条件的pass/fail理由,仍至少引用一个白名单事实。即使理由不展示,已提供的非法/重复引用仍拒绝,版本/模板摘要、绑定结论和空填值等检查继续执行。unknown资料不足提示的既有口径保持,数值/单位和实际展示理由的填值检查不放宽。模型提示与此例外同步。
第2次真实评估未改写的首批响应15条件+16模板已通过本地离线解析,关联公积金证据与关闭理由保持;此项不代表后6批已完成、整轮真实语义验收通过或线上已生效。
## 2026-10-15 待补资料最多4项、年龄不叠加贷款期限(本地待发布)
自定义条件的 `missingFields` 在unknown时允许1—4个不重复的简短资料名称,pass/fail时仍必须为空;5项及以上继续拒绝。模型提示与服务端校验同步,保留所有合法返回项,不截断列表。
个人新资质评估(profileOnly=true)冻结目录时,对明确以年龄区间开头、含贷款年限/期限组合的手输年龄条件,只冻结该年龄区间为between条件,含上下界;不判断年龄加贷款年限。当前25款涉及优客分期18—65岁、润薪贷23—60岁、民易贷22—60岁。关联AI理由中的“年龄与贷款期限组合/年龄与贷款年限组合”同步改为“年龄要求”,避免宣称已经核对贷款期限。原产品行及完整原文保留;历史已冻结编译条件不在读取或重试时重新规范化,旧需求模式不应用该变换。分性别年龄条件保持原范围,不能合并为统一上下限。
模型提示明确区分或/与:任一完整可选分支满足即pass,其他可选分支未提供不影响已满足分支;分支内所有必需条件仍须满足。全部分支明确不满足才fail,资料不足且仍有可能满足才unknown。仅强化提示不等于真实模型语义验收通过,须另行复测。
## 2026-10-14 补充:三态显示真实匹配度(本地待发布)
符合条件、待核实和条件不符三态,报告/列表/详情/对比均展示冻结结果已有且通过校验的score,包括0%;旧score=null不补算或造分。“待确认”文案统一为“待核实”,硬条件缺失资料仍为“资料不足”。状态与匹配度独立展示,unknown/ineligible不进入候选rank、不因此获得申请准备入口,评分及排序规则保持。该约定覆盖下方旧阶段仅eligible显示百分比的口径。
报告匹配标签“查看更多产品”下方仅保留修改资料入口与“匹配度仅供参考,不代表获批概率”;重复统计、排序说明与次要报告信息移除,完整列表筛选及其他报告栏目保持。分析完成后默认进入本次已发布revision的matches栏目,处理中或失败不能因存在旧报告而跳转。本轮只改前端并完成本地验证,未部署;默认三款all分组及身份证年龄仍需下节后端配套。
## 2026-10-14 默认三款展示与身份证年龄(本地待发布)
两个匹配入口默认读取 `eligibility=all`,每页3款;先符合条件、再待核实、最后条件不符,同组按真实score降序、同分按产品ID升序。状态、分数和候选rank不改写;实际不足3款按已有数量展示,不生成虚构产品。旧eligible/ineligible/unknown分组及接口默认eligible保持兼容,all游标单独绑定分组与冻结结果。
新冻结目录带 `identityFactsPolicy=identity-age-v1`。个人评估从本人冻结输入中的有效身份证提取生日,按目录的上海业务日期计算周岁,校验18位校验码/生日并兼容15位号码;无效或未来生日不生成年龄。模型和公开报告只接收age整数事实,来源仍为self_reported,单位age;身份证号码不外发。自定义年龄条件及理由模板可引用 `fact:age`,报告展示“年龄:N 岁”。标准age_min/age_max列仍未启用,不新增表单字段或数据库列。
旧冻结目录没有该策略时保持原事实,重试/读取不补算年龄;用户需重新评估获取新年龄。此约定覆盖下方旧阶段“不能从身份证推导年龄/默认仅显示候选”的限制。本轮仅本地实现与验证,部署须配套4个后端库和小程序源码;不重算旧报告。
2026-09-30最新展示约定:按用户要求,当前六条产品使用正常业务名称及资料,前台/PDF不展示“演示、非真实”等环境标签;内部source reference、isDemo及containsDemoProducts继续保存,用于追溯既有产品。正式ID22—27已同步文案并增加版本,金融参数/条件不变,历史快照不改写。下文强制显示环境标签的表述仅作阶段记录,本次展示规则优先;部署状态和验证见[开发进度0.36](开发进度.md)。
## 2026-09-29 最新覆盖约定(inputVersion=3)