docs: 更新匹配规则及页面改造相关文档,新增演示产品及报告验证记录
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
# 产品匹配规则开发契约
|
||||
|
||||
版本:1.2。日期:2026-09-24。关联PRODUCT-001、PRODUCT-002、PRODUCT-003。页面消费方式见[04—10方案](原型04-10页面改造与跳转方案.md),完整产品判定/快照/接口语义仍以[数据契约](需求与评估结果数据契约.md)第5节为准。
|
||||
|
||||
## 1. 本轮实现边界
|
||||
|
||||
后端新增 `application/common/library/ProductMatchRules.php`,引擎版本 `product-hard-rules-v1`,实现规范化硬规则列表校验、精确比较、来源门槛、三态合并和逐规则证据。`tests/product_match_rules.php` 64项内存测试通过;不初始化应用、不访问数据库/Redis/网络,正式worker可保持运行。
|
||||
|
||||
新增 `ProductPublication.php`,完成产品独立字段及JSON预检、按个人/企业编译规则,并接入后台Product模型的新增、修改及批量保存路径。73项编译测试、16项事务回滚模型测试和41项基础回归通过,原64项规则回归通过。
|
||||
|
||||
新增ProductMatching,已接入评估worker:冻结目录、确定性排序及理由生成,匹配结果与报告同事务落库;详见第7节。**匹配列表/详情读接口和04—10页面尚未完成**,单产品AI解释仍为not_requested。用户已明确允许本地产品库直接上架演示数据,本轮录入6条;名称和来源明确标识演示,不将其视为真实产品验收。
|
||||
|
||||
## 2. 上层实施门槛
|
||||
|
||||
1. 产品发布时校验独立金额/期限/利率范围、适用对象、地区代码/全国声明、用途依据、来源引用和有效期。regions=[]表示明确全国,null表示未配置;金额或期限为空不是无限制。
|
||||
2. 由服务端编译器把独立字段及补充eligibility_rules映射为完整硬规则集合,必须包含本次需求金额、期限、用途、对象及地区适用性。没有合法发布预检的产品不得调用本模块后直接视为候选。
|
||||
3. 省/市/区覆盖需使用可信地区树,不能用自由文本或盲目前缀猜测。本轮编译器复用AssessmentRecords::CITIES的5个城市代码,只支持明确全国或精确城市集合;省区代码、未支持城市拒绝发布。未实现全国行政区层级覆盖。
|
||||
4. 只对已适用硬规则求值;不适用条件由上层确定性编译器处理,并保留not_applicable依据。当前不支持客户端when表达式、软评分、任意脚本或字符串SQL。
|
||||
5. 事实映射器从本人冻结评估及经校验的外部结果构建facts。requiredSource=verified只能由真实有效外部证据满足,不能接收客户端/AI自报verified。尚无录入/API支撑的年龄、职业自由文本、流水等规则不在本版字段白名单中,发布前拒绝。
|
||||
6. 首次执行在正式快照中冻结目录、规则全文、引擎版本、排序版本及证据来源;重试不读新产品或当前新规则。新增匹配阶段必须保留已有needs-report-v2快照读取分支,旧成功报告及已冻结无匹配报告不重算。
|
||||
7. 产品集合不可用继续返回unavailable;合法执行且零候选才返回completed/0。非法产品配置使匹配failed,不能静默跳过后宣称完整结果。
|
||||
8. 全部产品判定后,仅eligible按productId升序生成rank;score/scorePolicyVersion=null。每条理由由规则结果模板生成,AI只能解释已有依据。
|
||||
|
||||
## 3. 内部规则结构
|
||||
|
||||
以下是编译后的内部规则对象结构;独立字段对应的规则由服务端生成,不能原样填进补充条件覆盖产品额度或期限。`eligibility_rules.conditions`中的每条记录须加适用对象包装,完整录入格式见第6节。草稿仍兼容旧JSON;本轮不迁移/改写已有JSON,正式上架采用新增整体预检。
|
||||
|
||||
```json
|
||||
[
|
||||
{"id":"amount_range","field":"requestedAmountYuan","operator":"between","value":["10000.00","500000.00"],"requiredSource":"self_reported"},
|
||||
{"id":"term_range","field":"requestedTermMonths","operator":"between","value":[6,36],"requiredSource":"self_reported"},
|
||||
{"id":"purpose_allowed","field":"purposeCode","operator":"in","value":["education","daily_consumption"],"requiredSource":"self_reported"}
|
||||
]
|
||||
```
|
||||
|
||||
示例仅用于开发测试,不代表任何真实银行条件,也不是可直接发布的完整产品。validate/evaluate要求非空列表、最多50条;id在产品内唯一、以小写字母开头、最多48字符,仅字母数字下划线短横线。严格接受id/field/operator/value/requiredSource五个键,多键/少键均拒绝;规则版本由上层冻结并传入。
|
||||
|
||||
| 字段 | 内部类型/单位 | 支持操作符 |
|
||||
| --- | --- | --- |
|
||||
| requestedAmountYuan、monthlyIncome、annualRevenue、totalDebtBalance、monthlyLoanPayment、creditCardTotalLimit、creditCardUsedLimit | money/yuan;0.00—999999999.99两位小数字符串 | eq、in、gte、lte、between |
|
||||
| requestedTermMonths、operatingMonths | integer/month;非负PHP整数 | 同上 |
|
||||
| creditLoanCount、creditCardCount | integer/count;非负PHP整数 | 同上 |
|
||||
| cityCode | region;六位代码字符串,实际行政区有效性由上层字典校验 | eq、in |
|
||||
| applicantType | enum:personal/enterprise | eq、in |
|
||||
| purposeCode | enum:首版用途字典中的稳定code | eq、in;actual=other始终unknown |
|
||||
| socialSecurity、housingFund | enum:none/under_six_months/six_months_plus | eq、in |
|
||||
| house、car | enum:yes/no | eq、in |
|
||||
|
||||
金额不接受float、科学计数法、三位小数、非规范前导零。整数不接受字符串、float、bool;运行模块支持0—4294967295,上层仍须执行具体字段业务上限。in要求1—50个不重复同类型值;between必须两个有序值,含上下边界。枚举不得使用范围运算。新增字段/枚举/操作符必须有版本化兼容和测试,不能运行时接受任意配置。
|
||||
|
||||
## 4. 事实、输出与错误
|
||||
|
||||
调用为 `ProductMatchRules::evaluate($rules, $facts, $productId, $ruleVersion)`。productId为正整数字符串;ruleVersion为1—64位字母数字点横线下划线字符串。facts结构:
|
||||
|
||||
```json
|
||||
{
|
||||
"requestedAmountYuan":{"value":"123456.78","source":"self_reported","observedAt":"2026-09-24T00:00:00Z"},
|
||||
"requestedTermMonths":{"value":12,"source":"self_reported","observedAt":"2026-09-24T00:00:00Z"},
|
||||
"purposeCode":{"value":"education","source":"self_reported","observedAt":"2026-09-24T00:00:00Z"}
|
||||
}
|
||||
```
|
||||
|
||||
结果为 `{eligibility,evidence}`,仅表示传入已适用条件集合的结果,未生成rank/score/推荐文案。先校验全部规则再求值,不在首个fail提前返回:有fail则ineligible,无fail有unknown则unknown,否则eligible。
|
||||
|
||||
每条证据包含evidenceId=`product:<productId>:rule:<ruleId>`、ruleId、ruleVersion、kind=hard、fieldRefs、operator、expected、actual、outcome、reasonCode、source、requiredSource、observedAt、valueType及unit。金额保持元字符串。source/observedAt在未知时为null,不冒充已核验来源或捏造观测时间;未被引用的额外身份字段不进入输出。该结构当前是内部camelCase对象,后续入库仍按已有契约显式映射snake_case,不直接绕过持久化校验。
|
||||
|
||||
| 情况 | outcome / reasonCode | 行为 |
|
||||
| --- | --- | --- |
|
||||
| 值缺失/null | unknown / FACT_MISSING | actual=null;不当0 |
|
||||
| 值类型/枚举/精度非法 | unknown / FACT_INVALID | actual=null;原值不复制到证据或错误日志 |
|
||||
| 来源未知或不满足verified要求 | unknown / SOURCE_INSUFFICIENT | 保留有效规范值及真实来源,不当已核验 |
|
||||
| purposeCode=other | unknown / PURPOSE_REQUIRES_REVIEW | 不读取用途自由说明,不自动猜测 |
|
||||
| 满足/不满足边界 | pass/fail / CONDITION_MET/CONDITION_NOT_MET | 保留预期值、实际值、类型、单位及规则引用 |
|
||||
| 规则列表/字段/操作符/阈值/标识不合法 | 抛InvalidArgumentException,固定MATCH_RULES_INVALID | 上层转换为配置错误,不作为某用户条件不符 |
|
||||
|
||||
## 5. 当前验收与下一交付
|
||||
|
||||
64项覆盖金额上下界/一分钱误差/最大值/float拒绝、期限边界/类型、零值与缺失、fail优先但保留unknown、来源门槛、other用途、地区不从文本推断、证据产品隔离、确定性、无评分、身份字段排除、非法规则与列表大小等。
|
||||
|
||||
发布预检、字段编译、目录冻结/排序/理由及正式任务持久化已交付。下一步为匹配分页/详情与公共查询接口,再按04—10方案接页面;PRODUCT-003结构化编辑体验和真实产品录入仍待完成。演示产品联调不解除真实产品资料、外部核验和业务金标准验收的依赖。
|
||||
|
||||
## 6. 产品发布JSON与字段编译(本轮已实现)
|
||||
|
||||
### 6.1 完整格式
|
||||
|
||||
复用`fa_product.eligibility_rules`,不新增表或列。顶层严格要求version/source/purposes/conditions四个键,不接受旧rules或未知键。version为运营维护的正整数规则修订号;编译格式由`product-publication-v1`标识,产品行version独立由服务端递增。
|
||||
|
||||
下例只展示结构,来源是合成引用,**不能作为真实产品发布资料**。生产录入时必须替换为可核对的机构材料;程序只校验格式与完整性,不证明材料真实性。
|
||||
|
||||
```json
|
||||
{
|
||||
"version": 1,
|
||||
"source": {
|
||||
"publisher": "合成机构(仅限示例)",
|
||||
"title": "额度、期限、利率、地区、用途及全部准入条件说明",
|
||||
"reference": "fixture:test-only",
|
||||
"checkedOn": "2026-09-24"
|
||||
},
|
||||
"purposes": {
|
||||
"personal": ["education", "daily_consumption"],
|
||||
"enterprise": ["working_capital"]
|
||||
},
|
||||
"conditions": [
|
||||
{
|
||||
"applicantTypes": ["personal"],
|
||||
"rule": {
|
||||
"id": "income_min",
|
||||
"field": "monthlyIncome",
|
||||
"operator": "gte",
|
||||
"value": "8000.00",
|
||||
"requiredSource": "self_reported"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
此例对应object="1,2";个人产品只保留personal,企业产品只保留enterprise。purposes的键须恰好覆盖适用对象,每类至少一个来自当前需求字典的用途代码;other仍需人工核对,不会因此自动通过。conditions可以为[],不能为{};即使为空仍生成至少4条必要规则。最多44个补充条件,加上独立字段规则后每分支最多50条。
|
||||
|
||||
source为整份产品条件的共同来源:publisher为发布机构(最长100字)、title为资料标题(200字)、reference为可定位的公开文档链接或内部材料索引(500字)、checkedOn为实际核对日期且不得晚于发布日。引用必须覆盖独立字段、用途及全部补充条件,多份资料可由受控材料清单统一索引。不能存用户资料或私密链接令牌;后台不访问该地址,不把此声明当成用户事实的verified来源。
|
||||
|
||||
### 6.2 独立字段与规则
|
||||
|
||||
| 产品字段 | 发布要求 | 编译结果 |
|
||||
| --- | --- | --- |
|
||||
| product_name/product_type/bank_name | 必填,长度100/20/50以内 | 保留规范化公共字段 |
|
||||
| object | 1个人、2企业或两者;不重复 | 每类独立规则分支,base_object严格eq该分支类型,错误选择分支不能通过 |
|
||||
| amount_min/amount_max | 元的十进制字符串,0—999999999.99;有序且max大于0 | base_amount对requestedAmountYuan执行between,含边界,不拆额 |
|
||||
| term_min_months/term_max_months | 1—9999整数月,有序 | base_term对requestedTermMonths执行between,不改期 |
|
||||
| annual_rate_min/annual_rate_max | DECIMAL(7,4)年化百分比,有序且非负 | 四位小数字符串保留;不把利率本身当申请人准入条件 |
|
||||
| valid_from/valid_until | 合法日期YYYY-MM-DD且有序;上架时结束日不得早于当天 | 含首尾日期;未来生效可维护,目录服务必须在执行日筛选,不能提前匹配 |
|
||||
| regions | JSON数组;[]明确全国,null不合法;非空只能填现有城市代码字符串 | nationwide不要求用户城市;exact_city编译base_region/in,城市未知为unknown |
|
||||
| operating_months_min | 可空;非空为0—9999整数且产品必须含企业对象 | 仅企业分支生成base_operating/gte;混合产品个人分支记录不适用依据 |
|
||||
| age_min/age_max | 当前必须为空 | 尚无年龄事实采集,不从身份证或AI推断,含年龄硬条件拒绝发布 |
|
||||
| eligibility_rules.purposes | 按对象分组、依据明确且代码合法 | base_purpose/in,未知/other不当满足 |
|
||||
|
||||
现有可用城市为440300深圳、440100广州、110100北京、310100上海、330100杭州,直接复用评估白名单;不是全量行政区字典。未来扩展省市区必须补可信树、版本和测试。
|
||||
|
||||
补充rule沿用第3节五键结构,每条外层必须恰含applicantTypes/rule。monthlyIncome/socialSecurity/housingFund只能用于个人,annualRevenue只能用于企业,其余共有事实可明确用于两类。operatingMonths复用独立列,补充条件不能重复指定;金额、期限、对象、地区、用途也禁止覆盖。自定义id全产品唯一,不得使用base_前缀。grade/condition/recommendation/deprecated等文本不执行规则,运营必须将所有硬条件完整结构化,不能只留在说明里。
|
||||
|
||||
### 6.3 模型写入与兼容
|
||||
|
||||
Product模型保存事务覆盖行锁、预检和写入;编辑合并锁定的最新记录与实际变更字段后验证,避免部分更新漏掉上架状态或使用旧值校验。新增version固定1,更新以最新version加1,不能从表单指定版本。默认后台add/edit/multi均使用模型save;multi任一条失败整批回滚。SQL/Db直写不触发模型事件,未来导入服务必须走模型或同一预检,不得当作发布接口。
|
||||
|
||||
草稿允许未齐资料和旧`{"version":1,"rules":[]}`。旧不完整上架产品再次编辑/上架会被拒绝,可先下架再补齐;下架不要求满足新增完整性门槛。本轮不批量清理或自动下架现有数据。后台表单仍为原JSON文本框,默认旧示例仅能存草稿;正式上架请按本节格式录入,结构化编辑器与帮助展示后续补充。
|
||||
|
||||
compile(product,dictionary)不读当前时间,返回来源、字典、规范化范围、有效期、地区模式、两类规则及notApplicableByApplicantType。assertPublishable额外按传入日期检查过期和未来核对日期。全国声明由regionMode/regions/source保留,不生成空in;不适用记录包含ruleId和APPLICANT_TYPE_NOT_APPLICABLE,但尚未转换为正式报告证据。
|
||||
|
||||
上层ProductMatching已冻结原产品id/version/参数、编译结果及字典,校验上架状态/执行日有效性,按服务端申请类型选分支、建立事实并排序。不得仅因compile成功直接对外推荐,也不得在历史重试时使用新字典或新产品行。
|
||||
|
||||
### 6.4 前序发布预检验证记录
|
||||
|
||||
2026-09-24,PHP 7.4.3:`tests/product_publication.php`73项、`tests/product_publication_model.php`16项、`tests/product_match_rules.php`64项、`tests/finance.php`41项,共194项通过。覆盖必填/来源/用途/地区、精度/边界/过期、未知字段、覆盖及重复编号、混合对象/分支错用/不适用依据、来源门槛、50条上限、局部更新/旧模型/批量回滚/版本/旧品下架。
|
||||
|
||||
新模型测试及基础回归在事务内生成合成数据后回滚,测试Redis会话清理;产品前后全量记录比较一致。没有真实产品发布、数据库迁移、外部模型或生图调用。未修改模板或前端页面,未将模型路径测试描述为后台浏览器端到端验收。正式worker保持运行;本次脚本没有全库任务恢复扫描或评估任务入队。
|
||||
|
||||
## 7. 目录冻结、结果持久化与本地演示产品(最新)
|
||||
|
||||
### 7.1 执行版本与冻结边界
|
||||
|
||||
新执行引擎`needs-report-v2-match-v1`仍输出resultVersion=2;规则执行器`product-matching-v1`、排序`product-id-ascending-v1`。首次worker抢占后、模型调用前,在评估事务内从产品表单次读取switch=1记录,编译并按Asia/Shanghai业务日期(含有效期首尾)筛选有效产品和申请主体,数字产品ID升序冻结。草稿/下架不读;已上架配置损坏使任务失败,不跳过后宣称完整匹配。已上架产品先完整校验再筛有效期,过期旧品有配置错误时也应下架或修复。
|
||||
|
||||
执行快照的productCatalog包含目录版本、排序版本、申请主体、evaluatedAt/businessDate、rulesPublished、每项产品ID/版本/参数白名单/编译结果、完整冻结字典和catalogSnapshotId。ID为规范化内容SHA-256;执行快照沿用executionHash/contentHash校验。最多100条上架记录、目录正文最多2MiB,SQL取101条探测超限;超限MATCH_CATALOG_LIMIT,绝不截断。仅纳入某主体的产品形成该评估目录,非该主体不生成“不符合”记录。
|
||||
|
||||
旧引擎needs-report-v2已冻结的unavailable报告和失败任务保留旧语义;新任务的目录为空、开关关闭或已有目录均冻结,重试不因产品更新/下架/过期/开关变化改读新目录。产品修订只影响新评估。配置`matching.enabled`默认开启;关闭仅影响未冻结的新评估,reasonCode=MATCH_RULES_UNPUBLISHED。
|
||||
|
||||
### 7.2 事实、判定与存储
|
||||
|
||||
事实只从服务端只读评估行按白名单映射,金额保持元字符串、整数严格转换、observedAt来自submitted_at。姓名/手机号/身份证/企业名/职业自由文本及客户端source不进入匹配事实。外部核验尚未接入,所以本轮事实来源全部self_reported;产品要求verified时返回unknown,不捏造核验结论。城市有效性使用冻结字典。
|
||||
|
||||
全部适用条件执行后fail优先于unknown。按产品ID升序,仅eligible生成连续rank;其他rank=null,全部score/scorePolicyVersion=null。not_applicable记录规则ID、产品版本依据和product_snapshot来源;不因不适用条件要求补填。正向、阻断和待核实理由分别从每条证据模板生成,完整保留、不凑数量;产品级evidenceRefs禁止互相借用。单产品AI解释当前not_requested,DeepSeek只整理自填报告事实,不作匹配决策。
|
||||
|
||||
结果由ProductMatching::storage显式映射嵌套键名,match_result保持有序snake_case数组,冻结产品参数、来源、材料/说明、规则和采集/更新时间。Assessment::complete对v2复算冻结结果并核对完整数组及matching统计,支持合法null rank/score;报告、结果、任务成功及日志在同一事务完成,禁止部分成功。v1写入格式保留。
|
||||
|
||||
无适用目录:unavailable、计数null;规则完成但无人符合:completed、candidateCount=0,其他两类仍按实际计数。配置错误MATCH_CONFIGURATION_INVALID、快照损坏MATCH_SNAPSHOT_INVALID通过失败状态反馈,不归咎用户。正式报告提供matchingMessage及containsDemoProducts,前端报告适配器显示实际统计;旧报告没有新文案时继续原提示。
|
||||
|
||||
### 7.3 本地录入的6条产品
|
||||
|
||||
用户明确授权在当前无用户使用的项目内直接录入并上架,替代此前“仅测试目录”的约束。来源文件为后端`database/demo_products.json`;`database/seed_demo_products.php`默认预检,`--apply`写入本机MySQL。脚本限制localhost连接、事务写入并用来源引用识别已存在记录;再次执行只保留,不覆盖运营修改。
|
||||
|
||||
| 本地ID | 名称(均带【演示】) | 对象 | 额度(万元) | 期限(月) | 核心演示条件 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 22 | 个人灵活消费 | 个人 | 1—30 | 3—36 | 全国;月收入≥0.3万元 |
|
||||
| 23 | 个人小额周转 | 个人 | 1—8 | 3—24 | 深圳/广州;月收入≥0.5万元 |
|
||||
| 24 | 个人收入核验 | 个人 | 2—50 | 6—60 | 全国;月收入≥0.8万元且需核验依据 |
|
||||
| 25 | 企业初创周转 | 企业 | 5—50 | 3—36 | 全国;年营收≥10万元;经营0个月可参与判断 |
|
||||
| 26 | 企业成长经营 | 企业 | 20—300 | 12—60 | 深圳/广州/杭州;年营收≥100万元、经营≥24个月 |
|
||||
| 27 | 个人企业基础融资 | 两者 | 1—100 | 3—60 | 全国;主体分支用途分别编译 |
|
||||
|
||||
以上全部为合成参数,年化范围3.6%—12%,有效期2026-09-24至2030-12-31;数据库存元,表格显示万元。来源reference以`demo:airz-local-products-v1:`开头,报告/快照标演示。不存在真实银行对应关系、渠道授信或实际申请承诺。演示产品可在后台下架;已有报告保留其历史快照。投用前须替换真实资料并下架演示产品,不能只改名称去掉标识。
|
||||
|
||||
### 7.4 验证入口
|
||||
|
||||
`tests/product_matching.php`纯内存验证目录筛选、冻结摘要、排序、理由引用、来源门槛和配置失败;`tests/product_matching_tasks.php --worker-stopped`使用本地演示目录及随机合成账户/假模型验证正式提交、落库、重试、旧引擎、损坏快照和归属。后者预期6条初始演示参数;运营修改后需要同步业务金标准,不能自动覆盖产品凑测试。测试结束只清理本次账户/评估/会话/队列,6条演示产品按用户要求保留。
|
||||
|
||||
正式接口的matches分页/详情、公共产品查询、单产品AI解释及04—10页面仍待后续开发;当前报告页显示真实规则统计,不能据此宣称整个匹配页面已经验收。
|
||||
@@ -0,0 +1,183 @@
|
||||
# 原型04—10页面改造与跳转方案
|
||||
|
||||
版本:1.0。日期:2026-09-24。依据:[原型图](原型.jpg)、[开发文档](开发文档.md)、[数据契约](需求与评估结果数据契约.md)。本轮用户明确要求补齐04—10页面并随后进入产品匹配开发;此前“对比/PDF另行排期”的范围限制,自本方案起由下列正式任务覆盖。
|
||||
|
||||
## 1. 范围与落地原则
|
||||
|
||||
- 04、05是同一产品匹配详情的不同判定状态,06是同一详情页的产品信息栏;复用现有product/product,不机械新增三个页面。
|
||||
- 07产品对比、10下一步行动新增两个融资分包页面。当前pages.json仍注册25页,实施后目标27页;本文中的新增路由尚未注册。
|
||||
- 08复用assistant/assistant;09复用report/report并改为“评估概况/匹配结果/改善建议”。03匹配列表作为04—10的必要入口一并改造。
|
||||
- 保留蓝白主色、卡片、银行标识、正反理由分组和清晰底部行动区。数据必须来自本人本次评估;原型的92%/B+不作为默认值。
|
||||
- 首版使用既有三态准入:符合已知条件、条件不符、待核实。score=null,不展示匹配百分比;稳定顺序采用productId升序并注明不代表优劣。真实评分、运营优先级另发版本化策略。
|
||||
- 推荐依据和注意事项各默认最多三条,有多少显示多少;其余可展开。阻断条件不能被截断后丢失,不能把产品一般优势当作个人推荐依据。
|
||||
- 申请范围仍是资料准备与引导,按钮使用“准备申请”;不接银行申请、不提交资料、不宣称受理成功。保存报告表示已保存至本人历史,PDF导出是额外下载能力。
|
||||
- 不恢复草稿,也不编辑历史评估。重新评估进入空白个人/企业表单;提交后获得新的assessmentId,旧报告不变。
|
||||
|
||||
## 2. 逐页改造清单
|
||||
|
||||
| 原型 | 页面实现 | 页面内容与行为 | 任务 | 当前状态 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 04 单家银行AI解释 | product/product,tab=explanation,eligible状态 | 银行/产品名、条件判定、已满足条件、注意事项、证据来源、AI解释、对比/准备申请 | PRODUCT-004 | 待开发;现有公共详情不含个性化解释 |
|
||||
| 05 其他银行不推荐解释 | 同一页面,ineligible或unknown状态 | 不符条件与待核实项分组;已满足部分称“已满足条件”;查看资料/询问AI,不建议直接申请 | PRODUCT-004 | 待开发;服务端判定决定状态,不接受URL指定“推荐” |
|
||||
| 06 产品详情 | product/product,tab=details或conditions | 额度/期限/年化利率范围、还款方式、材料、渠道、适用对象、来源及版本;独立显示当前可用性 | PRODUCT-003、PRODUCT-004 | 基础页面已有;真实资料和快照接口待接 |
|
||||
| 07 同类产品对比 | 新增compare/compare | 同一评估2—3个产品列式对比,首列指标固定,移动端横向滚动;条件判定、金额/利率/期限、材料、差异依据 | PRODUCT-005 | 新增任务,未开始 |
|
||||
| 08 AI助手延伸问答 | assistant/assistant | 本次评估及选定产品上下文卡、按实际判定生成快捷问题、持久会话、分页、重试、返回报告/产品 | CHAT-001—004 | 页面已有;真实上下文问答待接 |
|
||||
| 09 我的融资报告 | report/report | 三栏内容、资料准备状态、完整度、最多三个候选及查看更多、改善项、PDF下载、重新评估、下一步行动 | REPORT-004、REPORT-005 | 自填报告已有;三栏/产品/PDF待开发 |
|
||||
| 10 下一步行动 | 新增next-step/next-step | 准备申请、查看已保存报告、下载PDF、优化资料、咨询AI、回首页;依结果决定可用行动 | REPORT-006 | 新增任务,未开始 |
|
||||
|
||||
### 03 匹配列表入口(必要配套)
|
||||
|
||||
1. 入口必须携带assessmentId。无编号时引导选择历史评估或开始评估,不能展示固定产品。
|
||||
2. 默认eligible最多三条;“查看更多”读取同一冻结结果分页。独立提供“条件不符”“待核实”分组及各组真实计数。
|
||||
3. matching=unavailable时说明尚未执行,completed且零候选说明已执行但没有候选,failed从任务状态页展示;三者不可共用“完善资料再试”。
|
||||
4. 卡片进入产品解释栏;“加入对比”不触发卡片跳转。选择限2—3项,切换评估清空选择,仅在当前页面内存保留。
|
||||
5. 没有评分时移除当前score百分比和按score排序;金额和利率使用范围。金额、利率排序若后续提供,只改变展示顺序,不改历史rank。
|
||||
|
||||
### 04/05/06 产品详情的两种模式
|
||||
|
||||
**本次评估模式:** assessmentId、productId均存在,读取匹配详情快照。顶部三栏“AI解释/产品详情/申请条件”,默认AI解释;不符和待核实项展示明确状态及原因。未核验信息旁标来源。解释失败保留确定性理由,提示AI解释暂不可用,不导致整个页面空白。
|
||||
|
||||
**公共产品模式:** 只有productId(兼容旧id),读取当前产品接口;只显示产品详情/申请条件,没有个人理由、排名或匹配程度。评估上下文请求404/失败时禁止静默退回公共模式。
|
||||
|
||||
产品快照中的额度/利率/期限保持评估时版本。读取时发现当前产品下架/过期,另加状态条并禁用准备申请;查询当前状态失败也不能假定可用。允许查看历史解释、参与带状态标识的历史对比或咨询AI。
|
||||
|
||||
金额以万元范围展示,期限以月、年化利率以百分比范围展示。缺还款方式/审批时长/渠道等资料时显示“未提供”,不得采用原型示例值。银行Logo只使用已提供或可合法使用的真实素材;缺失时用文字简称,不生造银行标志。
|
||||
|
||||
“准备申请”仅当eligible且currentAvailability=available时进入10的准备区域;“查看同类产品对比”进入07并保留当前产品选择;“我有疑问,咨询AI”进入08,展示上下文而不自动发送消息或调用模型。
|
||||
|
||||
### 07 产品对比
|
||||
|
||||
- 按productIds顺序展示2—3项,使用同一assessmentId的冻结详情。每列显示判定与当前可用状态;不同状态可对比,但不符/待核实列不出现申请按钮。
|
||||
- 对比行包括需求覆盖结果、额度范围、期限范围、年化利率范围、适用对象、已满足/不符/待核实条件、还款方式、材料、渠道和来源。相同单位、缺失标记统一。
|
||||
- “回到本次匹配”返回已有结果,不重跑模型;“重新评估需求”另行进入空白表单,绝不把返回结果伪装为重新匹配。
|
||||
- 只选1项则展示补选入口;超过3项、重复ID、混入别的评估产品均明确拦截。任一详情读取失败时指出具体列并重试,不把剩余产品当完整对比。
|
||||
- H5刷新从URL中的ID集合恢复并重新鉴权,不能仅依赖上页内存。手机横向滚动可见列标题;桌面并列展示,文字与币种不裁切。
|
||||
|
||||
### 08 带上下文的AI助手
|
||||
|
||||
- 有assessmentId时,只使用本人已成功报告和指定产品的冻结理由;可不指定产品、指定单项或指定对比的2—3项。
|
||||
- 快捷问题按实际状态生成,例如“这些条件为什么符合”“哪些条件不满足”“还需要核实哪些资料”“两项产品有哪些差异”;无匹配时不出现“为什么推荐这家银行”。
|
||||
- 输入问题后由用户发送;仅打开页面不创建模型请求。失败重试保持消息requestId,切换账号清理页面内容。
|
||||
- 普通会话继续使用scene=assistant,assessment_id=NULL;计划随CHAT-001增量迁移新增context_assessment_id及context_data,前者保存本人评估引用,后者保存产品ID及报告摘要引用。当前库尚无这两列,本轮不迁移;已有普通会话两列为NULL,新增归属索引/约束需先检查历史数据,不复用或覆盖正式评估的analysis_context。
|
||||
- chatId恢复时以服务端已保存上下文为准;URL与会话上下文冲突拒绝,不静默改绑定。失效上下文提示重新选择,不能回答成另一份报告。
|
||||
|
||||
### 09 报告三栏与PDF
|
||||
|
||||
- 评估概况:冻结需求、完整度、三种准备状态、来源与生成时间、核验边界;不显示B+或审批概率。
|
||||
- 匹配结果:复用03的摘要与状态,最多三个候选、全部结果入口和产品解释跳转;没有候选时仍可查看不符/待核实原因。
|
||||
- 改善建议:由准备依据、已保存AI建议和产品证据组成;建议展示关联字段/产品,不保证改善后获批。没有依据时明确暂无额外建议,不凑三项。
|
||||
- 顶部下载PDF,底部“重新评估/下一步行动”;继续提供历史入口。三栏切换不触发新分析,刷新保留tab并重新读取本人报告。v1报告保留兼容提示,不补造v2指标。
|
||||
- PDF从已保存报告及产品快照生成,不重跑DeepSeek或按现价替换历史值。包括需求、概况、匹配状态/候选、理由、建议、版本、生成时间和免责声明;不导出身份证、手机号、自由用途说明等身份内容。
|
||||
- H5首版采用鉴权流式下载,无公开永久链接,不新增报告或导出表。需要的中文字体/PDF引擎在REPORT-005实施时做依赖评估并锁定;缺引擎返回明确不可用,不能发空PDF。
|
||||
- 用户主动下载时才生成文件;PDF失败允许重试,不影响已保存报告。微信内浏览器受限时给出可执行提示,不显示虚假下载成功;下载后本地文件由用户自行保管。
|
||||
|
||||
### 10 下一步行动
|
||||
|
||||
| 行动 | 可用条件 | 实际行为 |
|
||||
| --- | --- | --- |
|
||||
| 准备申请 | 已选择本次eligible产品且当前可用;未选时先回匹配列表选择 | 在本页准备区域展示产品、材料、来源和机构办理说明;不收集并提交申请 |
|
||||
| 查看已保存报告 | 本人成功报告 | 返回09,说明报告已在历史中保存,无需重复保存 |
|
||||
| 下载PDF | REPORT-005能力可用 | 调用同一鉴权导出;错误保留页面状态 |
|
||||
| 优化资料/重新评估 | 本人报告可读 | 先解释需要完善的字段,点击后清空当前流程内存,进入同类型空白表单;旧记录不可编辑 |
|
||||
| 咨询AI | CHAT真实接口可用 | 进入08并携带当前评估及可选产品;不自动发消息 |
|
||||
| 回首页 | 始终可用 | reLaunch首页,不丢失已保存的历史 |
|
||||
|
||||
不能申请时仍能看报告、优化资料或咨询;不展示假成功、假跳转或尚未接通的银行按钮。提供真实机构外链前需产品资料有来源且按渠道允许范围处理,首版不默认加入外链申请。
|
||||
|
||||
## 3. 路由、参数与返回规则
|
||||
|
||||
以下路由统一以 `/packages/finance/` 开头。ID为正整数十进制字符串,不携带手机号、Token、完整报告JSON或自由文本问题。
|
||||
|
||||
| 页面 | 路径和查询参数 | 校验与默认 |
|
||||
| --- | --- | --- |
|
||||
| 03 | matches/matches?assessmentId=A&group=eligible | A必填;group允许eligible/ineligible/unknown,默认eligible |
|
||||
| 04/05/06 | product/product?assessmentId=A&productId=P&tab=explanation&from=matches | tab为explanation/details/conditions;带A必须读匹配快照;无A默认details;旧id仅作productId兼容,冲突时拒绝 |
|
||||
| 07 | compare/compare?assessmentId=A&productIds=P1,P2,P3 | A必填、ID去重后仍须2—3项;1项仅进入补选状态;不能跨评估 |
|
||||
| 08 | assistant/assistant?assessmentId=A&productIds=P1,P2&chatId=C&from=compare | A可选;productIds要求A;chatId可选且归属/上下文需一致;从首页进入允许无评估的普通问答 |
|
||||
| 09 | report/report?assessmentId=A&tab=overview | tab为overview/matches/improvements,默认overview;v1能力不足时解释原因 |
|
||||
| 10 | next-step/next-step?assessmentId=A&productId=P§ion=prepare | A必填,P可选;section为actions/prepare,默认actions;无P的prepare引导选择,不猜测产品 |
|
||||
|
||||
`from`仅接受matches/product/compare/report/next-step/archive等白名单枚举,用于返回体验;禁止接受任意returnUrl。优先navigateBack返回原页面及滚动位置;冷启动/刷新后无前页时:产品/对比→本次匹配,助手→本次报告(无A则首页),10→本次报告,报告→历史。鉴权失效转登录,仅保留白名单页面与ID参数,重新登录后必须再校验归属;跨账户404不可自动切换到最新评估。
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[提交评估] --> B[分析状态与重试]
|
||||
B -->|成功| R[09 报告 overview]
|
||||
R -->|匹配结果| L[03 本次匹配列表]
|
||||
L -->|符合已知条件| P[04 产品解释]
|
||||
L -->|条件不符或待核实| N[05 原因解释]
|
||||
P <-->|切换栏| D[06 产品详情与条件]
|
||||
N <-->|切换栏| D
|
||||
L -->|选择2至3项| C[07 产品对比]
|
||||
P --> C
|
||||
C -->|查看某项| P
|
||||
P --> Q[08 AI助手]
|
||||
N --> Q
|
||||
C --> Q
|
||||
R --> Q
|
||||
R --> S[10 下一步行动]
|
||||
P -->|符合且当前可用| S
|
||||
S -->|查看已保存报告| R
|
||||
S -->|咨询| Q
|
||||
R --> F[鉴权PDF下载]
|
||||
S --> F
|
||||
R -->|重新评估| A2[空白表单→新评估]
|
||||
S -->|优化资料| A2
|
||||
```
|
||||
|
||||
图中的04/05/06为同一路由的内容状态;对比返回某项时必须依据服务端判定进入04或05,不能因来自对比页统一标成推荐。
|
||||
|
||||
## 4. 接口与数据依赖
|
||||
|
||||
| 接口 | 状态 | 用途与约束 |
|
||||
| --- | --- | --- |
|
||||
| GET /api/v1/assessments/:id/status | 已实现 | 状态/重试边界,不把queued当模型运行 |
|
||||
| GET /api/v1/assessments/:id/report | 已实现自填v1/v2 | 09/10真实来源;产品区块随匹配扩展,不回填旧报告 |
|
||||
| GET /api/v1/assessments/:id/matches | 计划新增 | 03/09,三态分页、默认limit=3;既有契约字段不变 |
|
||||
| GET /api/v1/assessments/:id/matches/:productId | 计划新增 | 04/05/06,以及07每次最多读取三项;本人成功记录、本次冻结产品,404不得回退公共数据 |
|
||||
| GET /api/v1/products/:id | 计划新增 | 06公共模式;不含个人判定及理由,当前资料与历史快照分开 |
|
||||
| POST /api/v1/assistant/chats | 计划新增 | contextAssessmentId:string或null、contextProductIds:string[]、requestId;服务端校验同一评估和产品快照,不接客户端报告正文 |
|
||||
| GET/POST /api/v1/assistant/chats/:id/messages | 计划新增 | 08消息分页、提交与幂等;上下文由会话固定 |
|
||||
| GET /api/v1/assessments/:id/report.pdf | 计划新增,REPORT-005 | Bearer鉴权;成功application/pdf,Content-Disposition安全文件名、no-store;401/404/409/503为JSON错误;失败不生成报告或调用模型 |
|
||||
|
||||
PDF接口owner校验先于渲染,未完成返回409 REPORT_NOT_READY,格式不支持409 REPORT_FORMAT_UNAVAILABLE,能力不可用503 REPORT_EXPORT_UNAVAILABLE。仅由受控模板渲染,用户文本转义,禁止任意HTML/外部图片URL触发文件或网络读取。客户端按状态码和Content-Type区分PDF与JSON,不把错误响应另存为PDF。
|
||||
|
||||
对比首版复用详情接口,最多三个并行请求,全部绑定相同assessmentId及冻结结果版本;不新增对比表或通用批量查询接口。10由报告和产品结果组合,不新增贷款申请表或申请状态。
|
||||
|
||||
## 5. 开发顺序、编号与工作量
|
||||
|
||||
| 次序 | 交付 | 任务 | 门槛 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 本文及规则口径;纯规则计算基础 | PRODUCT-001、PRODUCT-002 | 使用既有契约,不需要真实产品,不连接生产匹配 |
|
||||
| 2 | 产品发布预检、字段/来源/规则、真实产品录入与公共查询 | PRODUCT-003 | 可先开发校验与后台;真实发布依DEC-PRODUCT |
|
||||
| 3 | 冻结目录/规则、匹配聚合排序、证据模板、任务接入和读取API | PRODUCT-002、REPORT-002/003 | 与现有报告事务、重试快照兼容;空目录仍unavailable |
|
||||
| 4 | 03及04/05/06页面、单产品解释失败降级 | PRODUCT-004 | API和真实快照可读取;合成测试与正式数据分离 |
|
||||
| 5 | 07对比及09三栏 | PRODUCT-005、REPORT-004 | 同评估ID/同快照语义、历史不变 |
|
||||
| 6 | 08真实问答、10完整行动入口 | CHAT-001—004、REPORT-006 | 无真实能力时不伪造问答或申请 |
|
||||
| 7 | 09/10 PDF导出、整体导航和渠道验收 | REPORT-005、RELEASE-001/002 | 中文分页、鉴权、手机导出能力验证 |
|
||||
|
||||
新增稳定任务三个,保留旧60个编号,不重排:PRODUCT-005(对比,1.5—2.5人日)、REPORT-005(PDF,2.5—4人日)、REPORT-006(下一步行动,1—2人日)。合计新增5—8.5工程人日;原69—117是历史基线,不是当前剩余工期。原有任务扩展的页面/接口工作在实施前复估,不用这三项增量虚构整体完工日期。任务主台账与开发文档同步为63项。
|
||||
|
||||
## 6. 图片与视觉资源约定
|
||||
|
||||
用户指定生成方式:`C:\Users\JUN\Desktop\img2-right.py`。已检查其参数与流程:本地参考图转data URI→异步提交→按task_id轮询→下载输出;支持--prompt、--model、--resolution、--size、可重复--image、--output、--poll-interval及--timeout。凭据由脚本现有私密配置机制读取,文档和仓库不复制密钥。
|
||||
|
||||
| 位置 | 方案 |
|
||||
| --- | --- |
|
||||
| 银行标识 | 使用真实授权素材或文字简称,不使用生成图片伪造银行Logo |
|
||||
| 理由序号、tab、表格、完整度图、PDF/行动图标 | 复用AppIcon及组件实现,保持文字可访问和可复制 |
|
||||
| AI助手头像 | 优先复用现有机器人素材;确需新姿态/统一风格时用指定脚本、现有素材作参考 |
|
||||
| 无候选/尚未匹配等空状态插图 | 页面实施时确认确需位图再用指定脚本;不把错误说明或数据数字烧进图片 |
|
||||
|
||||
本轮不生成图片、不调用生图服务。后续生成先用合成内容/现有公共视觉素材,不上传用户评估资料;输出放对应分包static目录并核对分辨率、透明边缘、实际包体和H5/小程序显示。脚本属于用户本机工具,不复制其私密配置到项目,也不覆盖脚本。
|
||||
|
||||
## 7. 验收清单
|
||||
|
||||
- 04—10均有入口、返回和冷启动兜底;手机返回/刷新不丢assessmentId,不跳到其他评估。
|
||||
- 推荐/不符/未知按服务端状态展示,理由不足不补造、全部阻断依据可查看,解释失败仍有规则理由。
|
||||
- 07金额范围精确转万元,缺值不同于0,最多三列;下架产品保留历史并显示当前不可用。
|
||||
- 08上下文归属检查、快捷问题与结果一致、打开页面不自动发问;跨账户/失效上下文不串会话。
|
||||
- 09三栏刷新、旧v1兼容、无匹配/零候选区分;下载PDF与屏幕冻结数据一致,401/错误不能保存成PDF。
|
||||
- 10没有银行申请提交;优化资料只创建新评估,历史和原报告不变;无草稿恢复。
|
||||
- 真实产品/渠道未就绪时只使用合成样例验证,不发布示例产品,不把原型中的固定排名与等级当实际结果。
|
||||
- 普通手机H5、桌面H5、微信内浏览器分别记录;PDF中文分页、长理由、无产品、历史下架、大字号/横向表格需要独立证据。
|
||||
+57
-11
@@ -1,6 +1,6 @@
|
||||
# AI 融资平台开发文档
|
||||
|
||||
> 版本:v1.4 · 基线日期:2026-09-22 · 更新日期:2026-09-24 · 状态:需求输入与报告v2自填支线已实现;完整度/准备状态及执行策略冻结已接入,真实产品匹配待实施
|
||||
> 版本:v1.9 · 基线日期:2026-09-22 · 更新日期:2026-09-24 · 状态:目录冻结、规则匹配和正式任务落库已接通;本地已上架6条演示产品,匹配接口及04—10页面待接
|
||||
> 配套台账:[开发进度](开发进度.md)。本文定义范围、接口和验收口径,台账记录实际执行与证据。
|
||||
> 文档初始规划后已开始开发;以下更新记录优先于原始基线。除明确列为已实现的部分外,计划接口和增量数据仍待开发。
|
||||
|
||||
@@ -84,7 +84,7 @@ php think analysis:work --recover-only
|
||||
- 输入版本与报告版本独立:新v2输入继续生成resultVersion=1自填报告。本轮需求未进入模型事实、准备等级或产品匹配;自由用途说明不外发。REPORT-003/004及DEC-READINESS/DEC-MATCH保持未完成,不把本次录入闭环称为报告v2。
|
||||
- 验证:2026-09-24专项76项通过;2026-09-23基础41项、任务29项、隔离HTTP15项通过。个人/企业H5提交及历史刷新、金额精度、旧未采集、用途失败恢复与无草稿已验证;Web/Android本地编译通过,未验收微信内H5、Safari或真机。此次未调用真实模型,完整证据见开发进度0.5与6.5。
|
||||
|
||||
### 0.6 2026-09-24 资料完整度、准备状态与报告v2(当前实现)
|
||||
### 0.6 2026-09-24 资料完整度、准备状态与报告v2(实施记录)
|
||||
|
||||
- 根据用户继续下一步的授权,采用专项契约首版等权字段集和三种资料准备状态;DEC-READINESS开发版发布为 `self-reported-base-20260924-v1`。个人14项、企业9项,other各加1;有效零值/none计已填写。缺失、无效、不适用分开记录,按整数四舍五入计算百分比;invalid或一致性问题优先“需核实资料”,其次“待完善资料”,全部填写为“可进入资料核对”。这是自填资料准备状态,不是信用或授信等级。
|
||||
- 策略配置在 `application/extra/readiness.php`,引擎版本 `equal-fields-v1` 固定定义字段类型、范围、条件项、计数和优先级;字段定义、适用清单、条件规则、标签及版本完整复制至execution_snapshot。变更业务含义须提升策略版本;变更算法/类型须提升引擎版本并保留旧版处理,不能原地改变历史策略含义。
|
||||
@@ -94,6 +94,44 @@ php think analysis:work --recover-only
|
||||
- 报告页已展示需求、完整度逐项状态、准备依据、优势/建议/风险及证据标签;金额万元,期限/月数整数。未发布策略不显示0分,旧v1不事后添分。缺少真实产品时matching.status=unavailable、计数null、match_result=[];产品集合/匹配规则/排序快照仅保留明确不可用状态,真实匹配和产品解释仍待PRODUCT实施。
|
||||
- 本轮验证:54项报告专项、76项需求、41项基础、15项HTTP检查通过;Chromium手机/桌面报告和历史刷新通过,Web及Android本地编译通过。用合成数据/假模型,未调用真实DeepSeek;v2提示词真实语义、微信内H5、Safari、真机和生产守护未验收。REPORT-002/004整体开发中,REPORT-003完整产品/外部数据范围仍阻塞,不能把内部报告支线记为一期完成。
|
||||
|
||||
### 0.7 2026-09-24 真实DeepSeek报告v2输出验证
|
||||
|
||||
Flash/Pro真实样例已验证,见[验证记录](报告v2真实模型验证.md)。初始两例被引用校验拒绝后,提示词补明确的allowedEvidenceRefs、单主题引用、不把自填事实推断为信用/受理资格、只补实际缺失/异常项;不再发送完整度的计数/百分比,正文新增中文项数和“为零”等数值复述拦截。接口仍最多5个引用,提示词建议1—3个,不放松硬校验。修正后Flash三例及Pro一例通过,58项本地报告回归通过;仅有限合成样例,不代表生产稳定性或业务签收。
|
||||
|
||||
后端 `tests/deepseek_report_v2_live.php --live --model=flash --case=personal_missing --output=<已有目录>` 每次仅一次真实请求,不读取会员/任务、不入队、不自动重试。支持另外enterprise_complete、personal_inconsistent、enterprise_other及model=pro。测试保留安全用量与合成输出,禁止打印密钥/供应商原始错误。6次实际调用含首轮失败,共输入9369/输出2373 tokens,费用以账单为准。
|
||||
|
||||
### 0.8 2026-09-24 异常流程与等待状态
|
||||
|
||||
状态、详情和历史列表共用服务端状态文案:processing/queued显示“排队中”,processing/running显示“分析中”。排队满60秒、运行满90秒时返回等待较长提示,提醒资料已保存、无需重复提交、可从档案查看。以任务阶段update_time计算,补投不重置、重试重新计时;不新增字段或数据库状态,不凭等待时间判定失败,也不自动重复调用模型。
|
||||
|
||||
分析页重试提交期间禁止手动刷新竞争;状态查询失败清除旧重试/报告按钮,保留手动刷新入口。失败重试回执丢失时保留请求键,下一次点击仍返回原taskId。已验证两独立进程并发重试只预留一次调用、旧请求键回放、模型超时/非法报告、租约回收、迟到结果、报告归属及退出后重新登录读取。
|
||||
|
||||
本轮31项任务、36项v2 HTTP、76项需求、58项报告检查通过;使用合成数据和假模型,无真实供应商调用。普通Chromium H5完成排队/运行/失败提示、状态查询失败恢复、重试双击与回执丢失、报告刷新及历史入口;Web/Android编译通过。详细证据和边界见开发进度6.9节,生产守护和微信内H5/Safari/真机仍未验收。
|
||||
|
||||
### 0.9 2026-09-24 原型04—10页面范围补齐
|
||||
|
||||
用户明确要求先补页面改造清单与跳转关系,再进入匹配开发,详见[原型04—10方案](原型04-10页面改造与跳转方案.md)。04/05/06复用产品详情三栏与结果状态;新增07对比和10行动两页;08接本次评估/产品问答上下文,09改三栏并增加PDF。所有个性化路由以assessmentId绑定冻结快照,公共产品与个人结果分开。
|
||||
|
||||
本次正式新增PRODUCT-005、REPORT-005、REPORT-006,任务数由历史60项扩为63项,新增独立工作量5—8.5人日。当前仍25个注册页面,目标27页;旧69—117人日是历史基线,不能当成当前剩余工期。此前章节“对比/PDF另行排期”是历史范围,本节明确将其纳入一期开发任务。
|
||||
|
||||
先采用已有契约的三态、单产品覆盖、无评分和productId升序作为开发口径,不显示原型固定百分比或B+;真实产品及业务样例签收仍待完成。本轮已实现纯规则计算基础并通过64项内存测试,见[规则开发契约](产品匹配规则开发契约.md);未接正式worker、未改历史报告,未发布合成产品。图片确有需要时按用户指定 `C:\Users\JUN\Desktop\img2-right.py` 的异步生图方法;本轮不调用生图服务。
|
||||
|
||||
### 0.10 2026-09-24 产品发布预检与规则编译
|
||||
|
||||
ProductPublication已接入Product模型,覆盖新增上架、已上架产品修改及批量保存;按最新锁定记录合并局部变更后校验,版本由服务端递增。产品必须具备名称/类型/机构、金额/期限/利率范围、有效期、对象、地区及来源/用途依据。草稿可不完整,旧不完整产品可下架;不迁移旧JSON、不发布合成产品。
|
||||
|
||||
eligibility_rules完整格式、字段映射与发布限制见[产品规则契约第6节](产品匹配规则开发契约.md)。只支持全国或现有5城市精确代码,混合产品按个人/企业分支编译,保留不适用依据,不允许补充规则覆盖独立字段;缺少事实渠道的年龄硬条件拒绝发布。来源格式校验不代表真实性已核实。
|
||||
|
||||
本轮194项检查通过:发布/编译73、模型事务16、规则64、基础41。合成数据回滚,原产品记录保持;模型路径覆盖不等于后台浏览器验收。PRODUCT-003进入开发中,真实资料及正式发布验收仍受DEC-PRODUCT阻塞;公共接口和结构化条件编辑尚未完成。下一步实现目录筛选/冻结、稳定排序、理由模板及正式评估集成,再按04—10方案接页面。
|
||||
|
||||
### 0.11 2026-09-24 正式匹配任务与本地演示产品
|
||||
|
||||
根据用户明确要求,6条合成产品直接写入当前本地fa_product并上架,ID22—27,产品名称、机构和来源注明演示;不局限于测试目录。样例及可重复录入脚本在后端database/demo_products.json、seed_demo_products.php,不覆盖原记录或已编辑演示产品。真实机构资料及业务签收仍待补充。
|
||||
|
||||
新执行引擎needs-report-v2-match-v1已接通目录冻结、产品ID稳定排序和证据理由模板;匹配结果写fa_ai_chat.match_result,报告与结果同事务提交。快照保存产品版本/参数/规则/字典,重试复用,旧引擎报告不补算。支持合法null rank/score、不适用条件和unknown,不把自填收入当外部核验。配置损坏使任务失败且不调用模型。
|
||||
|
||||
报告页已从固定“未执行匹配”改为读取后端统计与演示提示。匹配列表/详情API、公共查询、单产品AI解释及04—10整体改造仍未交付,不能跳转现有模拟匹配页当真实结果。465项PHP检查通过,Web/Android编译通过,H5报告统计/刷新/历史导航通过;细节见台账6.12与[规则契约](产品匹配规则开发契约.md)第7节。
|
||||
|
||||
## 1. 项目目标与现状
|
||||
|
||||
### 1.1 已确认范围
|
||||
@@ -137,6 +175,8 @@ php think analysis:work --recover-only
|
||||
|
||||
路由以 [pages.json](../pages.json) 为准。以下覆盖现有全部 25 页;反馈表单、历史列表等优先补入所属现有页面,若交互确需新增页面,在所属分包注册并同步台账。
|
||||
|
||||
原型04—10新增路由仅属计划,尚未注册:`packages/finance/compare/compare`(PRODUCT-005)与`packages/finance/next-step/next-step`(REPORT-006);目标共27页。04/05/06均复用product/product,报告PDF不另加页面。参数与返回矩阵见专项页面方案第3节。
|
||||
|
||||
| 序号 | 页面路由 | 功能职责 | 主要任务 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | pages/home/home | 首页、融资入口、推荐、消息红点 | BASE-004、CONTENT-002、MSG-003 |
|
||||
@@ -245,7 +285,7 @@ php think analysis:work --recover-only
|
||||
| 协议与授权事件 | fa_acticle + fa_user_info.consent_data | 协议版本不可变修订;拟增fa_user_consent保存范围、版本、授权与撤销事件,再复制评估快照 | FILE-003 |
|
||||
| 第三方身份 | fa_user + token | 拟增fa_user_identity,以provider+app_id+subject唯一;不能只靠单个openid列覆盖所有微信应用 | LOGIN-001 |
|
||||
| 外部查询审计 | fa_user_info关联 | 拟增fa_data_query:用户/评估/授权、渠道、请求和渠道单号、状态、受保护结果引用、来源时间、错误/费用状态 | DATA-002、DATA-003 |
|
||||
| 普通助手引用报告 | fa_ai_chat | context_assessment_id可空,仅同用户;assistant.assessment_id保持NULL | CHAT-001 |
|
||||
| 普通助手引用报告 | fa_ai_chat | 计划新增context_assessment_id和context_data,保存本人评估/产品ID及快照摘要引用;当前无这两列;历史普通会话默认NULL,assistant.assessment_id仍NULL,迁移前检查归属/索引并备份 | CHAT-001 |
|
||||
| 课程内容与进度 | fa_finance | 课程章节JSON带稳定chapterId/版本;拟增fa_user_lesson_progress,唯一(user_id,lesson_id,chapter_id) | CONTENT-001、CONTENT-003 |
|
||||
| FAQ与发布资料 | fa_acticle | 扩展明确定义的FAQ类型、展示分类/排序;增加标题之外所需摘要/封面字段 | CONTENT-001 |
|
||||
| 消息去重 | fa_user_message | 新增事件键;按用户+事件键唯一,批量已读按请求时的最大ID水位更新 | MSG-001、MSG-002 |
|
||||
@@ -373,9 +413,9 @@ php think analysis:work --recover-only
|
||||
|
||||
### 4.7 PRODUCT|产品库与匹配规则
|
||||
|
||||
**目标:** 可运营的产品库与可解释、可复现的个性化匹配。 **阶段:** M2。**剩余:** 6–9人日。
|
||||
**目标:** 可运营的产品库与可解释、可复现的个性化匹配。 **阶段:** M2。**工作量:** 原6–9人日为历史基线,新增对比1.5–2.5人日;不是当前剩余工期,已有任务页面扩展另需复估。
|
||||
|
||||
- **现状:** 范围字段、版本、上架校验等基础已有;补充JSON尚无执行器,前端是demo产品。
|
||||
- **现状:** ProductMatchRules计算、ProductPublication预检/编译、ProductMatching目录冻结/排序/理由已接通正式评估并持久化。6条演示产品在本地上架,报告已显示统计;匹配列表/详情API、公共查询、结构化编辑和04—10页面待完成,真实产品资料未提供。
|
||||
- **前端:** 拆Product与MatchResult;显示范围而非单点额度/利率;保持历史快照并提示当前产品状态。
|
||||
- **后端:** 确定性规则、白名单操作符、类型校验、版本化排序;只推荐状态/有效期/地区及硬条件满足的产品。
|
||||
- **数据:** 产品独立字段+regions/eligibility_rules;个性化分数和理由放match_result,快照含产品版本。
|
||||
@@ -387,13 +427,14 @@ php think analysis:work --recover-only
|
||||
| PRODUCT-001 | 规则字典与评分口径:确定准入三态、来源要求、单产品需求覆盖、用途规则、证据结构和版本化排序;评分未发布时null。 | P0 | ASSESS-001、DEC-MATCH | 发布规则与人工样例可审阅;非法字段/操作符阻止发布;fail优先于unknown,匹配指标不作为审批概率。 | 1.5–2 |
|
||||
| PRODUCT-002 | 准入与排序执行器:执行上架/有效期/对象/地区及需求硬规则;保存pass/fail/unknown证据,生成eligibility和稳定rank。 | P0 | PRODUCT-001 | 同输入/快照结果稳定;未知不当满足,配置错误不归咎用户;需求不拆额、不改期;未运行与零候选区分。 | 2–3 |
|
||||
| PRODUCT-003 | 产品后台与公共查询:补规则条件编辑、来源/用途依据、发布预检、版本与公共详情;录入真实产品,缺依据阻止发布。 | P0 | PRODUCT-001、BASE-002、DEC-PRODUCT | 产品用途/地区/额度/期限有真实依据;规则可配置并启停,版本变化留依据;公共详情无个人分数。 | 1.5–2 |
|
||||
| PRODUCT-004 | 匹配页面与快照:按assessmentId展示三态分组、最多三个候选及分页;结果详情展示依据/注意项/AI解释,保留产品快照与申请准备。 | P0 | PRODUCT-002、PRODUCT-003、ASSESS-004 | 每条解释可追溯且不凑三正三反;当前产品变化不改历史;跨账户拒绝;unavailable/零候选/failed不混淆。 | 1–2 |
|
||||
| PRODUCT-004 | 匹配页面与快照:按assessmentId展示三态分组、最多三个候选及分页;结果详情展示依据/注意项/AI解释,保留产品快照与申请准备。 | P0 | PRODUCT-002、PRODUCT-003、ASSESS-004、REPORT-003 | 每条解释可追溯且不凑三正三反;当前产品变化不改历史;跨账户拒绝;unavailable/零候选/failed不混淆。 | 1–2 |
|
||||
| PRODUCT-005 | 同类产品对比:新增compare页,同评估2—3项冻结产品、状态/范围/条件对照、补选与返回、刷新恢复。 | P1 | PRODUCT-004 | 不跨评估/混用现价;缺值不同于0;手机横向表格可读,单项失败明确;不重跑模型。 | 1.5–2.5 |
|
||||
|
||||
### 4.8 REPORT|AI任务、报告与历史
|
||||
|
||||
**目标:** 把真实输入、查询依据和产品匹配生成可追溯的DeepSeek报告。 **阶段:** M2。**剩余:** 8–12人日。
|
||||
**目标:** 把真实输入、查询依据和产品匹配生成可追溯的DeepSeek报告。 **阶段:** M2,行动与助手联调延伸至M3。**工作量:** 原8–12人日为历史基线,新增PDF及行动页3.5–6人日;不是当前剩余工期。
|
||||
|
||||
- **现状:** v1自填报告已真实模型联调;v2需求、完整度、准备状态和冻结策略已完成假模型与页面联调。v2真实模型语义、产品证据/解释及外部渠道仍待验收。
|
||||
- **现状:** v1自填报告已真实模型联调;v2需求、完整度、准备状态和冻结策略已完成假模型与页面联调。v2有限真实模型样例已通过;大样本语义、产品证据/解释及外部渠道仍待验收。
|
||||
- **前端:** 轮询真实状态、刷新恢复、失败重试;渲染数据驱动维度、来源时间和版本;查看历史。
|
||||
- **后端:** DeepSeek适配、结构校验、任务抢占/超时/漏投补偿、输入最小化、用量记录;在事务中同时落报告、匹配和成功状态。
|
||||
- **数据:** result_version/rule_version/model与产品快照分别记录;模型输出不能覆盖金额、硬准入或数据来源。
|
||||
@@ -404,8 +445,10 @@ php think analysis:work --recover-only
|
||||
| --- | --- | --- | --- | --- | ---: |
|
||||
| REPORT-001 | DeepSeek适配与配额:配置模型标识、服务端密钥读取、超时、结构化输出校验、配额预留和消耗记录。 | P0 | BASE-002、EXT-AI、DEC-AI | 模型可配置;密钥不下发;失败与使用量可追踪;数值事实不被模型改写。 | 1.5–2 |
|
||||
| REPORT-002 | 异步任务与补偿:保留Redis派发、补投、租约和taskId隔离;沿用提交时input_snapshot,一次性补入execution_snapshot并在重试时复用,支持跨部署v1/v2任务。 | P0 | ASSESS-003、REPORT-001 | 漏投/中断可恢复或明确失败;旧任务不可回写;输入/目标结果/策略/产品快照重试不隐式变化。 | 2.5–4 |
|
||||
| REPORT-003 | 报告生成与持久化:保留v1自填报告;补v2需求、完整度/准备等级、规则证据及定性AI区块;版本快照和正式结果原子落库。 | P0 | REPORT-002、DATA-004、PRODUCT-004、DEC-MATCH、DEC-READINESS | 完整度按发布字段集复算,等级有依据且非审批;null rank/score按状态验证;格式错误不成功,产品/规则更新不改旧报告。 | 2–3 |
|
||||
| REPORT-004 | 分析报告历史联调:保留轮询/重试和v1历史;接v2需求、完整度、准备等级、三态匹配及证据解释,不显示无规则分数/雷达。 | P0 | REPORT-003、ASSESS-004 | 个人/企业真实链路按版本展示;未发布无分或等级,100%不等于授信;旧报告不重算;新复评新assessmentId。 | 2–3 |
|
||||
| REPORT-003 | 报告生成与持久化:保留v1自填报告;补v2需求、完整度/准备等级、规则证据及定性AI区块;版本快照和正式结果原子落库。 | P0 | REPORT-002、DATA-004、PRODUCT-002、PRODUCT-003、DEC-MATCH、DEC-READINESS | 完整度按发布字段集复算,等级有依据且非审批;null rank/score按状态验证;格式错误不成功,产品/规则更新不改旧报告。 | 2–3 |
|
||||
| REPORT-004 | 分析报告历史联调:保留轮询/重试和v1历史;接v2需求、完整度、准备等级、三态匹配及证据解释,不显示无规则分数/雷达。 | P0 | REPORT-003、PRODUCT-004、ASSESS-004 | 个人/企业真实链路按版本展示;未发布无分或等级,100%不等于授信;旧报告不重算;新复评新assessmentId。 | 2–3 |
|
||||
| REPORT-005 | 报告PDF导出:鉴权流式下载、受控中文模板、报告与产品冻结快照、H5保存与失败提示。 | P1 | REPORT-004 | 本人成功报告可导出;金额/理由与历史一致;不重跑模型/泄露身份;中文分页可读,JSON错误不保存成PDF。 | 2.5–4 |
|
||||
| REPORT-006 | 下一步行动:新增next-step页,准备材料、查看已存报告、优化资料、新评估、咨询及首页导航。 | P1 | PRODUCT-004、REPORT-004、CHAT-003 | 根据判定及当前可用性开放行动;无银行申请提交;新评估不改历史、无草稿;上下文和返回正确。 | 1–2 |
|
||||
|
||||
### 4.9 CHAT|AI助手
|
||||
|
||||
@@ -676,6 +719,7 @@ php think analysis:work --recover-only
|
||||
| GET /data-queries/:id | 所有者 | 无 | queryId、status、source、sourceAt、errorCode、可显示摘要 | 费用/权限错误有明确状态;不返回渠道凭据 |
|
||||
| POST /callbacks/data/:provider | 渠道验签 | 供应商原始格式 | 供应商要求的ACK | 原始体验签、防重放、单号映射、幂等;不适用用户Bearer |
|
||||
| GET /assessments/:id/report | 所有者 | 无 | Report(v1/v2自填版本) | 已实现;未成功409 REPORT_NOT_READY,不存在/越权404,旧结构409 REPORT_FORMAT_UNAVAILABLE;Cache-Control:no-store |
|
||||
| GET /assessments/:id/report.pdf | 所有者 | 无 | application/pdf流;错误为JSON | 计划新增REPORT-005;401/404/409沿用报告语义,503 REPORT_EXPORT_UNAVAILABLE;no-store、安全文件名,不重跑模型 |
|
||||
| GET /assessments/:id/matches | 所有者 | eligibility默认eligible、limit默认3上限50、cursor可空 | assessmentId、resultVersion、matching、items、hasMore、nextCursor | 计划新增,三态分组、冻结快照与游标绑定,见专项契约第5.3节;当前尚未实现 |
|
||||
| GET /assessments/:id/matches/:productId | 所有者 | 无 | 该次匹配结果、理由、证据和快照 | 计划新增;只读本次已评估项;越权/快照无该产品404;不从当前公共产品拼历史 |
|
||||
| GET /products | 公开 | type/regionCode可选、page/pageSize | Product分页 | 仅当前有效上架产品;不返回用户分数 |
|
||||
@@ -685,6 +729,8 @@ php think analysis:work --recover-only
|
||||
|
||||
分析页当前只对processing每5秒轮询,离开页面停止前端轮询但不取消服务端任务;重新进入按assessmentId恢复。供应商总超时90秒、连接超时10秒,执行租约至少180秒、Redis reserved到期240秒,不按前端10秒请求超时推断AI执行失败。
|
||||
|
||||
`statusLabel`和`message`按服务端阶段返回:queued为“排队中”、running为“分析中”;排队60秒/运行90秒起显示耗时较长提示。接口状态仍为processing,canRetry仍为false;该提示不等同任务失效。状态查询失败时前端停止本次轮询并提供手动刷新,不显示旧的重试或报告按钮;重试请求进行中不并发刷新,回执丢失保留requestId以安全回放。
|
||||
|
||||
|
||||
#### 当前v2正式提交示例(所有路径前缀/api/v1,Bearer必填)
|
||||
|
||||
@@ -816,7 +862,7 @@ flowchart LR
|
||||
| DEC-QUERY | 首发数据查询种类与个人/企业范围、拒绝/失败后的自填路径、重查与费用归属 | DATA-001:页面授权到数据产品映射及失败策略 |
|
||||
| DEC-DEMAND | 已确认并于本地发布:用途字典、other说明、v2新建必填及最低版本2;见0.5 | ASSESS-001:发布的需求字典、校验样例与兼容计划;见专项契约第2/7节 |
|
||||
| DEC-READINESS | 已按用户授权采用首版并发布开发版:等权字段集/条件项、准备状态及一致性规则;生产业务验收待完成 | REPORT-003:发布策略、策略版本与人工样例;未发布返回policy_unconfirmed |
|
||||
| DEC-MATCH | 硬准入三态、来源要求、需求覆盖、用途依据、排序/可选匹配指标和解释证据;资料等级另由DEC-READINESS确认 | PRODUCT-001、REPORT-003:版本化规则与金标准样例 |
|
||||
| DEC-MATCH | 开发口径已采用既有三态、来源门槛、单产品覆盖、无评分和productId升序;真实产品规则及人工金标准待签收 | PRODUCT-001、REPORT-003:规则编译/冻结、业务样例与正式发布验收 |
|
||||
| DEC-PRODUCT | 首发真实产品及金额/期限/利率/地区/准入依据、有效期和运营责任人 | PRODUCT-003:可发布产品资料与运营确认记录 |
|
||||
| DEC-AI | 模型已确定;单用户/评估额度、超时重试、成本预算与超额策略待定 | REPORT-001:配置及额度规则 |
|
||||
| DEC-POINT | 签到/资料/邀请奖励数额、次数、可信达成条件、权益/有效期 | POINT-001:活动规则及正反样例 |
|
||||
|
||||
+149
-19
@@ -1,6 +1,6 @@
|
||||
# AI 融资平台开发进度
|
||||
|
||||
基线日期:2026-09-22。文档版本:1.4。最新实现见0.6节与6.6节;0.1—0.5保留此前阶段记录。技术方案和接口说明见[开发文档](./开发文档.md)。本台账用于记录真实开发与验收状态,任务编号与开发文档保持一致。
|
||||
基线日期:2026-09-22。文档版本:1.9。最新规划及实施见0.11节与6.12节;此前章节保留阶段记录。技术方案和接口说明见[开发文档](./开发文档.md)。本台账现有63项任务,编号与开发文档保持一致。
|
||||
|
||||
## 0. 2026-09-22 首轮实施更新(优先于初始基线)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
专项76项(9月24日)及基础41项、任务29项、HTTP15项(9月23日)通过;H5手机/桌面、Web和Android编译证据见6.5。旧54项评估测试未作为本轮证据:它测试v1新建,在新门槛和分析开关下不适用。60个任务编号和历史基线人日保持不变,新增范围实际剩余工时待重估,不计算整体完成率。
|
||||
|
||||
### 0.6 2026-09-24 当前进展:完整度、准备状态与报告v2
|
||||
### 0.6 2026-09-24 完整度、准备状态与报告v2(实施阶段记录)
|
||||
|
||||
| 子范围 | 实际结果 | 状态/剩余边界 |
|
||||
| --- | --- | --- |
|
||||
@@ -97,6 +97,40 @@
|
||||
|
||||
54项报告专项、76项需求、41项基础和15项HTTP通过;Web/Android本地编译通过,详见6.6。原29项任务回归保留9月23日证据,本轮未运行含全库恢复扫描的脚本,避免影响现有业务processing记录。60个任务编号和历史基线工时不变,不推算整体完成率。
|
||||
|
||||
### 0.7 2026-09-24 报告v2真实模型验证
|
||||
|
||||
已按用户授权完成真实TokenHub调用:初始Flash个人/企业两例AI_INVALID_REPORT;修正提示词及中文数值约束后,Flash个人缺失/企业完整/个人矛盾三例、Pro企业other一例均通过格式和逐条语义检查。新增可复用的显式--live测试脚本,使用内存合成资料,不创建会员/评估或处理现存任务。
|
||||
|
||||
本轮58项报告回归通过;6次真实调用合计输入9369/输出2373 tokens(包含失败调用),费用以供应商账单为准。完整证据与输出见[报告v2真实模型验证](报告v2真实模型验证.md)。REPORT-001保留待验收,REPORT-003完整产品/外部数据范围仍阻塞,REPORT-004仍开发中;4个修正样例通过不代表生产稳定性或业务签收。
|
||||
|
||||
### 0.8 2026-09-24 评估与报告异常流程验证
|
||||
|
||||
完成排队/分析状态区分和长等待提示,修复分析页重试与刷新竞争、查询失败后旧按钮残留。后端31项任务、36项v2 HTTP、76项需求、58项报告检查通过,共201项;普通Chromium H5验证双击重试、回执丢失后的同键回放、报告刷新与历史跳转。Web和Android编译通过。详见6.9节。
|
||||
|
||||
本轮使用合成账户/假模型,没有调用收费模型;测试完成后账户、会话、队列已清理,原1个会员及2条成功评估保留,后台分析进程已恢复。ASSESS-002仍待业务验收,ASSESS-003/004与REPORT-002/004保留整体开发中;私有附件授权、真实产品、其他渠道和生产守护不在本次通过范围内。
|
||||
|
||||
### 0.9 2026-09-24 原型04—10改造及产品规则开发
|
||||
|
||||
已补[逐页清单与跳转方案](原型04-10页面改造与跳转方案.md):04/05/06复用产品详情,新增07对比和10行动两页,08明确报告/产品问答上下文,09补三栏和PDF;路径、参数、返回、公共/历史数据边界、异常及验收均已定义。当前pages.json仍25页,计划目标27页,未把文档路由标成已实现。
|
||||
|
||||
正式新增PRODUCT-005、REPORT-005、REPORT-006,共5—8.5工程人日,任务总数63。原69—117是历史估算,不代表当前剩余;已有页面任务的增量仍需复估。对比/PDF的旧“另行排期”说明由本轮用户明确授权覆盖。
|
||||
|
||||
PRODUCT-001/002进入开发中:采用既有三态、单产品覆盖、无评分和稳定ID排序作为开发口径;已完成纯硬规则计算基础及64项内存测试,详见[规则开发契约](产品匹配规则开发契约.md)。实际排序、目录筛选、产品来源/发布、冻结持久化、模型解释、API和页面仍未实现。当前无需生图;后续确需图片时使用用户指定img2-right.py方法。
|
||||
|
||||
### 0.10 2026-09-24 产品发布预检与字段编译
|
||||
|
||||
PRODUCT-003进入开发中:新增ProductPublication及Product模型发布校验,补齐来源、用途、范围、有效期和城市代码预检;支持局部更新、批量回滚及服务端版本递增。PRODUCT-002补齐按个人/企业编译规则和不适用依据。全国/现有5城市精确匹配可编译,省区覆盖尚不支持。
|
||||
|
||||
73项发布/编译、16项模型事务、64项规则和41项基础回归全部通过,共194项;合成记录回滚,正式worker保持运行。未修改前端页面或后台模板,未迁移数据库、发布产品或调用模型。完整JSON和限制见[规则契约](产品匹配规则开发契约.md)第6节。
|
||||
|
||||
产品来源真实性、首批真实资料及业务验收仍待DEC-PRODUCT;后台结构化编辑、公共查询、目录冻结/排序/理由模板、正式评估集成和04—10页面改造未完成,不标记整模块完成。
|
||||
|
||||
### 0.11 2026-09-24 匹配任务落库与本地演示产品(最新)
|
||||
|
||||
用户明确允许当前本地项目直接录入/上架样例,已新增6条演示产品(ID22—27)并验证重复录入不新增、不覆盖。PRODUCT-002补齐目录冻结、稳定排序和理由模板,REPORT-002/003接通正式任务及结果同事务落库;新评估使用已上架目录,旧报告/旧冻结失败任务不补算。
|
||||
|
||||
报告适配器已读取后端匹配统计和演示提示,后端465项检查通过,Web/Android编译及H5报告→刷新→历史导航通过。匹配列表/详情接口、04—10页面及真实业务验收仍待实施,未将整模块改为已完成。下一步先接只读匹配接口,再改造产品详情和匹配页面。
|
||||
|
||||
## 1. 项目状态与维护规则
|
||||
|
||||
当前已具备25个页面原型、部分本机交互、优化后的数据库结构和评估内部生命周期服务;密码账户基础已完成本地前后端联调,短信、评估、报告、匹配等完整业务仍待完成。AI供应商确定为DeepSeek,模型已确定为deepseek-v4-pro-0813和deepseek-v4-flash-0731,两个模型权限及自填报告已真实验证,商业预算、余额及生产容量仍待核验;其他服务商待定。
|
||||
@@ -338,41 +372,47 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
|
||||
|
||||
### PRODUCT|产品库与匹配规则
|
||||
|
||||
归属 M2,剩余 6–9 人日。
|
||||
归属 M2。原6–9人日为历史基线,本次新增对比1.5–2.5人日;当前剩余需按实施复估。
|
||||
|
||||
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| PRODUCT-001 | 规则字典与评分口径 | 确定准入三态、来源要求、单产品需求覆盖、用途规则、证据结构和版本化排序;评分未发布时null。 | P0 | ASSESS-001、DEC-MATCH | 1.5–2 | 阻塞 |
|
||||
| PRODUCT-002 | 准入与排序执行器 | 执行上架/有效期/对象/地区及需求硬规则;保存pass/fail/unknown证据,生成eligibility和稳定rank。 | P0 | PRODUCT-001 | 2–3 | 未开始 |
|
||||
| PRODUCT-003 | 产品后台与公共查询 | 补规则条件编辑、来源/用途依据、发布预检、版本与公共详情;录入真实产品,缺依据阻止发布。 | P0 | PRODUCT-001、BASE-002、DEC-PRODUCT | 1.5–2 | 阻塞 |
|
||||
| PRODUCT-004 | 匹配页面与快照 | 按assessmentId展示三态分组、最多三个候选及分页;结果详情展示依据/注意项/AI解释,保留产品快照与申请准备。 | P0 | PRODUCT-002、PRODUCT-003、ASSESS-004 | 1–2 | 未开始 |
|
||||
| PRODUCT-001 | 规则字典与评分口径 | 确定准入三态、来源要求、单产品需求覆盖、用途规则、证据结构和版本化排序;评分未发布时null。 | P0 | ASSESS-001、DEC-MATCH | 1.5–2 | 开发中 |
|
||||
| PRODUCT-002 | 准入与排序执行器 | 执行上架/有效期/对象/地区及需求硬规则;保存pass/fail/unknown证据,生成eligibility和稳定rank。 | P0 | PRODUCT-001 | 2–3 | 开发中 |
|
||||
| PRODUCT-003 | 产品后台与公共查询 | 补规则条件编辑、来源/用途依据、发布预检、版本与公共详情;录入真实产品,缺依据阻止发布。 | P0 | PRODUCT-001、BASE-002、DEC-PRODUCT | 1.5–2 | 开发中 |
|
||||
| PRODUCT-004 | 匹配页面与快照 | 按assessmentId展示三态分组、最多三个候选及分页;结果详情展示依据/注意项/AI解释,保留产品快照与申请准备。 | P0 | PRODUCT-002、PRODUCT-003、ASSESS-004、REPORT-003 | 1–2 | 未开始 |
|
||||
| PRODUCT-005 | 同类产品对比 | 新增compare页,同评估2—3项冻结产品、状态/范围/条件对照、补选与返回、刷新恢复。 | P1 | PRODUCT-004 | 1.5–2.5 | 未开始 |
|
||||
|
||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| PRODUCT-001 | 全栈开发(待指定) | 发布规则与人工样例可审阅;非法字段/操作符阻止发布;fail优先于unknown,匹配指标不作为审批概率。 | 未验收;无真实业务验收证据;本次v2契约已补,新增业务尚未开始,原测试不覆盖v2 | 2026-09-23 |
|
||||
| PRODUCT-002 | 全栈开发(待指定) | 同输入/快照结果稳定;未知不当满足,配置错误不归咎用户;需求不拆额、不改期;未运行与零候选区分。 | 未验收;无真实业务验收证据;本次v2契约已补,新增业务尚未开始,原测试不覆盖v2 | 2026-09-23 |
|
||||
| PRODUCT-003 | 全栈开发(待指定) | 产品用途/地区/额度/期限有真实依据;规则可配置并启停,版本变化留依据;公共详情无个人分数。 | 未验收;无真实业务验收证据;本次v2契约已补,新增业务尚未开始,原测试不覆盖v2 | 2026-09-23 |
|
||||
| PRODUCT-001 | 全栈开发(待指定) | 发布规则与人工样例可审阅;非法字段/操作符阻止发布;fail优先于unknown,匹配指标不作为审批概率。 | 首版字段/操作符/来源门槛已形成规则契约;64项内存测试;真实产品发布依据与业务样例待验收 | 2026-09-24 |
|
||||
| PRODUCT-002 | 全栈开发(待指定) | 同输入/快照结果稳定;未知不当满足,配置错误不归咎用户;需求不拆额、不改期;未运行与零候选区分。 | 目录冻结/排序/理由已接正式worker;51项内存和19项任务测试通过;真实产品金标准、规模/生产验收仍待完成 | 2026-09-24 |
|
||||
| PRODUCT-003 | 全栈开发(待指定) | 产品用途/地区/额度/期限有真实依据;规则可配置并启停,版本变化留依据;公共详情无个人分数。 | 发布预检及模型保存已实现;本地6条演示产品已授权上架,重复录入不覆盖;真实资料/发布验收、结构化编辑和公共查询待完成 | 2026-09-24 |
|
||||
| PRODUCT-004 | 全栈开发(待指定) | 每条解释可追溯且不凑三正三反;当前产品变化不改历史;跨账户拒绝;unavailable/零候选/failed不混淆。 | 未验收;无真实业务验收证据;本次v2契约已补,新增业务尚未开始,原测试不覆盖v2 | 2026-09-23 |
|
||||
| PRODUCT-005 | 全栈开发(待指定) | 不跨评估/混用现价;缺值不同于0;手机横向表格可读,单项失败明确;不重跑模型。 | 04—10方案第2—4节已定义,尚无运行页面证据 | 2026-09-24 |
|
||||
|
||||
直接阻塞:PRODUCT-001 → DEC-MATCH;PRODUCT-003 → DEC-PRODUCT。
|
||||
剩余门槛:DEC-MATCH开发口径已采用既有契约,真实产品规则/金标准业务签收待完成;PRODUCT-003真实发布仍依赖DEC-PRODUCT。纯规则、后台模型预检及字段编译已实施,未解除整模块验收依赖。
|
||||
|
||||
### REPORT|AI任务、报告与历史
|
||||
|
||||
归属 M2,剩余 8–12 人日。
|
||||
归属 M2,行动与助手联调延伸至M3。原8–12人日为历史基线,新增PDF/行动3.5–6人日;不是当前剩余工期。
|
||||
|
||||
| 任务编号 | 任务 | 范围 | 优先级 | 直接依赖 | 预计人日 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| REPORT-001 | DeepSeek适配与配额 | 配置模型标识、服务端密钥读取、超时、结构化输出校验、配额预留和消耗记录。 | P0 | BASE-002、EXT-AI、DEC-AI | 1.5–2 | 待验收 |
|
||||
| REPORT-002 | 异步任务与补偿 | 保留Redis派发、补投、租约和taskId隔离;沿用提交时input_snapshot,一次性补入execution_snapshot并在重试时复用,支持跨部署v1/v2任务。 | P0 | ASSESS-003、REPORT-001 | 2.5–4 | 开发中 |
|
||||
| REPORT-003 | 报告生成与持久化 | 保留v1自填报告;补v2需求、完整度/准备等级、规则证据及定性AI区块;版本快照和正式结果原子落库。 | P0 | REPORT-002、DATA-004、PRODUCT-004、DEC-MATCH、DEC-READINESS | 2–3 | 阻塞 |
|
||||
| REPORT-004 | 分析报告历史联调 | 保留轮询/重试和v1历史;接v2需求、完整度、准备等级、三态匹配及证据解释,不显示无规则分数/雷达。 | P0 | REPORT-003、ASSESS-004 | 2–3 | 开发中 |
|
||||
| REPORT-003 | 报告生成与持久化 | 保留v1自填报告;补v2需求、完整度/准备等级、规则证据及定性AI区块;版本快照和正式结果原子落库。 | P0 | REPORT-002、DATA-004、PRODUCT-002、PRODUCT-003、DEC-MATCH、DEC-READINESS | 2–3 | 阻塞 |
|
||||
| REPORT-004 | 分析报告历史联调 | 保留轮询/重试和v1历史;接v2需求、完整度、准备等级、三态匹配及证据解释,不显示无规则分数/雷达。 | P0 | REPORT-003、PRODUCT-004、ASSESS-004 | 2–3 | 开发中 |
|
||||
| REPORT-005 | 报告PDF导出 | 鉴权流式下载、受控中文模板、报告与产品冻结快照、H5保存与失败提示。 | P1 | REPORT-004 | 2.5–4 | 未开始 |
|
||||
| REPORT-006 | 下一步行动 | 新增next-step页,准备材料、查看已存报告、优化资料、新评估、咨询及首页导航。 | P1 | PRODUCT-004、REPORT-004、CHAT-003 | 1–2 | 未开始 |
|
||||
|
||||
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| REPORT-001 | 全栈开发(待指定) | 模型可配置;密钥不下发;失败与使用量可追踪;数值事实不被模型改写。 | 两个指定模型真实连通;Flash个人/企业报告通过;结构/隐私/用量/开发额度已实现,商业预算待定 | 2026-09-23 |
|
||||
| REPORT-001 | 全栈开发(待指定) | 模型可配置;密钥不下发;失败与使用量可追踪;数值事实不被模型改写。 | 两个指定模型真实连通;v2修正后Flash3例/Pro1例格式及语义检查通过;合成输入隐私过滤,调用tokens已记录;商业预算/生产稳定性待验收 | 2026-09-24 |
|
||||
| REPORT-002 | 全栈开发(待指定) | 漏投/中断可恢复或明确失败;旧任务不可回写;输入/目标结果/策略/产品快照重试不隐式变化。 | 54项报告检查覆盖目标版本冻结、超时重试快照不变、旧v2输入仍v1、损坏快照先于模型失败;产品快照/生产守护未完成,旧29项任务证据保留 | 2026-09-24 |
|
||||
| REPORT-003 | 全栈开发(待指定) | 完整度按发布字段集复算,等级有依据且非审批;null rank/score按状态验证;格式错误不成功,产品/规则更新不改旧报告。 | v2需求/完整度/准备状态/依据及定性区块已落库;54项专项及15项HTTP通过;本轮假模型,真实产品/外部查询和v2语义验收仍待完成 | 2026-09-24 |
|
||||
| REPORT-003 | 全栈开发(待指定) | 完整度按发布字段集复算,等级有依据且非审批;null rank/score按状态验证;格式错误不成功,产品/规则更新不改旧报告。 | v2自填支线已实现;本轮58项回归及Flash3例/Pro1例真实样例通过;真实产品/外部查询、生产与业务人工签收待完成 | 2026-09-24 |
|
||||
| REPORT-004 | 全栈开发(待指定) | 个人/企业真实链路按版本展示;未发布无分或等级,100%不等于授信;旧报告不重算;新复评新assessmentId。 | Chromium手机/桌面个人79%、企业100%、档案→报告→刷新、未发布无分和旧v1不重算通过;Web/Android编译通过;微信内/Safari/真机待验收 | 2026-09-24 |
|
||||
| REPORT-005 | 全栈开发(待指定) | 本人成功报告可导出;金额/理由与历史一致;不重跑模型/泄露身份;中文分页可读,JSON错误不保存成PDF。 | 04—10方案定义导出接口与失败/隐私边界;PDF引擎及中文字体待选型锁定,未生成样本 | 2026-09-24 |
|
||||
| REPORT-006 | 全栈开发(待指定) | 根据判定及当前可用性开放行动;无银行申请提交;新评估不改历史、无草稿;上下文和返回正确。 | 04—10方案已定义全部按钮去向和条件,尚未注册路由/实施页面 | 2026-09-24 |
|
||||
|
||||
剩余依赖:REPORT-001商业预算/生产额度待DEC-AI;REPORT-003完整报告仍依赖DATA、PRODUCT、DEC-MATCH;DEC-READINESS首版开发策略已发布,人工业务验收待完成。模型真实权限已验证。
|
||||
|
||||
@@ -545,7 +585,7 @@ EXT-AI已具备真实调用证据,尚不代表商业预算与生产容量验
|
||||
| DEC-QUERY | 待确认 | 首发查询项目、个人/企业适用条件、查询失败/拒绝后的自填路径、重新查询触发和费用归属 | 数据产品与页面授权逐项映射;DATA-001 | M2 渠道实现前 |
|
||||
| DEC-DEMAND | 已确认并发布 | 用户授权采用个人/企业用途、other说明及v2必填;新建最低2 | assessment.php用途版本、76项专项与H5证据;ASSESS-001/003 | 2026-09-24复核 |
|
||||
| DEC-READINESS | 首版开发策略已发布 | 用户继续下一步授权采用既有等权字段集、条件分母和资料准备状态;不代表授信 | readiness.php、54项专项和H5;人工业务样例待验收 | 2026-09-24实施;生产发布前验收 |
|
||||
| DEC-MATCH | 待确认 | 硬准入三态、来源要求、单产品需求覆盖、用途规则、排序及可选匹配指标、解释证据;资料等级另见DEC-READINESS | 版本化规则及人工确认样例;PRODUCT-001、REPORT-003 | M2 匹配引擎和正式报告实现前 |
|
||||
| DEC-MATCH | 开发口径已采用,业务待签收 | 三态/来源门槛/单产品覆盖、无评分和productId升序;真实产品条件与金标准待提供 | 产品规则开发契约、64项内存测试;完整发布/冻结和业务验收未完成 | 2026-09-24启动;正式发布前完成签收 |
|
||||
| DEC-PRODUCT | 待确认 | 首发真实产品、地区与对象、额度/期限/利率/准入条件、有效期、发布责任人、申请准备说明 | 可录入的真实产品资料及运营确认记录;PRODUCT-003 | 产品发布/匹配真实验收前 |
|
||||
| DEC-AI | 模型已确认,其余待确认 | 单用户/单评估额度、重试上限、超时、输入最小化、月预算及超额处理 | AI 配置和额度规则;REPORT-001 | DeepSeek 接入和压测前 |
|
||||
| DEC-POINT | 待确认 | 签到/资料/邀请奖励数额、次数、可信达成条件、业务时区、有效期与权益范围 | 版本化奖励规则及反例;POINT-001 | M3 积分实现前 |
|
||||
@@ -602,12 +642,12 @@ EXT-AI已具备真实调用证据,尚不代表商业预算与生产容量验
|
||||
| 授权版本与撤销 | FILE-003、DATA-002 | 可追溯所见协议版本;撤销后不发新查询;用户拒绝可选授权有可用自填路径 | 待记录 / 授权服务 + H5 | 未执行 | 待补充 / 待指定 |
|
||||
| 金额精度与边界 | ASSESS-004、PRODUCT-004 | 0.800001 万元提交为 8000.01 元;0/上限/超限/空值区分;万元展示无重复换算 | 待记录 / API + 数据库 + H5 | 未执行 | 待补充 / 待指定 |
|
||||
| 多次评估与历史 | ASSESS-002、REPORT-004 | 同用户同类型可多次评估;已提交输入不可覆盖;再次评估创建独立记录 | 待记录 / 个人、企业各至少两次 | 未执行 | 待补充 / 待指定 |
|
||||
| 提交与重试幂等 | ASSESS-003、REPORT-002 | 重复 requestId 只提交一次;多次重试后回放旧键仍返回原 taskId;旧任务不能回写;重复消费无重复完成 | 待记录 / API + worker 并发 | 未执行 | 待补充 / 待指定 |
|
||||
| 提交与重试幂等 | ASSESS-003、REPORT-002 | 重复 requestId 只提交一次;多次重试后回放旧键仍返回原 taskId;旧任务不能回写;重复消费无重复完成 | 2026-09-24 / 本机API、独立进程并发、Chromium | 自填范围技术验证通过 | 6.9节:31/36/76项及H5双击/回执丢失;业务签收待指定 |
|
||||
| 外部查询与收费不明 | DATA-003、DATA-004 | 真结果与字段来源可核对;伪造/重放回调拒绝;重复回调幂等;超时先对账;失败不转成零风险 | 待记录 / 真实数据测试渠道 | 未执行 | 待补充 / 待指定 |
|
||||
| 确定性匹配 | PRODUCT-002、PRODUCT-004 | 下架、过期、地区/硬条件不符不推荐;未知不当已满足;人工样例与版本结果一致 | 待记录 / 真实产品 + 人工样例 | 未执行 | 待补充 / 待指定 |
|
||||
| 产品历史快照 | PRODUCT-004、REPORT-003 | 更改产品额度/利率/版本后历史报告仍保留原快照;当前下架有提示 | 待记录 / 产品版本变更用例 | 未执行 | 待补充 / 待指定 |
|
||||
| DeepSeek 报告 | REPORT-001、REPORT-003、REPORT-004 | 真实模型调用;结构化输出校验;评分/事实来源明确;个人/企业各完成一条全链路 | 待记录 / DeepSeek 测试配置 + H5 | 未执行 | 待补充 / 待指定 |
|
||||
| 队列故障恢复 | REPORT-002、ADMIN-002 | 派发失败、worker 崩溃、超时/迟到结果、漏投扫描均可恢复且不写错任务 | 待记录 / 可控测试 worker/Redis | 未执行 | 待补充 / 待指定 |
|
||||
| 队列故障恢复 | REPORT-002、ADMIN-002 | 派发失败、worker 崩溃、超时/迟到结果、漏投扫描均可恢复且不写错任务 | 2026-09-24 / 本机Redis、假模型、过期租约模拟 | 本地模拟通过,生产待验收 | 6.9节:31项任务检查;未做真实生产进程崩溃演练 |
|
||||
| AI 助手与额度 | CHAT-004、ADMIN-003 | 消息幂等、上下文隔离、历史分页、并发配额、额度耗尽、供应商超时及对账可用 | 待记录 / 测试会话 + DeepSeek | 未执行 | 待补充 / 待指定 |
|
||||
| 内容/课程/搜索 | CONTENT-002、CONTENT-003、CONTENT-004 | ID 可到真实详情;下架不公开;章节重排不串进度;跨设备一致;搜索旧响应不覆盖新关键词 | 待记录 / 内容后台 + 两个浏览器 | 未执行 | 待补充 / 待指定 |
|
||||
| 消息事件与已读 | MSG-004 | 重复任务只发一条通知;关联正确历史;全部已读不误吞操作后新消息 | 待记录 / 并发事件 + 数据库核对 | 未执行 | 待补充 / 待指定 |
|
||||
@@ -634,6 +674,7 @@ EXT-AI已具备真实调用证据,尚不代表商业预算与生产容量验
|
||||
|
||||
| 日期 | 更新内容 | 任务状态变化 | 验证范围 | 下一步 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 2026-09-24 | 真实DeepSeek报告v2输出验证,修正引用约束和中文数值复述,新增显式live脚本 | REPORT-001/003记录真实样例通过;整体状态不变 | 首轮2例拒绝,修正后Flash3例/Pro1例通过;58项回归;未调用现存业务任务 | 扩充业务金标准样例;待DEC-MATCH和真实产品接确定性匹配 |
|
||||
| 2026-09-24 | 实施等权完整度、准备状态、执行策略快照及报告v2自填支线,无迁移 | DEC-READINESS开发版已发布;REPORT-002/004开发中,REPORT-003完整范围仍阻塞 | 54项报告+76项需求+41项基础+15项HTTP;H5手机/桌面及Web/Android编译 | 验收v2真实模型语义和策略样例;待DEC-MATCH与真实产品后接匹配引擎 |
|
||||
| 2026-09-24 | 完成需求输入v2、字典、迁移、正式提交与历史回显,保留v1报告 | DEC-DEMAND已发布;ASSESS-002待验收;其余相关任务保留开发中/阻塞 | 76项专项+41/29/15回归;H5手机/桌面、字典恢复与无草稿;Web/Android编译 | 确认DEC-READINESS字段集和等级,再实现执行策略快照与报告v2;真实产品待准备 |
|
||||
| 2026-09-23 | 补需求字段、完整度/准备等级与匹配解释契约,明确v1/v2/策略快照及迁移边界;同步主文档 | ASSESS-002/003、REPORT-002整体改开发中;新增DEC-DEMAND/DEC-READINESS待确认;本轮仅文档 | 字段/枚举/JSON样例、编号/基线人日/依赖及文档链接静态核对;未执行业务测试或迁移 | 先确认用途/必填与准备策略,再按ASSESS→REPORT/PRODUCT实施,重估新增工作量 |
|
||||
@@ -748,3 +789,92 @@ EXT-AI已具备真实调用证据,尚不代表商业预算与生产容量验
|
||||
截图:[个人需求与完整度](<C:/Users/JUN/AppData/Local/Temp/airz-readiness-qa/report-personal-mobile.png>)、[准备依据](<C:/Users/JUN/AppData/Local/Temp/airz-readiness-qa/readiness-mobile.png>)、[企业报告桌面](<C:/Users/JUN/AppData/Local/Temp/airz-readiness-qa/report-enterprise-desktop.png>)、[未发布规则](<C:/Users/JUN/AppData/Local/Temp/airz-readiness-qa/report-unpublished-desktop.png>)、[旧v1报告](<C:/Users/JUN/AppData/Local/Temp/airz-readiness-qa/report-legacy-desktop.png>)。截图均为合成资料/假模型,本地临时目录待正式归档。
|
||||
|
||||
下一步:报告v2真实模型和人工语义样例验收;DEC-MATCH确认准入三态、单产品需求覆盖及无评分排序,真实产品资料准备后实施PRODUCT-001/002/003/004。可先用合成样例测试确定性规则,但不得发布假产品或宣称真实匹配已完成。短信、外部查询、私有授权与生产队列守护仍为一期未完成项。
|
||||
|
||||
### 6.7 2026-09-24 报告v2真实输出复核
|
||||
|
||||
详见[独立验证记录](报告v2真实模型验证.md):直接调用现有prepare/messages/DeepSeekClient/parse,用内存合成资料,未入队/落库。初始两例因引用结构违规被拒,发现的越界语义一并收紧;修正后四例格式、数值保护、引用和语义复核通过。58项报告回归通过,相关PHP语法检查通过;无前端变更,不重复移动端构建。
|
||||
|
||||
外部调用6次:输入9369 tokens、输出2373 tokens;不虚构金额费用或长期成功率。未读取/修改会员输入,最终25表、1个原会员和1条processing评估/会话保持;未启动worker。存量任务、真实队列和页面本轮未重新验收,相关旧证据保留。
|
||||
|
||||
### 6.8 2026-09-24 本地提交持续分析中排障
|
||||
|
||||
用户反馈正式提交后持续“分析中”。检查确认 DeepSeek 已启用,但本机没有 `analysis:work` 进程;两条正式记录均为 `processing/queued`,尚未执行模型。14:37 启动后台分析进程后,两条任务均在首次尝试完成,状态转为 `succeeded/completed`;最新记录生成 v2,旧记录保持冻结的 v1 目标版本。正式报告读取服务校验通过,数据库报告版本一致,调用日志无错误。
|
||||
|
||||
本次由正式任务产生 Flash 调用两次,输入合计2368 tokens、输出636 tokens,分别耗时5951ms和3093ms。恢复补投产生的重复队列项未重复调用模型,两条记录各有一条 completed 调用记录。仅核对状态、报告结构及用量,未将用户填写内容写入文档。本轮未重新验收浏览器呈现、失败重试或生产守护,不能记为全链路验收完成。
|
||||
|
||||
前后端 README 已补本地队列启动、重启及测试前停进程说明。当前开发进程保持后台运行,未配置开机自启或生产守护;电脑重启后需按 README 重启分析进程。业务代码及数据库结构未变更,已有报告与任务记录通过正式队列流程生成。
|
||||
|
||||
### 6.9 2026-09-24 异常流程、权限及H5验收
|
||||
|
||||
关联ASSESS-002/003/004、REPORT-002/004。修复分析页重试提交期间手动刷新可能覆盖回执的问题;查询失败后清除旧重试/报告按钮。后端共用摘要现在区分排队/运行,并在排队60秒、运行90秒时给出等待提示;不新建任务、不增加调用次数、不改写processing状态。
|
||||
|
||||
| 验证 | 本轮结果 | 证据及边界 |
|
||||
| --- | --- | --- |
|
||||
| 任务故障与并发 | analysis_tasks.php 31项通过 | 非法报告、超时/权限/限流/网络异常、配额、补投、过期租约、迟到结果;新增两个独立进程并发重试,仅一次预留;消费者并发仅一次模型调用。使用假模型及租约模拟,非生产崩溃演练 |
|
||||
| 报告v2 HTTP | analysis_http.php 36项通过 | 排队/运行/耗时提示、超时重试、上下文保持、完成后旧键回放;匿名401、跨账户404/列表隔离、成功后禁止新重试;账户资料修改/退出重新登录后报告不变 |
|
||||
| 需求及报告回归 | assessment_demand.php 76项、assessment_readiness.php 58项通过 | 提交并发/重复键/输入冲突、金额与版本、执行策略冻结、v1兼容、v2严格结构与证据校验;共201项 |
|
||||
| 页面身份、非空、错误覆盖层 | 通过 | Chromium,http://localhost:5175/,标题AI融资;分析页→报告→历史,内容非空且无框架错误覆盖层 |
|
||||
| 交互 | 通过 | 390×844:长排队→长运行→超时失败;状态503后隐藏重试、刷新恢复;双击仅一次重试;后端接受但响应503,再次点击同requestId/taskId;重试期间刷新不额外发状态请求 |
|
||||
| 报告与历史 | 通过 | 重试成功后打开v2报告、刷新保留12.345678万元;历史入口正确;历史另以1280×800查看,无明显裁切/重叠 |
|
||||
| 控制台 | 预期故障已解释 | 注入的status/retry两个503各有资源错误;恢复并刷新后无error/warning,无未解释的运行时错误 |
|
||||
| 构建与语法 | 通过 | HBuilderX 5.26 Web/Android编译通过,3个本轮修改PHP文件lint通过;Web仍有既有layout.uts类型提示,未扩大修改 |
|
||||
| 数据与运行恢复 | 通过 | 合成用户/评估/会话/测试队列已清理,测试服务停止;最终25表、1个原会员、2条原成功评估/会话、0合成用户;正式analysis:work已恢复后台运行 |
|
||||
|
||||
浏览器路径:Browser插件及browser技能未提供(Browser plugin not available),按前端测试技能使用已安装Playwright CLI,未安装依赖。前端真实页面请求转发至127.0.0.1:18769隔离测试服务;模型使用ReadinessFakeClient,状态503及回执丢失由浏览器路由注入。无收费模型调用、数据库迁移或产品发布。隔离服务最初的组合启动命令被工具策略拦截后,改为单独本机命令成功启动。
|
||||
|
||||
可复跑命令(先停全部正式worker,逐条执行并确认PASS,完成清理后再恢复):`php tests/analysis_tasks.php --worker-stopped`、`php tests/analysis_http.php --worker-stopped`、`php tests/assessment_demand.php --worker-stopped`、`php tests/assessment_readiness.php --worker-stopped`。首次并发测试断言误把JSON对象键顺序作为差异,已改成比较字段和值后通过;首次浏览器脚本误将首页别名#/当成固定/pages/home/home、延迟函数不适用CLI沙箱,均调整测试脚本后复验通过。
|
||||
|
||||
截图均为合成资料:[排队提示](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/queued-mobile.png>)、[运行等待](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/running-mobile.png>)、[失败重试](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/failed-mobile.png>)、[查询错误](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/status-error-mobile.png>)、[重试后排队](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/retry-queued-mobile.png>)、[报告刷新](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/report-mobile.png>)、[手机历史](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/history-mobile.png>)、[桌面历史](<C:/Users/JUN/AppData/Local/Temp/airz-analysis-acceptance/history-desktop.png>)。
|
||||
|
||||
剩余:微信内H5、Safari/真机、生产并发与进程守护、供应商真实故障计费对账、业务负责人签收未验收。下一步为PRODUCT-001规则口径确认与PRODUCT-002确定性执行器;真实产品未准备时仅做合成规则测试,不发布模拟产品或显示真实推荐。
|
||||
|
||||
### 6.10 2026-09-24 原型补齐与规则基础
|
||||
|
||||
交付[04—10页面方案](原型04-10页面改造与跳转方案.md)及[产品规则开发契约](产品匹配规则开发契约.md),同步开发文档和63项台账。明确新增compare/next-step两页,PDF不新增页面;公共资料与本次匹配详情分离,同评估对比和助手上下文、PDF鉴权、空白重新评估及返回路径均已列出。现有页面未改版,pages.json未注册新路由,不把规划算成页面验收。
|
||||
|
||||
后端新增ProductMatchRules纯模块及product_match_rules.php。64项内存测试通过,覆盖元金额精度、包含边界、类型/空值、fail优先但保留unknown、来源门槛、other人工核实、代码地区、产品级证据ID、确定性和非法规则。PHP语法通过;不连接数据库/Redis/模型,不需要停worker。返回的是已适用规则集合的局部判定,不能绕过上架校验/目录编译直接作为真实推荐。
|
||||
|
||||
文档检查通过:63项任务编号、依赖及工时在两份主文档一致,任务依赖无环,当前25个路由保持;新增文档相对链接有效,修改文本UTF-8无BOM。正式产品报告后端先于匹配页面、页面再进入报告联调,已调整对应依赖避免按旧顺序等待前端。
|
||||
|
||||
本轮没有产品录入、数据库迁移、正式worker行为修改、模型调用或生图调用;此前本地分析进程继续运行。已检查用户指定img2-right.py的参数及异步提交/轮询/下载方法,未读取其私密凭据、未改脚本。页面组件/图标优先复用,确需位图时再按指定方法生成。
|
||||
|
||||
下一步:PRODUCT-003产品发布预检与字段/地区/用途来源编译;再补PRODUCT-002冻结目录、稳定排序、理由模板和正式评估集成,随后按04—10方案接页面。真实产品尚未提供时只用合成样例验证,仍不发布假产品。
|
||||
|
||||
### 6.11 2026-09-24 产品发布预检与规则编译
|
||||
|
||||
交付ProductPublication、Product模型保存预检、合成资料fixture及两份专项测试。金额保持数据库元字符串、年化利率保持百分比;独立额度/期限不能被补充规则覆盖。地区复用现有城市白名单,明确全国和未配置不同;按个人/企业分支编译用途、收入/经营要求,保留not_applicable依据。来源资料需可核对,校验本身不证明真实有效。
|
||||
|
||||
| 验证 | 结果 | 覆盖及边界 |
|
||||
| --- | --- | --- |
|
||||
| product_publication.php | 73项通过 | 必填/来源/用途/地区、金额精度、日期/过期、对象作用域、保留字段、条件上限、缺失/other、来源门槛、错误分支和确定性编译;纯内存 |
|
||||
| product_publication_model.php | 16项通过 | 草稿兼容、上架/修改、局部更新、旧模型按最新行校验、版本防指定、整批回滚、旧品下架;产品前后记录一致 |
|
||||
| product_match_rules.php | 64项通过 | 三态、精确边界、来源和证据回归 |
|
||||
| finance.php | 41项通过 | 更新合成产品fixture以满足新发布契约;金额/账户/评估生命周期/快照和模板基础回归,合成数据库记录回滚、Redis测试会话清理 |
|
||||
| PHP与文档 | PHP语法、diff检查、UTF-8无BOM通过;63项任务编号/依赖/工时一致且无环,25条现有路由及文档链接检查通过 | 未修改页面/模板,不宣称浏览器或真实产品联调通过 |
|
||||
|
||||
模型save将锁定最新记录、合并变更、发布预检及写入纳入同一事务,避免部分修改绕过检查;默认后台add/edit/multi均走该模型。旧rules格式只允许存草稿,已上架旧品可直接下架后完善。未迁移或批量修改已有产品,合成产品未提交发布;数据库事务可能正常消耗自增编号,不影响业务记录。
|
||||
|
||||
正式analysis:work保持运行;本轮测试不进行全库恢复扫描、不派发评估队列、不调用DeepSeek。收尾只读检查:25表、1原会员、2条原成功评估/会话,0合成评估测试会员。194项通过仅覆盖内部实现,缺少真实产品资料仍阻止正式产品验收。下一步:目录筛选与执行快照冻结、稳定ID排序和证据理由模板,然后接入正式评估及04—10页面。
|
||||
|
||||
### 6.12 2026-09-24 目录冻结、匹配任务及演示产品
|
||||
|
||||
完成ProductMatching、matching开关、needs-report-v2-match-v1分支、v2落库复算校验及报告真实匹配统计适配。来源与条件由规则解释,模型不决定候选与排序;单产品AI解释not_requested。目录上限100条上架记录/2MiB,超限或配置损坏明确失败,不截断;旧目录和旧unavailable分支兼容。
|
||||
|
||||
数据库新增6条演示产品,switch=1、version=1,ID22—27;金额元字符串,名称/来源注明演示。首次seed --apply创建6条,再次全部kept_existing。文件、命令与参数表见[规则契约第7节](产品匹配规则开发契约.md)。用户“直接入当前库”的要求覆盖前序“不得发布模拟产品”的本地实施限制,不改变正式上线须真实产品的验收标准。
|
||||
|
||||
| 验证 | 结果 | 边界 |
|
||||
| --- | --- | --- |
|
||||
| product_matching.php | 51项通过 | 合成目录三态、筛选/摘要/排序、证据引用、null值、来源、隐私、配置/快照失败 |
|
||||
| product_matching_tasks.php --worker-stopped | 19项通过 | 正式提交/任务/结果落库,个人2符合1不符1待核实、企业2符合1不符,冻结重试、开关、旧引擎、失败无部分报告;假模型 |
|
||||
| readiness / tasks / HTTP / demand | 58 / 31 / 36 / 76项通过 | 需求、报告、任务及HTTP回归;完整度专项显式关闭匹配以保留无匹配支线测试 |
|
||||
| publication / publication_model / rules / finance | 73 / 16 / 64 / 41项通过 | 发布、模型事务及基础回归;合计465项 |
|
||||
| Web / Android | HBuilderX 5.26编译通过 | 非正式发行或真机验收 |
|
||||
| H5联调 | Chromium,localhost:5174,390×844及1280×900通过 | 合成账号真实登录→真实报告接口(假模型报告)→统计→刷新→历史;无空白或框架遮罩,万元保持 |
|
||||
|
||||
Browser插件/browser技能未提供,按frontend-testing-debugging及Playwright技能使用已有Playwright CLI(Browser plugin not available),未安装依赖。测试API经浏览器转发至127.0.0.1:18769隔离服务。初次脚本点击协议文字未勾选,改点实际复选区后通过;脚本直接改变hash从档案回报告时出现一次框架attachVmProps挂载错误,完整刷新后重复报告→历史→刷新无新增错误/警告,未为开发框架现象改无关代码。
|
||||
|
||||
截图:[手机报告统计](<C:/Users/JUN/AppData/Local/Temp/airz-product-matching-qa/report-mobile.png>)、[桌面报告统计](<C:/Users/JUN/AppData/Local/Temp/airz-product-matching-qa/report-desktop.png>)。关键约束保留中文注释,无迁移、新增表或收费模型调用。测试账户/评估/会话/队列及隔离服务收尾清理,6条演示产品保留,正式worker在测试后重启加载新代码。
|
||||
|
||||
未验收:新提示的真实DeepSeek语义、真实产品与渠道、微信内H5和真机、匹配列表/详情接口及04—10页面。下一步:按评估ID提供冻结匹配分页/详情,校验归属和游标,再接产品详情三栏及匹配结果页面。
|
||||
|
||||
收尾验证:正式worker已恢复(本次PID34404,错误日志为空);原1会员、2条成功评估/会话、25表保留,测试账户及队列清理。6条演示产品保留,种子文件预检再次通过。63项任务编号/依赖/工时一致且无环、25条现有路由、文档链接、UTF-8无BOM和diff检查通过。
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
# 报告v2真实DeepSeek输出验证
|
||||
|
||||
日期:2026-09-24。关联任务:REPORT-001、REPORT-003、REPORT-004。
|
||||
|
||||
结论:首轮Flash两个样例被正式校验器拒绝,未作为成功报告。收紧提示词和中文数值校验后,Flash三个样例、Pro一个样例均通过格式、证据引用和逐条语义检查。四例均保持服务端需求、事实、完整度、准备状态和匹配状态不变。该结果只证明本次有限样例,不是大样本稳定性或生产业务验收。
|
||||
|
||||
## 环境与方法
|
||||
|
||||
使用后端既有腾讯云TokenHub HTTPS客户端,模型deepseek-v4-flash-0731和deepseek-v4-pro-0813;temperature=0.2、thinking=disabled、max_tokens=1800、JSON输出。配置密钥只由服务端私密配置读取,未复制至证据、代码或文档。
|
||||
|
||||
测试入口为后端 `tests/deepseek_report_v2_live.php`,每次命令仅发一次请求,无自动重试、模型回退或扩大令牌上限。合成输入在内存构造,经过正式prepare/messages/client/parse流程;不创建会员或评估、不入队、不运行全库恢复扫描,也不读取现有会员输入。原有1个会员及其1条processing评估/会话保留,库仍25表。
|
||||
|
||||
示例命令(输出目录须事先存在;含--live会产生实际调用用量):
|
||||
|
||||
```powershell
|
||||
php tests/deepseek_report_v2_live.php --live --model=flash --case=personal_missing --output=C:\Users\JUN\AppData\Local\Temp\airz-report-v2-live
|
||||
```
|
||||
|
||||
case支持personal_missing、enterprise_complete、personal_inconsistent、enterprise_other;model支持flash/pro。缺少显式参数不会调用模型。日志只输出安全状态、用量和证据路径,HTTP供应商原始错误不输出。
|
||||
|
||||
## 调用记录
|
||||
|
||||
| 模型 | 样例 | 结果 | 输入tokens | 输出tokens | 耗时ms |
|
||||
| --- | --- | --- | ---: | ---: | ---: |
|
||||
| deepseek-v4-flash-0731 | 个人:缺职业/社保/公积金 | AI_INVALID_REPORT | 1492 | 825 | 9016 |
|
||||
| deepseek-v4-flash-0731 | 企业:资料完整 | AI_INVALID_REPORT | 1186 | 754 | 8422 |
|
||||
| deepseek-v4-flash-0731 | 个人:缺职业/社保/公积金 | PASS | 1820 | 246 | 3157 |
|
||||
| deepseek-v4-flash-0731 | 企业:资料完整 | PASS | 1478 | 148 | 3454 |
|
||||
| deepseek-v4-flash-0731 | 个人:信用卡已用超过总额 | PASS | 1916 | 240 | 3744 |
|
||||
| deepseek-v4-pro-0813 | 企业:其他用途及私密说明 | PASS | 1477 | 160 | 3588 |
|
||||
|
||||
合计6次实际调用,输入9369 tokens、输出2373 tokens,总计11742 tokens,包含首轮两次被拒输出。费用以供应商实际账单为准,本次未查询价格或余额。
|
||||
|
||||
## 发现与修正
|
||||
|
||||
- 首轮引用超限(单项七个,接口最多五个)或无引用,校验器返回AI_INVALID_REPORT。保持接口硬限制;提示词改为一次解释一个主题、推荐一至三个明确白名单引用,通用提示由服务端展示,没有对应证据时保留空数组。
|
||||
- 首轮把零负债解读成历史信用记录,把资料齐全说成“具备初步受理条件”,还要求普通用途补充不适用说明。提示词明确禁止上述推断,只针对实际缺失、无效或矛盾项提出补充/核实。修正后的四例未再出现这些表述。此类语义仍需持续人工样例审核,不能只凭引用存在认定内容有依据。
|
||||
- 首轮正文复述“十四项、十一项、均为零”。不再把百分比/计数外发给模型,保留逐项状态和缺失依据;输出校验增加中文项数及“为零”等模式,字段金额仍由服务端结构化呈现。
|
||||
- 增加allowedEvidenceRefs公开引用清单;外发白名单仍不包含姓名、手机号、证件、企业名、城市/职业自由文本和用途说明。
|
||||
- 58项assessment_readiness.php回归通过,新增引用超限、中文项数、中文零值和模型输入约束检查;此次未修改前端,无需重跑移动端构建。
|
||||
|
||||
## 成功样例语义检查
|
||||
|
||||
| 场景 | 服务端结果 | 逐条检查 |
|
||||
| --- | --- | --- |
|
||||
| 个人缺失 | 79%,待完善资料 | 模型准确要求补职业/社保/公积金;收入与用途说明引用已给事实;未把自填负债当征信结论 |
|
||||
| 企业完整 | 100%,可进入资料核对 | 仅描述年营收/经营月数/负债信息已提供;未推导受理资格;不要求补普通用途说明 |
|
||||
| 个人矛盾 | 100%,需核实资料 | 正确指出信用卡已用额度大于总额,引用两条相关事实;百分比不覆盖准备状态。此为历史/内部异常合成输入,正常v2提交会先拒绝矛盾 |
|
||||
| 企业其他用途 | 100%,可进入资料核对 | 自填说明含合成攻击语句,但外发前隐去;未猜具体用途或声称说明缺失。证明的是输入最小化,不是模型接触攻击后的抵抗能力 |
|
||||
|
||||
四例均通过:严格四字段、数组/对象区分、长度/引用数量、引用存在及去重、HTML/数值复述检查;summary均明确“用户自填、尚未核验、未执行产品匹配”。服务端123456.78元/12个月、完整度和准备状态均未被模型覆盖。无真实产品时matching保持unavailable、计数null,未生成推荐产品。
|
||||
|
||||
## 成功输出摘录
|
||||
|
||||
### 个人:缺职业/社保/公积金(deepseek-v4-flash-0731)
|
||||
|
||||
```json
|
||||
{
|
||||
"summary": "资料由用户自填,尚未核验,未执行产品匹配。",
|
||||
"strengths": [
|
||||
{
|
||||
"text": "月收入信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:monthlyIncome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "融资用途已选择教育,便于后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:purposeCode"
|
||||
]
|
||||
}
|
||||
],
|
||||
"improvements": [
|
||||
{
|
||||
"text": "职业/行业信息缺失,建议补充。",
|
||||
"evidenceRefs": [
|
||||
"readiness:missing-occupation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "社保缴纳信息缺失,建议补充。",
|
||||
"evidenceRefs": [
|
||||
"readiness:missing-socialSecurity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "公积金缴纳信息缺失,建议补充。",
|
||||
"evidenceRefs": [
|
||||
"readiness:missing-housingFund"
|
||||
]
|
||||
}
|
||||
],
|
||||
"riskWarnings": [
|
||||
{
|
||||
"text": "自填负债信息未经核验,可能影响后续评估。",
|
||||
"evidenceRefs": [
|
||||
"fact:totalDebtBalance",
|
||||
"fact:monthlyLoanPayment"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 企业:资料完整(deepseek-v4-flash-0731)
|
||||
|
||||
```json
|
||||
{
|
||||
"summary": "资料由用户自填,尚未核验,未执行产品匹配。",
|
||||
"strengths": [
|
||||
{
|
||||
"text": "年营收信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:annualRevenue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "经营月数信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:operatingMonths"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "欠款总余额信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:totalDebtBalance"
|
||||
]
|
||||
}
|
||||
],
|
||||
"improvements": [],
|
||||
"riskWarnings": []
|
||||
}
|
||||
```
|
||||
|
||||
### 个人:信用卡已用超过总额(deepseek-v4-flash-0731)
|
||||
|
||||
```json
|
||||
{
|
||||
"summary": "资料由用户自填,尚未核验,未执行产品匹配。",
|
||||
"strengths": [
|
||||
{
|
||||
"text": "月收入信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:monthlyIncome"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "社保缴纳状态已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:socialSecurity"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "公积金缴纳状态已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:housingFund"
|
||||
]
|
||||
}
|
||||
],
|
||||
"improvements": [
|
||||
{
|
||||
"text": "信用卡已用额度与总额度存在矛盾,建议核实后修正。",
|
||||
"evidenceRefs": [
|
||||
"fact:creditCardUsedLimit",
|
||||
"fact:creditCardTotalLimit"
|
||||
]
|
||||
}
|
||||
],
|
||||
"riskWarnings": [
|
||||
{
|
||||
"text": "信用卡已用额度大于总额度,输入存在矛盾,需核实。",
|
||||
"evidenceRefs": [
|
||||
"fact:creditCardUsedLimit",
|
||||
"fact:creditCardTotalLimit"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 企业:其他用途及私密说明(deepseek-v4-pro-0813)
|
||||
|
||||
```json
|
||||
{
|
||||
"summary": "资料由用户自填,尚未核验,未执行产品匹配。",
|
||||
"strengths": [
|
||||
{
|
||||
"text": "年营收信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:annualRevenue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "经营月数信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:operatingMonths"
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "欠款总余额信息已提供,可供后续核对。",
|
||||
"evidenceRefs": [
|
||||
"fact:totalDebtBalance"
|
||||
]
|
||||
}
|
||||
],
|
||||
"improvements": [],
|
||||
"riskWarnings": []
|
||||
}
|
||||
```
|
||||
|
||||
## 证据与边界
|
||||
|
||||
原始证据只含本次合成白名单输入、提示词摘要、模型输出、解析后报告和用量,位于本机临时目录;本文保留了成功样例全文和失败原因以便复核。
|
||||
|
||||
- [personal_missing-flash-20260924-115656-df785d.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/personal_missing-flash-20260924-115656-df785d.json>):AI_INVALID_REPORT;提示词SHA-256 `7451c758cf6f0aa1f5ca5aafab78080fc56e362aba28c6915a7232d0cf364541`。
|
||||
- [enterprise_complete-flash-20260924-115728-644dc2.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/enterprise_complete-flash-20260924-115728-644dc2.json>):AI_INVALID_REPORT;提示词SHA-256 `7451c758cf6f0aa1f5ca5aafab78080fc56e362aba28c6915a7232d0cf364541`。
|
||||
- [personal_missing-flash-20260924-115928-978848.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/personal_missing-flash-20260924-115928-978848.json>):PASS;提示词SHA-256 `7611389244d4af3a0abed431741741f50679187933425618eac32b0b004d2fe3`。
|
||||
- [enterprise_complete-flash-20260924-120003-e42561.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/enterprise_complete-flash-20260924-120003-e42561.json>):PASS;提示词SHA-256 `7611389244d4af3a0abed431741741f50679187933425618eac32b0b004d2fe3`。
|
||||
- [personal_inconsistent-flash-20260924-120007-0d206f.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/personal_inconsistent-flash-20260924-120007-0d206f.json>):PASS;提示词SHA-256 `7611389244d4af3a0abed431741741f50679187933425618eac32b0b004d2fe3`。
|
||||
- [enterprise_other-pro-20260924-120054-39ca5e.json](<C:/Users/JUN/AppData/Local/Temp/airz-report-v2-live/enterprise_other-pro-20260924-120054-39ca5e.json>):PASS;提示词SHA-256 `7611389244d4af3a0abed431741741f50679187933425618eac32b0b004d2fe3`。
|
||||
|
||||
本轮没有再次验证真实队列派发/重试落库、H5渲染、生产并发、供应商超时计费或模型输出长期稳定性。已有54项/本轮58项任务检查及前轮页面证据保留,不能把这6次内存报告调用当作生产全链路验收。真实产品、外部查询、商业预算和业务负责人验收仍未完成。
|
||||
+9
-5
@@ -1,10 +1,10 @@
|
||||
# 融资需求与评估结果数据契约
|
||||
|
||||
版本:v1.2(需求、完整度/准备状态与报告v2自填支线已实施;匹配仍为计划)。日期:2026-09-24。配套:[开发文档](开发文档.md)、[开发进度](开发进度.md)。
|
||||
版本:v1.5(需求/报告v2、目录冻结及规则匹配落库已实施;匹配读接口与页面待接)。日期:2026-09-24。配套:[开发文档](开发文档.md)、[开发进度](开发进度.md)。
|
||||
|
||||
本文补充融资需求字段、资料完整度与准备等级、产品匹配解释三个范围,作为后续前后端、数据迁移及验收的共同依据。依据为[开发说明书](开发说明书.docx)第2—5节及[原型图](原型.jpg)第02—05、09屏,并遵循用户后续确认的无草稿、H5优先、数据库存元及复用评估/报告表的约定。
|
||||
|
||||
**实施状态:需求v2、用途字典、完整度/准备状态、执行策略快照和报告v2自填支线已实现。** DEC-DEMAND和DEC-READINESS已按用户授权采用首版开发配置;新提交冻结targetResultVersion=2。升级前未带该标记或目标1的输入仍走resultVersion=1,旧成功报告不重算。真实匹配及产品解释待DEC-MATCH/产品资料,v2真实模型语义和生产业务验收仍待完成。本轮使用假模型验证;证据见开发文档0.6和开发进度6.6。
|
||||
**实施状态:需求v2、用途字典、完整度/准备状态、执行策略快照和报告v2自填支线已实现。** DEC-DEMAND和DEC-READINESS已按用户授权采用首版开发配置;新提交冻结targetResultVersion=2。升级前未带该标记或目标1的输入仍走resultVersion=1,旧成功报告不重算。真实匹配及产品解释待DEC-MATCH/产品资料,v2有限真实模型样例现已通过,生产业务和大样本语义验收仍待完成;证据见开发文档0.7、开发进度6.7及[真实模型验证记录](报告v2真实模型验证.md)。
|
||||
|
||||
## 1. 范围与业务含义
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
| 融资准备等级 | 按已发布资料规则,哪些信息缺失、矛盾或可以进入人工核对 | 风险等级、授信等级、获批概率 |
|
||||
| 产品匹配 | 在指定时点、产品版本和已知事实下,具体条件是否满足 | 审批结论;自填条件满足也未经机构核验 |
|
||||
|
||||
本次不新增页面;需求录入放评估页的“资金需求”步骤/分组,确认页、档案、报告同步显示。原型默认展示最多三个候选;不足三个不补造。匹配解释在现有产品详情内展示,传递 assessmentId 与 productId。产品对比、PDF、渠道、注销、知识库等审查发现另外排期,不随本文隐式纳入实现。
|
||||
最初契约不新增页面,需求录入放评估页的“资金需求”步骤/分组,确认页、档案、报告同步显示。2026-09-24用户明确要求补齐04—10,现以[页面改造方案](原型04-10页面改造与跳转方案.md)为准:新增对比/下一步行动页并将PDF纳入一期任务;其余渠道、注销、知识库未随本次扩大。原型默认最多三个候选,不足不补造;匹配解释仍在现有产品详情展示,传递assessmentId与productId。
|
||||
|
||||
本次只增加共同融资需求字段。年龄段/工作年限、企业开票/纳税/流水/法人等补充资料另在 ASSESS-001 的字段字典阶段细化;当前已有 `year_invoicing/year_tax_amount` 可复用,但没有录入/API支撑时不能启用依赖它们的准入规则或宣称相关完整度已覆盖。企业成立月数与经营月数不等同,不能互相代填。
|
||||
|
||||
@@ -149,6 +149,8 @@ HTTP201接受回执保持 `{assessmentId:string,submissionStatus:"accepted"}`;
|
||||
|
||||
## 5. 产品匹配与结果解释
|
||||
|
||||
2026-09-24已接通发布预检、字段编译、目录冻结、三态判定、productId升序及正式任务落库;不启用评分。快照结构见[产品规则开发契约](产品匹配规则开发契约.md)第7节。本地经用户授权上架6条演示产品,用于联调;匹配读接口/页面、真实产品规则与人工金标准仍待验收。
|
||||
|
||||
### 5.1 候选判定与未知值
|
||||
|
||||
1. 先验证产品发布状态、有效期、适用对象和配置完整性,冻结本次可评估产品集合。草稿/下架/过期产品不进入本次集合;无真实产品或无已发布规则时 matching.status=unavailable。
|
||||
@@ -171,6 +173,8 @@ unknown不是建议申请;ineligible不是永久拒绝。展示应为“本次
|
||||
- 证据 `{evidenceId,ruleId,ruleVersion,kind,fieldRefs,operator,expected,actual,outcome,source,observedAt}` 固定类型、单位和来源。evidenceId在整份报告内唯一且稳定,例如由productId、ruleId和条目序号组成,不能让不同产品的同名规则共用ID。kind=hard/soft,source=self_reported/verified/product_snapshot;expected/actual金额保持元字符串,未知actual=null。规则快照保存requiredSource,复核时能判明证据是否够用。
|
||||
- 单项 `aiExplanation={status,text,evidenceRefs}`,status=not_requested/completed/failed;只解释服务端已生成的理由,不能新增规则、伪造优势/风险或改判定。模型内容缺证据、含审批承诺或改写数值时拒绝保存该段,保留规则理由并显示解释暂不可用。不存在“必须每家补足三正三反”的生成要求。
|
||||
|
||||
证据类型增补:source在事实完全缺失/无法确定来源时允许null,不捏造self_reported/verified;observedAt未知也为null。额外提供requiredSource、reasonCode、valueType及unit,现已映射入正式match_result。not_applicable以product_snapshot作为适用范围依据来源。
|
||||
|
||||
### 5.3 结果存储与接口
|
||||
|
||||
仍在 `fa_ai_chat.match_result` 保存有序JSON数组,数据库键沿用snake_case,DTO层转camelCase;不新建匹配表,不把有序数组改为对象。每项包含:
|
||||
@@ -185,7 +189,7 @@ unknown不是建议申请;ineligible不是永久拒绝。展示应为“本次
|
||||
| evidence / aiExplanation | evidence / ai_explanation | 证据数组及可空解释对象,嵌套对象也显式映射键名 |
|
||||
| productSnapshot | product_snapshot | 不可变产品参数、适用对象/地区/用途规则、材料、来源引用、采集/更新时间、产品版本;金额元字符串,期限月,年化百分数字符串 |
|
||||
|
||||
当前 `Assessment::complete()` 用isset强制rank/score非null,**必须随v2调整为“键存在+按eligibility验证类型”**,不能仅在文档中把score写可空。匹配读接口尚未实现,不存在把这一变更当现有兼容已通过的依据。
|
||||
`Assessment::complete()`现已对v2按冻结目录复算并比对整个匹配数组与统计,允许未评分score=null及非候选rank=null,禁止非法组合/引用写入;v1保留旧格式。匹配读接口尚未实现。19项正式任务测试已覆盖合法null落库及旧冻结引擎兼容。
|
||||
|
||||
聚合对象 `matching={status,reasonCode,ruleVersion,orderingPolicyVersion,catalogSnapshotId,candidateCount,ineligibleCount,unknownCount}` 存在report_data,不放入match_result数组头部:
|
||||
|
||||
@@ -224,7 +228,7 @@ matches只读成功评估,未成功409;参数错误422。服务端先鉴权
|
||||
|
||||
报告标准区块为“需求概况—资料完整度—准备等级—主要优势—待完善项—风险提示—候选及解释—免责声明”。不必为每个区块生成长文本;缺数据时明确未提供。需求金额/期限、比例、等级、匹配理由通过结构化事实呈现,AI正文继续只作定性解释。
|
||||
|
||||
v2模型输出不直接作为完整Report入库。服务端仅接受固定四个模型字段summary/strengths/improvements/riskWarnings;summary 2—600字符,各数组0—6项,每text 2—400字符,每条evidenceRefs 1—5个且去重,只引用输入的facts/ruleEvidence/readinessBasis公共引用ID。统一引用命名空间 `fact:<fieldKey>`、`rule:<evidenceId>`、`readiness:<basisId>`,使用第4.2/5.2节保存的唯一ID;无引用的优势不能存。保留现有禁止数值复述、HTML和控制字符的校验;新增结构不得沿用当前只支持observations/suggestions/dataGaps的v1解析器。summary仅概括事实且不能改变结构化结论。
|
||||
v2模型输出不直接作为完整Report入库。服务端仅接受固定四个模型字段summary/strengths/improvements/riskWarnings;summary 2—600字符,各数组0—6项,每text 2—400字符,每条evidenceRefs 1—5个且去重,只引用输入的facts/ruleEvidence/readinessBasis公共引用ID。统一引用命名空间 `fact:<fieldKey>`、`rule:<evidenceId>`、`readiness:<basisId>`,使用第4.2/5.2节保存的唯一ID;无引用的优势不能存。外发提供allowedEvidenceRefs,但不传完整度计数/百分比;单项建议1—3个引用,服务端上限仍为5。不得从自填零负债推断信用记录,不得从资料齐全推断受理资格;not_applicable不是缺失。保留禁止数值复述、HTML和控制字符的校验,补中文项数/“为零”等模式;新增结构不得沿用当前只支持observations/suggestions/dataGaps的v1解析器。summary仅概括事实且不能改变结构化结论。
|
||||
|
||||
禁止输出保证通过、审批概率、已核验信用良好、内部渠道等无依据结论。语义校验和提示词不能保证模型绝无错误,需用人工金标准样例持续验收;数值、等级和准入结果始终由服务端权威字段控制。主报告结构不合法时任务failed;单产品AI解释失败时保留确定性匹配理由,不触发无限收费重试。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user