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 特征对这些提示词进行适当改动,帮助模型在目标场景下更好地理解怎样处理能输出用户想要的结果。
