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

快速入門/如何使用
節點配置說明:在 GoInsight.AI 中,右鍵單擊選擇“新增節點”以將“程式碼”節點新增到工作流程中。

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

確保輸入變數的資料類型與程式碼中使用的類型匹配,以避免執行錯誤。例如,在 Python 程式碼中執行數學運算時,確保輸入資料類型為數字(Number),否則會導致類型錯誤。
2. 配置程式碼節點的 Python3 參數
您可以在程式碼編輯器中編寫 Python 程式碼來處理和計算輸入變數。程式碼需要定義一個主函數,其會將輸入變數作為參數,並回傳一個字典作為輸出結果。

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

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

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

輸出變數必須輸入一個關聯的「變數名稱」並選擇一個「資料類型」。輸出的「變數名稱」必須與 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, }
資料過濾
- 此示例程式碼接受一個輸入變數資料,這是一個陣列,並從中篩選出大於 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], }
資料轉換
- 此示例程式碼接受一個輸入變數資料,這是一個字串陣列,並將其中的每個字串轉換為大寫,將結果儲存於輸出變數「converted_data」中。例如,如果資料是 ["hello", "world"],那麼 converted_data 的值將是 ["HELLO", "WORLD"]。
def main(data): return { "converted_data": [item.upper() for item in data], }
異常處理
- 此示例程式碼對兩個輸入變數 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.", }
實際應用場景:

以下是從 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 大模型節點無法處理複雜問題,也無法同時處理多個問題,而代碼執行則可以完成各種任務,並具有嚴格的編碼要求,同時可以處理多個複雜操作。
發佈評論