• 使用教程
使用教程
  • 使用教程
加載中...
查無結果
  • 開始使用
    • 歡迎使用 GoInsight.AI
    • 快速入門
  • 知識百科
    • 關鍵概念
    • 知識庫
    • LLM 選擇指南
    • 資料安全性
  • 轻聊机器人
    • 構建輕聊機器人
  • Insight Chat
    • Insight Chat 介紹
  • InsightFlow
    • InsightFlow 介紹
    • InsightFlow的類型
    • 服務與工具
      • 工具
      • 服務
      • Agent 策略
    • 節點
      • 開始節點
      • 回復輸出節點
      • LLM 節點
      • 知識庫檢索節點
      • 文檔讀取節點
      • 檔案寫入節點
      • HTTP 請求節點
      • 知識聚焦大模型節點
      • Agent節點
      • 進度更新節點
      • 工具呼叫節點
      • IF/ELSE 節點
      • 自然語意分類器節點
      • 分支聚合器節點
      • 多分支選擇節點
      • 循環節點
      • 自動繼續節點
      • 文字模板節點
      • 代碼節點
      • JSON 變數提取器節點
      • 自然語意變數提取器節點
      • 變數賦值節點
      • 結束節點
    • 異常處理
      • 節點錯誤處理策略
    • 釋出
      • 發布對話式工作流程
      • 發布服務式工作流
      • 創建你的第一個工作流
  • 團隊管理
    • 訪問控制
    • 使用詳情
首頁 > 使用教程 > InsightFlow > 節點

代碼節點

定義

程式碼節點允許使用者在工作流程中運行 Python 程式碼,以實現自定義資料處理和執行複雜邏輯。

code node

快速入門/如何使用

節點配置說明:在 GoInsight.AI 中,右鍵單擊選擇“新增節點”以將“程式碼”節點新增到工作流程中。

add code node

1. 配置程式碼節點的輸入變數設定

您可以點擊右側的“+”按鈕來新增新的輸入變數。您必須為每個輸入變數指定一個名稱,並從工作流程中選擇對應的變數值。

code input variables
確保輸入變數的資料類型與程式碼中使用的類型匹配,以避免執行錯誤。例如,在 Python 程式碼中執行數學運算時,確保輸入資料類型為數字(Number),否則會導致類型錯誤。

2. 配置程式碼節點的 Python3 參數

您可以在程式碼編輯器中編寫 Python 程式碼來處理和計算輸入變數。程式碼需要定義一個主函數,其會將輸入變數作為參數,並回傳一個字典作為輸出結果。

