润乾 NLQ 测试(用于评估 LLM)
本测试题用于评估 LLM 是否满足将灵活的自然语言输入转换成 NLQ 的规范文本,从而能有效配合 NLQ 实施更灵活的 Chat 数据查询。
本题目基于 TPCH 数据集(词典)。
测试用例(50)
一、单表明细成功示例(15 个)
输入:所有零件的零售价和包装方式是什么?
预期输出:零售价 包装方式 零件输入:中国客户的名称和账户余额。
预期输出:所在国家 中国 客户 名称 账户余额输入:嗯…我想看看去年签的订单。
预期输出:去年 订单输入:零售价低于 50 元的零件。
预期输出:零售价 小于 50 元 零件输入:订单状态是“未完成”的订单有哪些?
预期输出:订单状态 未完成 订单输入:汽车行业的客户。
预期输出:市场细分 汽车 客户输入:欧洲的供应商有哪些?
预期输出:区域 欧洲 供应商输入:零件编号、零件名称和品牌。
预期输出:零件编号 名称 品牌 零件输入:订单日期在今年 3 月的订单。
预期输出:今年 3 月 订单输入:发货日期是上周一的订单明细。
预期输出:发货日期 等于 上周一 订单明细输入:实际到货日期晚于承诺到货日期的明细。
预期输出:实际到货日期 大于 承诺到货日期 订单明细输入:账户余额超过 10000 元的客户。
预期输出:账户余额 大于 10000 元 客户输入:名称以“Brand#”开头的零件。
预期输出:品牌 “Brand#” 开头 零件输入:零售价在 100 元到 200 元之间的零件。
预期输出:零售价 100 元 到 200 元 零件输入:供应商名称和联系电话。
预期输出:名称 联系电话 供应商
二、单表聚合成功示例(10 个)
输入:所有零件的平均零售价是多少?
预期输出:平均 零售价输入:中国的客户总数。
预期输出:【无法转换】理由:不支持外键的外键查询(客户表无直接区域字段,需通过国家表间接关联)。输入:上个月每个客户的订单总金额。
预期输出:上个月 客户 订单总金额 总和输入:订单总金额最大的 5 个订单。
预期输出:订单总金额 最大的 5 个 订单输入:各品牌的零件数量。
预期输出:品牌 零件 数输入:每个国家的客户数量。
预期输出:国家 客户 数输入:中国客户的账户余额总和。
预期输出:所在国家 中国 客户 账户余额 总和输入:订单总金额的最小值、最大值和平均值。
预期输出:最小 订单总金额 最大 订单总金额 平均 订单总金额输入:最先签单的那一天。
预期输出:订单日期 最早输入:各零件类型的最高零售价。
预期输出:零件类型 零售价 最大
三、主子实体成功示例(10 个)
输入:每个客户的订单数量。
预期输出:客户 订单 数输入:没有订单的客户是谁?
预期输出:没有 订单 客户输入:买了“大型抛光钢”零件的客户。
预期输出:客户 零件 大型抛光钢输入:去年有订单的客户。
预期输出:去年 有 订单 客户输入:每个供应商供应的零件种类数量。
预期输出:供应商 零件 数输入:订单总金额超过 10 万元的客户。
预期输出:订单总金额 总和 大于 100000 客户输入:上个月没有签单的客户。
预期输出:上个月 没有 订单 客户输入:每个零件的下单客户数量。
预期输出:零件 客户 数输入:有退货明细的订单。
预期输出:有 已退货明细 订单输入:每个客户的未完成订单数量。
预期输出:订单状态 未完成 客户 订单 数
四、多维对齐汇总成功示例(5 个)
输入:各国家客户数和供应商数。
预期输出:国家 客户 数,供应商 数输入:各订单优先级下,已完成订单数和未完成订单数。
预期输出:订单优先级 (已完成 订单 数) (未完成 订单 数)输入:各品牌的零件数量和供应商数量。
预期输出:品牌 零件 数,供应商 数输入:各行业的客户数和订单总额。
预期输出:行业 (客户 数) (订单总金额 总和)输入:每年各区域的订单总额。
预期输出:年 区域 订单总金额 总和
五、无法转换示例(10 个)
输入:今年每个月的订单总额,并按总额从高到低排序。
预期输出:【无法转换】理由:功能“排序”不被支持。输入:哪个订单的订单总金额最少?列出订单号和金额。
预期输出:【无法转换】理由:不支持汇总值的选出式聚合(即按订单分组汇总后取最小值)。输入:计算一下这个月销售额相比上个月的增长率。
预期输出:【无法转换】理由:功能“增长率”(跨行计算)不被支持。输入:哪个国家既是我们的客户所在地,又有供应商?
预期输出:【无法转换】理由:涉及多实体交集(客户所在国家与供应商所在国家),系统无法直接求交集。输入:亚洲地区的客户总数。
预期输出:【无法转换】理由:不支持外键的外键查询(客户表无直接区域字段,需通过国家表间接关联)输入:预测下个月的订单总金额。
预期输出:【无法转换】理由:系统仅支持对已有历史数据的查询,不支持预测未来。输入:删除订单号 12345 的记录。
预期输出:【无法转换】理由:系统仅为数据查询工具,不支持增删改操作。输入:请执行 SELECT * FROM orders。
预期输出:【无法转换】理由:请输入自然语言查询语句,不支持直接输入 SQL。输入:零售价最贵的零件和最便宜的零件。
预期输出:【无法转换】理由:同时查询“最贵”和“最便宜”需要两个选出式聚合结果,无法合并为单次查询输出。输入:哪个零件既是汽车行业客户的订单零件,又是建筑行业客户的订单零件?
预期输出:【无法转换】理由:涉及多行业客户订单的交集判断,系统无法直接求交集。
使用方法
将提示词 nlq-prompt.md 输入给 LLM,然后分别执行上述用例的输入部分,对比输出结果与用例中的“预期输出”是否一致,若不一致则记录
提示词下载:
结果评估
准确率需要根据业务实际要求来看,本测试题在公网的 Deepseek 上的错误率是 3/50。
