跳至主要内容

REFERENCE

開發者參考

認證、API、SDK、Flow Agent 處理節點與參數取值的完整參考。

Asgard 內建輔助函數

Asgard 為 Handlebars 模板系統提供 8 個專用的內建輔助函數。

📖 基礎 Handlebars 語法
建議先閱讀 Handlebars 官方指南 了解基本語法。

  1. 對話歷史函數​

    history​

    透過指定的索引區間,取得目前頻道的歷史對話紀錄清單

    {{{history 0 2}}}
    <!-- 回傳索引 0, 1, 2 的三筆對話 -->
    {{{history -3 -1}}}
    <!-- 回傳倒數第 3 筆至最後一筆的對話 -->
    {{{history 0 -1}}}
    <!-- 回傳所有對話 -->

    參數:

    • start:起始位置(0 開始,支援負數倒數)
    • end:結束位置(包含該位置,支援負數倒數)

    historySize​

    取得目前頻道的歷史對話紀錄數量

    {{{historySize}}} <!-- 輸出:5 -->
  2. 資料處理函數​

    toJson​

    將任意值轉換成 JSON 格式的字串

    {{{toJson user}}} <!-- 將 user 物件轉換為 JSON 字串 -->

    urlEncode​

    將字串進行 URL 編碼

    {{{urlEncode 'hello world'}}}
    <!-- 輸出:hello%20world -->
    {{{urlEncode searchQuery}}}
    <!-- 將變數進行 URL 編碼 -->

    xpathExtract​

    利用 XPath 在 XML 文件中進行查找

    {{{xpathExtract xmlData '/root/item'}}}

    參數:

    • xml:XML 文件內容
    • path:XPath 查詢語法

    範例:

    <!-- 輸入 XML:<root><item>1</item><item>2</item></root> -->
    <!-- 輸出:1\n2 -->

    vecToStr​

    將向量陣列轉換為字串格式

    {{{vecToStr vector '{' '}' ','}}} <!-- [1,2,3] → {1,2,3} -->

    參數:

    • vector:向量陣列
    • prefix:開頭字符
    • suffix:結尾字符
    • delimiter:分隔符
  3. 日期時間函數​

    isoNow​

    回傳特定時區當前日期時間的 RFC3339 格式字串

    {{{isoNow 'Asia/Taipei'}}} <!-- 2025-05-27T01:08:44+08:00 -->

    isoToday​

    回傳特定時區當前日期的 RFC3339 格式字串

    {{{isoToday 'Asia/Taipei'}}} <!-- 2025-05-27 -->
  4. 實用範例​

    系統狀態報告​

    🤖 系統狀態 -
    {{{isoNow 'Asia/Taipei'}}}

    📊 對話統計:{{{historySize}}}
    則 📝 最近對話:
    {{{history -3 -1}}}

    🔧 系統設定:
    {{{toJson systemConfig}}}

    API 查詢處理​

    🔍 查詢:{{{urlEncode searchTerm}}}
    📄 XML 結果:{{{xpathExtract responseXml '//result/item'}}}
    🔢 向量:{{{vecToStr embeddings '[' ']' ','}}}
    ⏰ 處理時間:{{{isoNow 'Asia/Taipei'}}}
  5. 最佳實踐​

    1. 對話歷史:使用 history 和 historySize 實現上下文感知
    2. 資料安全:URL 參數務必使用 urlEncode 編碼
    3. 時區處理:明確指定時區參數
    4. JSON 格式:使用 toJson 確保正確的 JSON 輸出
    5. XML 查詢:確保 XPath 語法正確
    6. 向量處理:根據需求選擇適當的分隔符

    這些內建函數讓您能在 Handlebars 模板中輕鬆處理對話歷史、資料轉換和格式化需求。

準備好開始了嗎?

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

聯絡我們