跳轉到內容

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 幫助文件
  • 測試執行: 支援節點級別的測試執行