90 lines
3.0 KiB
Markdown
90 lines
3.0 KiB
Markdown
# Milvus · 共享 RAG 记忆(P0)
|
||||
|
|
|
|||
|
|
> **为何需要**:客户财富(C-02/C-03)与代理人助手(A-02/A-04)共用产品规则、业务制度知识库,属于 **跨 Agent 共同数据**,适合 Milvus。
|
|||
|
|
> **为何不存 MySQL**:原文档块大、需语义检索;MySQL 只存 doc 版本索引(可选 P1)。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. P0 Collection 清单(2 个)
|
|||
|
|
|
|||
|
|
| Collection | 共用 Agent | 来源文档 | 场景 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `kb_product_rules` | 客户财富、代理人助手 | 基金产品手册、交易规则 | C-02, C-03, A-02 |
|
|||
|
|
| `kb_business_ops` | 代理人助手(客户只读 subset 可选) | 内部业务制度、办理流程 | A-04 |
|
|||
|
|
|
|||
|
|
**P1 再加**:`kb_compliance_scripts`(A-03 话术规范模板)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Collection:`kb_product_rules`
|
|||
|
|
|
|||
|
|
### 2.1 字段
|
|||
|
|
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `id` | VARCHAR(64) PK | `{product_id}_{chunk_no}` |
|
|||
|
|
| `embedding` | FLOAT_VECTOR(dim) | 文本向量,dim 与模型一致 |
|
|||
|
|
| `product_id` | VARCHAR(64) | 产品代码 |
|
|||
|
|
| `product_name` | VARCHAR(256) | 产品名称 |
|
|||
|
|
| `doc_type` | VARCHAR(32) | `prospectus` `fee` `rule` `risk` |
|
|||
|
|
| `risk_level` | CHAR(2) | R1~R5 |
|
|||
|
|
| `source_doc_id` | VARCHAR(64) | 官方文档 ID,溯源必填 |
|
|||
|
|
| `source_version` | VARCHAR(32) | 文档版本号 |
|
|||
|
|
| `effective_date` | DATE | 生效日 |
|
|||
|
|
| `chunk_text` | VARCHAR(8192) | 原文块(或存对象存储 URI) |
|
|||
|
|
| `chunk_no` | INT | 块序号 |
|
|||
|
|
|
|||
|
|
### 2.2 索引
|
|||
|
|
|
|||
|
|
- 向量:`IVF_FLAT` 或 `HNSW`(按数据量选型)
|
|||
|
|
- 标量过滤:`product_id`, `doc_type`, `effective_date`
|
|||
|
|
|
|||
|
|
### 2.3 检索约束(合规)
|
|||
|
|
|
|||
|
|
- 回答 **必须** 返回 `source_doc_id` + `source_version` 用于溯源(A-02、C-02)
|
|||
|
|
- 禁止跨 `effective_date` 过期文档(Agent 层过滤 `effective_date <= today`)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Collection:`kb_business_ops`
|
|||
|
|
|
|||
|
|
### 3.1 字段
|
|||
|
|
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `id` | VARCHAR(64) PK | `{process_code}_{chunk_no}` |
|
|||
|
|
| `embedding` | FLOAT_VECTOR(dim) | |
|
|||
|
|
| `process_code` | VARCHAR(64) | 如 `SUBSCRIBE` `REDEEM` `CONVERT` `AIP` |
|
|||
|
|
| `process_name` | VARCHAR(128) | 定投设置、赎回到账等 |
|
|||
|
|
| `source_doc_id` | VARCHAR(64) | 内部制度文档 ID |
|
|||
|
|
| `source_version` | VARCHAR(32) | |
|
|||
|
|
| `chunk_text` | VARCHAR(8192) | |
|
|||
|
|
| `chunk_no` | INT | |
|
|||
|
|
|
|||
|
|
### 3.2 使用边界
|
|||
|
|
|
|||
|
|
- **仅代理人 Agent** 默认检索;客户 Agent 不直接暴露内部流程全文(若客户问办理流程,走 C 端简化 FAQ subset,P1 再拆 collection)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. 写入与更新
|
|||
|
|
|
|||
|
|
| 操作 | 负责方 | 频率 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 文档切块 + 向量化 | 平台 / 运营 | 产品制度变更时 |
|
|||
|
|
| 版本切换 | 产品运营 A-09 | 抽检通过后 `source_version` 切换 |
|
|||
|
|
| Agent 读取 | 客户 / 代理人 RAG Tool | 实时检索 |
|
|||
|
|
|
|||
|
|
**不写回 Milvus**:会话内容、客户画像、预警 — 这些走 MySQL。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. 不使用的场景(避免误用 Milvus)
|
|||
|
|
|
|||
|
|
| 数据 | 应放 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 客户持仓/流水 | Core 只读 API |
|
|||
|
|
| 用户画像 L1/L2/L3 | MySQL |
|
|||
|
|
| 预警单 | MySQL `risk_alert` |
|
|||
|
|
| 会话历史 | MySQL + Redis 窗口 |
|