Commit 2bdf307cbe14fb9fd997f78a32b0875456ef9594
1 parent
57028160
Add viw_kg_domain: L1 business-domain map for the system prompt
Roll L2 flow up to domain->domain adjacency (11 domains) with anchor forms, form/tool counts, and the matching AI-agent scene. This is the coarse L1 tier meant to live in the agent system prompt for routing; L2/L3 stay as on-demand tools. Domains align to ai_agent's 8 business 智能体 (+ 基础资料/设备/其他 -> ERP代理人).
Showing
2 changed files
with
60 additions
and
7 deletions
sql/README.md
| @@ -14,14 +14,20 @@ mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas | @@ -14,14 +14,20 @@ mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas | ||
| 14 | 14 | ||
| 15 | ## 三个粒度 | 15 | ## 三个粒度 |
| 16 | 16 | ||
| 17 | -| 层 | 关注 | 视图 | 规模 | | ||
| 18 | -|-----|--------------------|-----------------------------------------|------| | ||
| 19 | -| L1 | 业务域(路由) | `viw_kg_form.sDomain` | ~11 域 | | ||
| 20 | -| L2 ⭐| 单据流转(最有用) | `viw_kg_edge_flow` | 411 边 | | ||
| 21 | -| L3 | 实体字段 ER(NL2SQL)| `viw_kg_edge_ref` + `viw_kg_field_dict` | 1597 FK / 38k 术语 | | 17 | +| 层 | 关注 | 视图 | 规模 | 消费方式 | |
| 18 | +|-----|--------------------|-----------------------------------------|------|----------| | ||
| 19 | +| L1 | 业务域(路由) | `viw_kg_domain` | 11 域 | ⇒ 常驻 system prompt | | ||
| 20 | +| L2 ⭐| 单据流转(最有用) | `viw_kg_edge_flow` / `viw_kg_form_neighbors` | 411 边 | ⇒ tool 按需查 | | ||
| 21 | +| L3 | 实体字段 ER(NL2SQL)| `viw_kg_edge_ref` + `viw_kg_field_dict` | 1597 FK / 38k 术语 | ⇒ tool 按需查 | | ||
| 22 | + | ||
| 23 | +**消费分层(agentic RAG):** L1 体量小且永远相关 → 直接进 system prompt 做路由地图; | ||
| 24 | +L2/L3 大且稀疏 → 做成 agent tools(`DynamicExeDbService.findSql` 薄封装)按需索引, | ||
| 25 | +L3 工具必须"按词查询"而非整表 dump。L1 的 11 个域对齐 `ai_agent` 的 8 个业务智能体 | ||
| 26 | +(+基础资料/设备/其他→ERP代理人),可直接驱动场景路由。 | ||
| 22 | 27 | ||
| 23 | ## 视图/脚本一览(按依赖顺序) | 28 | ## 视图/脚本一览(按依赖顺序) |
| 24 | 29 | ||
| 30 | +0. **`viw_kg_domain`** — L1 业务域地图(11 行):域→域流转上卷 + 锚点单据 + 对应智能体,渲染进 system prompt。 | ||
| 25 | 1. **`viw_ai_useful_forms`** — 1748 张有用业务表单目录(此前已建)。节点主键 `sFormId`,菜单 `sModuleId`。 | 31 | 1. **`viw_ai_useful_forms`** — 1748 张有用业务表单目录(此前已建)。节点主键 `sFormId`,菜单 `sModuleId`。 |
| 26 | 2. **`viw_kg_edge_flow`** — 单据流转边:源菜单 --生成--> 目标菜单。 | 32 | 2. **`viw_kg_edge_flow`** — 单据流转边:源菜单 --生成--> 目标菜单。 |
| 27 | 目标由 `gdsconfigformslave` 上 `BtnCopyTo.<Action>` 行的 **`sActiveId`** 解析(照搬存储过程 | 33 | 目标由 `gdsconfigformslave` 上 `BtnCopyTo.<Action>` 行的 **`sActiveId`** 解析(照搬存储过程 |
| @@ -42,8 +48,8 @@ mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas | @@ -42,8 +48,8 @@ mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas | ||
| 42 | # 注意:zsh 不对未加引号的变量做分词,用数组 | 48 | # 注意:zsh 不对未加引号的变量做分词,用数组 |
| 43 | DB=(mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas) | 49 | DB=(mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas) |
| 44 | for v in viw_ai_useful_forms viw_kg_edge_flow viw_kg_form viw_kg_edge_ref \ | 50 | for v in viw_ai_useful_forms viw_kg_edge_flow viw_kg_form viw_kg_edge_ref \ |
| 45 | - viw_kg_form_card viw_kg_field_dict viw_kg_form_neighbors; do | ||
| 46 | - "${DB[@]}" < "$v.sql" | 51 | + viw_kg_form_card viw_kg_field_dict viw_kg_form_neighbors viw_kg_domain; do |
| 52 | + "${DB[@]}" < "$v.sql" # viw_kg_domain 依赖 viw_kg_form + viw_kg_edge_flow,放最后 | ||
| 47 | done | 53 | done |
| 48 | ./export_form_cards.sh form_cards.jsonl # → 1748 行 JSONL | 54 | ./export_form_cards.sh form_cards.jsonl # → 1748 行 JSONL |
| 49 | ``` | 55 | ``` |
sql/viw_kg_domain.sql
0 → 100644
| 1 | +-- ============================================================ | ||
| 2 | +-- 视图:viw_kg_domain —— ERP 知识图谱·业务域 (L1, 路由层, 塞 system prompt 用) | ||
| 3 | +-- 约 11 行,每行一个业务域:规模 + 锚点单据 + 域级流转邻接 + 对应 AI 智能体场景。 | ||
| 4 | +-- 这是 L1 的"全局地图":把 L2 单据流转上卷到 域→域,信息密度最高、最适合常驻提示词。 | ||
| 5 | +-- | ||
| 6 | +-- 域名对齐 ai_agent 的 8 个业务智能体 (销售/采购/生产/报价/品质/发外/库存/财务); | ||
| 7 | +-- 基础资料/设备/其他 无专属智能体 → 归 ERP代理人(通用)。 | ||
| 8 | +-- sDownstreamDomains/sUpstreamDomains = 本域可生成到 / 来源于 的其它域(来自 viw_kg_edge_flow 上卷)。 | ||
| 9 | +-- sAnchorForms = 本域内流转枢纽单据 Top6(按 上下游度数 排序)。 | ||
| 10 | +-- ============================================================ | ||
| 11 | +CREATE OR REPLACE VIEW viw_kg_domain AS | ||
| 12 | +WITH mod_dom AS ( | ||
| 13 | + SELECT sModuleId AS mid, MIN(sDomain) AS dom | ||
| 14 | + FROM viw_kg_form GROUP BY sModuleId | ||
| 15 | +), | ||
| 16 | +dom_flow AS ( | ||
| 17 | + SELECT sd.dom AS src_dom, td.dom AS tgt_dom | ||
| 18 | + FROM viw_kg_edge_flow e | ||
| 19 | + JOIN mod_dom sd ON sd.mid = e.sSrcModuleId | ||
| 20 | + JOIN mod_dom td ON td.mid = e.sTgtModuleId | ||
| 21 | + WHERE e.bSelfLoop = 0 | ||
| 22 | +) | ||
| 23 | +SELECT | ||
| 24 | + f.sDomain, -- 业务域(L1) | ||
| 25 | + CASE f.sDomain | ||
| 26 | + WHEN '销售' THEN '销售智能体' WHEN '采购' THEN '采购智能体' | ||
| 27 | + WHEN '生产' THEN '生产智能体' WHEN '报价' THEN '报价智能体' | ||
| 28 | + WHEN '品质' THEN '品质智能体' WHEN '发外' THEN '发外智能体' | ||
| 29 | + WHEN '库存' THEN '库存智能体' WHEN '财务' THEN '财务智能体' | ||
| 30 | + ELSE 'ERP代理人' | ||
| 31 | + END AS sAiScene, -- 对应智能体场景 | ||
| 32 | + COUNT(*) AS iForms, -- 域内表单数 | ||
| 33 | + SUM(f.bHasFlow) AS iFlowForms, -- 参与流转的表单数 | ||
| 34 | + SUM(f.bAiTool) AS iAiTools, -- 已挂 AI 工具数 | ||
| 35 | + SUBSTRING_INDEX( | ||
| 36 | + GROUP_CONCAT(CASE WHEN f.bHasFlow = 1 THEN f.sFormTitle END | ||
| 37 | + ORDER BY (f.iDownstream + f.iUpstream) DESC SEPARATOR '、'), | ||
| 38 | + '、', 6) AS sAnchorForms, -- 枢纽单据Top6 | ||
| 39 | + (SELECT GROUP_CONCAT(DISTINCT df.tgt_dom ORDER BY df.tgt_dom SEPARATOR ',') | ||
| 40 | + FROM dom_flow df WHERE df.src_dom = f.sDomain AND df.tgt_dom <> f.sDomain) | ||
| 41 | + AS sDownstreamDomains, -- 下游域 | ||
| 42 | + (SELECT GROUP_CONCAT(DISTINCT df.src_dom ORDER BY df.src_dom SEPARATOR ',') | ||
| 43 | + FROM dom_flow df WHERE df.tgt_dom = f.sDomain AND df.src_dom <> f.sDomain) | ||
| 44 | + AS sUpstreamDomains -- 上游域 | ||
| 45 | +FROM viw_kg_form f | ||
| 46 | +GROUP BY f.sDomain | ||
| 47 | +ORDER BY iForms DESC; |