一键导入
idmp-sample-data-generator
高度自动化的 IDMP 数据建模与加载工具。支持基于调研文档设计(industry_research.md)或自然语言描述,进行分层资产建模、超级表设计、时序数据模拟及端到端自动化加载与执行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
高度自动化的 IDMP 数据建模与加载工具。支持基于调研文档设计(industry_research.md)或自然语言描述,进行分层资产建模、超级表设计、时序数据模拟及端到端自动化加载与执行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | idmp-sample-data-generator |
| description | 高度自动化的 IDMP 数据建模与加载工具。支持基于调研文档设计(industry_research.md)或自然语言描述,进行分层资产建模、超级表设计、时序数据模拟及端到端自动化加载与执行。 |
| metadata | {"author":"Wang Zhe","version":"0.3.0","owner_team":"solution-center"} |
根据业务场景描述,自动完成资产建模、JSON 配置生成、单位校验和 API 推送,将模拟数据加载到 IDMP 系统。
| 参数 | 场景 Demo 生成 (类别 1) | 业务数据接入 (类别 2) | 说明 |
|---|---|---|---|
| 项目根目录路径 | ✅ 必传 | ✅ 必传 | 本次任务的绝对路径,所有产物需存入其 outputs/ |
| 行业调研路径 | ✅ 必传 | — | outputs/industry_research.md 的绝对路径 |
| 原始数据/结构文件 | — | ✅ 必传 | 用户提供的 CSV、Excel 或 Markdown 格式的结构定义 |
目录规范要求:
scripts/。sample_data.json 等)必须存放在项目根目录下的 outputs/。以下规则是 Agent 在没有明确提示时最容易出错的地方,执行前必须阅读。
超级表设计
namingPattern 固定值
templates 中的 namingPattern 固定为 ${KEYWORD1},不得修改。super_tables 中的 tags 数组必须包含 namingPattern 参数,值固定为 ${KEYWORD1}。资产命名与子表名唯一性
trees 节点中的 values(资产显示名称)和 child_table_names(子表物理名)必须在全局范围内保持唯一。"values": ["灌装线1-泵-1", "灌装线1-泵-2"])或使用全局递增序列来确保名称不重复。树状结构与 Tag 映射
tree_root 中的 tag_name 必须设为对应超级表 tags 数组的第一个 tag 名称。children 节点中必须为超级表中除第一个 tag 之外的所有其他 tag 显式赋值。child_table_names 展开后的设备数量完全一致,即使值相同也必须逐一列出(如 "vendor": ["东方泵业", "东方泵业"])。namingPattern 无关,严禁参考 namingPattern 进行赋值。模拟函数(fun)
fun 字段仅允许使用 sin(x)、cos(x)、random(n) 三种函数。floor、ceil、abs、sqrt、pow、exp、log 等任何其他函数。"fun": "2.0 * sin(x) + random(0.5) + 5.0"单位(uom)规范
uom 字段必须使用国际标准符号或系统已定义缩写(如 m、m³、°C),不得使用全称(如"米"、"摄氏度")。自定义单位使用不超过 5 个字符的英文缩写。uom 和 uomClass 都为 。uomClass 中的单位必须物理上可互相转化。物理意义不同的单位(如"频率"和"生产频率")必须分配不同的 uomClass。数值类型
Float 或 Double),除非业务明确要求整数。历史数据量
insert_rows 计算公式:
insert_rows = 7 * 24 * 60 * 60 * 1000 / time_step
insert_rows 固定设为 0。文件写入
Write 工具写入完整 JSON,必须执行分段写入(见第二步)。调用
skill-telemetry,传入name=idmp-sample-data-generator version=0.3.0 author=Wang Zhe。 失败不阻塞,但必须尝试。详见skill-telemetry。
根据输入类别,选择以下其中一条路径执行,严禁混用:
若输入中提供了 outputs/industry_research.md 或 数据结构定义文件:
tags 维度(如:L1 厂区、L2 车间、L3 区域)。若用户仅提供了简短的自然语言描述(如“电力监控”),执行以下自主设计:
电力:变电站 → 变压器 → 馈线单元。2.1 确定输出目录
scripts/,业务产物(JSON 等)存入 outputs/。idmp-demo/idmp_sample_<timestamp>/ 任务目录。2.2 读取模板(执行前必须完成)
读取 templates/idmp_sample_data_v1.json,获取完整 JSON 结构参考及 __doc__ 节点中的命名规范。JSON 需包含的核心模块:info、TDasset、datasource、databases、templates、tree_root、trees。
若存在 outputs/industry_research.md,JSON 中的资产层级、超级表、指标、标签必须与该文档完全一致,不得有文档有描述但 JSON 缺失、或参数与文档冲突的情况。
2.3 分段写入 JSON(严禁单次写入完整文件)
| 段 | 写入内容 | mode |
|---|---|---|
| 第一段 | info、TDasset、datasource、databases 字段,直到 "templates": [ 开头 | overwrite |
| 中间段(每张超级表一段) | templates 数组中每个 template 对象(含 super_tables 和 metrics),段间注意 JSON 逗号正确性,末尾 template 不加逗号 | append |
| 最后一段 | tree_root、trees 字段及 JSON 闭合括号 } | append |
2.4 写入后完整性验证(分段写入后强制执行,两步均不可跳过)
第一步:JSON 语法验证
python3 -c "import json; json.load(open('<文件路径>'))" && echo "JSON OK"
若失败,必须修复文件直到语法验证通过。
第二步:⚠️ 强制字段校验(语法验证通过后必须立即执行)
调用 /scripts/validate_sample_data.py 检查生成的json文件
[OK]:校验通过,继续执行下一步[FAIL]:必须逐条修正所有错误后,重新运行脚本直到输出 [OK],严禁带错误进入第三步无 CSV 文件时直接跳过,进入第四步。
sample_data.json 中对应超级表的 metrics 和 tags 定义自动添加。trees 节点的 child_table_names,将展开后的子表名逐行填入 tbname 列,确保数据行与子表名一一对应。sample_data.json 中定义的所有标签列是否在副本 CSV 中存在;若缺失,根据 trees 节点中该设备的标签值自动填充。所有接口调用默认使用
curl命令在 bash 环境中执行。
4.1 身份认证
POST /api/v1/users/login
Content-Type: application/json
Body: {"login_name": "<用户名>", "password": "<密码>"}
获取返回的 token,后续所有请求均使用 Authorization: Bearer <token>。
4.2 单位确认与处理
调用 scripts/uom_check.py(需传入 IDMP 登录参数与 sample_data.json 路径)。该脚本会自动处理“匹配系统现有单位并更新 JSON”以及“创建缺失的单位分类”等逻辑。
运行命令示例:
python3 scripts/uom_check.py --state outputs/state.json --sample_data outputs/sample_data.json
根据脚本输出的表格,若仍存在 "待处理" 状态的条目(即:单位分类已存在,但该分类下缺少特定单位缩写),需按以下步骤手动补全:
创建缺失单位: 针对每一行“待处理”条目,调用 API:
POST /api/v1/uomclasses/{uomClass id}/uomtemplates/uom_template.json 构造和说明,编写 uom 的 json 文件。uomClass id、uom 和 基础单位id。验证:
完成后必须再次调用 uom_check.py,确认输出为“检测完成,所有单位配置均已生效或已自动修复,无需手动处理”后,方可继续。
4.3 名称查重与自动修复
在上传前,必须检查示例名称及元素模板名称是否与系统中已有的条目冲突。
调用 scripts/duplicate_check.py:
python3 scripts/duplicate_check.py --state outputs/state.json --sample_data outputs/sample_data.json
该脚本执行以下检查:
GET /api/v1/templates/elements,对比 sample_data.json 中 templates 的 name。GET /api/v1/samples/management,对应 info.name。冲突处理:
若发现重名,脚本会自动在 sample_data.json 对应名称后添加 _1, _2 等递增后缀,并同步更新 trees 中的模板引用。
4.4 上传并加载示例数据
调用 scripts/upload_sample.py:
python3 scripts/upload_sample.py --state outputs/state.json --sample_data outputs/sample_data.json
该脚本执行以下集成操作:
placeholder.jpg。sample_data.json 与占位图。POST /api/v1/samples/{id} 接口。LOADED 或 GENERATING 且进度百分比 > 30% 时判定为成功。失败处理:
若 4.4 执行出错,直接根据错误信息调整 sample_data.json 或环境后,再次重新执行步骤 4.4 即可(无需手动清理 ID)。
4.5 重试上限
第四步完成后向用户输出:
idmp-structure-exporter 目录下的脚本完成资产树导出。运行命令: python3 export_idmp_tree.py --state outputs/state.json --sample-data outputs/sample_data.json --root-name <示例名称>。必须执行此步骤过滤根节点,严禁输出全系统资产树。fun 返回值符合对应 type(Float/Double 直接使用;Int 结果须为整数表达式;Bool 须返回 0/1)outputs/industry_research.md(若存在)或第一步分析结果完全一致(层级、超级表、指标、标签均不得增删)根据 IDMP Demo 场景的输出物(调研报告、资产树、面板配置、分析规则等),自动生成 TDengine IDMP 行业场景博客。此技能在 idmp-easyuse 全流程完成后需要输出宣传博客时触发。
IDMP总控编排技能 - 核心枢纽技能。根据用户需求(无论是无文件输入的场景Demo生成,还是带有文件/明确业务数据的具体接入),实现"一键式"自动化编排。静默调度 idmp-sample-data-generator、MCP 可视化工具链和 idmp-analysis-creator 完成全流程(行业调研 -> 数据生成 -> 告警分析 -> 面板创建)。
将 IDMP 系统的元素层级结构导出为标准化的递归嵌套 JSON 文件。输出文件应包含每个元素的 id、name、template_id。当用户需要分析 IDMP 的资产结构、同步资产树或为其它技能准备 IDMP 拓扑信息时触发。
Client-side telemetry reporter for Skill invocations. Sends usage events to telemetry-server when any Skill is activated. Keywords: telemetry, usage report, skill tracking
协助部署 TDGPT 模型,包括环境配置、网络接入、依赖项安装以及模型验证。触发关键词:部署 tdgpt,部署 TDengine GPT,部署大模型,tdgpt 部署。
协助自动编写符合 TDgpt 规范的时序预测模型及多特征对齐 Pipeline 代码。触发关键词:写时序预测模型,生成时序模型,TDGPT模型,特征对齐,tdgpt-model-writer,时序预测模型。