Helpers
Helper components 提供實用功能,協助您在 Flow中管理資料並執行簡單任務。
Calculator
Calculator 組件對數學表達式執行基本算術運算。 它支援加法、減法、乘法、除法和指數運算。
如需在 Flow中使用此組件的範例,請參閱 Python Interpreter 組件。
Calculator parameters
| Name | Type | Description |
|---|---|---|
| expression | String | 輸入參數。要評估的算術表達式,例如 4*4*(33/22)+12-20。 |
| result | Data | 輸出參數。計算結果作為包含評估表達式的 Data 物件。 |
Current Date
Current Date 組件以選定的時區傳回目前的日期和時間。此組件提供了一種靈活的方式,在 AgentBuilder Flow中取得特定時區的日期和時間資訊。
Current Date parameters
| Name | Type | Description |
|---|---|---|
| timezone | String | 輸入參數。目前日期和時間的時區。 |
| current_date | String | 輸出參數。選定時區中產生的目前日期和時間。 |
Message History
Message History 組件提供合併的聊天歷史記錄和訊息儲存功能。 它可以從 AgentBuilder 儲存空間 或 專用的聊天記憶資料庫(如 Mem0 或 Redis)儲存和擷取聊天訊息。
Agent 組件預設啟用內建聊天記憶功能,並使用 AgentBuilder 儲存空間。 此內建聊天記憶功能足以滿足大多數使用案例。
在以下使用案例中使用 Message History 組件:
- 您需要為語言模型組件(而非 agent)儲存和擷取聊天記憶。
- 您需要在聊天上下文之外擷取聊天記憶,例如擷取並分析最近儲存記憶的情感分析 Flow。
- 您想要將記憶儲存在與 AgentBuilder 儲存空間分離的特定資料庫中。
如需詳細資訊,請參閱儲存聊天記憶。
在 Flow中使用 Message History 組件
Message History 組件有兩種模式,取決於您要在 Flow中的何處使用它:
- Retrieve 模式:組件從您的 AgentBuilder 資料庫或外部記憶體擷取聊天訊息。
- Store 模式:組件將聊天訊息儲存在您的 AgentBuilder 資料庫或外部記憶體中。
這表示如果您想要同時儲存和擷取聊天訊息,則需要在 Flow中使用多個 Message History 組件。
- 使用 AgentBuilder 儲存空間
- 使用外部聊天記憶體
以下步驟說明如何建立使用 Message History 組件從您的 AgentBuilder 安裝資料庫儲存和擷取聊天記憶的聊天式 Flow:
-
建立或編輯您想要使用聊天記憶的 Flow。
-
在 Flow開始處新增 Message History 組件,然後將其設定為 Retrieve 模式。
根據需要在 Message History 組件中設定任何其他參數,考慮到此特定組件將擷取聊天訊息而非儲存它們。
-
新增 Prompt Template 組件,在 Template 欄 位中新增
{memory}變數,然後將 Message History 輸出連接到 memory 輸入。Prompt Template 組件為 LLM 提供指令和上下文,與通過 Chat Input 組件傳遞的聊天訊息分開。 範本可以包含您想要提供給 LLM 的任何文字和變數,例如:
_10You are a helpful assistant that answers questions._10_10Use markdown to format your answer, properly embedding images and urls._10_10History:_10_10{memory}範本中的變數 (
{variable}) 會動態為 Prompt Template 組件新增欄位,以便您的 Flow可以從其他地方接收這些值的定義,例如其他組件、AgentBuilder 全域變數或執行時期輸入。 如需詳細資訊,請參閱在提示中定義變數。在此範例中,
{memory}變數由擷取的聊天記憶體填入,然後傳遞給 Language Model 或 Agent 組件以為 LLM 提供額外上下文。 -
將 Prompt Template 組件的輸出連接到 Language Model 組件的 System Message 輸入。
此範例使用 Language Model 核心組件作為中央聊天驅動程式,但您也可以使用另一個語言模型組件或 Agent 組件。
-
新增 Chat Input 組件,然後將其連接到 Language Model 組件的 Input 欄位。
-
將 Language Model 組件的輸出連接到 Chat Output 組件。
-
在 Flow結尾處,新增另一個 Message History 組件,然後將其設定為 Store 模式。
根據需要在第二個 Message History 組件中設定任何其他參數,考慮到此特定組件將儲存聊天訊息而非擷取它們。
-
將 Chat Output 組件的輸出連接到 Message History 組件的 Message 輸入。
LLM 的每個回應從 Language Model 組件輸出到 Chat Output 組件,然後由最終的 Message History 組件儲存在聊天記憶體中。
若要從專用的外部聊天記憶體資料庫儲存和擷取聊天記憶體,請使用 Message History 組件 以及 提供者特定的聊天記憶體組件。
以下步驟說明如何建立從 Redis Chat Memory 組件儲存和擷取聊天記憶體的 Flow。 其他選項包括 Mem0 Chat Memory 組件 和 Cassandra Chat Memory 組件。
-
建立或編輯您想要使用聊天記憶體的 Flow。
-
在 Flow開始處新增 Message History 組件和 Redis Chat Memory 組件:
-
新增 Prompt Template 組件,在 Template 欄位中新增
{memory}變數,然後將 Message History 輸出連接到 memory 輸入。Prompt Template 組件為 LLM 提供指令和上下文,與通過 Chat Input 組件傳遞的聊天訊息分開。 範本可以包含您想要提供給 LLM 的任何文字和變數,例如:
_10You are a helpful assistant that answers questions._10_10Use markdown to format your answer, properly embedding images and urls._10_10History:_10_10{memory}範本中的變數 (
{variable}) 會動態為 Prompt Template 組件新增欄位,以便您的 Flow可以從其他地方接收這些值的定義,例如其他組件、AgentBuilder 全域變數或執行時期輸入。 如需詳細資訊,請參閱在提示中定義變數。在此範例中,
{memory}變數由擷取的聊天記憶體填入,然後傳遞給 Language Model 或 Agent 組件以為 LLM 提供額外上下文。 -
將 Prompt Template 組件的輸出連接到 Language Model 組件的 System Message 輸入。
此範例使用 Language Model 核心組件作為中央聊天驅動程式,但您也可以使用另一個語言模型組件或 Agent 組件。
-
新增 Chat Input 組件,然後將其連接到 Language Model 組件的 Input 輸入。
-
將 Language Model 組件的輸出連接到 Chat Output 組件。
-
在 Flow結尾處,新增另一對 Message History 和 Redis Chat Memory 組件:
-
設定 Redis Chat Memory 組件以連接到您的 Redis 資料庫。
-
將 Message History 組件設定為 Store 模式。
-
在 Message History 組件的標題選單 中,按一下 Controls,啟用 External Memory,然後按一下 Close。
根據需要在此組件中設定任何其他參數,考慮到此特定組件將儲存聊天訊息而非擷取它們。
-
將 Redis Chat Memory 連接到 Message History 組件的 External Memory 輸入。
-
-
將 Chat Output 組件的輸出連接到 Message History 組件的 Message 輸入。
LLM 的每個回應從 Language Model 組件輸出到 Chat Output 組件,然後通過傳遞給最終的 Message History 和 Redis Chat Memory 組件儲存在聊天記憶體中。

