跳至主要内容

介紹

伺服器傳送事件 (Server-Sent Events) 的端點 (Endpoint) 是客戶端 (Client Side) 與伺服器傳送事件建立連結的介面,用於接收從伺服器 (Server) 發出的訊息 (Messages) 和事件 (Events)。 這些訊息包含各種內容,例如 Agent 或 Bot 發送的訊息、系統事件、終端用戶訊息等。一旦呼叫了端點,客戶端就會保持連線開啟並接收來自伺服器的事件。

Request

常見的請求事件有分為四種,分別是:

  • 啟動/重置
  • 發送訊息
  • 上傳檔案
  • 附加檔案並發送訊息

請求事件流程圖

實際應用範例

想了解如何在實務上傳送對話指令?
請參考下方的請求操作教學,內含完整 JSON 範例與應用說明:

Response

事件類型依據前後順序,主要分成六種,彙整如下:

Event Types

名稱描述
asgard.run.initSSE 服務初始化事件
asgard.message.start對話的起始(可能包含初始文字)
asgard.message.delta對話的內容更新(打字機效果,逐字傳送)
asgard.message.complete對話的結束(完整文字 + Template 格式)
asgard.run.doneSSE 服務事件完成
asgard.run.errorSSE 服務事件錯誤,有發生錯誤時才會出現

事件開始必須先初始化,才會開始訊息的傳送,訊息分成開始、持續以及完成等階段,其中訊息持續的階段,可能會有多個 delta 直至訊息完成為止,可利用 idx 來觀察訊息的次序。訊息完成後才會接續著一個事件的完成。

事件流程圖

Fact Fields

參考Fact 表格整理事件內的欄位如下:

名稱描述
runInitinit 回傳內容
runDonedone 回傳內容
runErrorerror 回傳內容
messageStart訊息的開始,message 物件支援欄位有:
messageId, replyToCustomMessageId, text, payload, isDebug, idx, template
messageDelta訊息的疊加,message 物件支援欄位有:
messageId, replyToCustomMessageId, text, payload, isDebug, idx, template(省略為 null)
idx 為識別該段訊息的次序,參考底下 Delta 範例。
messageComplete訊息的完成,message 物件支援欄位有:
messageId, replyToCustomMessageId, text, payload, isDebug, idx, template