Dify部署參考:Dify Rag部署并集成在線Deepseek教程(Windows、部署Rag、安裝Ragan安裝、安裝Dify安裝、安裝ollama安裝)
Dify+DeepSeek - Excel數據一鍵可視化(創建步驟案例)-DSL工程文件(可直接導入)
Dify+DeepSeek - Excel數據一鍵可視化(創建步驟案例)-Markdown示例文件
功能:輸入文檔或表格————>繪制圖表
文章目錄
- 創建步驟
- 點擊創建Chatflow
- 刪除已有節點
- 創建上傳文件節點
- 點擊“開始”,創建輸入字段text(文件路徑或url)
- 創建文檔提取器
- 為文檔提取器輸出創建`Excel轉csv`節點
- 新建節點
- 模型我選擇deepseek-reasoner
- 按照以下格式填入prompt(輸入數據選擇`文檔提取器/(x)text`)
- 修改節點名稱為`Excel轉csv`
- 為`Excel轉csv`節點創建參數提取器節點
- 新建節點
- 設置指令
- 設置模型
- 設置輸入變量
- 添加提取參數`csv_data`
- 為參數提取器節點創建代碼執行節點
- 新建節點
- 代碼填入
- 代碼解釋
- 1. **流程架構**:
- 2. **核心算法**:
- 3. **ECharts配置生成**:
- 4. **異常處理邊界**:
- 5. **運維增強特性**:
- 為執行代碼節點添加直接回復節點
- 創建節點
- 輸入直接回復內容(注意我修改了部分變量名,可能跟前面不兼容)
- ~~節點測試~~ (無效)
- 測試`文檔提取器`(Excel轉csv失敗了,改成Markdown轉csv)
- 運行
- 我的dify見鬼了,提取excel都是空的
- 只能修改方案了,將后面的`Excel轉csv`改成`Markdown轉csv`
- 測試提取markdown(沒有問題)
- 測試運行
- 點擊預覽,然后上傳文件
- 在聊天框隨便輸入內容然后發送
- 然后工作流就會逐個運行,最后輸出結果
- 點開右邊工作流節點,能看到各個節點輸入輸出,方便調試
創建步驟
點擊創建Chatflow
echart助手
刪除已有節點
選中按Del:
創建上傳文件節點
點擊“開始”,創建輸入字段text(文件路徑或url)
創建文檔提取器
添加text字段輸入:
為文檔提取器輸出創建Excel轉csv
節點
新建節點
模型我選擇deepseek-reasoner
按照以下格式填入prompt(輸入數據選擇文檔提取器/(x)text
)
#角色
你是一個數據整理專家,刪除數據格式的整理和格式的轉換。
#數據
囚 文檔提取器/(x)text
#任務
將數據轉換成csv格式
修改節點名稱為Excel轉csv
為Excel轉csv
節點創建參數提取器節點
新建節點
設置指令
#任務
-提取csv格式的字符串
設置模型
設置輸入變量
添加提取參數csv_data
為參數提取器節點創建代碼執行節點
新建節點
代碼填入
import csv
import jsondef main(csv_data):# 解析CSVreader = csv.DictReader(csv_data.strip().splitlines())rows = list(reader)# 自動識別列結構headers = reader.fieldnamesif not headers or len(headers) < 2:return {'output': 'Error: 需要至少兩列數據(1個分類列+1個數值列)'}# 默認第一列為分類軸,其余為數值列category_col = headers[0]value_columns = headers[1:]# 提取數據categories = [row[category_col] for row in rows]series_data = [{"name": col,"type": "bar","data": [float(row[col]) for row in rows] # 處理浮點數} for col in value_columns]# 構建ECharts配置echarts_config = {"xAxis": {"type": "category", "data": categories},"yAxis": {"type": "value"},"series": series_data}# 返回結果return {'output': f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'}
代碼解釋
以下是對該代碼的詳細技術解析:
1. 流程架構:
- 輸入:接收CSV格式的原始字符串數據
- 處理:通過三層轉換 pipeline:
CSV文本 → Python字典結構 → ECharts JSON配置 → Markdown代碼塊封裝
- 輸出:符合Markdown擴展語法規范的ECharts圖表代碼塊
2. 核心算法:
- 列智能識別算法:采用啟發式規則
if len(headers) >=2:第一列 = 分類軸后續列 = 數值系列 else:觸發錯誤處理
- 類型強制轉換:
float(row[col])
實現字符串到數值的類型安全轉換
3. ECharts配置生成:
- 生成符合Apache ECharts v5+規范的配置結構
- 動態構建坐標系:
- X軸:自動映射分類維度
- Y軸:自動推斷為數值軸
- 系列數據采用bar(柱狀圖)可視化編碼
4. 異常處理邊界:
- 列數校驗:強制要求至少包含2列數據
- 浮點轉換:假設所有數值列均可轉換為float類型(需注意潛在TypeError風險)
5. 運維增強特性:
- 輸入數據規范化:通過
strip().splitlines()
處理不同平臺的換行符差異 - Unicode安全:
ensure_ascii=False
確保中文等字符正確顯示 - 結構化錯誤消息:返回標準字典格式,方便日志采集和監控
該代碼特別適用于運維監控場景下的自動化報表生成,可將Zabbix、Prometheus等監控系統導出的CSV指標數據快速轉換為可交互的可視化圖表。
為執行代碼節點添加直接回復節點
創建節點
輸入直接回復內容(注意我修改了部分變量名,可能跟前面不兼容)
filePath:
{{#1741057279322.filePath#}}
</br>文檔提取器text:
{{#1741058246976.text#}}
</br>Excel轉csv, csv text:
{{#1741058730753.text#}}
</br>參數提取器csv_data:
{{#1741065751183.csv_data#}}
</br>代碼執行output:
{{#1741082638678.output#}}
節點測試 (無效)
測試文檔提取器
(Excel轉csv失敗了,改成Markdown轉csv)
運行
我的dify見鬼了,提取excel都是空的
只能修改方案了,將后面的Excel轉csv
改成Markdown轉csv
不過提示詞貌似都不用改。
測試提取markdown(沒有問題)
測試運行
點擊預覽,然后上傳文件
在聊天框隨便輸入內容然后發送
然后工作流就會逐個運行,最后輸出結果