Install
openclaw skills install mysteel-chartgeneration基于文本描述或数据自动生成各类图表(趋势图、对比图、结构图等);当用户需要创建可视化图表、将数据转化为直观表达、生成分析报告插图时使用
openclaw skills install mysteel-chartgeneration在调用脚本前,需要先配置API密钥:
步骤1:检查api_key.md文件
api_key.md 文件步骤2:创建/更新api_key.md文件
# 在项目的references目录下创建文件
cd /path/to/my-generation/references
echo "api_key: 你的密钥" > api_key.md
文件格式:
api_key: your_api_key_here
注意:
项目目录结构:
my-generation/
├── SKILL.md
├── scripts/
│ ├── generate_chart.py
│ └── render_html.py
└── references/
├── api_key.md # API密钥文件(需要创建)
└── api-parameters.md
根据用户需求,智能体应自动选择最合适的生成模式:
适用场景:
判断依据:
使用方式:
node scripts/generate_chart.py --task "用户的自然语言描述"
适用场景:
判断依据:
使用方式:
node scripts/generate_chart.py \
--task "转换任务描述" \
--mode STRICT \
--data '{"field1": "value1", ...}' \
--data-example '[{"field1": "value1"}]' \
--data-description "数据包含字段1和字段2"
适用场景:
判断依据:
使用方式:
node scripts/generate_chart.py \
--task "生成图表描述" \
--mode TEMPLATE \
--type 折线图 \
--data '[{"name": "A", "value": 100}]'
适用场景:
使用方式:
node scripts/generate_chart.py --task "用户需求" --mode AUTO
检查API密钥配置
api_key.md 文件是否存在分析用户需求(智能体完成)
调用图表生成脚本
api_key.md 读取密钥token 字段scripts/generate_chart.py处理结果
渲染HTML文件
scripts/render_html.py 将配置转换为HTMLapi_key.md 文件并填入密钥,格式为 api_key: your_keyapi_key.md 读取并设置到请求头的 token 字段用户需求:"帮我生成一个展示2024年各月份销售额的折线图,数据为:[1200, 1500, 1800, 2000, 2200, 2500, 2800, 3000, 3200, 3500, 3800, 4000]"
智能体判断:
自动生成标题:
执行步骤:
# 1. 检查api_key.md文件(如果不存在,提示用户创建)
# 2. 调用生成脚本(同步模式)
node scripts/generate_chart.py --task "帮我生成一个展示2024年各月份销售额的折线图,数据为:[1200, 1500, 1800, 2000, 2200, 2500, 2800, 3000, 3200, 3500, 3800, 4000]"
# 3. 渲染HTML
node scripts/render_html.py --option-file output/req-xxx_option.json --output output/sales_trend.html
注意:脚本会自动从 api_key.md 读取密钥并设置到请求头
用户需求:"生成一个饼图展示市场份额,数据如下:A产品30%,B产品25%,C产品20%"
智能体判断:
node scripts/generate_chart.py \
--task "生成一个饼图展示市场份额" \
--mode TEMPLATE \
--type 饼图 \
--data '[{"name": "A产品", "value": 30}, {"name": "B产品", "value": 25}, {"name": "C产品", "value": 20}, {"name": "其他", "value": 25}]'
node scripts/render_html.py --option-file output/req-xxx_option.json --output output/market_share.html
用户需求:"我有销售数据文件,包含1000条记录,请生成销量排名前10的柱状图。数据结构:product_name, sales_amount, region"
智能体判断:
node scripts/generate_chart.py \
--task "将销售数据转换为柱状图,展示销量排名前10的产品" \
--mode STRICT \
--data '$(cat sales_data.json)' \
--data-example '[{"product_name": "产品A", "sales_amount": 12000, "region": "华东"}]' \
--data-description "数据包含产品名称、销量金额、区域三个字段"
node scripts/render_html.py --option-file output/req-xxx_option.json --output output/top10_sales.html
用户需求:"画个柱状图对比华东、华南、华北三个区域的钢材库存量,数据:华东5000吨,华南4500吨,华北6000吨"
智能体判断:
node scripts/generate_chart.py --task "画个柱状图对比华东、华南、华北三个区域的钢材库存量,数据:华东5000吨,华南4500吨,华北6000吨"
node scripts/render_html.py --option-file output/req-xxx_option.json --output output/inventory_comparison.html
用户需求:"生成一个钢联螺纹钢价格走势图,展示最近一年的价格变化趋势"
智能体判断:
node scripts/generate_chart.py --task "生成一个钢联螺纹钢价格走势图,展示最近一年的价格变化趋势"
node scripts/render_html.py --option-file output/req-xxx_option.json --output output/price_trend.html
用户请求
├─ 是否明确指定图表类型?(饼图/柱状图/折线图等)
│ └─ 是 → TEMPLATE模式
│
├─ 是否提供大量结构化数据?(>50条)
│ └─ 是 → STRICT模式
│
└─ 自然语言描述 + 数据量小/内嵌数据
└─ FREEDOM模式(默认)
注意:所有模式均为同步处理,asyncEnable固定为false
接收用户需求
检查API密钥配置:
api_key.md 文件是否存在分析需求特征:
选择生成模式:根据上述决策树
构建命令参数:准备task、mode、data等参数
调用脚本执行(同步模式):
api_key.md 读取密钥token 字段渲染HTML并返回
# 在项目的references目录下创建文件
cd /path/to/my-generation/references
echo "api_key: your_actual_api_key_here" > api_key.md
api_key: sk_abc123xyz789
api_key.md 文件不存在。请先在项目的references目录下创建该文件并填入API密钥。文件路径:{项目目录}/references/api_key.mdapi_key.md 文件为空,请填入API密钥。文件路径:{项目目录}/references/api_key.md