跳轉到內容

Code(程式碼執行)

節點概述 ​

節點英文名: Code
節點中文名稱: 程式碼執行
支援場景: Chatflow Agent(支援), Workflow Agent(支援)
迭代版本: 版本 1

功能說明 ​

Code 節點用於執行一段自定義程式碼(如 Python 和 JavaScript),實現特定業務邏輯或計算,輸出結果供後續節點使用。它提供了強大的程式設計能力,允許使用者在工作流中執行自定義的程式碼邏輯。

節點展示內容 ​

程式碼執行節點在畫布上的展示

1. 基本資訊展示 ​

  • 圖示: 節點專用圖示
  • 名稱: 節點名稱
  • 註釋: 使用者新增的說明文字

2. 操作按鈕 ​

  • 更多按鈕: 點選後展示右鍵選單內容
  • 執行按鈕: 點選進入試執行介面

節點編輯區域 ​

程式碼執行節點編輯面板:輸入變數 (arg1/arg2)、PYTHON3 程式碼編輯器 (main 函式)、輸出變數 (result) 與失敗時重試

1. 輸入變數配置 ​

  • 新增變數: 點選後新增一行輸入變數
  • 變數列表: 支援多行變數的展示,支援刪除
  • 變數輸入: 支援多個變數的輸入
  • 變數名: 支援填寫變數名稱
  • 變數值: 支援通過【選擇變數】元件選擇變數值

2. 程式碼輸入框 ​

  • 語言選擇: 支援 Python3 和 JavaScript 兩種型別的選擇
  • 程式碼編輯: 提供程式碼編輯器,支援語法高亮、複製與放大
  • 固定入口: 程式碼需實現 main 函式,返回值為字典,鍵與輸出變數一一對應(如 def main(arg1: str, arg2: str) -> dict: return {"result": arg1 + arg2})

3. 輸出變數配置 ​

  • 變數名稱: 支援填寫變數名稱
  • 變數型別: 支援選擇變數型別
  • 新增刪除: 支援新增和刪除變數
  • 變數類型範圍:
    • String / Array[String]
    • Number / Array[Number]
    • Object / Array[Object]

4. 失敗時重試 ​

  • 開關: 開啟後,程式碼執行失敗時自動重試

5. 下一步配置 ​

  • 支援新增下一個節點

執行邏輯 ​

Code 節點的執行邏輯由後端實現,確保程式碼的正確執行和安全控制。

右鍵操作 ​

右鍵選單包含以下選項:

  1. 更改節點: 修改節點型別
  2. 複製: 複製節點
  3. 複製: 複製節點內容
  4. 刪除: 刪除節點
  5. 幫助連結: 跳轉到幫助文件
  6. 執行節點: 測試運行當前節點

測試執行 ​

  • 支援狀態: 支援測試執行
  • 更改節點: 支援更改節點型別
  • 複製功能: 支援複製、剪貼、刪除操作

程式語言支援 ​

1. Python3 ​

  • 版本: Python 3.x
  • 標準庫: 支援 Python 標準庫(第三方庫以沙箱實際支援為準)
  • 語法: 完整的 Python 語法支援

2. JavaScript ​

JS 模式:語言切換為 JAVASCRIPT,main 函式以解構物件接收輸入變數

  • 版本: Node.js 環境
  • 標準庫: 支援 Node.js 標準庫
  • 語法: 完整的 JavaScript 語法支援
  • 函式簽名: 與 Python 模式不同,JS 的 main 函式以解構物件接收輸入變數——function main({arg1, arg2}),返回物件的欄位對應輸出變數 (如 return { result: ... })

使用場景 ​

1. 資料處理 ​

  • 資料清洗: 清理和格式化資料
  • 資料轉換: 轉換資料格式和型別
  • 資料計算: 執行復雜的數學計算
  • 資料驗證: 驗證資料格式和內容

2. 業務邏輯 ​

  • 條件判斷: 實現複雜的業務規則
  • 演算法實現: 實現特定的演算法邏輯
  • 流程控制: 控制工作流的執行流程
  • 狀態管理: 管理應用狀態

3. 資料解析與加工 ​

  • 資料解析: 解析 JSON 等格式的資料(外部介面呼叫請使用 Http Request / Tool 節點)
  • 批次處理: 批次加工資料
  • 報告生成: 生成結構化的報告內容

最佳實踐 ​

1. 程式碼編寫 ​

  • 清晰命名: 使用清晰的變數和函式命名
  • 註釋說明: 新增必要的註釋說明
  • 錯誤處理: 新增適當的錯誤處理
  • 效能最佳化: 考慮程式碼的執行效能

2. 變數管理 ​

  • 型別安全: 確保變數型別正確
  • 命名規範: 使用一致的命名規範
  • 作用域: 合理管理變數作用域
  • 記憶體管理: 注意記憶體使用

3. 錯誤處理 ​

  • 異常捕獲: 使用 try-catch 處理異常
  • 錯誤日誌: 記錄錯誤資訊
  • 優雅降級: 提供降級處理方案
  • 使用者提示: 提供友好的錯誤提示

4. 安全考慮 ​

  • 輸入驗證: 驗證輸入資料
  • 程式碼注入: 防止程式碼注入攻擊
  • 許可權控制: 控制程式碼執行許可權
  • 資源限制: 限制資源使用

配置步驟 ​

1. 基礎配置 ​

  1. 選擇程式語言(Python3 或 JavaScript)
  2. 配置輸入變數
  3. 編寫程式碼邏輯

2. 程式碼編寫 ​

  1. 定義處理邏輯
  2. 處理輸入變數
  3. 生成輸出結果
  4. 新增錯誤處理

3. 輸出配置 ​

  1. 定義輸出變數
  2. 設定變數型別
  3. 配置變數名稱

4. 測試驗證 ​

  1. 使用試執行功能測試
  2. 檢查程式碼執行結果
  3. 驗證輸出變數

注意事項 ​

  1. 語言選擇: 根據任務特點選擇合適的程式語言
  2. 程式碼質量: 編寫高質量、可維護的程式碼
  3. 效能考慮: 考慮程式碼執行的效能和資源使用
  4. 安全風險: 注意程式碼執行的安全風險
  5. 錯誤處理: 新增適當的錯誤處理機制

常見問題 ​

Q: 支援哪些程式語言? ​

A: 目前支援 Python3 和 JavaScript 兩種程式語言。

Q: 如何新增輸入變數? ​

A: 點選"+"按鈕可以新增新的輸入變數行。

Q: 輸出變數型別有哪些? ​

A: 支援 String、Number、Object 及其對應的 Array 型別。

Q: 程式碼執行有安全限制嗎? ​

A: 是的,程式碼執行有安全限制,不能執行危險操作。

Q: 如何除錯程式碼? ​

A: 可以使用試執行功能來除錯程式碼,檢視執行結果。

幫助資源 ​

  • 幫助文件: 支援跳轉到 Infra 幫助文件
  • 測試執行: 支援節點級別的測試執行