跳至主要内容

DOCS

幫助與社群

常見問題、延伸閱讀、配額說明、版本資訊與詞彙表。

如何取得對話內容上下文

在 Asgard 中建立 AI 聊天機器人或互動式流程時,理解訊息的上下文 是提升回應品質的關鍵。不論是引導大型語言模型(LLM)根據過往對話產生回應,還是建立具備記憶能力的互動流程,能夠存取對話歷史都是不可或缺的功能。

Asgard 提供兩種常用的方式來取得使用者的對話內容:prevMessage 與 history(start, end)。這兩者雖然都能用來讀取對話,但使用情境和靈活度上有所不同。

本篇文章將帶你深入了解 prevMessage及history(start, end) 的語法邏輯,說明取得對話紀錄的重要性,並透過範例展示它如何在工作流程中發揮關鍵作用。

  1. prevMessage​

    在 使用 Expression 建立 Echo 機器人 的教學中,使用了 prevMessage 作為表達式,代表機器人將讀取上一則訊息作為Echo Message的輸出內容。

    • 用途:取得「上一則訊息」的內容
    • 語法簡單:使用方便,適合處理單輪對話
    • 範例語法:
    prevMessage
    • 適合情境:
      • Echo bot 回覆上一則訊息
      • 單一指令或單輪查詢的快速回應
  2. history(start, end)​

    在 對 AI 能做什麼感到好奇嗎?來學習製作一個 AI 聊天機器人吧 的教學,Prompt(提示語) 中 Template 模式使用了 history(0, -1) 以取得目前流程中所有過去的訊息紀錄,從第一則到最新一則,提供完整的對話脈絡給後續處理節點使用,例如用於 AI 生成回覆、維持對話邏輯一致性,或將使用者輸入記錄下來做後續分析。

    • 用途:取得整段或特定區段的對話歷史
    • 語法靈活:可指定起始與結束位置,適合處理多輪對話或上下文推理
    • 範例語法:
    // 取得完整歷史 
    history(0, -1)

    // 取得最近三則訊息
    history(-3, -1)

    // 把對話的上一句話列為參考,判斷該句的情緒
    history(-1, -1)
    參數說明
    0表示從 第一則訊息(最舊)開始
    -1表示直到 最後一則訊息(最新)

    因此,history(0, -1) 的意思是:取得目前對話中所有的歷史訊息,從頭到尾完整訊息紀錄。

    • 適合情境:
      • LLM Chatbot 回應需依據上下文生成答案
      • 多輪互動、記憶性任務、摘要、分析等
  3. 應用場景範例​

    • 在撰寫 LLM Prompt 時,可用 history(0, -1) 將整段對話內容傳入模型,讓 AI 回應具備上下文理解能力。
    • 搭配系統提示語可形成以下格式:
    You are a helpful assistant. Here is the conversation so far:
    {{ history(0, -1) }}
    • 若只需最近一則訊息,可使用 prevMessage 或 history(-1)
    Bot: hello!User: 一年有幾個月Bot: 一年有12…User: 經典賽...Bot: 日本
    01234
    -5-4-3-2-1

準備好開始了嗎?

想知道 Asgard 怎麼用在你的團隊?跟我們聊聊。

聯絡我們