Files
group_fqcd_jr/开发文档/D1.2-南方基金业务事实基座与虚构数据规范-2026-09-17.md
张胜宇 bc61d5c579 docs: 入库权威文档目录(客服agent/ 24 份 + 开发文档/ 50 份,替换旧命名的过期副本)
## 为什么做这一步

权威文档 74 份此前**只在本机**,评审者 clone 分支后看不到任何设计文档;而仓库里那两份同名目录
是 **2026-09-16 之前的过期副本,连文件名都是旧的**(无体系编号)。本次按「**权威覆盖过期**」入库。

## 入库内容

| 目录 | 文件数 | 体积 | 说明 |
|---|---|---|---|
| `客服agent/` | 24 | 0.77 MB | `D2.1`~`D2.6` 对外交付四件套 + 演示脚本/答辩报告 + `_build` 构建工具 |
| `开发文档/` | 50 | 2.16 MB | `D1.x` 索引与决策、`D3.x` 方案、`D4.x` 清除与重构留痕、`D5.x` 业务流程、`D6.x` 业务事实基座、`D7.x` 交付物、`D8.x` 规范 |

**旧的过期副本整体移除**(`客服Agent执行Todolist.md` → `D2.1-客服Agent执行Todolist.md` 之类
的改名 + 新增 `D2.5`/`D2.6`),入库后目录内容与权威副本**逐文件一致(零差异,已复核)**。

## 入库前的安全扫描(必须留痕)

- 扫描规则:`sk-` 类密钥 / `Bearer` 长串 / `password=`、`api_key=` 赋值 / 会话中出现过的两把明文 key 片段。
- 结论:**真实密钥只出现在 `.env`**(已被 `.gitignore` 命中,未入库);`.env.example` 与
  `config/risk.env.example` 只有**空占位**。
- 文档内唯一命中是 `D3.1` 里一处**截断的示例 JWT**(`Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`),
  末尾带省略号,是接口文档的示意值,**不是可用凭据**。
2026-09-20 15:03:15 +08:00

31 KiB
Raw Permalink Blame History

南方基金业务事实基座与虚构数据规范

体系编号:D1.2 · 域:一、治理与索引 · 编号体系见 D1.1 §4.0

编号:CS-CONTENT-2026-015 | 版本:v1.1 | 日期:2026-09-17 定位:知识源与 RAG 语料改写的唯一口径来源。凡与本文冲突的知识源表述,以本文为准。 性质:内部资料。「〔真实〕」= 公开可核实的工商与披露事实;「〔虚构〕」= 教学实训用虚构数据;「〔口径〕」= 本项目自定的内部约定。

