Files
group_xinghuo_jinrong/docs/答辩/DEMO-SOP-答辩全流程.md
T
zhanghongyu_0626 2b4eaa9725 feat(nav): Implement historical NAV tracking and enhance product API
- Added `list_nav_history` method in `CoreReadOnlyRepository` to retrieve historical NAV data for products over a specified number of days.
- Introduced `get_nav_history` endpoint in `product_service` to return historical NAV sequences, improving product data accessibility.
- Updated `products.py` to include new API endpoint for fetching NAV history, ensuring compliance with access control.
- Enhanced `ready.py` to include a health check for the new functionality, ensuring system readiness.
- Updated documentation to reflect the new testing baseline of 833 passed tests, indicating improved stability and functionality across the application.

This update significantly enhances the product API by providing access to historical NAV data, improving user insights into product performance.
2026-09-11 20:47:18 +08:00

12 KiB
Raw Blame History

答辩 Demo · 全流程 SOP(给人看 · 亮点优先)

用途: 答辩、汇报、投资人/业务方走查——按时间选路线,每步带口述句与可展示的亮点。
基线(2026-09-11): 827 pytest · 22 Vitest · 分支 merger · Redis 6380

分册 SOP(细节不重复写死在本页):

中文职责 路径
问数工作台逐步操作 DEMO-SOP-问数.md
风控 Swagger / 灌库 / A-1~A-12 ../项目框架设计/演示SOP-风控模块.md
答辩提纲与 Q&A 答辩知识点清单.md
浏览器滚动动线 ../course/jinrong-overview/index.html 模块 8
架构治理(ADR/不变量) ../course/jinrong-architecture-governance/index.html

1. 答辩前准备(建议提前 45~60 分钟)

1.1 一键灌库(推荐)

cd "d:\项目\JinRong"
# 含 Core reset + agent 表 + AML + 风控演示 + 问数模板种子(以脚本实际步骤为准)
.\scripts\demo\prepare_all.ps1
python scripts/sync/sync_advisor_rel.py

仅风控重走 A-1~A-5 且库已脏: 见 演示SOP-风控模块.md §2 双库 DROP 重灌。

问数模板/指标字典缺失: .\scripts\dev\seed_analyst.ps1 或 DEMO-SOP-问数.md §1。

1.2 依赖服务

docker compose up -d redis    # 或 .\scripts\dev\start-redis.ps1
# .env: REDIS_URL=redis://127.0.0.1:6380/0
# DEEPSEEK_API_KEY=…(客服/问数解读/风控 Chat 建议有 Key;无 Key 见 §6 降级)

python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
cd web && npm run dev          # http://localhost:5173

1.3 自检(30 秒 · 给观众看「工程化」)

检查 操作 亮点话术
就绪探针 浏览器或 GET http://127.0.0.1:8000/api/ready 「Redis + 关键路由自检,避免半升级后端」
前端条 登录页/顶栏 DevReadyBanner 无红字 「前后端版本不一致时先告警,不是 silent fail」
测试基线 python -m pytest -q(可选口播 827 passed) 「问数 guard 探针、风控矩阵、客服 1B 都在 pytest 里」

1.4 Demo 账号(登录页四卡片)

角色 Actor 默认首页
客户 CUST-9527 #/app/customer/home
理财师 STAFF-10086 #/app/advisor/home
分析员 STAFF-20001 #/app/analyst/home
风控专员 STAFF-30001 #/app/risk/home

2. 开场 30 秒(必背 · 与亮点挂钩)

  1. 定位: 代销场景四角色 AI 助手 + 统一 L0 事实与合规底座;Core 为模拟库,演示可审计、可阻断、可留痕。
  2. 架构句: 四 Agent 不互调 LLM;跨线靠画像表、预警表、代销平台 REST(重复能力 以 platform API 为准)。
  3. ⚠️ 代理人 Agent 未完整接入(答辩必记): 理财师线没有类似客服的独立深编排(无 advisor_service 级产品化);当前仅为 agent_service + X-Agent-Type: advisor 的 Chat 骨架 + 部分 Tool/公开 RAG · A-01~A-05(T-20)未做 · 勿把顾问 Chat 当主 Demo(可口播「规划中」或只演示 Dashboard/归属 403)。详见 答辩知识点清单.md §4.2。
  4. 铁律: L0 测评不可被画像覆盖 · 仅 R-02 适当性 可阻断交易 · 风控不自动冻户 · 审计表只 INSERT。
  5. 加分一句(可选): 问数 SQL 五层 guard + 探针、客服 1B 出口 sanitize、风控 事件线+人工处置、D-06 模板/缓存 Tag 可在 UI 上指给用户看。

