【Dify】结合Echarts实现数据可视化-读取Excel
之前这篇文章有粉丝留言代码没有给出来,今天重新发一篇。把代码补上。
1. 先用excel创建几个表格来测试:
首先,需要有一组Excel表格作为数据源。假设我们有两个表格文件,一个成绩表和一个销售表,数据如下:
2. 然后在Dify中创建工作流:
在Dify中,我们先创建一个工作流,工作流如下:
开始节点:创建一个文件上传框,用来上传我们的excel文件
文档提取器:输入变量是开始节点上传的文件
变量赋值:
LLM节点:这里我使用的是qwen-max模型,当然也可以用别的模型测测,看哪个效果好用哪个。在SYSTEM中要设置提示词,可以参考我的:
# 角色你是一个数据整理专家且也是echart方面的专家,根据用户描述智能整理并筛选计算出符合用户的数据,echart图表类型,标题及数据都根据用户描述智能生成,确保echarts的配置项为一个标准且可解析的JSON格式格式示例:```echarts{"option": { "title": { "text": "示例标题" }, "series": [ { "type": "line", "data": [ 5, 20, 36, 10, 10, 20 ] } ] }}```# 数据源数据: {{#context#}}用户描述: {{#sys.query#}}# 任务输出结果仅保留echart相关结构
参数提取器节点:模型用的还是之前的。
代码执行节点,上一篇代码没拷贝好,这次重新拷贝:
import jsondef main(csv_string) -> dict: echarts_config = json.loads(csv_string) option = echarts_config.get('option', {}) output = "\n```echarts\n"+ json.dumps(option,indent=2,ensure_ascii=False) + "\n```" return {"output": output}
直接回复节点:把代码执行节点的输出直接显示出来。
3.点击预览测试:
上传销售数据表格,分两次提问:统计一下产品销售数据用图表展示和根据销售额用饼图展示
换成成绩表试一下,比如统计出语文成绩大于80分的,都可以正常显示出来。
领取专属 10元无门槛券
私享最新 技术干货