[Bug] 数据量大导致基于规则的图表推荐生成失败,更新到2.0.4版本的VMind生成的spec不含data(value)数据
Version
VMind的2.0.4依然存在问题
Link to Minimal Reproduction
无
Steps to Reproduce
我更新版本后进行测试,虽然成功生成了spec,但是data中的values为空。 ###数据集链接: nl4dv/examples/assets/data/movies-w-year.csv at master · nl4dv/nl4dv
测试代如下:
import VMind from '@visactor/vmind'; import pkg from '@visactor/vmind'; import fs from 'fs';
const { Model } = pkg;
// 初始化 VMind 实例 const vmind = new VMind.default({ model: Model.CHART_ADVISOR, });
// 定义本地 CSV 文件路径 const csvFilePath = "D:\node_pro\Vmind_test\movies-w-year_1.csv";
// 读取本地 CSV 文件内容 const csvData = fs.readFileSync(csvFilePath, 'utf-8');
// 解析 CSV 数据 const Parseresult = vmind.parseCSVData(csvData); const fieldInfo_1 = Parseresult.fieldInfo; const dataset_1 = Parseresult.dataset;
console.log("dataset_1"); console.log(dataset_1);
// 调用图表生成接口 const userPrompt = ''; const advisorResult = await vmind.generateChart(userPrompt, fieldInfo_1, dataset_1);
console.log("advisorResult"); console.log(advisorResult);
// 检查 advisorResult 是否包含有效的 spec
if (advisorResult && advisorResult.spec) {
// 保存 spec 为 JSON 文件
const specFileName = chart-config.json;
fs.writeFileSync(specFileName, JSON.stringify(advisorResult.spec, null, 2));
console.log(图表配置已保存为 ${specFileName});
} else {
console.error("未找到有效的 spec 配置");
}
返回的advisorResult.spec:
{ "type": "bar", "data": { "id": "data", "values": [] }, "color": [ { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#1DD0F3FF" }, { "offset": 1, "color": "#1DD0F300" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#2693FFFF" }, { "offset": 1, "color": "#2693FF00" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#3259F4FF" }, { "offset": 1, "color": "#3259F400" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#1B0CA1FF" }, { "offset": 1, "color": "#1B0CA100" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#CB2BC6FF" }, { "offset": 1, "color": "#CB2BC600" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#FF581DFF" }, { "offset": 1, "color": "#FF581D00" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#FBBB16FF" }, { "offset": 1, "color": "#FBBB1600" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#F6FB17FF" }, { "offset": 1, "color": "#F6FB1700" } ] }, { "gradient": "linear", "x0": 0.01, "y0": 0, "x1": 0.01, "y1": 1, "stops": [ { "offset": 0, "color": "#73EC55FF" }, { "offset": 1, "color": "#73EC5500" } ] } ], "xField": [ null ], "axes": [ { "orient": "bottom", "type": "band", "label": { "style": {} }, "title": { "visible": false, "style": {} } }, { "orient": "left", "type": "linear", "label": { "style": {} }, "title": { "visible": false, "style": {} } } ], "bar": { "style": {} } }
Current Behavior
数据列多的情况下基于规则的推荐就不会生成可视化结果
Expected Behavior
希望修复
Environment
- OS:windows
- Browser:
- Framework:
Any additional comments?
No response
同样问题,我的数据量也不大啊,就2000多条 csv 也是values为空 重点是我debug,发现await vmind.generateChart(prompt, fieldInfo, dataset); 执行的太快了,感觉都没有1秒钟,应该是内部直接异常了吧,根本没有去访问llm服务
同样问题,我的数据量也不大啊,就2000多条 csv 也是values为空 重点是我debug,发现await vmind.generateChart(prompt, fieldInfo, dataset); 执行的太快了,感觉都没有1秒钟,应该是内部直接异常了吧,根本没有去访问llm服务
csv的数据量应该不影响,之前的问题是不用大模型推荐,只使用规则推荐的情况下,如果列数过多规则推荐的结果不一定有效;你这里大概是有多少列呢?看起来确实没有访问llm服务,有任何报错吗,或者返回结果里的error有信息嘛;如果没有的话可以先尝试用一些简单case确保vmind的大模型服务配置是有效的
是模型配置有问题,没抛出异常,我也没发现 修正模型配置就可以了