Files
airz-uniapp/docs/新会话交接.md
T
hujun 542c107317 feat: 优化AI助手及报告对比界面,完成金额精度专项验证
- 调整环境配置切换至测试服
- 实现AI助手上下文折叠展开功能,优化界面布局
- 新增报告对比首屏短参数展示,简化信息呈现
- 调整报告页布局,优化导出组件为紧凑模式
- 完成原型08金额精度三轮真实专项验证,新增金额守卫逻辑
- 更新文档记录部署、数据库切换及验收进展
2026-09-29 17:27:25 +08:00

17 KiB
Raw Blame History

AI融资项目新会话交接

记录日期:2026-09-29。本文件为接续入口;详细任务状态以开发进度0.26、6.27节为准,设计以开发文档v1.24、原型页面方案v1.7为准。历史章节中的“待开发”应结合最新更新阅读。

1. 当前停在哪

最新部署(2026-09-29,优先于下文历史PID):PHP后端已通过宝塔网站页面部署到 https://aitest.ychysg.cn,API前缀 /api/v1,后台 /ZYurKboadX.php。旧 xctai.cn 绑定已移除,宝塔内部站点名及目录仍 /www/wwwroot/xctai.cn,运行目录 public。Let's Encrypt证书已部署、HTTP强制HTTPS、外网信任校验成功;到期2026-12-28,面板续签任务正常、每天04:38,尚未经历续签。PHP7.4.33、Redis7.2.16及systemd airz-analysis均active/enabled;已停本机worker PID1876,现由远程接管,最后PID566317/NRestarts0。不要直接执行下文本机worker启动命令连接活动库;测试用隔离配置,维护先核对远程任务。 服务器.env连接127.0.0.1的既有MySQL5.7/airz,未重新迁移。39项HTTPS检查(含原报告161/229、金额、解密、助手上下文和两份PDF)通过,外网接口/后台登录页/敏感路径通过;未调用收费AI。仅PHP已部署,H5尚未发布。配置/兼容处理/恢复见 D:/AAdesk/202609/airz/deployment-baota.md,服务器私密备份 /root/airz-deploy-20260929/,部署包与检查脚本已归档其deployment-artifacts/。下一步可对接新HTTPS API、发布H5,再做移动端/跨平台验收。

最新数据库切换(2026-09-29):已完成用户授权的远程MySQL5.7.44迁移与后端连接切换,当前使用111.230.144.231:3306/airz及用户指定root账号。25表184行、2份历史报告内容摘要一致;20个CHECK用8个触发器保留,51项约束与24项应用/真实HTTP检查通过。log_bin_trust_function_creators临时设1后已恢复0,当时Web入口及本机worker已恢复;后续宝塔部署已停止本机worker并由远程接管。.env仅改database段,其余加密/Redis/Token配置保持;无真实AI调用。本机MySQL8保留回退,正式写入恢复后不能直接回切旧库丢弃新数据。最终备份D:/AAdesk/202609/airz-backups/mysql57-switch-20260929/prepared-20260929-144304/;后端database/mysql57-switch.md含完整记录,凭据不输出。后端schema.sql现为5.7含触发器结构,历史本机迁移脚本不得直接重跑远程。

最新(2026-09-29):用户限定的07/08/09首屏调整已完成。08上下文一行摘要点击展开,历史入口弱化,其余助手界面保留;07核心参数三列同屏、完整依据可展开;09紧凑元信息/导出入口和浅色准备状态卡,改善内容更早出现。H5受控响应在360/390/1280px通过交互与截图验证,最终console无错误;Android/微信编译通过,详见进度6.25。无数据库/后端改动、无真实AI调用;下一步仍是真机/微信内H5/Safari验收。

用户要求界面内容尽可能还原docs/原型.jpg。原型08已继续实施:界面、持久会话、固定评估/产品上下文、异步回复、分页、原键重试、共享额度、报告/产品/对比入口及登录返回已完成本地联调;关键代码有中文注释。原型10也已完成本地联调;09 PDF普通H5也已实施;08累计13次真实调用,新增连续三轮金额精度专项已通过;下一步为移动端、跨平台与真实产品验收。

