跳至主要内容

機器人整合:平台串接 vs. 自訂前端

整合方式

在部署聊天機器人時,主要可分為兩種整合方式,依據您的使用情境與彈性需求選擇適合的方式:

方式一:整合至現有通訊平台(如 LINE、Slack、Discord)

這種整合方式適合希望快速接入既有平台、不需額外撰寫前端 的使用者。您只需在 APP 的選單中選擇對應平台(如 LINE),即可直接將機器人部署至該平台。

不過,這類通訊平台通常會有一些互動限制,例如:

  • 無法呈現逐字輸出(Streaming Typing Effect)
  • 以 LINE 為例,它不支援模擬輸入文字的打字行為,因此即便您使用 Streaming LLM Completion 模型,訊息仍會以完整塊狀文字方式呈現(fallback)。
  • 訊息將在模型回應完成後一次性送出,而非逐字即時顯示。

若您能接受這些平台限制,這種整合方式會是快速且穩定的選擇。

方式二:自訂前端,使用 Generic(通用)整合模式

若您希望完全自訂聊天介面與互動行為(如逐字輸出、動畫呈現等),則可選擇 Generic 模式

此模式將為您產生一組專屬的 API Endpoint,您可以:

  • 自行撰寫前端介面,與 Asgard 系統透過 HTTP Request 進行串接
  • 完整掌控訊息展示方式、回覆時機與 UI 行為
  • 彈性支援不同平台或裝置需求

這種方式雖需投入一定的開發工時,但換來的是最大的客製化彈性,適合對互動品質有較高要求的場景(如品牌官網導覽、虛擬助理、客服模組等)。

📌 整合方式選擇建議:

整合方式是否需撰寫程式支援打字效果適合場景
LINE / Slack 等平台快速導入、團隊協作、客服訊息
Generic 自訂前端✅ 支援品牌體驗、自定動畫、進階互動

🔧 Getting Started: Build Your First AI App!

STEP 1:Add a New AI App and Name It

完成工作流程(workflow)設計後,接下來將其部署為一個可以對外使用的 AI 機器人。

請依以下步驟新增整合應用(Integration):

  1. 於左側選單中點選 Apps 分頁,進入整合介面
  2. 點選中央的 「+ New Integration」 按鈕,開始建立新的應用接點

App Tab - New Integration

Integration 設定說明:

  • Integration 名稱:暫時命名為 API
  • Description(描述):暫時命名為 API
  • Environment(環境):選擇 main
  • Workflow(工作流程):選擇前面章節中建立的 "Hello" 流程
  • 狀態:請確認 Integration 為「啟用中(Enabled)」
  • API Key 權限:請確認你是此 Bot 的設計者,以確保擁有操作與呼叫該 API 的權限。

在本練習中,你可以自行命名一組 API Key,作為測試用途。後續使用此 Key 即可對剛建立的機器人進行 API 呼叫與驗證。

  • 完成後,請點選 💾 Save(儲存)按鈕,確保Integration已成功建立。

Edit Integration

這樣你的 Integration 就建立完成了!

請回到 Apps 頁面,找到剛剛建立的 Integration 卡片,點選右上角的圖示,並選擇 Integrate

進入後,你將看到系統自動為你產生的幾個 API Endpoint,包含:

  • SSE(Server-Sent Events):支援即時串流回應,適用於 Streaming 類型的 Bot。SSE 回應的格式會與你在 Workflow 預覽模式(Preview)中看到的回覆行為非常相似。
  • Blob:支援二進位資料傳輸,適合上傳檔案等特殊情境。
  • Message:基本訊息觸發點,適用於標準文字互動。

📌 這些 Endpoint 可供你在不同平台或自訂前端中整合使用,實現與 Bot 的互動。

Show Integrate

Endpoints

使用 SSE Endpoint 發送請求

當你使用 SSE(Server-Sent Events) Endpoint 與 AI Bot 進行串接時,請遵循以下格式發送請求。

HTTP Method
  • POST
Headers
名稱說明
X-API-KEY請輸入你在建立 Integration 時所設定的 API Key,用於身份驗證
Request Body 格式