3. 路线选择

路线 时长 适合 覆盖
A · 精华 6~8 分钟 时间紧、领导旁听 §4 步骤 0→1→2→3(不含顾问 Chat 深演示)
B · 标准答辩 12~15 分钟 答辩/评审 §4 步骤 0~3、5~6(顾问仅可选 4 一步或跳过)
C · 全亮点 20~25 分钟 技术深度、二轮 §4 + §5 + §6 可选 + 风控 A-4 聚合 / 订阅推送

4. 标准演示步骤(按顺序 · 每步「操作 → 亮点 → 口述」)

步骤 0 · 登录与 Dashboard(任意角色先登一次)

操作 亮点 口述句
登录 客户 → 首页 饼图/柱图/持仓表 · 眼睛脱敏只遮显示不改数据 「Dashboard 走 platform API 只读 Core,不是 Chat 编数」
顶栏复制 Actor ID 与 JWT sub 一致 「后面 Tool 归属、问数域都绑在这个 id 上」

步骤 1 · 客户财富线(Compliance + Core 事实)

操作 亮点 口述句
客户助手 Chat · 问「我的持仓」或「最新净值」 SSE 流式 · Tool 查 Core RO · C-05 快照非实时盘口 「数据类回复走 Tool + 1B sanitize;违禁回 fact_text,不误转人工」
可选:问「推荐稳赚产品」 COMPLIANCE_REJECT / reject 「C-11:能买/匹配可以讲,收益承诺不行」
可选:持仓页 · 「检查阈值提醒」 C-04 内联提醒 + 演示 threshold-check?push= 「阈值写 L1+配置表;无生产 cron,演示可 push」
可选:游客入口(若 UI 有) fin_* RAG · 无客户数据 「游客只有公开知识库,和登录客户隔离」

给观众看的硬点: LangGraph 14 节点 · agent_tool_call 落库 · 会话 Redis 窗口 + MySQL 永久 · 侧栏 active + close-all(删/清空可演示)。


步骤 2 · 风控事件线(R-02 + 人工闭环)

操作 亮点 口述句
换 风控 登录 → 模拟交易 A-3 大单 → RISK-001/002 · 台账 pending · core_trade 落库 「只有 R-02 适当性 在网关层 blocked;规则引擎再出预警单」
预警台账 · 筛选 pending · 点处置 stats.pending · 处置 409 状态机 · audit 同事务 「Agent 不能自动改状态;REST 处置 + 只 INSERT 审计」
可选:A-1 风评不匹配 SUIT_RISK_MISMATCH · 无 trade 落库 「阻断发生在写 Core 之前,有 suitability_log」
可选:A-5 AML aml 单 · 不冻户(is_active 仍为 1) 「命中 AML 出单,但 MEMORY 禁止自动冻户」
可选:另开 subscribe_alerts.py Redis risk:pub:alert 实时打印 「运维向能力:订阅推送,不是产品化 UI」

Swagger 逐步: 见 演示SOP-风控模块.md §4。


步骤 3 · 数据分析 / 问数(D-06 + 护栏 + 拆分)

操作 亮点 口述句
分析员 → 问数工作台 路由 /api/analyst/chat(无 X-Agent-Type) 「问数和 Chat 拆路由;默认 只出表,解读单独按钮」
问:客户总数是多少 Tag 模板命中 · 折叠 SQL · analytics_query_log 「D-06 模板跳过 LLM 写 SQL,答辩稳定」
再问同一题 Tag 结果缓存(权限指纹 + 表世代) 「写交易/预警会 bump 世代,不等 TTL 失效」
点 分析该数据 /api/analyst/interpret · D-10 数字对齐 · 失败 degrade 只出表 「解读上下文只有本轮 Q+表;不接 Chat 历史」
问:近30天交易流水是多少 clarify(N-01) 「多义不猜口径——和乱写 SQL 对比,这是产品态度」
可选:抽样溯源 / 转人工 N-03 sample · N-07 escalate 「失败/争议有留痕,不是 silent error」

逐步表: DEMO-SOP-问数.md §2~3。


步骤 4 · 风控 / 顾问 Chat(只读 · 防误导)

