onBeforeSendMessage
在每一則訊息送到 bot provider 之前攔截。最常見的用途是注入 context metadata — 目前分類、當前路徑、feature flag — 到 payload 中。
選擇 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 接收並回傳的參數結構:
| 欄位 | 型別 | 說明 |
|---|---|---|
text | string | 使用者輸入的文字 |
payload | Record<string, unknown> | (() => Record<string, unknown>) | 附帶的 metadata,會一起送到 bot provider |
blobIds | string[] | 已上傳檔案的 blob ID 列表(可選) |
filePreviewUrls | string[] | 圖片預覽 URL(可選) |
documentNames | string[] | 文件名稱(可選) |
你可以修改 text(例如加前綴)或注入 payload(例如加 context)。回傳的物件會取代原始的參數送出。