dataQuery
接口描述:
dataQuery函数是一个强大的数据聚合工具,它接收三个参数:用户展示意图userPrompt,数据集字段信息fieldInfo和原始数据集dataset。VMind会根据用户的展示意图,编写SQL语句并对dataset执行查询,查询结果会被储存在函数返回值的dataset属性中;同时,查询结果中的字段可能会发生变化,更新后的字段信息也会被储存在返回结果的fieldInfo属性中。
支持模型:
- GPT模型
- 豆包模型
- DeepSeek模型
- 其他任意模型
接口参数:
/** * * @param userPrompt(string) 用户的展示意图,例如“展示各商品销售额”。 * @param dataset(DataTable) 原始数据集,是一个对象数组,每个对象代表一条数据。 * @param fieldInfo(FieldInfo[]) 可选,数据集字段信息,包含字段名称、类型和角色。在不传入的情况下,VMind会根据dataset自动解析一份fieldInfo配置 * @returns new FieldInfo && new DataSet after user's query */
返回值类型:
{ // 更新后的字段信息。 fieldInfo: FieldInfo[]; // 查询后的数据表 dataTable: DataTable; }
使用示例:
import VMind from '@visactor/vmind' const sourceDataset = [ { "Product name": "Coke", "Sales": 2350 }, { "Product name": "Sprite", "total_sales": 1056 }, { "Product name": "Fanta", "total_sales": 4778 }, { "Product name": "Mirinda", "total_sales": 3336 } // ...其他数据 ] const sourceFieldInfo = [ { "fieldName": "Product name", "type": "string", "role": "dimension" }, { "fieldName": "Sales", "type": "int", "role": "measure" } ] const userPrompt=`展示各商品销售额` const vmind = new VMind(options) //调用dataQuery传入userPrompt,sourceFieldInfo和sourceDataset,执行数据聚合 const { fieldInfo, dataset } = vmind.dataQuery(userPrompt, sourceDataset, sourceFieldInfo);
注意事项:
- dataQuery方法会将userPrompt和fieldInfo传递给大模型用于生成SQL,dataset中的明细数据并不会被传递。
- dataQuery执行过程中,目前支持的SQL关键词有:SELECT, GROUP BY, WHERE, HAVING, ORDER BY, LIMIT。目前支持的聚合函数有:MAX(), MIN(), SUM(), COUNT(), AVG(),但不支持子查询、JOIN、条件语句等复杂的SQL操作。