1. 什麼是 InsightFlow?
InsightFlow 是 GoInsight.AI 的核心模組之一。它讓企業可以透過拖放介面,視覺化設計並自動化業務流程,協調跨系統操作、資料傳輸規則、條件邏輯及其他業務工作流程。
每個工作流程由多個節點組成,例如知識庫檢索、LLM,以及 HTTP 請求節點,並透過邏輯鏈接連接起來。透過節點間的動態資料傳輸,非技術使用者也能輕鬆配置複雜的業務流程,並在不需編碼的情況下構建企業級自動化。

核心概念
- 節點:節點是工作流程的核心組件,每個節點負責執行特定任務。
- 變數:變數用於工作流程中儲存和傳輸資料,使流程中的不同節點可以共享資訊。
快速指南:
- 快速入門:從內建模板開始。
- 基本配置:包括建立、連接和配置節點。
- 測試工作流程:調試工作流程,使用檢查清單確認所有關鍵配置正確設置,並查看調試歷史。
- 執行:保存、發布並分享您的工作流程。
2. 節點
節點是工作流程中的獨立操作單元,代表特定任務、事件或決策點。每個節點執行特定功能,並根據其配置和輸入條件決定下一步的執行路徑。
節點透過鏈接連接,形成完整的工作流程結構,讓數據和操作在流程中順暢流動。
2.1 基本節點
GoInsight.AI 提供以下基本節點。每個節點都有其獨特功能,您可以靈活組合這些節點,以滿足各種業務需求。
-
起始節點起始節點是工作流程的入口點。主要用於初始化流程並為後續節點提供必要的輸入資訊。您可以在此添加不同類型的變數,以便後續節點能正確處理和使用資料。
結束節點此節點僅適用於服務式工作流程。結束節點是工作流程的終止點,允許您從上游節點中選擇輸出變數。每個工作流程至少需要一個結束節點,以確保完整性。此節點支援多分支設計,以構建更複雜的流程邏輯。
進度更新此節點僅適用於對話式工作流程。當工作流程到達該節點時,會輸出工作流程的執行進度。
回復輸出此節點僅適用於對話式工作流程。用於輸出處理後的資料或訊息。
智能代理此節點具有「智能決策 + 工具呼叫」功能。它允許大型語言模型 (LLM) 根據代理策略在執行時自主選擇和呼叫工具,以完成多步驟推理或操作。
大型語言模型 (LLM)使用大型語言模型 (LLM) 處理輸入資料並生成進階自然語言輸出。此節點靈活支援多種角色設定和提示格式,協助您精確配置模型的行為。
知識庫檢索從工作區文件中檢索與輸入問題相關的資訊並返回結果。返回的結果也可用於其他節點(例如大型語言模型節點)進行進一步處理。您可以設定相關性閾值和 TopK 以獲取最相關的知識內容,支援下游決策和資訊獲取。
檔案讀取檔案讀取節點從工作區讀取檔案內容,並將其儲存到變數中,供工作流程中的後續節點使用。
檔案刪除刪除指定的工作區檔案。
檔案寫入檔案寫入節點將資訊寫入知識庫檔案,方便在工作流程中建立或更新知識庫檔案內容。
HTTP 請求透過發送 HTTP 請求並處理回應資料,與外部 API/服務互動。透過此節點,您可以靈活存取和操作遠端資源。您可以選擇不同的 HTTP 方法,並配置請求 URL、標頭、參數和主體以與外部 API/服務互動。
知識聚焦大型語言模型此節點僅適用於對話式工作流程。GoInsight.AI 的大型語言模型 (LLM) 專為安全、文件專屬的問答而設計。它不會回答超出您資料範圍的問題,並受到保護,防止未經授權的指令。
IF/ELSE根據不同條件選擇分支。它支援使用 AND/OR 組合多個條件。透過特定的條件檢查,您可以控制工作流程執行路徑並建立更靈活的控制邏輯。
問題分類器將輸入文字分類到預定義的類別中。此節點使用大型語言模型 (LLM) 推理來識別文字所屬的類別,協助您快速路由和處理相關問題。
分支聚合器合併工作流程中不同分支的結果。它將每個分支的變數值匯總為統一輸出,以便於下游處理。此節點通常在 IF/ELSE 或多分支選擇器之後使用。
多分支選擇器根據輸入變數的值選擇分支。您可以定義多個案例(條件)。節點透過將輸入值與每個案例進行比較來決定執行哪個分支。
循環根據計數或集合多次運行子流程,將指定的資料逐輪傳遞到子流程中並匯總輸出。這對於批次處理、批量呼叫或生成資料列表非常有用。
互動表單在工作流程中定義用於資料收集的結構化表單。當工作流程運行到此節點時,它會根據您的配置在後端生成一個表單實例——此節點不會將表單發送給使用者。它僅定義表單的結構/內容並生成表單存取連結。此節點通常與「暫停與恢復」節點一起使用,先暫停工作流程,然後在表單提交、取消、逾時或撤銷後沿指定分支繼續。
暫停與恢復暫停(掛起)目前工作流程並等待外部動作結果。在提交/取消/逾時/撤銷事件發生後,它會根據預設的恢復條件和分支恢復執行。
延遲在繼續之前,將工作流程延遲指定的時間。
自動繼續使用「自動繼續」節點來決定:如果不需要人工介入,代理會自動繼續;如果需要,則將決定權留給人工。
模板透過定義模板和輸入變數,讓您動態生成文字輸出。支援 Jinja2 和 Go 文字模板語法。
程式碼執行運行自訂程式碼以執行特定的計算或資料處理任務。
JSON 變數提取器從 JSON 格式的資料中提取特定的變數或值。
變數賦值為變數設定特定值。
變數提取器設定或更新工作流程中用於後續節點的變數值。
自然語言參數提取器呼叫大型語言模型 (LLM) 識別和分析自然語言輸入,然後提取並輸出您預定義的結構化變數/參數值。
工具呼叫動態呼叫帳戶下現有的工具。
2.2 工具
工具是 GoInsight.AI 中的核心組件,可擴展企業工作流程的功能。GoInsight.AI 提供豐富的內建工具集合,也提供工作流程引擎,允許企業根據其特定需求建立自訂工具。
2.3 服務
服務允許使用者將複雜的工作流程發布為可重複使用的服務,供其他工作流程呼叫。
3. 變數
變數用於在工作流程中儲存和傳輸資料,使不同節點能夠共享資訊。根據其範圍和用途,變數可分為不同類型。
3.1 系統變數
系統變數是工作流程中預定義的系統級參數。它們可以被其他節點全域存取。
對話式工作流程提供以下系統變數:
| 變數 | 資料類型 | 描述 |
|---|---|---|
| Query | String | 使用者的輸入問題/內容。 |
| Date | String | 目前工作流程開始運行的日期,使用 UTC 時間,格式為 yyyy-MM-dd |
| Time | String | 目前工作流程開始運行的時間,使用 UTC 時間,格式為 HH:mm:ss |
| TimeOffset | Number | 使用者(瀏覽器)相對於 UTC 的時區偏移量(以分鐘為單位)。例如,UTC+8 是 480。如果無法收集,則為 0(對應於 UTC 時間)。 |
| $LastAnswer | String | 儲存前一次輪次的輸出。 |
| $LastAnswerRole | String | 儲存前一次回復中使用的角色名稱。 |
| $Round | Number | 在自動繼續對話中,表示目前的輪次。 |
| $IsAutoContinue | Bool | 目前對話是否處於自動繼續模式。 |
| $ChatHistory | Array[Object] | 聊天歷史記錄,包括歷史問答和權杖計數。 |
| $UserFiles | Array[File] | 使用者上傳的檔案。關閉按鈕後,檔案上傳入口將在聊天使用者介面中隱藏。 |
| $TargetWorkflowID | String | 在協同工作台中,透過@指定的工作流程ID。 |
| $IsCollaboration | String | 「True」表示群組聊天;否則為協同工作台中正常的單一使用者聊天。 |
| $BrowserIP | String | 使用者瀏覽器的IP位址。 |
| $BrowserUserAgent | String | 使用者瀏覽器的UserAgent。 |
| $WorkflowID | String | 目前正在執行之工作流程的唯一識別碼。 |
| $BatchID | String | 此工作流程執行的批次ID。 |
| $UserID | String | 用於識別使用者的唯一ID;可用於跨多個會話追蹤同一使用者。 |
| $UserDisplayName | String | 使用者的顯示名稱。 |
| $UserInfo | String | 使用者的資訊。 |
| BrowserLang | String | 使用者瀏覽器語言,例如:zh-CN/en-US。 |
| $SessionID | String | 目前的問答會話。 |
| $PersonalDataPath | String | 目前工作流程執行者文件中「個人資料」目錄的路徑。 |
服務式工作流程提供以下系統變數:
| 變數 | 資料類型 | 描述 |
|---|---|---|
| UTCDate | String | 目前工作流程開始運行的日期,使用 UTC 時間,格式為 yyyy-MM-dd |
| UTCTime | String | 目前工作流程開始運行的時間,使用 UTC 時間,格式為 HH:mm:ss |
| $BrowserIP | String | 使用者瀏覽器的IP位址。 |
| $BrowserUserAgent | String | 使用者瀏覽器的UserAgent。 |
| $ABEvent | Object | 當AirDroid Business警報觸發時,包含裝置詳細資訊、觸發原因和自動化執行結果。您可以使用此資訊進行進一步的AI分析,並運行更複雜的自動化流程。 |
| $WorkflowID | String | 工作流程 ID。 |
| $BatchID | String | 此工作流程執行的批次ID。 |
| $UserID | String | 用於識別使用者的唯一ID;可用於跨多個會話追蹤同一使用者。 |
| $UserDisplayName | String | 使用者的顯示名稱。 |
| $UserInfo | String | 使用者的資訊。 |
| BrowserLang | String | 使用者瀏覽器語言,例如:zh-CN/en-US。 |
| $SessionID | String | 目前的問答會話。 |
| $PersonalDataPath | String | 目前工作流程執行者文件中「個人資料」目錄的路徑。 |
3.2 會話變數
會話變數在每次工作流程執行期間儲存和傳輸資料。每個工作流程會話都有其獨立的會話變數,這表示不同會話的變數互不影響。
3.3 內部變數
內部變數只能在工作流程內部存取和可見。它們無法從外部存取或呼叫。
它們主要用於儲存工作流程執行期間所需的臨時資料、中間狀態或配置資訊,例如:
- 工作流程循環中使用的計數器或工具呼叫的臨時快取。
- 節點之間傳遞的中間計算結果,不對外公開。
- 預設工作流程配置,例如逾時設定或內部狀態標誌。
內部變數設計為保持內部性,原因如下:
- 封裝:隱藏工作流程實作細節,防止外部使用者透過意外修改影響工作流程邏輯。
- 安全性:防止敏感的中間資料或配置資訊被外部存取。
- 簡潔性:透過讓使用者僅關注輸入和輸出,而無需理解內部執行邏輯,從而降低外部呼叫的複雜性。
當工作流程從外部呼叫時,對內部變數(受保護)的存取會受到限制。它們不會被外部公開或傳遞。

發佈評論