text2Chart
接口描述:
text2Chart函数用于调用LLM完成数据提取,图表智能生成两个任务,返回生成的图表spec、图表二维数据表,图表类型和字段映射等。实现一步从普通文本生成图表的智能化过程。
支持模型:
- GPT模型
- 豆包模型
- DeepSeek模型
- 其他任意模型
图表类型列表
VMind支持25种常见的图表类型:
export enum ChartType { DynamicBarChart = 'Dynamic Bar Chart', BarChart = 'Bar Chart', LineChart = 'Line Chart', AreaChart = 'Area Chart', PieChart = 'Pie Chart', ScatterPlot = 'Scatter Plot', WordCloud = 'Word Cloud', RoseChart = 'Rose Chart', RadarChart = 'Radar Chart', SankeyChart = 'Sankey Chart', FunnelChart = 'Funnel Chart', DualAxisChart = 'Dual Axis Chart', WaterFallChart = 'Waterfall Chart', BoxPlot = 'Box Plot', LinearProgress = 'Linear Progress chart', CircularProgress = 'Circular Progress chart', LiquidChart = 'Liquid Chart', BubbleCirclePacking = 'Bubble Circle Packing', MapChart = 'Map Chart', RangeColumnChart = 'Range Column Chart', SunburstChart = 'Sunburst Chart', TreemapChart = 'Treemap Chart', Gauge = 'Gauge Chart', BasicHeatMap = 'Basic Heat Map', VennChart = 'Venn Chart' }
可通过options参数中的chartTypeList限制生成的图表类型。
接口参数:
interface GenerateChartParams {
text: string,
userPrompt: string;
dataset?: Array<Record<string, any>>;
options?: {
fieldInfo?: FieldInfo[];
chartTypeList?: ChartType[];
colorPalette?: string[];
animationDuration?: number;
theme?: ChartTheme | string;
enableDataQuery?: boolean;
}
}
-
text (string): 必选,原始文本内容
-
userPrompt (string): 可选,用户的可视化意图(你想从文本中主要提取哪些数据,如何用图表进行展示)
-
options: 可选,选项参数,包括以下内容 :
- fieldInfo (Array): 文本类型中包含的字段信息,包括字段名称,类型等;传递了fieldInfo的场景,VMind会只提取跟传入fieldInfo相关联的内容
- chartTypeList (ChartType[],可选): 支持的图表类型列表。若不为undefined,则会从该列表指定的图表类型中选择生成。
- enableDataQuery (boolean, 可选): 决定是否在图表生成过程中开启数据聚合
- colorPalette (Array
, 可选): 用于设置图表的调色板 - animationDuration (number, 可选): 用于设置图表动画的播放持续时间
- theme (ChartTheme | string, 可选): 设置最终sepc的主题样式,默认为空,VMind会默认使用带渐变颜色的主题样式,可以设置 VChart 通用深浅主题('light' | 'dark')或者符合你使用场景下的主题样式
返回值类型:
interface GenerateChartResult {
/** 图表spec */
spec: Record<string, any>;
/** 提取出来的数据 */
dataTable: DataTable;
/** 字段信息 */
fieldInfo: FieldInfo[];
/** 图表类型*/
chartType: ChartType;
/** 最终的视觉通道映射 */
cell: Cell;
/** token 消耗量 */
usage: Usage;
/* 生成当前图表的具体指令,在user prompt的情况下跟user prompt一致 */
command: string;
/** 转唯gif/video时所用的配置时间 *//
time: {
totalTime : number;
frameArr: number[];
};
/** 基于规则的图表推荐结果,在手动设置规则或者大模型生成有误情况下产生 */
chartAdvistorRes: {
/** 图表spec */
spec: Record<string, any>;
/** 图表类型*/
chartType: ChartType;
/** 推荐得分 */
score: number
}[]
}