Skip to main content

Helpers

Helper components 提供實用功能,協助您在 Flow中管理資料並執行簡單任務。

Calculator​

Calculator 組件對數學表達式執行基本算術運算。 它支援加法、減法、乘法、除法和指數運算。

如需在 Flow中使用此組件的範例,請參閱 Python Interpreter 組件。

Calculator parameters​

NameTypeDescription
expressionString輸入參數。要評估的算術表達式,例如 4*4*(33/22)+12-20。
resultData輸出參數。計算結果作為包含評估表達式的 Data 物件。

Current Date​

Current Date 組件以選定的時區傳回目前的日期和時間。此組件提供了一種靈活的方式,在 AgentBuilder Flow中取得特定時區的日期和時間資訊。

Current Date parameters​

NameTypeDescription
timezoneString輸入參數。目前日期和時間的時區。
current_dateString輸出參數。選定時區中產生的目前日期和時間。

Message History​

Message History 組件提供合併的聊天歷史記錄和訊息儲存功能。 它可以從 AgentBuilder 儲存空間 或 專用的聊天記憶資料庫(如 Mem0 或 Redis)儲存和擷取聊天訊息。

tip

Agent 組件預設啟用內建聊天記憶功能,並使用 AgentBuilder 儲存空間。 此內建聊天記憶功能足以滿足大多數使用案例。

在以下使用案例中使用 Message History 組件:

  • 您需要為語言模型組件(而非 agent)儲存和擷取聊天記憶。
  • 您需要在聊天上下文之外擷取聊天記憶,例如擷取並分析最近儲存記憶的情感分析 Flow。
  • 您想要將記憶儲存在與 AgentBuilder 儲存空間分離的特定資料庫中。

如需詳細資訊,請參閱儲存聊天記憶。

在 Flow中使用 Message History 組件​

Message History 組件有兩種模式,取決於您要在 Flow中的何處使用它:

  • Retrieve 模式:組件從您的 AgentBuilder 資料庫或外部記憶體擷取聊天訊息。
  • Store 模式:組件將聊天訊息儲存在您的 AgentBuilder 資料庫或外部記憶體中。

這表示如果您想要同時儲存和擷取聊天訊息,則需要在 Flow中使用多個 Message History 組件。

以下步驟說明如何建立使用 Message History 組件從您的 AgentBuilder 安裝資料庫儲存和擷取聊天記憶的聊天式 Flow:

  1. 建立或編輯您想要使用聊天記憶的 Flow。

  2. 在 Flow開始處新增 Message History 組件,然後將其設定為 Retrieve 模式。

    根據需要在 Message History 組件中設定任何其他參數,考慮到此特定組件將擷取聊天訊息而非儲存它們。

  3. 新增 Prompt Template 組件,在 Template 欄位中新增 {memory} 變數,然後將 Message History 輸出連接到 memory 輸入。

    Prompt Template 組件為 LLM 提供指令和上下文,與通過 Chat Input 組件傳遞的聊天訊息分開。 範本可以包含您想要提供給 LLM 的任何文字和變數,例如:


    _10
    You are a helpful assistant that answers questions.
    _10
    _10
    Use markdown to format your answer, properly embedding images and urls.
    _10
    _10
    History:
    _10
    _10
    {memory}

    範本中的變數 ({variable}) 會動態為 Prompt Template 組件新增欄位,以便您的 Flow可以從其他地方接收這些值的定義,例如其他組件、AgentBuilder 全域變數或執行時期輸入。 如需詳細資訊,請參閱在提示中定義變數。

    在此範例中,{memory} 變數由擷取的聊天記憶體填入,然後傳遞給 Language Model 或 Agent 組件以為 LLM 提供額外上下文。

  4. 將 Prompt Template 組件的輸出連接到 Language Model 組件的 System Message 輸入。

    此範例使用 Language Model 核心組件作為中央聊天驅動程式,但您也可以使用另一個語言模型組件或 Agent 組件。

  5. 新增 Chat Input 組件,然後將其連接到 Language Model 組件的 Input 欄位。

  6. 將 Language Model 組件的輸出連接到 Chat Output 組件。

  7. 在 Flow結尾處,新增另一個 Message History 組件,然後將其設定為 Store 模式。

    根據需要在第二個 Message History 組件中設定任何其他參數,考慮到此特定組件將儲存聊天訊息而非擷取它們。

  8. 將 Chat Output 組件的輸出連接到 Message History 組件的 Message 輸入。

    LLM 的每個回應從 Language Model 組件輸出到 Chat Output 組件,然後由最終的 Message History 組件儲存在聊天記憶體中。

Message History parameters​

某些參數在視覺編輯器中預設為隱藏。 您可以透過 Components的標頭選單 中的 Controls 修改所有參數。

可用的參數取決於組件是處於 Retrieve 還是 Store 模式。

NameTypeDescription
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。

Message History output​

記憶體可以以兩種格式之一擷取:

  • Message:將記憶體擷取為 Message 物件,包括包含擷取的聊天訊息文字的 messages_text。 這是用來將記憶體 作為聊天訊息 傳遞給另一個組件的典型輸出格式。

  • DataFrame:將記憶體作為包含訊息資料的 DataFrame 傳回。 適用於您需要以表格格式擷取記憶體而非聊天訊息的情況。

您可以在組件的輸出連接埠附近設定輸出類型。

舊版 Helper 組件​

舊版Components不再受支援,並且可能在未來版本中被移除。 您可以繼續在現有 Flow 中使用它們,但建議您盡快將它們替換為受支援的Components。 建議的替換方案包含在 Flow 中Components上的 Legacy 橫幅中。 它們也會在發行說明和 AgentBuilder 文件中盡可能提供。

如果您不確定如何替換舊版Components,請按提供者、服務或Components名稱 Search Components。 Components可能已被棄用,取而代之的是完全新的Components、類似的Components,或同一類別中同一Components的較新版本。

如果沒有明顯的替換方案,請考慮另一個Components是否可以適應您的使用案例。 例如,許多 Core components 提供通用功能,可以支援多個提供者和使用案例,例如 API Request Components。

如果這些選項都不可行,您可以使用舊版Components的程式碼建立自己的自訂Components,或在 GitHub 上開始討論 關於舊版Components。

為了阻止在新 Flow 中使用舊版Components,這些Components預設為隱藏。 在視覺編輯器中,您可以點擊 Component settings 來切換 Legacy 篩選器。

以下 Helper 組件處於舊版狀態:

  • Message Store:由 Message History 組件 取代

  • Create List:以 Processing 組件 取代

  • ID Generator:以執行任意程式碼來產生 ID 的組件取代,或將 ID 產生器指令碼嵌入您的應用程式程式碼(在您的 AgentBuilder FLOW之外)。

  • Output Parser:以 Structured Output 組件 和 Parser 組件 取代。 您需要的組件取決於資料類型和解析任務的複雜性。

    Output Parser 組件將語言模型的輸出轉換為逗號分隔值 (CSV) 格式,例如 ["item1", "item2", "item3"],使用 LangChain 的 CommaSeparatedListOutputParser。 Structured Output 組件是此組件的良好替代方案,因為它也使用自訂結構描述格式化 LLM 回應,並支援更複雜的解析。

    Parsing 組件僅提供格式化指令和解析功能。 它們不包含提示。 您必須將解析器連接至 Prompt Template 組件來建立 LLM 可以使用的提示。

Search