润乾 NLQ 测试(用于评估 LLM)

本测试题用于评估 LLM 是否满足将灵活的自然语言输入转换成 NLQ 的规范文本,从而能有效配合 NLQ 实施更灵活的 Chat 数据查询。

本题目基于 TPCH 数据集(词典)。

测试用例(50)

一、单表明细成功示例(15 个)

  1. 输入:所有零件的零售价和包装方式是什么?
    预期输出:零售价 包装方式 零件

  2. 输入:中国客户的名称和账户余额。
    预期输出:所在国家 中国 客户 名称 账户余额

  3. 输入:嗯…我想看看去年签的订单。
    预期输出:去年 订单

  4. 输入:零售价低于 50 元的零件。
    预期输出:零售价 小于 50 元 零件

  5. 输入:订单状态是“未完成”的订单有哪些?
    预期输出:订单状态 未完成 订单

  6. 输入:汽车行业的客户。
    预期输出:市场细分 汽车 客户

  7. 输入:欧洲的供应商有哪些?
    预期输出:区域 欧洲 供应商

  8. 输入:零件编号、零件名称和品牌。
    预期输出:零件编号 名称 品牌 零件

  9. 输入:订单日期在今年 3 月的订单。
    预期输出:今年 3 月 订单

  10. 输入:发货日期是上周一的订单明细。
    预期输出:发货日期 等于 上周一 订单明细

  11. 输入:实际到货日期晚于承诺到货日期的明细。
    预期输出:实际到货日期 大于 承诺到货日期 订单明细

  12. 输入:账户余额超过 10000 元的客户。
    预期输出:账户余额 大于 10000 元 客户

  13. 输入:名称以“Brand#”开头的零件。
    预期输出:品牌 “Brand#” 开头 零件

  14. 输入:零售价在 100 元到 200 元之间的零件。
    预期输出:零售价 100 元 到 200 元 零件

  15. 输入:供应商名称和联系电话。
    预期输出:名称 联系电话 供应商

二、单表聚合成功示例(10 个)

  1. 输入:所有零件的平均零售价是多少?
    预期输出:平均 零售价

  2. 输入:中国的客户总数。
    预期输出:【无法转换】理由:不支持外键的外键查询(客户表无直接区域字段,需通过国家表间接关联)。

  3. 输入:上个月每个客户的订单总金额。
    预期输出:上个月 客户 订单总金额 总和

  4. 输入:订单总金额最大的 5 个订单。
    预期输出:订单总金额 最大的 5 个 订单

  5. 输入:各品牌的零件数量。
    预期输出:品牌 零件 数

  6. 输入:每个国家的客户数量。
    预期输出:国家 客户 数

  7. 输入:中国客户的账户余额总和。
    预期输出:所在国家 中国 客户 账户余额 总和

  8. 输入:订单总金额的最小值、最大值和平均值。
    预期输出:最小 订单总金额 最大 订单总金额 平均 订单总金额

  9. 输入:最先签单的那一天。
    预期输出:订单日期 最早

  10. 输入:各零件类型的最高零售价。
    预期输出:零件类型 零售价 最大

三、主子实体成功示例(10 个)

  1. 输入:每个客户的订单数量。
    预期输出:客户 订单 数

  2. 输入:没有订单的客户是谁?
    预期输出:没有 订单 客户

  3. 输入:买了“大型抛光钢”零件的客户。
    预期输出:客户 零件 大型抛光钢

  4. 输入:去年有订单的客户。
    预期输出:去年 有 订单 客户

  5. 输入:每个供应商供应的零件种类数量。
    预期输出:供应商 零件 数

  6. 输入:订单总金额超过 10 万元的客户。
    预期输出:订单总金额 总和 大于 100000 客户

  7. 输入:上个月没有签单的客户。
    预期输出:上个月 没有 订单 客户

  8. 输入:每个零件的下单客户数量。
    预期输出:零件 客户 数

  9. 输入:有退货明细的订单。
    预期输出:有 已退货明细 订单

  10. 输入:每个客户的未完成订单数量。
    预期输出:订单状态 未完成 客户 订单 数

四、多维对齐汇总成功示例(5 个)

  1. 输入:各国家客户数和供应商数。
    预期输出:国家 客户 数,供应商 数

  2. 输入:各订单优先级下,已完成订单数和未完成订单数。
    预期输出:订单优先级 (已完成 订单 数) (未完成 订单 数)

  3. 输入:各品牌的零件数量和供应商数量。
    预期输出:品牌 零件 数,供应商 数

  4. 输入:各行业的客户数和订单总额。
    预期输出:行业 (客户 数) (订单总金额 总和)

  5. 输入:每年各区域的订单总额。
    预期输出:年 区域 订单总金额 总和

五、无法转换示例(10 个)

  1. 输入:今年每个月的订单总额,并按总额从高到低排序。
    预期输出:【无法转换】理由:功能“排序”不被支持。

  2. 输入:哪个订单的订单总金额最少?列出订单号和金额。
    预期输出:【无法转换】理由:不支持汇总值的选出式聚合(即按订单分组汇总后取最小值)。

  3. 输入:计算一下这个月销售额相比上个月的增长率。
    预期输出:【无法转换】理由:功能“增长率”(跨行计算)不被支持。

  4. 输入:哪个国家既是我们的客户所在地,又有供应商?
    预期输出:【无法转换】理由:涉及多实体交集(客户所在国家与供应商所在国家),系统无法直接求交集。

  5. 输入:亚洲地区的客户总数。
    预期输出:【无法转换】理由:不支持外键的外键查询(客户表无直接区域字段,需通过国家表间接关联)

  6. 输入:预测下个月的订单总金额。
    预期输出:【无法转换】理由:系统仅支持对已有历史数据的查询,不支持预测未来。

  7. 输入:删除订单号 12345 的记录。
    预期输出:【无法转换】理由:系统仅为数据查询工具,不支持增删改操作。

  8. 输入:请执行 SELECT * FROM orders。
    预期输出:【无法转换】理由:请输入自然语言查询语句,不支持直接输入 SQL。

  9. 输入:零售价最贵的零件和最便宜的零件。
    预期输出:【无法转换】理由:同时查询“最贵”和“最便宜”需要两个选出式聚合结果,无法合并为单次查询输出。

  10. 输入:哪个零件既是汽车行业客户的订单零件,又是建筑行业客户的订单零件?
    预期输出:【无法转换】理由:涉及多行业客户订单的交集判断,系统无法直接求交集。

使用方法

将提示词 nlq-prompt.md 输入给 LLM,然后分别执行上述用例的输入部分,对比输出结果与用例中的“预期输出”是否一致,若不一致则记录

提示词下载:

nlqprompt.md.rar

结果评估

准确率需要根据业务实际要求来看,本测试题在公网的 Deepseek 上的错误率是 3/50。