code-python3
在 Python 中,字典是一種用於儲存鍵值對的資料類型。它是無序且可更改的,鍵是唯一的,可透過鍵快速存取值。
  • 插入變數
    如果您想在編寫程式碼時引用上一個節點的變數,您可以透過輸入
    {
    或
    /
    快速插入變數。
  • AI Python 偵錯工具
    如果您缺乏 Python 背景並且覺得寫程式碼有挑戰性,您可以使用“AI 編碼”功能,此功能利用 AI 技術快速生成高品質的 Python 程式碼。為此,在「您的需求」中,描述務必清晰;步驟越詳細越好。然後,您可以根據 AI 程式碼回傳的修改建議,逐步完善需求描述,並多次重寫您的應用程式,直到成功執行。
  • ai code

3. 配置程式碼節點的變數輸出模式參數

“變數輸出模式”提供兩個選項:“提取欄位”和“整體輸出”。“提取欄位”選項允許使用者直接從程式碼結果中提取特定欄位作為輸出變數,可生成一個或多個輸出。“整體輸出”選項允許使用者將程式碼結果中的整個字典輸出為單個變數,僅會產生一個輸出。

code variable output mode
使用“提取欄位”模式時,請確保回傳語句中的每個鍵都對應到已配置的輸出變數。如果程式碼回傳的任何鍵未在輸出變數中配置,則會出現錯誤訊息。

4. 配置程式碼節點的輸出變數參數

input variables

輸出變數必須輸入一個關聯的「變數名稱」並選擇一個「資料類型」。輸出的「變數名稱」必須與 Python 程式碼回傳語句中的鍵完全匹配,以避免由不匹配引起的錯誤。程式碼節點中的輸出變數資料類型如下:

資料類型 描述
字串 用於儲存文字資訊,例如使用者名稱、地址等。
數字 用於儲存整數或浮點數,用於記錄年齡或價格等數值資料。
布林 布林值類型,只能為真或假,常用於表示邏輯判斷結果。
布林陣列 儲存多個布林值的陣列,例如任務完成狀態的集合。
數字陣列 儲存多個數值的陣列,例如產品價格或數量。
物件陣列 每個元素都是一個物件的陣列,用於儲存複雜資料結構,例如使用者資訊。
字串陣列 可包含多個字串的陣列,例如多個產品名稱或城市名稱。
物件 以鍵值對格式儲存資料,例如詳細的使用者資訊或訂單詳情。

典型用例:

  • 字串串接
    • 此示例程式碼串接兩個輸入變數 arg1 和 arg2,並將結果儲存於輸出變數「result」中。例如,如果 arg1 是“Hello”,arg2 是“World”,那麼 result 的值將是“HelloWorld”。
    • def main(arg1, arg2):
          return {
              "result": arg1 + arg2,
          }
      
    • 在此示例中,“變數輸出模式”可以選擇“提取欄位”將 result 設置為輸出變數,資料類型選擇為字串。可選的“整體輸出”將整個字典
      {"result": "HelloWorld"}
      作為輸出變數,資料類型為物件。
  • 數學運算
    • 此示例程式碼對兩個輸入變數 arg1 和 arg2 執行數學運算(包括加法、減法、乘法和除法),並將結果分別儲存於輸出變數「sum」、「difference」、「product」和「quotient」中。例如,如果 arg1 是 10,arg2 是 5,那麼 sum 將是 15,difference 將是 5,product 將是 50,quotient 將是 2.0。
    • def main(arg1, arg2):
          return {
              "sum": arg1 + arg2,
              "difference": arg1 - arg2,
              "product": arg1 * arg2,
              "quotient": arg1 / arg2,
          }
      
    • 在此示例中,“變數輸出模式”可以選擇“提取欄位”將 sum、difference、product 和 quotient 設置為輸出變數,類型分別為數字。可選的“整體輸出”將整個字典 {"sum": 15, "difference": 5, "product": 50, "quotient": 2.0} 作為輸出變數,類型為物件。
  • 資料過濾
    • 此示例程式碼接受一個輸入變數資料,這是一個陣列,並從中篩選出大於 0 的元素,將結果儲存於輸出變數「filtered_data」中。例如,如果資料是 [-1, 2, -3, 4, 5],那麼 filtered_data 的值將是 [2, 4]。
    • def main(data):
          return {
              "filtered_data": [item for item in data if item > 0],
          }
      
    • 在此示例中,“變數輸出模式”可以選擇“提取欄位”將 filtered_data 設置為輸出變數,類型為數字陣列。可選的“整體輸出”將整個字典 {"filtered_data": [2, 4]} 作為輸出變數,類型為物件。
  • 資料轉換
    • 此示例程式碼接受一個輸入變數資料,這是一個字串陣列,並將其中的每個字串轉換為大寫,將結果儲存於輸出變數「converted_data」中。例如,如果資料是 ["hello", "world"],那麼 converted_data 的值將是 ["HELLO", "WORLD"]。
    • def main(data):
          return {
              "converted_data": [item.upper() for item in data],
          }
      
    • 在此示例中,“變數輸出模式”可以選擇“提取欄位”將 converted_data 設置為輸出變數,類型為字串陣列。可選的“整體輸出”將整個字典 {"converted_data": ["HELLO", "WORLD"]} 作為輸出變數,類型為物件。
  • 異常處理
    • 此示例程式碼對兩個輸入變數 arg1 和 arg2 執行除法運算,並將結果儲存於輸出變數「result」中。如果 arg2 為 0,則捕獲 ZeroDivisionError 異常並回傳儲存於輸出變數「error」中的錯誤訊息。例如,如果 arg1 是 10,arg2 是 0,則 error 的值將是“Division by zero is not allowed.”。
    • def main(arg1, arg2):
          try:
              result = arg1 / arg2
              return {
                  "result": result,
              }
          except ZeroDivisionError:
              return {
                  "error": "Division by zero is not allowed.",
              }
      
    • 在此示例中,“變數輸出模式”可以選擇“提取欄位”將 result 和 error 設置為輸出變數,類型分別為數字和字串。可選的“整體輸出”將整個字典 {"result": 2.0} 和 {"error": "Division by zero is not allowed."} 作為輸出變數,類型為物件。

實際應用場景:

code workflow

以下是從 Instagram 影片中提取評論的步驟:

  • 開始節點
    建立輸入變數(x)Instagram ID
  • 程式碼節點
    使用程式碼節點預處理輸入的 Instagram ID,檢查並移除所有空格及其他符號。如果使用者輸入的是 URL,則程式碼應從 URL 中提取 ID 以進行下一步操作。
  • HTTP 請求節點
    使用 HTTP 節點透過 API 搜尋對應 Instagram 影片的評論。

這將允許對使用者輸入的 Instagram ID 進行程式碼檢查,以確保 ID 的格式始終正確。

注意事項:

  • Python 3 直譯器的特殊限制
    沙盒環境:僅支援 Python 3,只能使用 Python 標準函式庫(例如,datetime、json、re 等)和 requests 函式庫。
  • 不能使用其他第三方函式庫
    (例如,pandas,numpy 等)。
  • 不能讀寫本地檔案
  • 不能將檔案儲存至伺服器
  • 不能存取資料庫

常見問題解答

Q1: 如何解決「主鍵」錯誤?
在輸入變數區域,如果 Python 代碼中的參數名稱與工作流程中定義的輸入參數名稱不匹配,請將它們更改為相同的名稱。
Q2: 如何解決「錯誤缺失」錯誤?
如果代碼中缺少錯誤參數,請添加錯誤輸出參數,類型設為字符串。
Q3: 這與使用 LLM 大模型節點有什麼不同?
LLM 大模型節點無法處理複雜問題,也無法同時處理多個問題,而代碼執行則可以完成各種任務,並具有嚴格的編碼要求,同時可以處理多個複雜操作。
更新於: 2025-09-04
這個頁面有用嗎?
上一篇 文字模板節點
下一篇 JSON 變數提取器節點
討論

發佈評論 取消回覆

你的電子郵件地址不會被公開。 必填位置已標出*

產品相關的問題?聯繫我們的支援團隊以獲取快速解決方案>
本頁內容
  • 定義
  • 快速開始/使用方法
    • 輸入變數
    • Python3
    • 變數輸出模式
    • 輸入變數
  • 典型使用案例
  • 實際案例場景
  • 注意事項
  • 常見問題解答
加載中...
查無結果