润乾 NLQ 实施流程

NLQ 实施总体路径图
1. 确定系统边界
目标:在业务上确定查询范围,划分系统边界,明确角色和权限。
说明:查询范围建议先划定部分业务,后续逐步扩展到更大的业务范围。根据查询范围,明确要查那些表、哪些字段、哪些指标等。
2. 理解整理数据结构
目标:ER 图或等效的数据结构描述,包括表、字段、主键、外键等,分清事实表、维表、主子表。
耗时较长提醒:如果无 BI 系统,要从头开始整理数据结果,时间可能比较长。
说明:NLQ-DQL 需要符合范式要求的数据结构,并在此基础上建立 DQL 元数据层。
ER 图样例:

2.1. 已有 BI 系统的情况
已经建设过 BI 系统,有现成的 ER 图或数据结构说明,可以直接用来理解实体关系。
2.2. 无 BI 系统的情况
没有 BI 系统,现有数据结构中可能存在不符合范式的地方,需要加以调整,必要的时候新建 NLQ 专用的 BI 数据库。
3. 建立 DQL 元数据
目标:使用 DQL 元数据层 IDE,以数据结构为基准,建立 DQL 元数据文件,维护好表、主键、外键、子表,得到 DQL 数据视图。
DQL 数据视图样例:

3.1. 维护元数据文件
从数据库中导入需要的表、字段。根据 ER 图或者表结构说明,按照下面的顺序维护好元数据:
1. 改表名、定主键
2. 检查系统自动生成的时间日期假表是否满足要求
3. 确定外键(包括物理与假表的外键)
4. 确定子表
5. 根据需求修改维度名
6. 根据实际需求检查时间日期层函数,并定义新层函数,比如地区、省、市
3.2. 维护视图文件
建立视图文件,实现权限控制。
包括:表可见性、字段可见性。
3.3. 检查元数据正确性
1. 在元数据 IDE 中查看“视图”,检查表、主键、外键、维度等是否正确。

2. 在 IDE 中打开“菜单 - 系统 - 翻译 DQL”,测试典型的 DQL 语句是否能得到正确结果。
发现问题,调整元数据。
4. 梳理 NLQ 查询需求
目标:梳理出 NLQ 查询的需求说明书。
说明:说明书包括要查询的内容,以及对应的中文叫法、同义词:
1. 元数据中的表对应哪些实体。
比如:订单信息、新订单信息、客户信息、雇员信息。
2. 要查询的字段、计算字段、外键表中的字段。
比如:订单编号、金额、运输天数、雇员入职日期。
3. 字段对应的单位、换算方法。
比如:元、角、分。
4. 字段簇和包括的字段。
比如:发货(日期、城市、省份)、上级(姓名、生日、职务)
5. 维度和层。
比如:年月、日、城市、订单、雇员等。
6. 指标(对应的维度)。
包括 SQL 能实现的简单指标、计算方法,比如:平均订单价值。
SQL 难以实现的复杂指标、计算方法,比如:月度股票连涨天数
7. 聚合计算。
比如:求和、求平均。
5. 建立 NLQ 词典
目标:使用汉语查询 IDE,依据需求说明书,建立 NLQ 词典,维护好表、宏字段、维度等以及对应词。
耗时较长提醒:维护字段标识和字段词所需时间与表个数、表中的字段个数相关,需要重点关注。比如 60 字段的表,维护中文标识 6 分钟,维护字段词时间相近。
步骤:
1. 检查新建词典时自动生成的词,按照实际需求修改。
包括:比较词、聚合词、连词、宏词、无效词、非法词、量纲

2. 维护维度
3. 维护表、实体
4. 维护宏字段(包括计算字段)
5. 维护字段簇
6. 维护外键簇
7. 维护实体的关联簇
8. 维护指标
9. 定义维词、常数词
10. 定义实体词
11. 定义字段词
12. 定义簇词、动词
13. 定义外键词
14. 定义指标词
其中,8. 维护指标,包括为复杂指标编写代码:先使用 SPL 集成开发环境编程、调试,再把代码维护到 NLQ 指标中。
正确性检查:
在维护各种词之后,用搜索实验功能检查,验证典型的汉语查询,查看结果明细,特别是 MQL 语句是否正确。

浏览数据,看查询结果是否正确,发现问题,修正词典、元数据。
6. 整理 LLM 提示词
目标:整理出适合的提示词 prompt。
说明:参考演示系统给出的订单查询提示词(Deepseek 版),根据实际业务需求以及 LLM 的版本、特点,整理出使用的提示词。
7. 系统集成、上线运行
目标:NLQ-DQL 与现有系统集成,上线运行,持续优化。
系统集成参见:
DQL 部署:https://d.raqsoft.com.cn:6443/report/dql/dqlserverbs33.html
NLQ 部署:https://d.raqsoft.com.cn:6443/report/nlq/nlqserverdbs.html
