Commit 11f33a4d024a7dd2667fe190ebf386390f6d1a7c
1 parent
03fa2ceb
Add sql/README: document the ERP forms knowledge graph (L1/L2/L3 + GraphRAG)
Showing
1 changed file
with
60 additions
and
0 deletions
sql/README.md
0 → 100644
| 1 | +# ERP 表单知识图谱 (multi-granularity KG + RAG) | ||
| 2 | + | ||
| 3 | +把 xlyweberp 低代码平台的 **1748 张业务表单** 结构化成多粒度知识图谱,打包成 | ||
| 4 | +LangChain4j 的 GraphRAG 语料。所有视图直接建在平台自带的配置表上(配置表本身就是一张潜在 KG, | ||
| 5 | +这里只是把边**物化**出来)。 | ||
| 6 | + | ||
| 7 | +## 数据库连接 | ||
| 8 | + | ||
| 9 | +本地 `~/.my.cnf` 默认指向不存在的库 `xlyweberp_saas_ai`,**必须** 带 `--no-defaults`: | ||
| 10 | + | ||
| 11 | +```sh | ||
| 12 | +mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas | ||
| 13 | +``` | ||
| 14 | + | ||
| 15 | +## 三个粒度 | ||
| 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 术语 | | ||
| 22 | + | ||
| 23 | +## 视图/脚本一览(按依赖顺序) | ||
| 24 | + | ||
| 25 | +1. **`viw_ai_useful_forms`** — 1748 张有用业务表单目录(此前已建)。节点主键 `sFormId`,菜单 `sModuleId`。 | ||
| 26 | +2. **`viw_kg_edge_flow`** — 单据流转边:源菜单 --生成--> 目标菜单。 | ||
| 27 | + 目标由 `gdsconfigformslave` 上 `BtnCopyTo.<Action>` 行的 **`sActiveId`** 解析(照搬存储过程 | ||
| 28 | + `Sp_Ai_AddCommonAfterNew`;`.ActXxx` 只是标签)。411 边 / 51 自环 / 404 端点命中目录。 | ||
| 29 | + 完整覆盖 报价→订单→送货→对账→发票→收款 与 采购申请→订单→入库→对账→发票→付款。 | ||
| 30 | +3. **`viw_kg_form`** — 表单节点富化(业务域 / 数据源 / 上下游单据数 / AI工具挂载)。1748 行。 | ||
| 31 | +4. **`viw_kg_edge_ref`** — 外键/引用边:源表.字段 --引用--> 目标表.主键。 | ||
| 32 | + 解析 `gdsconfigformslave.sRelation`(逗号分隔多跳 `字段&关联表&主键&显示字段`)的第一跳。 | ||
| 33 | + 1597 边;目标多为 `ele*`/`sis*` 主数据字典。`bTgtMaster` 标记引用主数据。 | ||
| 34 | +5. **`viw_kg_form_card`** — 每表单一段可向量化的结构化卡片文本 `sCard`(合并节点+上下游+字段中文名)。 | ||
| 35 | +6. **`viw_kg_field_dict`** — 中文名→字段→表 术语字典(38342 条),带外键 join 提示,供 NL2SQL 接地。 | ||
| 36 | +7. **`export_form_cards.sh`** — 导出 1748 张卡片为 JSONL(供灌向量库)。生成文件 gitignore,按需重跑。 | ||
| 37 | + | ||
| 38 | +## 一键重建 | ||
| 39 | + | ||
| 40 | +```sh | ||
| 41 | +DB="mysql --no-defaults -h127.0.0.1 -P33307 -uroot -plocal xlyweberp_saas" | ||
| 42 | +for v in viw_ai_useful_forms viw_kg_edge_flow viw_kg_form viw_kg_edge_ref viw_kg_form_card viw_kg_field_dict; do | ||
| 43 | + $DB < "$v.sql" | ||
| 44 | +done | ||
| 45 | +./export_form_cards.sh form_cards.jsonl # → 1748 行 JSONL | ||
| 46 | +``` | ||
| 47 | + | ||
| 48 | +> 依赖顺序:edge_flow → form → (edge_ref) → form_card / field_dict。edge_ref 独立于 form。 | ||
| 49 | + | ||
| 50 | +## GraphRAG 用法(L2/L3 扩展) | ||
| 51 | + | ||
| 52 | +1. 向量召回:把用户问题 embed,在 Milvus 里对 `form_cards.jsonl` 的 `text` 找 top-k 表单卡片。 | ||
| 53 | +2. 图扩展:对召回的表单,沿 `viw_kg_edge_flow`(上下游单据)+ `viw_kg_edge_ref`(关联主数据表) | ||
| 54 | + 拉一跳邻居,拼成子图上下文。 | ||
| 55 | +3. 术语接地:用 `viw_kg_field_dict` 把问题里的中文词映射到真实列 + join 目标,喂给 NL2SQL。 | ||
| 56 | +4. 取数:命中表单后统一走 `POST /business/getBusinessDataByFormcustomId/{sFormId}?sModelsId={sModuleId}`。 | ||
| 57 | + | ||
| 58 | +## 校验基线 | ||
| 59 | + | ||
| 60 | +以 `ai_tool`(62 张 form-backed 工具,`sSrcFormId`=菜单id)为 ground truth 校验召回。 |