DBD Copilot LLM 规范实践

DBD Copilot 已能通过自然语言显著提升操作效率,但用户往往会用更口语化表达设计需求。而口语的随意性往往导致指令解析不准确。为此,润乾定义了DBD 汉语命令 LLM 规范,确保每一条指令都能精准映射为生成组件、设计布局等具体 API 调用。同时这也为我们提供了熟悉汉语命令的途径。

1,LLM 规范的使用和配置方法

当我们新增命令时,可以看到语句后面这个图标,如果命令是自然语言,我们就需要这个按钮来使用LLM 规范功能,将翻译为规范的汉语命令。

..

..

这个功能是通过LLM 引擎智能识别功能和转换命令的,这就需要配置我们的模型。模型的配置存在 raqsoft/guide/dbd2.0/js/funcs.js 文件中。修改三个核心参数即可启用此功能:

llmUrl:填写所选大模型的 API 接口地址。

requestJSON:配置 LLM 的调用参数,如模型名称等。

keyFile:指定存储 API 密钥的本地文本文件名(如 deepseek.txt),将对应服务的密钥存入该文件即可。

..上图中我们配置了deepseek 的 API 接口地址,配置了模型为 deepseek-chat 模型,以及最大 token 量等参数,并将自己的 APIKey 填入 deepseek.txt 文档,放在 WEB-INF 目录下。

我们用下面的设计例子来探索自然语言创建一个DBD 的做法。

2,生成报表

当需要生成一个报表组件,汉语命令需要用这样的格式书写:

创建报表组件:报表 命名为组件名称 数据集 数据集名称

表设计:左表头 字段名,... 指标 字段名,... 数据项 汇总 汇总方式

而业务人员可能更熟悉这样的描述方式:
用订单数据集生成一个报表组件命名为订单分布汇总

按地区分组各年订单金额前2 名的销售业绩,只看汇总数据

新增命令输入用订单数据集生成一个报表组件命名为订单分布汇总”,点击文本后面的LLM 规范按钮,自然语言通过 LLM 引擎解析成格式规范的汉语命令,追加显示到自然语言的后面

规范结果

报表 数据集 订单数据集 命名为 订单分布汇总

..

..

再点击执行。

..

同样的方式我们规范和执行第二句按地区分组各年订单金额前2 名的销售业绩,只看汇总数据

规范结果

左表头 货主地区 订购年 指标 订单金额 数据项 订单金额 汇总 求和 隐藏明细

..

这个网格式报表就创建出来了。


3,生成统计图

添加一个柱形图,名为大区销售统计图,使用订单数据集

规范结果:

统计图 类型 柱形图 命名为 大区销售统计图 数据集 订单数据集

..

设置大区销售统计图的系列值为订单金额求和,分类为地区,系列为订购年

规范结果:

修改 大区销售统计图 系列值 订单金额 汇总 求和 分类 货主地区 系列 订购年

..

我们也可以对当前选中的统计图进行设计修改,比如
把大区销售统计图的系列值汇总改为计数

规范结果:

修改 大区销售统计图 系列值 订单ID 汇总 计数

..

4,数据过滤

上述统计图中,货主地区华中的数据只有2012 年的,且数据量过小,我们不想在其中显示华中,这时候需要过滤语句来进行筛选。

..

而用汉语命令可以这样写:
不显示地区为华中的数据

规范结果:

过滤 货主地区 不等于 “华中”

..

5,生成指标卡片

指标卡片

添加一个指标卡片:销售同比指标,用销售订单同比数据集做比例计算

规范结果:

指标卡片 命名为 销售同比指标 数据集 销售订单同比数据集 指标卡类型 比例计算

..

添加一个指标卡片:本月销售额,用销售汇总数据集的数据,图标用红色火箭

规范结果:

指标卡片 命名为 本月销售额 数据集 销售汇总数据集 指标卡类型 单值 指标卡图标 “火箭” 图标颜色 红色

..

6,生成按钮组,绑定事件

创建按钮组,命名为toggle 操作,包括按钮显示明细和和关闭明细

规范结果:

事件 命名为 toggle 操作 事件文本 “显示明细,关闭明细”

..

给按钮组toggle 操作增加事件,点击时显示组件订单分布汇总

规范结果:

绑定 toggle 操作 点击时 显示 对象 订单分布汇总

..

给按钮组toggle 操作增加事件,点击时隐藏组件订单分布汇总

规范结果:

绑定 toggle 操作 点击时 隐藏 对象 订单分布汇总

..


7,设计布局

增加上下结构布局,名为销售统计面板,上面是toggle 操作组件,下面是大区销售统计图

规范结果:

上下布局 销售统计面板 toggle 操作 下 大区销售统计图