内容 当前状态
04/05 产品匹配详情 原型布局与单产品解释保留;咨询AI已接08;产品对比仍可进入
06 产品详情 公共资料和本次评估冻结快照分开读取
07 产品对比 同次2—3产品、补选/移除/刷新保留;可带选择进入08,PRODUCT-005待验收
08 上下文AI助手 CHAT-001—003待验收,CHAT-004开发中;76项助手回归通过,H5及平台编译为前轮结果;演示边界与金额精度真实三轮专项通过,真机/跨平台待验收
09 报告 三栏及本次报告咨询AI入口完成;REPORT-004整体仍开发中;REPORT-005普通H5导出已本地验证,平台/容量待验收
10 下一步行动 REPORT-006待验收;四项行动/登录恢复/状态守卫已接通,38项H5检查及Android/微信编译通过

当前27个注册页面、63个稳定任务编号。本轮承接上一轮前后端未提交改动并保留;未提交/推送。PHP后端已部署,H5尚未发布。

2. 原型08实现与下一步

完整契约见上下文AI助手开发契约。前端packages/finance/assistant/assistant.uvue、packages/finance/services/assistant.uts;后端AssistantChats.php、v1 Assistant.php和AnalysisWork.php。旧sendAssistantMessage模拟入口已移除。

  • 普通会话scene=assistant、assessment_id/analysis_context=NULL。本轮用户明确授权后已执行后端database/migrate_assistant_context.py --apply --worker-stopped,新增两列及归属约束共5项,复跑0项。备份D:/AAdesk/202609/airz-backups/assistant-context-20260928-154651-271907/,原2份评估会话/2条日志逐条未改写。恢复优先保留可空列、回退助手代码,不能整表覆盖后续记录。
  • GET /assistant/context只读预览,GET/POST /assistant/chats读取列表/创建,GET /assistant/chats/:id恢复并校验URL绑定,GET/POST /assistant/chats/:id/messages分页/发送。创建与进入页面均不调用模型,快捷问题只填入文本框。
  • 明确发送创建用户行与ast:调用日志,analysis:work持久消费。每条逻辑消息requestId保持不变;回执丢失同retryAttempt重放,明确失败才手动递增0→1→2。每会话100轮、同时一条待处理;每日创建30会话,调用与评估/单产品解释共享每日额度。
  • 并发序号/幂等/额度必须保持锁定当前读,不能仅依赖用户锁后普通SELECT;测试发现MySQL可重复读旧快照会造成重复序号。
  • 页面每3秒查询、最多60次,可续查;离页清空、Token变化拒绝迟到回包。消息/报告不落本机缓存,H5只保存chatId等ID到URL。登录后只接受白名单助手返回并重新鉴权。
  • 2026-09-29在首轮6次、边界4次之后,追加同一对比会话3轮真实Flash金额复测,全部成功落库,持续保持123456.78元=12.345678万元,口头修改不影响冻结报告和三态。本轮输入16582/输出971 token,累计13次、输入51709/输出3391 token;无自动重试。第1项金额专项限定样例通过,不能外推为全量真实产品或所有输出格式通过。见真实语义验收记录。

tests/assistant_semantics.php支持--boundaries定向4例、--money-precision同会话3例,默认只读计划,显式--fake/--live;tests/assistant_money.php验证金额。服务端从冻结facts/产品条件提取金额白名单,使用BCMath,带单位的错误金额拒绝成功落库、保留用量、不自动重试;不替代所有自然语言数值语义验收。前轮76项助手与舍入拒绝回归已通过;本轮生产源码未变,真实/假模型各11项流程、30项金额单测/回放、21项格式解析/回放通过,三条真实回复金额全部通过。首条原始JSON出现相同内容的重复answer键,已确认现有解析/落库有效文本一致,严格重复键拒绝不在本轮金额专项范围。测试数据已清理,原有四表摘要一致,仍1用户、2评估/会话、2日志;正式worker恢复PID44944,后续重新查PID。

原型10及09 PDF已实施;下一步做移动端键盘/安全区/长回复滚动/返回恢复/失败重试,再补微信内H5/Safari、真实产品人工样例及生产容量验收。供应商与真实产品准备仍可推进,不虚构整体完成率。

