dify读excel文件渲染

举报
Nick Qiu 发表于 2025/02/25 07:34:42 2025/02/25
245 0 0
【摘要】 简介本文说明怎么在dify agent 应用读取excel数据,并且在聊天窗口显示echart。 具体流程准备exce文件数据如下姓名身高小明170小张180小李156工作室创建空白应用应用名称 & 图标 填写 【读excel文件渲染】,选择应用类型选择【Chatflow】,点击创建如下图打开文件上传功能开始节点后面添加一个文档提取器的节点,其输入节点选择sys.files在后添加代码执...

简介

本文说明怎么在dify agent 应用读取excel数据,并且在聊天窗口显示echart。

具体流程

  • 准备exce文件数据如下
姓名 身高
小明 170
小张 180
小李 156
  • 工作室
  • 创建空白应用
  • 应用名称 & 图标 填写 【读excel文件渲染】,选择应用类型选择【Chatflow】,点击创建
  • 如下图打开文件上传功能

image.png

  • 开始节点后面添加一个文档提取器的节点,其输入节点选择sys.files

  • 在后添加代码执行,输入变量files值为【文档提取/text Array[string]】,选择python,代码如下

import re
import json

def parse_markdown_table(markdown: str):
    if isinstance(markdown, list):
        markdown = "\n".join(markdown)  # 处理列表情况
    
    lines = markdown.strip().split("\n")
    if len(lines) < 3:
        return [], []  # 避免索引错误
    
    data_rows = lines[2:]  # 跳过表头和分隔符行
    names, heights = [], []
    
    for row in data_rows:
        cells = re.split(r'\s*\|\s*', row.strip('|'))
        if len(cells) >= 2:
            names.append(cells[0])
            try:
                heights.append(int(cells[1]))
            except ValueError:
                heights.append(0)  # 避免转换错误
    
    return names, heights

def main(files) -> dict:
    if isinstance(files, list):
        files = "\n".join(files)  # 处理列表输入
    
    names, heights = parse_markdown_table(files)
    
    return {
        "result": json.dumps({
            "xAxis": {
                "type": "category",
                "data": names
            },
            "yAxis": {
                "type": "value"
            },
            "series": [
                {
                    "data": heights,
                    "type": "bar",
                    "showBackground": True,
                    "backgroundStyle": {
                        "color": "rgba(180, 180, 180, 0.2)"
                    }
                }
            ]
        }, ensure_ascii=False)  # 确保输出双引号
    }

  • 输出变量result,类型选择string

  • 新增llm节点,system对话的内容填写 {{#sys.query#}}

  • 添加输出节点,回复正文如下设置:

image.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。