..

8,预览

最后对我们编辑的DBD 做点调整,就可以预览结果了
选择订单分布汇总组件,选择组件样式,初始化设置为隐藏

..

调整大小和摆放位置

..

点击导航栏的预览查看设计效果:

..

..

9,提示词

LLM 规范执行时,会附带提示词来约束功能识别和命令转换,让AI严格遵守纪律,告诉它应该怎么理解输入、处理,又怎么输出我们需要的汉语命令语句。

LLM 规范分为两步:功能识别和规范化。

1,功能识别

定义在类路径根目录下的nlr-prompt-main-dbd.md 文档中。AI 阅读此文档后,理解输入并转换为功能名称。这部分提示词会被经常复用,不会附带数据项,以减少 token 消耗。

2,规范化命令

定义在类路径根目录下的数个文档

nlr-prompt-func-dbd-newreport.md(生成报表组件)

nlr-prompt-func-dbd-reportsetting.md(表设计)

nlr-prompt-func-dbd-fieldcalculation.md(字段计算)

nlr-prompt-func-dbd-filter.md(数据过滤

nlr-prompt-func-dbd-newchart.md(生成统计图组件和修改统计图设计)

nlr-prompt-func-dbd-newvcard.md(生成指标卡组件)

nlr-prompt-func-dbd-event.md(生成按钮组和绑定事件)

nlr-prompt-func-dbd-newformitem.md(生成参数控件组件)

nlr-prompt-func-dbd-layout.md(生成和设计布局组件)
nlr-prompt-func-dbd-tab.md(生成和设计标签页组件)

根据第一步AI 识别的功能,选中对应的 md 文档,AI 阅读此文档后,理解输入并转换为规范化语句。

..


(1)功能识别

提示词nlr-prompt-main-dbd.md

内容概括

1,输入定义用户输入内容

2,功能识别规则:定义了 AI 的角色、工作清单和约束

3,输出定义:输出识别的功能名称

4,功能示例:识别功能举例

..

..

功能清单其中就列有:
1. 添加组件: 报表

Dashboard 增加一个报表组件。

例如:明确提出是报表、网格、表格

2. 添加组件: 指标卡片

Dashboard 增加一个指标卡片组件。

例如:明确提出是指标卡片、指标卡、指标、单值卡片、比例卡片

3. 统计图

Dashboard 增加一个统计图组件,或修改统计图设置。

例如:明确提出是统计图、饼图、柱形图等图形,或提出修改统计图

4. 添加组件: 控件

Dashboard 增加一个控件组件。

例如:明确提出是某个类型的表单控件,如单选、编辑器、滑块、日期时间等

5. 数据过滤操作

对当前选中报表做数据过滤。

例如:明确提出是查询、筛选、过滤,提出只显示某些条件的数据

6. 事件

Dashboard 增加一个事件组件或给事件组件绑定事件。

例如:明确提出是事件组件、按钮组、绑定

7. 布局组件设置

Dashboard 增加一个左右布局或上下布局组件,或给布局组件插入左右、上下内容。

例如:明确提出是左右布局,左右结构,上下布局,上下结构

8. 标签组件设置

Dashboard 增加一个标签布局,或给标签布局插入新标签、新内容

例如:明确提出是标签组件、标签组

9. 表设计

对当前选中报表设置表头、指标、字段汇总、显示或隐藏明细

例如:明确设计表格布局结构

10. 字段计算

对某个字段设置字段的计算规则,可以是跨行计算概念、范围内的补充汇总、或行内计算式

例如:明确设置字段的计算规则

(2)命令转换功能举例展示

例如生成报表提示词nlr-prompt-func-dbd-newreport.md

此文档内容概括

1,输入定义用户输入内容

2,功能识别:定义了 AI 的角色、工作清单和约束

3,规范转换规则:包括字段数据项、词典的构成、工作细则。

4,示例集附录:各种输入情况举例。

..

..

其他功能的提示词与此结构基本一致。语句结构复杂或者比较灵活的情形下,提示词的叙述会更细致,区分开各类情况。比如:

生成报表提示词nlr-prompt-func-dbd-newchart.md 提到“功能是用给定的数据集新建统计图组件或修改已有的统计图设置”,这包含了两种不同语句。在该文档的规范化约束中就会看到“如果原句表明要修改某个统计图,才在语句中添加【修改】这参数个词”,等等更细致的提示描述。

..

总结:不同的大模型,对提示词的利用可能不同。如果遇到LLM 执行结果不理想的情况,可以根据情况和 LLM 特征对这些提示词进行适当改动,帮助模型在目标场景下更好地理解怎样处理能输出用户想要的结果。