TradePilot AI v1.0.2 — 基于 v1.0/v1.0.1 的重大修复(含业务闭环)
🔴 重大修复说明
本版本基于 v1.0 与 v1.0.1,系统性修复了数据准确性、数据可信度、业务闭环与安全加固问题。
1. 数据准确性(UN Comtrade 聚合重大修复)
核心结论:UN Comtrade 原始接口的"明细行"不能直接求和。 平台按 customsCode(贸易方式)和 motCode(运输方式)把同一笔贸易拆成多条 + 成对重复行。此前所有"清洗"都在不理解字段语义的情况下进行,导致贸易额严重失真。
| 问题 | 根因 | 修复 |
|---|---|---|
| 德国进口 8525 被算成 55.07 亿(真实 6.88 亿,差 8 倍) | 22 行明细直接求和 | 去重 + 取 customsCode=C00 且 motCode=0 唯一记录为总额;无则报错拒绝(宁缺勿错) |
| "mot=0 优先"仍错(27.5 亿) | 只过滤 mot 仍保留 customsCode 拆分行 | 双条件同时命中 |
| 出口 vs 进口镜像不一致(4 倍差) | 两国上报口径真实差异 | 标记 Suspicious,不覆盖替换(三态质量模型) |
| 500 条截断被当完整结果 | 截断检测在过滤后 | 移到过滤前,触顶拒绝 |
| preview/formal 切换旧缓存命中 | 缓存键无模式维度 | 缓存键加 mode |
| SEC 财务单位错误(苹果 0.00 亿) | 百万美元当美元 | SEC_VAL_SCALE=1e6 |
| 印度编码 699→356 | UNCTAD 内部码 | 改 M49 标准码 |
| 索尼年报取不到 | 20-F + 百万日元 | 按公司配置 (form, 币种, 倍数) |
2. 数据层架构收口(可信可追溯)
- 数据血缘:trade_cache 新增 source/raw_count/clean_count/quality/reason/schema_version,每个数字可追溯来源
- DataGate 总闸:rejected 数据禁止进入分析,AI 只解释数据不判定可信度
- 四态质量:valid / suspicious / invalid / rejected(空数据 ≠ 数据没找到)
- 计算审计 _audit:TC/份额公式展开 + 三腿质量,排查数字问题直接看审计字段
- 数据新鲜度:前端 🟢🟡🟠🔴 徽章
- REJECTED 防线:截断/C00 缺失留痕拒绝,不伪装成"暂无数据"
3. 🚀 业务闭环(销售漏斗 / 定价建议 / 我的订阅)
📈 销售漏斗:客户线索状态管理(new→sent→replied→quoted→won/lost),检索自动入库、状态流转白名单校验、漏斗看板
💰 定价建议:数据驱动定价(出口单价 + 市场进口均价 → 建议区间,AI 不参与算术),带 DataGate 血缘审计
📌 我的市场订阅:关注 (产品→市场) 组合,一键刷新看出口额变化(📈/📉)
🤖 AI 质量注入:数据置信度总览(✅可信/
4. 安全与健壮性(多轮排查 36+20+13 处)
- XSS 修复(chart-meta 纯 DOM)、Docker 密钥泄漏(.dockerignore)、422 错误可读化
- SEARCH_BASE_URL 校验(带 Key 外发防线)、get_latest_year 429 熔断、Word COM 45s 超时
- get_latest_year UnboundLocalError(熔断变量遮蔽)、同国查询明确报错(市场分析放开/贸易页拦截)
- LLM 缓存 key 规范化(大小写双缓存烧 token)、AI HS 解析失败留痕
- 静默失败排查(value=0 伪装修复 + 8 处日志)、计算审计、新鲜度
5. 测试
129 项 pytest 全绿(含脏数据 8 case、DataGate、血缘、定价、熔断、同国守卫、置信度总览等回归)