請以 JSON 格式傳送訊息,內容包含以下三個欄位:

{
"action": "RESET_CHANNEL",
"customChannelId": "1",
"customMessageId": "msg-1",
"text": ""
}
欄位名稱說明
action指令動作,設為 "RESET_CHANNEL" 可清除該頻道的上下文與歷史紀錄
customChannelId自定義的頻道 ID,用來識別使用者對話上下文
customMessageId當前訊息的唯一識別碼(用於追蹤回應、日誌)
text留空即可,因為 RESET_CHANNEL 不需實際對話文字

📌 應用場景

  • 使用者點選「重新開始對話」按鈕時觸發
  • 每次開啟新會話時,自動呼叫重置動作
  • 測試 LLM 回應是否在無上下文條件下仍然合理

🧼 對話初始化:開始互動前的 Reset Channel 重置

在每一次機器人對話開始前,系統會先對該使用者的 Channel(頻道)進行初始化,以清空過去的上下文、重設對話狀態,確保此次對話從乾淨的狀態開始。

這個動作通常是透過 API 發送一個包含 action: "RESET_CHANNEL" 的請求來完成。

📌 實際案例說明:Hello Workflow 的初始化動作

以「Hello」這個 Workflow 為例:

  • 當你觸發機器人開始對話時,會發現回應前會出現一段 微小的停頓時間
  • 這段時間實際上不是延遲,而是系統正在進行 Channel 初始化 的動作。
  • 初始化完成後,才會執行 Entry → Push Message 的流程,發送歡迎訊息。

Channel Initiation

📡 SSE 回應格式:由一連串事件組成的串流式資料

當你呼叫 SSE(Server-Sent Events)Endpoint 時,回應資料不會像傳統 HTTP 一樣一次性傳回,而是以串流(Streaming)方式逐步送出。這種串流式回應是由一系列的 事件(event) 所組成,每個事件都代表對話過程中的一個階段或資料片段。

🧩 事件流程結構(Event Sequence)

SSE 回應通常包含以下事件順序:

  1. run:init
    • 表示對話流程初始化開始
    • 系統已接收訊息並準備執行流程
  2. run:delta / run:data****(多次)
    • 主體輸出階段
    • AI 模型回應內容將以逐段訊息送出,每次一小段
  3. (可選)****run:log / run:debug
    • 若有開啟除錯,可包含流程執行細節或除錯資訊
  4. run:done
    • 串流回應結束
    • 表示本次流程與訊息回覆已完成,可進行下一步處理

🧾 每則訊息的三個組成階段:start、delta、complete

在使用 Streaming LLM Completion 串接聊天機器人時,每一則回應訊息會被拆分為以下三個階段,依序透過 SSE(Server-Sent Events)回傳給前端:

第一階段:start

  • 表示回應輸出的起點
  • 常用於初始化回應區塊、顯示「AI 正在輸入中」的提示
  • 不含實際內容,僅代表一段新訊息即將開始

第二階段:delta

  • 核心回應階段
  • 每段文字會以小片段(token 或字串)逐步送出
  • 前端可即時將內容「逐字顯示」在畫面上,模擬打字效果
  • 此階段可能包含多則 delta 事件,直到訊息輸出完畢為止

第三階段:complete

  • 表示回應結束,包含完整的結構化資料
  • 通常會附帶如:
    • 最終組合的輸出文字(例如 answer
    • 流程執行摘要或狀態代碼
  • 前端可藉此階段關閉「輸入中」動畫,或觸發下一步操作
📌 補充說明
  • 這三個階段會依序透過不同 event 傳送給前端,每一段都可用來更新畫面狀態。
  • 若串流中斷或模型錯誤,可能只收到 start 或部分 delta,此時可由系統觸發 errorfallback 機制。

▶️ 下一步

在下一個練習介紹其他 Processor:情緒判斷助手中,我們將進一步學習如何製作一個具備 AI 回應能力的自動聊天機器人,讓系統能根據使用者輸入即時生成自然語言回覆。這將結合大型語言模型(LLM)與工作流程設計,打造出更智慧、互動性更強的對話體驗。