3. 必须延续的业务约定

  • 不做草稿;重新评估进入空白表单,不覆盖历史评估。
  • fa_user_info一条对应一次评估;fa_ai_chat保存关联报告及匹配结果;fa_ai_chat_log保存消息和调用记录。不新建独立评估/报告/匹配表。
  • Token保存在Redis,fa_user_token已删除。
  • 金额数据库DECIMAL(11,2),单位元;API用元十进制字符串;客户端万元,保留精度,例如123456.78元显示12.345678万元。
  • 产品稳定条件、额度/期限/利率等使用独立字段,地区/补充规则JSON;沿用冻结产品快照,不用当前产品参数覆盖历史。
  • 规则决定eligible/ineligible/unknown,AI只解释;无评分策略则score=null,不使用原型92%、B+或固定三正三反。非候选的正向部分称“已满足条件”。
  • 申请仅限资料准备与引导;不提交银行申请、不声称受理成功。真实产品尚未提供,本地6条上架资料是明确标注的演示产品。
  • DeepSeek走腾讯TokenHub,已配置Flash/Pro;默认Flash。短信、微信/一键登录、外部查询、客服服务商仍待定。
  • 中文交流与关键中文注释;UTF-8无BOM。保留未提交工作,不自行提交/推送/建PR、迁移或覆盖用户改动。凭据只从后端私密配置读取,不在文档、命令输出、日志或客户端复述。

4. 04/05实现入口和注意点

前端:packages/finance/product/product.uvue、packages/finance/services/matches.uts、packages/finance/services/compare.uts。

后端:application/common/library/ProductExplanations.php、MatchRecords.php、DeepSeekClient.php、AnalysisTasks.php、application/admin/command/AnalysisWork.php、application/api/controller/v1/Assessments.php、application/route.php。

  • POST /api/v1/assessments/:id/matches/:productId/explanation仅接受requestId;返回HTTP200的匹配详情及异步状态,不能把HTTP200理解为模型完成。
  • fa_ai_chat.match_result中单项ai_explanation保存queued/running/completed/failed和逐条解释;首次not_requested。fa_ai_chat_log的pex:调用日志作为持久待办,analysis:work在报告队列空闲时消费。
  • 成功缓存、并发点击和同键重放不会重复调用。每评估每产品最多三次尝试,与报告共享每日用户调用预留额度。失败新键可重试;租约失效明确失败,迟到仅补用量。
  • 模型可能重排理由,按reasonId完整集合校验无重复/遗漏/外来项,再恢复规则顺序,不能再用数组位置强制匹配。
  • 更新解释不能使分页失效:游标摘要排除ai_explanation,仍校验其他冻结字段。
  • 前端每三秒读状态、最多六十次,可手动续查;离页停止轮询、清理数据并拒绝迟到回包。UTS Android局部函数不支持任意前向引用,声明顺序须注意。

详见产品匹配规则开发契约第9节及需求与评估结果数据契约。

5. 验证与现场状态

  • 51项单产品解释测试、70项匹配HTTP/快照检查通过。真实Flash共6次调用,4次成功、2次因旧顺序校验失败,修复后不符及待核实样例通过;不是6次均成功。
  • HBuilderX5.26 Android/微信小程序编译通过;H5 Chromium在390×844、390×1000、1280×900验证,正常最终流程无业务console.error/warn。微信内H5、Safari及真机、真实产品人工金标准未验收。
  • 合成测试账号/评估/会话/日志、Token与队列已清理,测试HTTP和浏览器会话已关闭。上次数据库核验为1会员、2成功评估/会话、25张表;原评估161/229未改写。
  • 2026-09-28本轮收尾正式analysis:work已重启加载助手代码,PID45420已恢复运行(原型10测试后);新会话应重新检查进程/任务状态,不能将旧PID视为永久有效。已有模型worker需在代码变更后安全重启。
  • 前后端均有未提交改动;本次已实施原型08及10,不清理既有工作树。开始新一轮修改前先git status并保留用户现有改动。

本轮08验证:助手70项、产品解释51项、任务31项、评估HTTP36项、匹配HTTP/快照70项通过;H5 Chromium390×844/1280×900完成发送/刷新/分页/重试/回执丢失/三入口/越权/登录返回验证,Android和微信编译通过。合成数据、令牌、隔离服务、浏览器已清理。截图和无凭据QA脚本在C:/Users/JUN/AppData/Local/Temp/airz-assistant-20260928/。共享layout既有H5类型警告保留,正常浏览器运行无业务error/warn。

此前04/05测试与截图目录:C:/Users/JUN/AppData/Local/Temp/airz-product-explanation-20260928/。其中flow/retry/states/capture05/edges/final-capture脚本和截图可参考,但临时目录可能被系统清理;fixture.json已删除,不假定旧账号仍可登录。产品对比和报告三栏证据分别在airz-compare-20260928、airz-report-tabs-20260928临时目录。

