skills/skills.netease.im/youdata-data-model-nl-query

youdata-data-model-nl-query

SKILL.md

有数数据模型自然语言查询技能

功能

该技能允许用户通过自然语言或者逻辑sql查询数据模型,无需编写复杂的SQL语句。

依赖环境

  • Node.js 20+
  • 需要网络连接访问知数平台API
  • 需要安装 skill youdata-env-config 并完成配置

使用场景

  • 用户想要查询数据模型但不想写复杂的SQL语句
  • 需要通过自然语言或者逻辑sql进行数据分析
  • 快速获取数据模型的统计信息
  • 注意 生成自然语言提问的时候不要丢失用户问题中的日期、维度等筛选条件

使用方法

  1. 提供数据模型ID (dataModelId)
  2. 提供自然语言查询或者逻辑sql查询问题
  3. 技能将调用queryDataModel函数进行智能查询

配置要求

需要在skill目录下 /scripts/env.js 中配置:

  • tokenKey: 用户的有数tokenKey
  • domainUrl: API域名

调用示例

  • step1:使用 skill youdata-env-config 获取 env(json字符串格式),同一次会话youdata系列的skill可以复用,不用二次生成
  • step2:获取当前 SKILL.md 的绝对目录地址 skillFolder
  • step3:调用脚本
-- 示例1:自然语言查询
node ${skillFolder}/scripts/index.js <dataModelId> "查询最近7天的销售总额" null <limit> <env>

-- 示例2:逻辑sql查询
node ${skillFolder}/scripts/index.js <dataModelId> null "select sum(销售额) from 订单 where 日期 >= '2023-01-01'"  <limit> <env>

参数说明

  • dataModelId: 数据模型的唯一标识符,用户自然语言输出中指定的模型id、数据模型id 或者问答上文中使用 skill 获取到的 <模型id>
  • question: 自然语言查询问题
  • logicSql: 逻辑sql查询问题
  • limit: 用户自然语言问题中指定的返回结果集的数量,如果用户未指定,则默认 limit = 5000

返回结果

  • 返回JSON格式的查询结果,主要包含以下内容:
{
    "logPath": "http://127.0.0.1:8888/operation/log/1698585200000",             // api 调用日志
    "head": ["国家", "地区", "子类别", "客户名称", "利润", "折扣", "数量", "销售额"],  //表头
    "body": [ //样例数据集
        ["中国","东北","纸张","赵婵",0,0,2,210],
        ["中国","中南","复印机","严聪",160.02,0,2,2000.46]
    ],
    "logicSql": "select sum(销售额) from 订单 where 日期 >= '2023-01-01'",       // 逻辑sql查询语句
    "sqls": [
        "select sum(销售额) from 订单 where 日期 >= '2023-01-01'"                // 最终数据库查询的执行sql
    ]
}
  • 脚本打印的 logPath 必须 返回给用户,用户可以通过该链接查看 api 调用日志。

错误处理

  • 如果没有安装 skill youdata-env-config,会提示安装该技能
  • 缺少参数时会提示正确用法
  • 配置不完整时会提示配置信息
  • 网络错误会显示具体错误信息
  • 脚本查询失败时显示错误信息并立刻终止问答
Installs
17
First Seen
Apr 2, 2026