跳至主要内容

自訂 Payload

onBeforeSendMessage 讓你在訊息送出前自訂 payload,把當前頁面、 使用者狀態、feature flag 等 context metadata 一起送給 bot — 讓 bot 不只看到使用者打的文字,還能根據完整脈絡產生回應。

選擇 Context

選擇一個分類,會被注入到所有送出的訊息中。

透過 ref 發送

Payload 日誌

發送一則訊息即可看到被注入的 payload。
聊天機器人載入中…

程式範例

const [category, setCategory] = useState<Category | null>(null);

<Chatbot
onBeforeSendMessage={(params) => ({
...params,
payload: {
categoryId: category?.id,
categoryName: category?.name,
injectedAt: new Date().toISOString(),
},
})}
{...rest}
/>;

SendMessageParams

onBeforeSendMessage 接收並回傳的參數結構:

欄位型別說明
textstring使用者輸入的文字
payloadRecord<string, unknown> | (() => Record<string, unknown>)附帶的 metadata,會一起送到 bot provider
blobIdsstring[]已上傳檔案的 blob ID 列表(可選)
filePreviewUrlsstring[]圖片預覽 URL(可選)
documentNamesstring[]文件名稱(可選)

最常見的用途是注入 payload。其他欄位(例如 text 加前綴)也可以修改 — 回傳的物件會取代原始參數送出。

深入閱讀

payload 如何被 bot provider 接收與運用,見 Asgard 開發者文件: