內建變數
Asgard Expression 與 Template 系統提供內建變數,讓您能夠在工作流程中動態存取對話資料、檔案資訊和頻道狀態。
內建變數清單
對話相關變數
prevMessage
- 型別:
string - 說明:前一則使用者訊息內容
- 用法:
// Expression
prevMessage || '無訊息'
prevBlobs
- 型別:
array<Blob> - 說明:前一則訊息的檔案清單
- 用法:
// Expression
prevBlobs && prevBlobs.length > 0 ? `收到 ${prevBlobs.length} 個檔案` : '沒有檔案'
prevPayload
- 型別:
object - 說明:前一則訊息的載荷資料
- 用法:
// Expression
prevPayload && prevPayload.userAction
prevError
- 型別:
string - 說明:最近一次處理器錯誤訊息
- 用法:
// Expression
prevError ? `發生錯誤:${prevError}` : '處理正常'
頻道相關變數
customChannelId
- 型別:
string - 說明: 自定義頻道 ID
- 用法:
// Expression
`頻道:${customChannelId}`
customMessageId
- 型別:
string - 說明:前一則訊息的客製化 ID(如果 client 無提供則為空字串)
- 用法:
// Expression
customMessageId || '無自定義 ID'
Blob 物件結構
interface Blob {
blobId: number; // Blob 檔案的識別 ID
fileType: FileType; // 檔案類型
fileName?: string; // 原始檔名(可選)
size: number; // 檔案大小(bytes)
mime: string; // MIME 類型
}
type FileType = 'BINARY' | 'IMAGE' | 'VIDEO' | 'AUDIO' | 'DOCUMENT';
變數存取方式
安全存取模式
Expression 模式
// 檢查變數存在性
prevMessage && prevMessage.length > 0 ? prevMessage : '無訊息'
// 使用邏輯運算符
prevMessage || '預設訊息'
// 安全存取陣列
prevBlobs && prevBlobs[0] && prevBlobs[0].fileName
// 檢查物件屬性
prevPayload && 'property' in prevPayload ? prevPayload.property : '預設值'
Template 模式