Message History parameters
某些參數在視覺編輯器中預設為隱藏。 您可以透過 Components的標頭選單 中的 Controls 修改所有參數。
可用的參數取決於組件是處於 Retrieve 還是 Store 模式。
- 擷取模式
- 儲存模式
| Name | Type | Description |
|---|---|---|
Template (template) | String | 輸入參數。用於格式化資料的範本。它可以包含鍵 {text}、{sender} 或訊息資料中的任何其他鍵。 |
External Memory (memory) | External Memory | 輸入參數。從外部記憶體擷取訊息。若為空值,則使用 AgentBuilder 儲存空間。 |
Number of Messages (n_messages) | Integer | 輸入參數。要擷取的訊息數量。預設值:100。 |
Order (order) | String | 輸入參數。訊息的順序。預設值:Ascending。 |
Sender Type (sender_type) | String | 輸入參數。依傳送者類型篩選,User、Machine 或 Machine and User(預設)之一。 |
Session ID (session_id) | String | 輸入參數。要擷取的聊天記憶的工作階段 ID。若省略或為空值,則使用 Flow執行的目前工作階段 ID。 |
| Name | Type | Description |
|---|---|---|
Template (template) | String | 輸入參數。用於格式化資料的範本。它可以包含鍵 {text}、{sender} 或訊息資料中的任何其他鍵。 |
Message (message) | String | 輸入參數。要儲存的訊息,通常由連接 Chat Output 組件提供。 |
External Memory (memory) | External Memory | 輸入參數。在外部記憶體中儲存訊息。若為空值,則使用 AgentBuilder 儲存空間。 |
Sender (sender) | String | 輸入參數。根據傳送者選擇要儲存的訊息,User、Machine 或 Machine and User(預設)之一。 |
Sender Name (sender_name) | String | 輸入參數。若訊息沒有傳送者中繼資料,則使用的備用 sender 標籤。 |
Session ID (session_id) | String | 輸入參數。要儲存的聊天記憶的工作階段 ID。若省略或為空值,則使用 Flow執行的目前工作階段 ID。使用自訂工作階段 ID 如果您需要為不同的使用者或應用程式區隔聊天記憶。 |
Sender Type (sender_type) | String | 輸入參數。依傳送者類型篩選,User、Machine 或 Machine and User(預設)之一。 |
Message History output
記憶體可以以兩種格式之一擷取:
-
Message:將記憶體擷取為
Message物件,包括包含擷取的聊天訊息文字的messages_text。 這是用來將記憶體