---
# System prepended metadata

title: Botpress 值得學習的部分
tags: [GSS, botpress]

---

# Botpress 值得學習的部分
###### tags: `botpress` `GSS`

## 特色

### flows
* 使用 flow 模式把 chat bot 的流程用圖型化顯示出來
    ![](https://i.imgur.com/QLSYdPZ.png)
* 使用節點來當作每一個流程，每個節點有自己的 Lifecycle 共分三個時間點
    * On Enter(當進入節點時)
    * On Receive(當收到使用者訊息且此節點正在運作時)
    * Transition(條件判斷)

### hot reload
* bot 更新後效果即時展現
    ![](https://i.imgur.com/DUIOga9.gif)
    
### build in editor
* 內建程式編輯器可以直接修改 bot
* 可直接用程式寫出一個模組然後在 flow 使用

### nlu
* 目前只支援英文(中文的話要完全一模一樣)
* 內建 nlu 可根據行為模式來找出可能的關鍵字
* Entity Extraction 可以幫你從一段文字中找出關鍵字，例如：
    我要**從桃園**搭飛機**到仁川** 他會找到你的出發地跟目的地，入下
    
    ![](https://i.imgur.com/MY9CPrU.gif)


### multi channel support
* 支援多通道
    * Facebook Messenger
    * Slack
    * Microsoft Teams
    * Skype
    * Website (Webchat)
    * Telegram
### 小功能
* QA介面
    ![](https://i.imgur.com/k46bUfh.gif)
    可以在這個介面直接新增一些使用者可能會問的問題並直接回覆
* build in webchat && debugger
    ![](https://i.imgur.com/Jr82aso.gif)



## 分析項目
* 總使用人數
    ![](https://i.imgur.com/eVgGnaB.png)
* 近兩週活躍使用者
    ![](https://i.imgur.com/Jv3AlSV.png)
* 過去一週的使用者性別
* 過去七天使用最忙碌的小時
* 過去七天仍持續使用的使用者


## 缺點
* channel 支援不完善
    ### 卡片格式
    <hr/>
    
    以 messenger 來舉例好了，在 botpress 中的模擬器中我傳送一張卡片，這個卡片單純只有文字 ex:
    ![](https://i.imgur.com/aJUQSek.png)
    這樣的卡片在模擬器中是可以傳送的，但 messenger 那邊一張卡片的按鈕數兩最多三個最少一個，所有就會顯示錯誤，但使用者都不知道
    ex 太少:
    * 在模擬器：
    ![](https://i.imgur.com/aJUQSek.png)
    * 在 messenger:(顯示不出來)
    ![](https://i.imgur.com/mXcKvAq.png)
    * log:
    ![](https://i.imgur.com/0IlBLSZ.png)
    
    ex 太多:
    * 在模擬器：(這個有四個按鈕，但模擬器也只能顯示三個，但至少顯示的出來)
    ![](https://i.imgur.com/7OxyaRj.png)
    * 在 messenger:(顯示不出來)
    ![](https://i.imgur.com/mXcKvAq.png)
    * log:
    ![](https://i.imgur.com/aipHBOq.png)
    
    ### 附件
    <hr/>
    
    還有像 messenger 如果要顯示照片的話必須先將照片傳到 messenger 那邊，messenger 會回傳一個照片的 url，我們在用那個 url 放在卡片上，這樣 messenger 那邊才能正常顯示。
    但 botpress 這邊就沒有這樣做
    * botpress 模擬器
    ![](https://i.imgur.com/0wqfuyn.png)
    * messenger 
    ![](https://i.imgur.com/wCxyKHC.png)
    
* 要新增其他 channel 時要直接去改 config，不像 ldl admin 可以直接在介面改
