有数报告图表数据分析技能
功能
该技能允许根据用户提供的自然语言意图(或直接指定报告ID与组件ID),在有数/知数平台上查询指定报告中某个图表的原始数据并返回基于该数据的简要分析与可视化友好结果。
使用场景
- 用户以自然语言描述想要分析的图表(例如:“展示上个月北京各区销售趋势的图表”),希望自动定位并查询对应报告中的图表数据。
- 已知报告ID与组件ID,想直接查询该图表的数据并得到分析结果。
依赖环境
- Node.js 20+
- 需要网络访问有数平台 API
- 需要安装 skill
youdata-env-config并完成配置(用于获取token和domainUrl)
使用方法
- 提供报告ID(reportId),图表ID (componentId)
- 提供自然语言查询
- 技能将调用getGraphicData函数获取图表数据,并基于数据进行分析总结
配置要求
需要在skill目录下 /scripts/env.js 中配置:
tokenKey: 用户的有数tokenKeydomainUrl: API域名
调用示例
- step1:使用 skill
youdata-env-config获取 env(json字符串格式),同一次会话youdata系列的skill可以复用,不用二次生成 - step2:获取当前 SKILL.md 的绝对目录地址 skillFolder
- step3:获取用户输入的参数(reportId、componentId、bookmarkId、filters),优先级为命令行输入 > 配置文件
parameters.js,其中 filters 为对象;同时支持通过有数图表链接URL直接获取reportId/componentId/bookmarkId,URL解析规则:https://d.youdata.netease.com/dash/preview/${reportId}/${dashboardId}/${componentId}?param=%7B%7D&pid=${projectId}&view=true&bookmarkId=${bookmarkId},其中bookmarkId可选。 - step4:调用脚本
node ${skillFolder}/scripts/index.js <reportId> <componentId> [--bookmark <bookmarkId>] [--filters <json>] [--nl "自然语言筛选描述"] <env>参数说明
reportId: 报告的唯一标识符,用户自然语言输出中指定的报告id,或url解析中获取的报告id,或从parameters.js读取componentId: 图表组件的唯一标识符,用户自然语言输出中指定的图表组件id,或url解析中获取的组件id,或从parameters.js读取--bookmark(可选): 报表数据的书签ID,用户自然语言输出中指定的bookmarkId,或url解析中获取的bookmarkId,或从parameters.js读取--filters(可选): 筛选器配置,类型为对象,若为JSON则解析为对象;用户自然语言输出中指定的filters对象,或从parameters.js读取--nl(可选): 自然语言描述筛选条件,会尝试转换为 filters(需包含筛选器 ID,如c-1-xxx)
module.exports = {
reportId: '120393',
componentId: 'c-1-120393-252574-mmu8tlgf',
bookmarkId: '207',
};parameters.js 示例:
module.exports = {
reportId: '120393',
componentId: 'c-1-120393-252574-mmu8tlgf',
bookmarkId: '207',
filters: {
'c-1-xxxx': { selected: ['北京', '上海'] },
},
};返回结果
报告ID: 114210
组件ID: c-1-114210-235982-me15bldx
组件名: 北京各区月度销售趋势
数据预览:
| 日期 | 区域 | 销售额 |
|--|--|--|
| 2026-02 | 东城 | 12345.67 |
| 2026-02 | 西城 | 9876.54 |
分析结论:
- 最近三个月总体销售呈上升趋势(环比增长 8.2%)。
- 东城区环比下降 3.1%,需关注。
可视化建议:推荐使用折线图展示各区的时间序列,使用堆叠或多线对比。错误处理
- 缺少必需参数时会输出正确用法提示并退出。
- 环境变量解析失败会返回解析错误信息。
- 网络或 API 错误会显示具体错误并终止执行。
- 若上层自然语言到组件的解析失败,会提示无法定位对应图表并要求用户提供
reportId/componentId。
扩展建议
- 可增加自然语言到报告/组件的解析模块,支持直接传入
question,并自动完成组件定位与查询。 - 可返回更加结构化的 JSON 以便上层系统渲染或二次处理。