代理人 Agent 未完整接入: 下表「理财师 Chat」仅适合一句话带过(骨架 + 归属),不要承诺草稿/巡检/深度 L2 等 A 线能力;主 Demo 用客户 / 问数 / 风控。

操作 亮点 口述句
风控助手 · 「查待处理预警」 6 只只读 Tool · 无处置 Tool 「对话线查可以,改状态必须走 REST 处置 API」
理财师 Chat 深演示 未接满 · 仅 agent_service 骨架 「顾问独立编排与 T-20 需求在排期;今天演示平台归属与风控/问数/客服三条成熟线」
可选(浅):理财师登录 → Dashboard 客户列表 平台 API + 归属 「名下客户数据走 Core + rel 表;Chat 能力与客服线不对等」

步骤 5 · 工程化收口(30 秒 · 给技术评委)

展示 亮点
口播 827 pytest + 22 Vitest Wave 分模块 · TEST-AN-001 sql_guard · TEST-RISK-001 矩阵
指 docs/memory/ + docs/course/ Agent 交接记忆 + 交互深潜课(四 Agent + 架构治理课)
主动 §8 边界 1~2 条 无真实 Core · D-09 多轮 open · Dashboard 无钻取 — 显得诚实

5. 亮点清单(按主题 · 可穿插口述)

主题 展示动作 一句话亮点
合规双护栏 客服 sanitize + 问数 deny 不调 LLM 输入防护 + 输出/执行前 guard
Tool 纵深 403 + agent_tool_call blocked 留痕 API 与 Tool 双层归属
RAG 溯源 客服回答带 source / 有效日期 禁止未检索内容当事实
AL-09 合并 口播 JWT 统一 · deps∥gateway 风控并进宿主,接缝 auth_adapter
问数 RBAC 理财师查非名下 → deny 与 answer 一致 解读按钮 不调 LLM
风控并发 口播 A-4 同日聚合 · L3 乐观锁 深潜课模块 7
缓存世代 问数二次命中绿色 Tag 写侧 bump,非纯 TTL
架构治理 打开架构治理课模块 2~4 ADR/不变量/fitness function 与仓库映射
Ready /api/ready JSON 运维才显现类问题的第一道灯

6. 可选加深(全亮点路线 C)

项 操作 说明
问数 battery python scripts/dev/run_query_battery.py 报告本地、不入库;答辩后给技术同事
风控 A-4 连发 4 笔小额 同日 freq 聚合 同 alert_id
风控 A-12 agent_behavior_scan.py 代理人行为链 FR-10
平台 API 客户 交易/流水 页 与 Chat Tool 同源 Core,强调 platform 优先
行情页 分析员 市场 quotes Phase B 未做 sync,主动说草案
架构课 jinrong-architecture-governance 模块 1 四要素映射四 Agent

7. 无 DeepSeek Key / 部分服务不可用

能力 无 Key 时
问数 NL2SQL 模板题仍可用;自由问可能 clarify/deny
问数 解读 可能 degrade 或失败 — 跳过步骤 3 解读按钮
客服 Chat 闲聊降级文案;事实类仍可走 Tool
风控 Chat 只读 Tool 仍可用(不依赖生成长文)

8. 演示后 Q&A 快捷指针

见 答辩知识点清单.md §九;高频:

  • 四 Agent 为何不互调? → MEMORY §3 + 审计边界
  • SQL 越权? → sql_guard + 域 + 探针
  • LLM 胡说数字? → D-10 guardrail + degrade
  • 会话存哪? → Redis 窗口 + MySQL agent_message

9. 文档与课程索引(给观众「资料包」)

docs/答辩/
  答辩知识点清单.md          ← 提纲 + Q&A
  DEMO-SOP-答辩全流程.md      ← 本文件
  DEMO-SOP-问数.md            ← 问数逐步

docs/course/index.html        ← 浏览器导览(含架构治理课)

docs/项目框架设计/演示SOP-风控模块.md
docs/frontend/FRONTEND-HANDOFF.md  §8 四角色验收

维护: 改 Demo 动线或 pytest 基线时,同步更新本文件 §1.3、答辩知识点清单.md §七/§八/§十、jinrong-overview 模块 8。

产品缺口(固定口径): 代理人 Agent 未完整接入 — 顾问 Chat 仅为 agent_service 骨架,T-20 / A-01~A-05 未做;答辩主 Demo 不含顾问 Chat 深演示。