v1.1 相对 v1.0 的三处修正(均由二次取证发现,见 §0.2):

  1. v1.0 §0 把 公司信息\南方基金-* 判为「✅ 已正确」是错的 —— 它只对了品牌名,身份是「代销机构」,与品牌名自相矛盾。
  2. 新增第 4 个品牌表面:app/static/portal/** 前端 24 个文件使用 南方财富,这是评审唯一会用眼睛看到的品牌面,v1.0 未收录。
  3. v1.0 §4.2 的虚构量级全部偏低(AUM 4,860 亿 vs 真实公开口径约 1.43 万亿),违反「写错比写虚构更致命」自身原则 → 改为 §4.2 三分法。

0. 为什么要有这份文档

0.1 全项目并存 4 套品牌 + 1 个身份矛盾

# 位置 品牌 身份设定 判定
1 开发文档\公司信息\南方基金-*(3 份) 南方基金 ❌ 代销机构(「不自行发行公募基金」「合作基金公司 126 家」) 🔴 品牌对、身份错
2 开发文档\公司业务\、用户研判规则\、金融政策\(7 份) XX科技 ❌ 持牌综合财富管理机构(信贷 + 代销 + 保险经纪) 🔴 品牌、身份双错
3 group_fqcd_jr\knowledge\**(真正入库的语料,6 份) 南方科技 ❌ 同上(代销机构) 🔴 品牌、身份双错
4 group_fqcd_jr\app\static\portal\**(前端,24 份) 南方财富 —(仅作图面品牌) 🔴 品牌错(肉眼可见)
5 group_fqcd_jr\app\**、tools\** 业务代码 南方基金 ✅ 基金管理人(fin_product.fund_manager = '南方基金'、hq.py 自有产品白名单) ✅ 真实、可用

0.2 两个比「品牌没统一」严重得多的问题

问题一:D6.1.1-南方基金-企业信息.md 是「代销机构」穿了「基金管理人」的名字。 它写着「公司不自行发行公募基金,所有基金产品均为代销」「合作基金公司 126 家」「营业收入 38.6 亿中手续费及佣金 26.8 亿」「员工 1,268 人、营业网点 56 家」「成立于 2013 年 4 月,杭州滨江」。这些全部是「第三方基金销售机构」的画像,与「南方基金管理股份有限公司」(成立于 1998-03-06、注册于深圳福田、注册资本 3.6172 亿)不是同一类主体。这份文件被当作「已正确的参照物」使用,是最危险的错误源。

问题二:D6.2.2-企业金融服务方案.md 通篇是银行业务。 流动资金贷款 / 固定资产贷款 / 票据贴现 / 供应链金融(应收账款、存货质押、预付款融资)/ 内保外贷 / 结构性存款 / 结售汇。基金管理人依法不得吸收存款、发放贷款、办理票据贴现与结售汇。 只换品牌名会产出「南方基金办理票据贴现」这种一眼假的硬伤。

问题三(v1.1 新增):数据层与知识层已经互相矛盾。 group_fqcd_jr 的业务代码早已按「基金管理人」实现:

  • tools\fetch_live_quotes.py:61、backfill_product_snapshot.py:59、sync_advisor_market_data.py:61 —— WHERE fund_manager = '南方基金'
  • hq.py:89/94/126/220/298 —— 「基金代码不在南方基金白名单内」直接拒绝
  • tools\sync_nav_history.py:16 —— 「fin_product 里有非南方基金的产品(510300 是华泰柏瑞的)」

⇒ 产品主数据里 fund_manager='南方基金' 指的是「由本公司管理的基金」,即自主发行。而知识层却写「本公司不发行公募基金」。两边不可能同时为真,必须有一个改。 本基座裁定:以「公募基金管理人 + 官方直销」为准(与真实主体一致、与代码一致、改动面最小)。

0.3 因此本次的做法

「先立基座 → 再改写内容 → 最后统一品牌面」,而不是全局替换品牌名。


1. 品牌与主体口径

项 取值 来源
平台品牌 = 主体名称 南方基金 〔真实〕
公司全称 南方基金管理股份有限公司 〔真实〕
简称 南方基金 〔真实〕
英文名 China Southern Asset Management Co., Ltd. 〔真实〕
平台定位 本公司公募基金与专户产品的官方直销平台 〔口径〕
对外客服人格 奶龙(沿用,专业 + 适度活泼) 〔口径〕

⚠️ v1.0 曾写「本公司公募基金与专户产品的官方直销平台」但同段又把身份判成代销机构 —— 现将身份唯一确定为「基金管理人」,见 §3。

1.1 已作废的旧口径(全项目禁止再出现)

作废值 曾用于 出现量(实测)
XX科技 / XX科技有限公司 开发文档\公司业务、用户研判规则、金融政策 7 份文件
南方科技 group_fqcd_jr\knowledge\** 6 份文件(_chunks.jsonl 312 行)
南方财富 group_fqcd_jr\app\static\portal\** 前端 + 3 个 py 24 份文件(v1.1 新增)
南方财富管理有限公司 早期 公司信息\ 版本 已清
400-XXX-XXXX / 400-826-9518 / 15936583816 全项目占位与旧值 见 §7.2
nanfangwm.com / nanfangtech.com / xxtech.com 旧域名与邮箱 见 §7.2
「智能财富管家系统」 旧系统名 → 已改「智能服务系统」 见 §7.2
南方基金管理有限公司(少「股份」) promotion.js:29 + 2 个测试 3 处,v1.1 新增

1.2 系统名

用途 名称
平台/系统统称 南方基金·智能服务系统

2. 真实公开事实基座(〔真实〕,可直接用于知识源)

全部来自公开渠道(工商公示、基金业协会、公司官网、基金定期报告),可被评审核实。这些不能写错——写错比写「虚构」更致命。 数据截止:除标注外,采用 2026 年可获取的最新公开口径。

项目 值
公司全称 南方基金管理股份有限公司
统一社会信用代码 91440300279533137K
公司类型 股份有限公司(非上市、国有控股)
成立日期 1998-03-06(经中国证监会批准设立,国内首批规范基金管理公司之一,「老十家」)
设立批准文号 中国证监会证监基字〔1998〕4 号
注册资本 人民币 3.6172 亿元(36,172 万元);2019-07-30 经核准通过员工持股计划 + 股东增资由 3 亿元增至 3.6172 亿元
注册及办公地址 深圳市福田区莲花街道益田路 5999 号基金大厦 32-42 楼(邮编 518048)
法定代表人 / 董事长 周易(2022-05-27 起兼任;同时任华泰证券董事、首席执行官)
总经理 杨小松
客服热线 400-889-8899
公司总机 / 传真 0755-82763888 / 0755-82763889
官网 www.nffund.com
客服邮箱 service@nffund.com
经营范围(许可项目) 基金募集、基金销售、资产管理、中国证监会许可的其他业务(一般经营项目:无)
股权结构 华泰证券 41.16%、深圳市投资控股 27.44%、厦门国际信托 13.72%、兴业证券 9.15%、厦门合泽吉 1.72%、合泽祥 2.24%、合泽益 2.25%、合泽盈 2.32%
分公司 北京、上海、深圳、南京、成都、合肥 6 地
境外子公司 南方东英资产管理有限公司(中国香港)—— 境内基金公司获批成立的第一家境外分支机构
境内子公司 南方资本管理有限公司(深圳前海)

2.0 真实业务资质(〔真实〕,改写「公司持有哪几块牌照」时必须用这一版)

年份 资质 说明
1998 公募基金管理资格 首批规范基金管理公司
2002 全国社保基金投资管理人 首批
2005 企业年金投资管理人 首批
2007 QDII 资格 业内首家
2008 特定客户资产管理(专户)业务资格 首批
2012 保险资金投资管理人 —
2016 基本养老保险基金证券投资管理机构 / 职业年金投资管理业务资格 首批
2019 基金投资顾问业务试点 首批获准
2020 基础设施公募 REITs 业务资格 —

🔴 替换关系:知识源里的「基金销售牌照 + 保险经纪牌照 + 证券投资咨询资格 + 私募基金管理人登记 + QDII」五项,应整体替换为上表的基金管理人资质序列。「保险经纪」尤其必须删除(详见 §3.2)。

2.1 真实产品样例(〔真实〕,用于产品手册的锚点产品)

产品 代码 已核实事实 复核状态
南方中证 500ETF(场内 ETF) 510500 2013 年成立;跟踪中证 500 指数;基金经理罗文杰、龚涛;管理费 0.15%/年、托管费 0.05%/年;托管行中国农业银行;风险等级 R3 代码✅ / 经理✅ / 最新规模待复核
南方中证 500ETF 联接(LOF)A 160119 ETF 联接基金;基金经理罗文杰;管理费 0.15%/年 代码✅ / 规模与费率待复核
南方安康混合 A 004517 混合型,中低风险(R2);基金经理龙一鸣、柯达元 代码✅ / 风险等级✅
南方科技创新混合 A 007340 混合型;曾获 2021 年度金基金·责任投资(ESG)基金奖 代码✅
南方沪深 300ETF 联接 A 202015 ETF 联接基金 代码✅

⚠️ 使用纪律(三条硬约束): ① 真实产品的代码必须与公开披露一致,不得张冠李戴; ② 不得为真实产品编造收益率、规模、基金经理或评级 —— 凡真实产品,只写已核实字段,未核实的宁可不写; ③ 需要承载「收益率 / 规模 / 回撤 / 费率演示」时,一律改用虚构产品(§4.3),并在字段旁标「示例代码」。 🔴 v1.0 曾把「510500 规模 380.87 亿元(2026-06-30)」写成已核实值,v1.1 降级为「待复核」 —— 未独立核实的动态数字不得进基座。


3. 身份边界:基金管理人能做什么、不能做什么

这是本次改写最核心的一节。知识源里凡越界业务,一律删除或改为「本公司不涉及」。

3.1 ✅ 本公司可开展的(改写后知识源只允许写这些)

业务类别 具体内容 监管依据
公募基金 募集、官方直销、投资管理、份额登记 《证券投资基金法》《公开募集证券投资基金运作管理办法》
专户业务 特定客户资产管理(一对一 / 一对多);合格投资者 + 面签 + 冷静期 《基金管理公司特定客户资产管理业务试点办法》
养老金投资管理 社保基金、基本养老保险基金、企业年金、职业年金 §2.0 资质
基金投资顾问 基金投资组合策略建议与受托管理 《公开募集证券投资基金投资顾问业务管理规定》(首批试点)
QDII / 境外投资 通过南方东英(中国香港)开展跨境业务 §2.0 资质(业内首家)
机构直销 面向银行自营 / 理财子 / 保险 / 央国企 / 财务公司 / 信托 / 上市公司等机构客户的直销与配置服务 基金销售业务资格
上市基金 ETF / LOF 的募集与上市 交易所相关规则

3.2 ❌ 本公司不得开展(知识源必须明确划出边界)

越界业务 处理
吸收存款 / 大额存单 / 结构性存款 ❌ 无资格 → 删除
发放贷款(流贷、固贷) ❌ 无资格 → 删除
票据贴现 ❌ 无资格 → 删除
供应链金融(应收账款 / 存货质押 / 预付款融资) ❌ 无资格 → 删除
内保外贷 / 外保内贷 ❌ 无资格 → 删除
银行理财子公司产品代销 ❌ 本公司发行自家基金,不做第三方代销 → 删除
保险产品(年金险、增额终身寿险)与保险经纪服务 ❌ 无保险中介资格 → 删除(南方基金-* 里的保险经纪牌照同步删)
家族信托设立(作为受托人) ❌ 非信托公司 → 改「咨询 + 对接持牌信托公司」
跨境结算 / 结售汇 / 外汇期权 ❌ 非银行 → 删除
第三方基金代销(「代销 126 家 / 8,600 只」) ❌ 与官方直销定位冲突 → 改「只销售本公司管理的产品」
券商资管计划 / 私募股权基金代销 ❌ 越界 → 删除

3.3 改写映射表(旧业务 → 新业务)

旧章节(越界) 新章节(合规) 保留的合理内核
企业信贷服务 机构直销与资金管理方案 客户分层、准入条件、方案设计的结构
供应链金融 ETF 与指数化机构配置 「围绕客户现金流做方案」的思路
企业理财(对公存款 / 理财) 机构定制专户 期限、风险等级、起投门槛的表格结构
现金管理服务 机构资金流动性管理(货币基金 + 短债基金组合) 资金归集 / 划转的业务流程描述
跨境金融服务 跨境投资与 QDII / 香港子公司业务 币种、结算周期的字段结构
银行理财产品(第二章) 专户与特定客户资产管理 封闭期 / 业绩比较基准 / 费率字段结构
保险产品(第三章) 本公司不涉及的产品与服务(边界声明) —
「代销 126 家基金公司」 「本公司管理公募基金 XXX 只」 产品分类与筛选维度的结构
五项代销类牌照 §2.0 基金管理人资质序列 资质「按获批年份列举」的表格结构
家族信托(受托人视角) 传承与信托对接咨询 分层门槛、需求诊断的流程结构

4. 数据口径规范(v1.1 修订为三分法)

4.1 三条总原则

  1. 真实公开事实用真值(§2、§2.0、§2.1);动态经营数据用「真实公开口径 + 数据截止日」;只有演示性数据才虚构。
  2. 虚构≠随便编:量级、结构、口径须符合公募基金行业实际。
  3. 每份文档页脚统一标注:

    本文件为教学实训用虚构资料;公司名称、工商登记信息与公开披露业务资质取自公开渠道,产品业绩、规模、费率、人员名单与客户数据均为虚构,不构成任何投资建议。

4.2 三分法(取代 v1.0 §4.2 的虚构量级表)

类别 内容 口径 理由
A 类:工商与公开披露事实 全称、信用代码、成立日、注册资本、地址、法人、总经理、股东结构、经营范围、资质序列、热线、官网、分公司与子公司 必须真值(§2 / §2.0) 公开可查;写错 = 事实错误,比虚构更致命
B 类:公司级经营规模 AUM、公募产品数、基金经理人数、员工数、客户数、累计分红 用真实公开口径 + 标注截止日;若需简化,取该口径的同一量级值并标注 公开可得;写成 1/3 会显得作者不了解本公司
C 类:演示性数据 单只产品的收益率 / 回撤 / 规模 / 费率、虚构产品名称与代码、基金经理姓名、客户画像与持仓、内部制度阈值、演示账号 一律虚构(§4.3) 不对外披露,且是系统演示所必需

B 类参考量级(〔真实〕公开口径,供改写时对齐):

指标 公开口径值 来源与截止
母公司管理资产规模 约 1.43 万亿元 天天基金公司页(2026 可获取最新)
公募基金数量 835 只 同上
基金经理人数 106 人 同上
员工人数 1,109 人(博士 34 / 硕士 920 / 本科 147 / 其他 8) 基金定期报告(2026-06)
客户数量 超过 1.7 亿 公司公开口径(2022-03 披露)
累计向客户分红 超过 1,500 亿元 同上
分公司 6 地 公司官网

🔴 改写时的取值规则:B 类数字不必逐字照抄,但必须落在公开口径的同一量级(如 AUM 写「超过 1.4 万亿元」),并统一标注「数据截止 2026 年 6 月 30 日」。禁止再出现 v1.0 那种「4,860 亿 / 780 人 / 218 只」的缩水值。 ⚠️ 不写「营业网点 XX 家」:基金公司以直销 + 电商为主,没有银行式网点。线下触点统一定为 6 个客户服务中心(北京、上海、广州、深圳、成都、杭州)〔虚构〕,并明确「与 §2 的 6 家分公司不是同一概念」。

4.3 C 类虚构规则

字段 规则
产品名称 「南方 + 主题/策略」结构,如 南方稳健增利债券A、南方量化优选混合〔虚构〕
产品代码 6 位数字;不得与真实代码碰撞(已核实真实代码见 §2.1;港/深/沪 ETF 代码段亦须避开)。虚构代码统一取 9xxxxx 段并标「示例代码」
收益率 货币基金七日年化 1.5%—2.3%;纯债近一年 3.0%—5.0%;混合型近一年 −5%—+15%;股票型近一年 −20%—+30%;QDII 另标「人民币计价」
最大回撤 纯债 ≤ 2%;混合 8%—16%;股票 18%—30%
夏普比率 纯债 1.2—2.0;混合 0.6—1.1;股票 0.4—0.9
基金规模 单只 5 亿—500 亿元;ETF 可至千亿
费率 管理费:货币 0.15%—0.30% / 纯债 0.30%—0.70% / 混合 1.00%—1.50% / 股票 1.20%—1.50% / ETF 0.15%—0.50% / QDII 1.20%—1.80%;托管费 0.05%—0.25%
基金经理姓名 一律虚构。真实在任基金经理姓名(罗文杰、龚涛、崔蕾、龙一鸣、柯达元等)仅可出现在 §2.1 真实产品参数中,不得作为虚构产品的经理

4.4 适当性映射(以需求文档 §1.6.1 为准,不得改)

客户风险承受能力 可购买风险等级
C1 保守型 R1—R2
C2 稳健型 R1—R3
C3 平衡型 R1—R4
C4 进取型 R1—R5
C5 激进型 R1—R5(全部)

🔒 权威来源:客服agent\D2.2-客服Agent需求文档.html §1.6.1「适当性红线」矩阵(_build\_body_requirements.html:272-280)—— C1 → R1 ✅ R2 ✅ R3/R4/R5 ❌;C2 → R1/R2/R3 ✅;C3 → R1—R4 ✅;C4/C5 → 全部 ✅。 本表即该矩阵的文字化,任何文档与代码均以此为准。

🔴 v1.1 修正:v1.0 §4.4 的表格把 C1 写成「R1」、C2 写成「R1—R2」,整表比权威矩阵少一档(该表是裁决前的旧版本,同行下方的裁决注记又写「C1 可买 R1—R2」,表与注记自相矛盾)。现已按需求文档 §1.6.1 全表更正。

⚠️ 注意内部不一致(改写时以本表为准):

  • ✅ D6.1.2-南方基金-高频问答对.md Q19 写「C1 可购买 R1—R2 …… C4 可购买 R1—R5」→ 与本表一致,不要改;
  • ❌ D6.1.4-公司新人指南.md §5.2 写「C1 → 只能购买 R1」→ 须改;
  • ❌ D6.4.3-用户信息数据示例.md 客户C、公司业务\用户测试数据\D6.5.2-客户B-普通投资者.md 按「C1 只能 R1」叙述 → 须改。

5. 受众档位规则(visibility)

知识源每条内容必须能判定档位。唯一判据 = 答案是否含「具体数值型产品要素」。

档位 含义 典型内容 可见对象
public 公开信息 公司概况、概念解释、交易时限、C—R 匹配规则 访客 + 客户
registered 仅登录客户 含具体数值型产品要素:费率、起投金额、收益率区间、产品规模、门槛金额 仅登录客户
internal 不入库 风控阈值、客户个人信息、内部制度 任何人(不入 RAG)

三类易错边界(必须保持 public):概念解释(R 等级定义、业绩比较基准、七日年化)、交易时限(申购确认 T+1、赎回到账 T+N)、C—R 匹配规则。

当前核查值:公司信息\D6.1.2-南方基金-高频问答对.md 已按此重划 public 54 条 / registered 10 条(合计 64 条;registered = Q17/20/21/27/28/29/30/33/47/53)。改写前(V1.0)为 55 / 9,两版成员不同(V1.0 含 Q15、不含 Q47/Q53),勿再引用该旧值。该文件的「内容」已按 §0.2 改写完成,档位口径与 D2.2 / D2.4 / D3.1 / D3.2 / D1.4 §3.6 一致。


6. 字段结构与业务流程的硬约束

6.1 产品类文档必备字段

公募基金须含:产品代码 / 基金类型 / 风险等级 / 起投金额 / 基金经理 / 基金规模 / 成立日期 / 业绩表现 / 管理费 / 托管费 / 申购费率 / 赎回费率(按持有期分档)/ 投资策略 / 适合人群(对应 C 等级)。

专户产品须含:资产管理人 / 资产托管人 / 起始规模 / 存续期限 / 开放频率 / 业绩报酬计提方式 / 风险等级 / 合格投资者条件 / 费率。

6.2 业务流程必须闭环

流程 必须体现的环节
基金申购 客户适当性校验 → 风险揭示书签署 → 提交申请 → T+1 确认份额 → 可查询
基金赎回 提交申请 → T+N 确认 → 资金到账(货币 T+1、普通 T+1T+3、QDII T+7T+10)
专户申购 合格投资者认定 → 面签 → 合同签署 → 冷静期 → 成立
投诉处理 受理 → 分级 → 处置 → 反馈 → 回访 → 归档(须与 MVP「发工单」能力对齐)

6.3 与代码侧的一致性锚点(改写时不要改这些值)

常量 取值 代码侧位置
客服热线 400-889-8899 app\service\agent\governance.py 热线常量(待改,见 §7.2 / D-4)
官网 nffund.com promotion.js(待改)
人工客服服务时间 每日 7:00—22:00 服务时间本身不变
品牌白名单(入库门禁) 南方基金 + nffund.com 🔴 tools\build_knowledge_chunks.py —— 该门禁当前并不存在(见 §7.2 G-01)
产品归属字段 fin_product.fund_manager = '南方基金' ✅ 已是「基金管理人」口径,不要改
embedding 维度 1024 通义千问 text-embedding-v3

7. 改写执行清单(本次范围与状态)

7.1 知识源(15 份,v1.1 由 13 份扩为 15 份)

# 文件 品牌 身份 主要病灶 状态
1 开发文档\公司业务\D6.2.1-个人理财产品手册.md 待改 ❌ 代销 第二章银行理财整章、第三章保险整章、第五章「财富中心」 本次改写
2 开发文档\公司业务\D6.2.2-企业金融服务方案.md 待改 ❌ 信贷 全篇 6 章中 5 章越界;21 处品牌残留 本次改写
3 开发文档\公司业务\D6.2.3-高净值客户服务规范.md 待改 ⚠️ 信托受托人 第三章「家族信托服务」;12 处品牌残留 本次改写
4 开发文档\公司信息\D6.1.4-公司新人指南.md 待改 ❌ 三块牌照 + 网点 §1.1 三牌照、§2.1 六大事业部、§3 业务线全景、28 处品牌残留 本次改写
5 开发文档\用户研判规则\D6.4.3-用户信息数据示例.md 1 处 ⚠️ 银行理财 / 保险 / 加密 客户C、客户D、客户E 的产品口径;C1 风险等级口径 本次改写
6 开发文档\金融政策\D6.3.1-理财产品销售管理办法.md — ⚠️ 银行业监管依据 §1 依据含《银行业监督管理法》《商业银行理财业务监督管理办法》;1 处占位热线 本次改写
7 开发文档\公司业务\用户测试数据\D6.5.2-客户B-普通投资者.md — ⚠️ 银行理财为主 金融资产明细全为银行理财 / 存款 / 国债;2 处占位热线 本次修
8 🔴 开发文档\公司信息\D6.1.1-南方基金-企业信息.md ✅ ❌ 代销机构 §1.1 主营、§2 五项牌照、§2.6 合规声明、§3.1 网点、§8 发展历程 本次改写(v1.1 新增)
9 🔴 开发文档\公司信息\D6.1.2-南方基金-高频问答对.md(+ .txt) ✅ ❌ 代销机构 Q05、Q06、Q07、Q15、Q29、Q45、Q46 等;档位需重算 本次改写(v1.1 新增)
10 group_fqcd_jr\knowledge\company\企业信息.md ❌ 南方科技 ×16 ❌ 代销 全文(8 章) 本次改写
11 group_fqcd_jr\knowledge\faq\高频问答对.txt ❌ ×18 ❌ 代销 Q1-Q11、Q20、Q30、Q32、Q35、Q36 本次改写
12 group_fqcd_jr\knowledge\product\D6.2.1-个人理财产品手册.md ❌ ×9 ❌ 代销 同 #1 本次改写
13 group_fqcd_jr\knowledge\product\D6.2.3-高净值客户服务规范.md ❌ ×12 ⚠️ 信托受托人 同 #3 本次改写
14 group_fqcd_jr\knowledge\policy\D6.3.1-理财产品销售管理办法.md — ⚠️ 银行依据 同 #6 本次改写
15 group_fqcd_jr\knowledge\_chunks.jsonl ❌ ×312 行 — 派生件 不手改;须重跑灌库(前置见 §7.2 G-01)

⚠️ #10—#14 与 #1—#6 的「同源不同版」:knowledge\** 与 开发文档\公司业务\** 的 5 组文件内容各自独立(md5 不同、南方科技 与 XX科技 各写一套)。必须分别改写,不能只改一边。 方向是:以「开发文档」侧为母本改写 → 再同步进 knowledge\。

7.2 代码与前端表面(v1.1 新增,本次只出方案、不动代码)

ID 表面 文件数 内容 为什么必须处理
G-01 tools\build_knowledge_chunks.py 1 🔴 「四查门禁」当前并不存在:文件中只有 assert_no_duplicate_contents,没有占位符检查、没有品牌白名单、没有禁止类目、没有 visibility 缺省拒绝 D3.4-客服Agent重构Todolist.md B-01 与 构造报告 把这个门禁当作已实现来引用。不补上,重跑灌库会把 南方科技 / 400-XXX-XXXX 直接灌进去而无声通过
G-02 前端品牌面 24 南方财富 —— 18 个 index.html 的 <title> + 导航栏品牌名(app-shell.js:64 <strong>南方财富</strong>)+ brandmark.svg 的 aria-label + products.js / product-detail.js 的 document.title 🔴 评审唯一会用眼睛看到的品牌。文档改得再干净,打开页面还是「南方财富」= 前功尽弃
G-03 app\service\agent\governance.py:47 1 CUSTOMER_SERVICE_HOTLINE = "15936583816"(手机号,非 400- 号;脱敏白名单靠它放行) 改成 400-889-8899 后,脱敏正则 1[3-9]\d{9} 不再匹配 400- 号 → 该白名单失去作用但不会报错(须同步把脱敏逻辑改为「放行热线常量」而非「放行手机号」)
G-04 app\static\portal\employee-operations\promotion\promotion.js:29 3 '南方基金管理有限公司'(少「股份」);另 2 处同名测试内联值 与 §1 全称冲突
G-05 app\service\risk_analysis_service.py:27、app\service\agent\implementations\risk_agent.py:1/192/364、app\static\portal\employee-risk\dashboard\index.html:80/139、app\worker\risk_scan_scheduler.py:173 5 南方财富风控智能助手 等 风控 Agent 的自我标识
G-06 tests\unit\service\test_knowledge_keyword_recall.py:23-24 1 断言里写死 南方科技有限公司 个人理财产品手册 · … 灌库后标题链会变 → 测试必然失败,须同步改断言
G-07 app\service\knowledge_search_service.py:280 1 注释里举例 南方科技有限公司 个人理财产品手册 仅注释,但属品牌残留

推荐顺序:G-01 → G-02 → G-03 → G-04 → G-06(G-01 与 G-02 是「能否把新语料正确灌进去」与「评审看到什么」两条必经之路;G-06 与灌库同批,否则测试红)。

7.3 本次不做(边界声明)

不做 原因
改写 group_fqcd_jr\docs\**(8 份含旧品牌) 属历史记载;文档规整方案 §6.3 已定「由 F-05 回写」
修改 app\static\portal\** 代码 用户明示「暂不编写或提交任何代码」;本次只出方案(G-02)
重跑灌库 / 重建向量 需先完成 G-01(门禁)+ 语料改写,且要求 Worker 停机
删除 advisor_* 21 张表 / alembic 迁移 AGENTS.md 规则 3 禁删表
改动 fin_product.fund_manager = '南方基金' ✅ 该口径本来就对,是本次的立足点

8. 关联文档

  • 开发文档\D1.4-知识源与品牌整改变更说明-2026-09-17.md(CS-CONTENT-2026-016)—— 每处修改的原因与影响范围
  • 开发文档\D1.3-文档规整方案与开发前待决事项-2026-09-17.md(CS-DOC-2026-014)—— D-1~D-5 决策台账
  • 客服agent\D2.4-客服Agent知识库设计方案.html v1.2 —— 三集合三档的工程承载
  • 客服agent\D2.2-客服Agent需求文档.html v2.4 —— §1.10 MVP 必守项(品牌口径即出自此处)
  • 客服agent\D2.1-客服Agent执行Todolist.md v5.2 —— 批次 B(B-01~B-05)是本次内容改写的工程承载

9. 取证记录(v1.1 新增)

结论 取证方式
南方基金-* 身份是代销机构 通读 D6.1.1-南方基金-企业信息.md §1.1 / §2.6 全文
数据层已是基金管理人口径 Grep fund_manager = '南方基金' → tools\ 3 处;hq.py 白名单 6 处
前端 24 文件用 南方财富 Grep -c 南方财富 app/ → 24 文件命中
「四查门禁」不存在 通读 tools\build_knowledge_chunks.py 全文(290 行),仅 1 个守卫
真实工商与规模事实 工商公示 / 基金业协会 / nffund.com/new/about / 基金定期报告 / 天天基金公司页(2026-09-17 检索)
产品代码 nffund.com 产品详情页 + 天天基金(510500 / 160119 / 004517 / 007340 / 202015 全部命中)