原型10最新验证见开发进度6.20:38项H5检查(真实API主流程+边界响应注入)、Android/微信27页编译通过。测试已清理,原161/229报告会话摘要未改变,数据库恢复1用户、2评估/会话、2日志。H5最新5173/PID51832,worker PID45420;新会话先检查当前状态。截图与无凭据脚本在C:/Users/JUN/AppData/Local/Temp/airz-next-step-20260928/。

原型10代码:packages/finance/next-step/next-step.uvue、services/next-step-route.uts。只读status/report/matches接口,核对成功归属与快照元数据;eligible且available才开放准备。重新评估按status.type进入空白表单;登录白名单恢复;onHide清空个人数据、generation/token拒绝迟到请求。未修改后端业务或迁移。不要把模拟不可用/旧版响应测试说成真实产品/旧数据验收。

原型09 PDF最新见进度0.20/6.21:29项PDF、20项真实HTTP、24项受控浏览器检查通过,最终Android/微信编译通过。引擎Dompdf3.1.6在后端extend/report-pdf独立composer.lock,字体Noto Sans SC含许可与哈希;部署须在该目录composer install,详见其README。后端ReportPdf与report.pdf路由、MatchRecords::exportSnapshot;前端ReportExport组件/report-export.uts,登录report-route白名单。无迁移,无收费模型调用。仅普通H5开放下载,其余端给操作提示;不能把编译通过说成原生下载验收。

本轮曾被自动审批拒绝组合UI夹具启动,改以受控响应验证浏览器,不声称完整真实浏览器联调。真实HTTP检查独立通过。全部真实合成账号/Token/队列已清理;原两份报告摘要相同。worker现PID34324,H5仍5173/PID51832;每次重查。PDF/截图证据在C:/Users/JUN/AppData/Local/Temp/airz-report-pdf-20260928/。

6. 环境与验证命令

前端目录:D:/WorkSpace/cyun/ai融资,uni-app x/Vue3/UTS、HBuilderX5.26 VDOM,无npm构建入口。后端目录:D:/AAdesk/202609/airz,FastAdmin/ThinkPHP、PHP7.4、MySQL/Redis。

# 在对应项目目录执行;后端合成任务测试前先核对并停止全部分析worker,结束清理后恢复。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/product_explanations.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/match_records.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_chats.php --worker-stopped
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_reply.php
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_money.php
# 默认仅输出计划;--fake --worker-stopped才执行合成流程。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' tests/assistant_semantics.php --money-precision
# --live会真实调用并产生用量,日常回归不加。
& 'D:/Develop/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe' think analysis:work

& 'D:/Develop/HBuilderX/cli.exe' launch app-android --project 'D:/WorkSpace/cyun/ai融资' --compile true --continue-on-error false
& 'D:/Develop/HBuilderX/cli.exe' launch mp-weixin --project 'D:/WorkSpace/cyun/ai融资' --compile true --continue-on-error false

H5已清理旧开发服务器并以最新代码恢复http://localhost:5173/,新会话先核对监听。注意HBuilder多次launch可能保留旧端口产物,新增代码未加载时先重启正确服务,不把旧包误判为业务错误。可用Python为D:/Develop/Python311/python.exe。已有Playwright CLI使用npx --no-install @playwright/cli,从临时QA目录运行避免向项目写入日志;工具可用性按新会话实际环境选择,无需安装全局依赖。

本地PHP测试服务需指定-t D:/AAdesk/202609/airz/public,否则可能返回首页HTML。UI测试使用随机合成账号,不输出密码/Token;原有真实用户账号无需改动。恢复扫描可能拾取测试任务,仅换Redis队列不足以隔离,故测试前要检查worker。

7. 新会话可以直接发送

请先阅读docs/新会话交接.md、开发进度0.23/6.24和原型04-10页面方案,继续原型08移动端及跨平台验收,先阅读AI助手真实语义验收记录:金额精度三轮真实专项已通过,无需重复收费调用;核对可用浏览器和真机环境,清楚区分模拟与真机结果。界面尽量还原docs/原型.jpg,关键代码加中文注释;保留已有04/05解释、07对比、08上下文助手、09报告及10行动成果。只做材料准备与引导,不提交银行申请;PDF未完成时不做假下载。先检查工作树与数据库/worker现状,新增迁移仍按具体方案申请授权。