• 簡介

    Asanga是一個讓客戶能簡單地自行設計聊天機械人的平台,無需具備任何編程知識,即可設計包含自然語言處理(NLP)技術的聊天機械人。

    Asanga為一Web Application, 不用下載和安裝,全部操作可直接在這網站(https://parami.ai/)完成。

  • 概要

    機械人會根據專案 (Projects) 的設定去運作,換句話說,專案 (Projects) 就是機械人運作的依據。

    每個平台每次只能指派一個專案 (Projects) 作為運作的依據,但不同的平台連接 (Channels) 可同時使用同一個專案 (Projects) 。

    每個可正常運作的專案 (Projects) 應包含至少一個流程 (Flow) ,而根據需要,可建立多於一個流程 (Flow) 以應付不同來訪者的需要。

    參考創建專案 (Projects)

    流程 (Flow) 就是機械人運作的流程,流程 (Flow) 主要是由方塊 (Block) 組成,每個正常運作的流程應包含至少一個方塊 (Block)。

    參考在專案內創建流程

    畫板 (Board) 是使用者自由設計流程 (Flow) 的介面,在此介面中,使用者可運用不同種類的方塊 (Blocks) 來建立心目中想要的流程 (Flow) 。

    參考開始在畫板 (Board) 設計

    方塊 (Block) 就是用來建立機械人行為的最底層結構,也是構成流程 (Flow) 的主要元件。

    方塊 (Block) 的種類如下:

    • 輸出 (Output)

      讓機械人傳送訊息或聲音至來訪者。

    • 等候回應 (Wait)

      讓機械人等待及接收客人回覆。

    • 條件判斷 (Switch)

      讓機械人因應不同的條件,進行不同的工作,需配合 last_intention 或 變數 (variable) 使用。

    • 預設程序 (Prefined Process)

      Asanga為客戶預設的程序,客戶可使用預設程序 (Prefined Process) 來觸發一些外部程序,如發送電郵。 (Asanga會持續增加Prefined Process的數量及多元性。)

    • 設定變數 (Set Variable)

      為變數 (Variable) 賦予值或作出運算。

    • 進入其他流程 (To Flow)

      連接至其他流程 (Flow)

    • 出口 (Exit)

      為流程 (Flow) 指定特別出口並傳回指定的值

    客戶可在AI設定 (AI Setting) 中建立動機 (Intents) , 作為觸發流程 (Flow) 的條件。客戶只需輸入用戶會查詢的相關意思句子, 機械人就會以自然語言處理人工智能技術與用戶輸入的信息進行比對, 讓機械人觸發正確的流程 (Flow) 。

    參考創建動機 (Intents)

    即時對話 (Live Chat) 就是用來檢視機械人與訪客的對話,亦可隨時作人工介入。

    參考 使用即時對話 (Live Chat) 檢視機械人與訪客的對話

  • 平台使用方法

    請讀者自行往Facebook完成註冊程序及創建Facebook粉絲專頁。

    先進入Parami網頁: https://parami.ai 按右上角Start For Free按鈕,輸入所需資料,即可完成註冊。

    在左方的菜單點擊Settings,展開後,再按Platform Accounts,再按右上角的ADD PLATFORM ACCOUNTS按鈕。

    之後,選取你需要加入的平台種類(如Facebook),登入和確認授權即可。

    動機 (Intents)是觸發Flow的其中一個主要方法。管理完善的動機 (Intents)可讓你的訪客更容易進入既定的Flow。

    然而,建立動機 (Intents) 並非必須的,如果你所使用的平台能支援kick_start (請參考4.5.3),如Facebook,可先跳過這部份,以後再回來學習。

    • 建立動機 (Intents)方法:
      圖示 名稱 使用
      編輯 Edit 點擊以編輯動機 (Intents)。
      刪除 Delete 點擊以刪除動機 (Intents)。
      1. 先點選左邊菜單上,Flow Editor裏面的動機 (Intents)以進入動機 (Intents)管理頁面。
      2. 按畫面右上方的按鈕加入動機 (Add Intents)
      3. 輸入名稱 (Name)和 描述 (Description) (這兩項均為讓使用者作識別用途,並不影響機械人運作。)
      4. 按儲存 (Save)自動跳至example頁面
      5. 提供example
      6. 並按右邊(img)號或鍵盤上的Enter制,以作保存保存:
        • examples是機械人用NLP技術進行語句比較的依據,目前支援中文(包含粵語)及英文。
        • 由於客人提問的方式有很多,儘管機械人內置的NLP技術可應付大部份意思相近的句子,但仍有可能遇到一些特殊的提問方式,甚至用上一些比較專業的名詞,因此,你需要提供更多的例句去協助機械人進行微調。例如:
        • 你們學校的師生比例是多少?
        • 你們學校的有足夠老師去應付每位學生嗎?
        • 我想知道你們學校有多少學生和老師。
        • 你們是不是實行小班教學的?
        • 以上例句,句子表面的意思都不一樣,但其背後的動機,都是針對着「師生比例」這一項資訊,你可能想要用同樣的流程去解答訪客的查詢,將所有句子加進去,就能讓機械人用同樣的流程去處理這些問題。

      創建完成後,可在Flow的Trigger (請參考4.5.3)選擇已創建的動機 (Intents),當來訪者輸入的訊息跟動機 (Intents)的example相符,即會觸發Flow。

    圖示 名稱 使用
    編輯 Edit 點擊以編輯動機 (Intents)。
    發佈 Publish 點擊以發佈Template。(請參考Publish (發佈) 範本)
    刪除 Delete 點擊以刪除動機 (Intents)。
    1. 先點選左邊菜單上,專案 (Projects) ,以進入專案 (Projects) 管理頁面。
    2. 按畫面右上方的按鈕 新增專案 (Add Projects)
    3. 在General 的標籤頁中輸入Name和Description (這兩項均為讓使用者作識別用途,並不影響機械人運作。)
    4. 按儲存 (Save)自動跳至專案 (Projects)管理頁面。
    • Projects (專案)其他欄位及功能介紹:
      流程 (Flows)(範本包含的流程)

      此為唯讀的欄位,當建立了流程 (Flows)後,則會在此欄位顯示。

      Publish(發佈)

      專案 (Projects) 在每次修改後,都需要Publish以套用在運作中的機械人上方可運作。Publish的方法將在後面的章節詳談 (請參考4.7)。

      Variables(變數)

      你可為每個專案 (Projects)設定一系列的變數,變數的作用除了記錄資料,還可對資料進行運算工作,如數值可進行一般加減乘除等運算;文字資料則可以合成。

    • 建立Variable (變數)方法 :

      Variable的用途很廣,如基本的資料紀錄、運算和輸出,透過不同的紀錄以決定Flow的行走路線,甚至可以用來控制循環(迴圈/Loop)的數量,這將會在後面的章節 (請參考7實作例子)講解及示範。

      然而,建立Variable並非必須的,讀者可先跳過這部份,以後再回來學習。

      1. 先點選左邊菜單上,畫板 (Boards)裏面的專案 (Projects)以進入專案 (Projects)管理頁面。
      2. 在已建立的的專案 (Projects)中在Actions 的欄位點選筆的編緝圖示
      3. 點選上方變數 (Variables)標籤頁
      4. 根據你想要紀錄的資料類型選擇Validation
      5. 輸入Variable的Name (為使用者作識別用途,並不影響機械人運作)。
      6. 如Variable需要使用「QA功能」*,請輸入藉以獲取答案的Default Question,當輸入後,即會自動啟用「QA功能」
      7. 按 ✔ 以保存。

      什麼是「QA功能」?

      QA功能是Asanga的特色之一,當在Flow中的任何階段使用一個已啟用QA功能的Variable時,機械人會在與客戶對話的過程中的每一句對話,獲得需要的答案,如客人從沒有提供過相關問題的答案,則會按Default Question的設定主動詢問客人。

      例子:

      對話一:

      機械人:你好

      客人:你好,我想吃干炒牛河

      機械人:明白,一份干炒牛河 ← 用到Variable「食物」時,自動尋找客人提供的答案)

      對話二:

      機械人:你好

      客人:你好

      機械人:請問你想吃什麼? ← 因為客人沒有提供過相關資訊,機械人會使用Default Question詢問客人

      客人:干炒牛河

      機械人:明白,一份干炒牛河 ← 如果客人已回答,機械人就能自動尋找客人提供的答案

    • 什麼是Draft/Published?

      使用者查看專案 (Projects)以及其設定時,可選擇Draft或Published作為查看的對象。

      Published就是機械人正在運行的版本,Published的版本不可直接進行修改,如果需要修改的話,應使用Draft的版本,修改後用Publish的功能來更新Published的版本

      Draft則是還在設計階段的版本,此版本可直接進行修改。唯修改後,不會套用到現行的機械人上。

      Publish的方法將在後面(請參考4.7)介紹。

    圖示 名稱 使用
    編輯 Edit 點擊以編輯Flow的基本資料。
    停用 Disable 點擊以停用該Flow,再次點擊可重新啟用。
    刪除 Delete 點擊以刪除Flow。
    1. 先點選左邊菜單上,專案 (Projects)裏面的專案 (Projects)以進入專案 (Projects)管理頁面。(請參考4.4)。
    2. 點選已建立的的專案 (Projects)名字
    3. 按畫面右上方的按鈕加入流程 (Add Flow)
    4. 在General 的標籤頁中 的Type欄* 選擇 Procedure 或 Q&A (請參考下方Flows的種類)(*注意: 選擇後無法更改)
    5. 輸入Name和Description (這兩項均為讓使用者作識別用途,並不影響機械人運作。)
    6. Trigger欄可選擇kick start (請參考4.5.3: Triggers(觸發器) & 動機 (Intents) - (kick_start)) 及可選已建立的動機 (Intents) (請參考4.3)
    7. 按儲存 (Save)自動跳至Board (畫板)頁面。
    • Flow (流程)其他欄位介紹:

      Exits是一唯讀的欄位,當在Board 內曾建立過 Exits Block(請參考: Exit Block (出口方塊)),則會在此欄位顯示。

    • Flows的種類:

      Flow的種類有兩種,分別是Procedure和Q&A。

      一般而言,Procedure用來讓機械人處理複雜的流程,而Q&A則主要是用來提供簡短的資訊。

      Function Procedure Q&A
      Description 豐富流程 主要應付一問一答
      Switch between Flows (請參閱「深入了解Procedure與Q&A的分別) Ask to proceed (經詢問才轉接) Free switch (自由轉換)
      Output Block (輸出方塊) YES YES
      Wait Block (等待方塊) YES NO
      Switch Block (分流方塊) YES YES
      Set Variable Block (設定變數方塊) YES YES
      To Flow Block (轉接流程方塊) YES NO
      Set Variable Block (設定變數方塊) YES YES
      Exits Block (出口方塊) YES NO
      Predefined Process TBA TBA
    • 觸發器 (Triggers) & 動機 (Intents) - (kick_start) :

      要讓Flow被觸發(Triggers),則有三種方法:

      1. 觸發器 (Triggers) > kick_start

        在某些平台,能夠在來訪者說話或輸入訊息前,便可偵察到有新的來訪者,此時便可使用kick_start去觸發第一個Flow,主動迎接來訪者。

        例如: Facebook的Get started(開始使用)。

        *這功能受平台的限制,有些平台並不支援kick_start

      2. Triggers > 動機 (Intents)

        動機 (Intents)是Asanga的特色設計之一,使用者可自行定義動機 (Intents),並提供例句,機械人便會用NLP技術,跟來訪者的說話或訊息作比較。

        簡單地說,就是只要你在Flows的Triggers中加入一個動機 (Intents),而來訪者的說話或訊息被機械人評定為同樣或近似意思時,這個Flow便會開始工作。

        動機 (Intents)的設定方法,可參考4.3。

      3. 由其他的Flow使用To Flow Block

        此方法可讓你的來訪者在Flow之中跳躍至另一個Flow,這可增加Flow的重用性,亦可簡化Flow的內容。

        這方法要在 Board (畫板)介面進行,將在以後的章節4.6再詳談。

    • 什麼是Exit(出口)?

      一般而言,每一個沒有後續的Block均為Flow的出口,但當你配合To Flow Block使用時,你可能有需要根據Flow的最後路線來決定機械人下一項工作,這時你就可以為Flow設定額外出口。

      有關使用方法將在以後的章節(第四章第6節各種Blocks的使用方法)詳談。

    • Board (畫板)介面簡介:
      1. 每次進入Board之後,都預設為檢視模式,需按一下上方的Edit按鈕才能進行編輯。
      2. 進入編輯模式之後,可按右鍵選取要建立的Block。
      3. 當建立了第一個Block之後,亦可在Block上的小圓點使用滑鼠拉出另一個Block。
    • 刪除方塊的方法:

      按一下方塊,按鍵盤的delete鍵。

    • 刪除流程線的方法:

      按流程線一下,按鍵盤的delete鍵。

    • 設定開始方塊:

      每個Flow都必須有一個開始的Block,只需在想要作為開始的Block上按滑鼠右鍵,就會出現Set as Start Node按鈕,點擊後即可將該方方塊設為Flow的開始 。

      開始方塊的圖示

      設定後,該方塊會有這樣的圖示。

    • 其他按鈕:
      圖示 名稱
      返回(Back)
      復原(Undo)
      重做(Redo)
      放大Zoom In
      縮小Zoom Out
      編輯模式 Edit Mode
      檢視模式 View Mode
      圖示 名稱 解釋
      警告 !Warning 當欠缺必填的資料時,Block的右上角會出現感歎號
    • 各種Blocks(方塊)的使用方法:
      Output Blocks (輸出方塊):

      Output Block是一直接跟來訪者接觸的方塊,它能支援variables(變數)和emoji(表情符號)。

      可供輸入欄位:

      欄位 描述
      Name Block的名稱,系統自動生成,使用者可因應需要進行修改。
      Value 希望來訪者看到/聽到的訊息,支援variables和emoji。
      圖示 名稱 描述
      變數Variable 可加入變數,雖先在Template設定才可使用
      表情符號 Emoji 可插入表情符號

      使用方法:在方格內輸入文字即可,可按下方「X1」(或按@號) 打開Variables選單以加入Variables,亦可按下方的表情圖示以加入表情。

      注意:所有Variable必須透過選單選取,不可直接以鍵盤輸入。

      Wait Block (等待方塊):

      Wait Block是讓機械人停下來等待客人輸入的方塊。

      可供輸入欄位:

      欄位 描述
      Name Block的名稱,系統自動生成,使用者可因應需要進行修改。

      使用方法:直接放在要讓機械人需要等待的位置即可。

      Switch Block (分流方塊):

      Switch Block是讓機械人進行邏輯判斷以分流工作的方塊。需要配合last_intention或variables使用。

      可供輸入欄位或按鈕:

      欄位 描述
      Name Block的名稱,系統自動生成,使用者可因應需要進行修改。
      Variable 用作比較的variable。
      Operator 運算符號,當選擇不同類形的變數,可供選擇的運算符號也會有所不同。
      > 大於
      < 小於
      >= 大於或等於
      <= 小於或等於
      != 不相等
      == 相等
      LIKE 包含
      Value 比較的對象,根據用作比較的variable的類別,可使用文字、數字或variables。
      + 新增比較條件。
      Default 當所有條件都不符合時,分流方塊便會選擇的分流路線

      使用方法:在上方選取Variable,再選取operator (可選的operator會因應所選的variable類型而有所不同),再在右邊的方格輸入比較的對像,如Qty > 10,意思就是比較Qty這個variable是否大於10,如果答案為是,則會進入右邊的分流路線;如答案為否,則會進入下一個比較條件,直至進入Default路線,如需要增加比較條件,請按「+」號。

      last_intention:

      系統定義的變數,用來判斷來訪者的最後回覆的意向。這與前面4.3提及的動機 (Intents) 原理一樣,但並無直接關係。

      譬如在Switch Block之中,variable的位置選了last_intention,Operator選等於(==),Value輸入「我想買口罩」,來訪者在此聊天階段輸入意思相似的句字(如「我想買Mask」,機械人便會判定其為正確。

      Set Variable Block (設定變數方塊):

      Set Variable Block是讓使用者設定變數的方塊,使用者可在此進行變數的運算,或直接賦予值。

      可供輸入欄位:

      欄位 描述
      Name Block的名稱,系統自動生成,使用者可因應需要進行修改。
      Variable 將要為其設定值的變數。
      Value 將要為變數設定的值。根據Variable的類別,可採用variable和operator。按「X1」或鍵盤的「@」掣加入variable;按「≠」或鍵盤的「#」掣加入variable。
      圖示 名稱
      變數 Variable
      運算符號 Operator

      使用方法:先選取需要賦予值的variable,再在下方輸入新的值,如:

      Variable設定為Qty

      Value設定為Qty + 1/p>

      意思就是將Qty設定為Qty本來的值再+1

      注意:所有Variable和Operator必須透過選單選取,不可直接以鍵盤輸入。

      To Flow Block (轉接流程方塊):

      To Flow Block是讓訪客由一個流程(主)轉接至另一個流程(副)的方塊。當副流程運作完成後,則會返回主流程。使用者可於副流程之中加入Exit Block(請參考4.6.6.6),以增加主流程在使用To Flow Block並選擇該副流程後出口的數量,從而達至分流的效果(見圖):

      可供輸入欄位:

      欄位 描述
      Name lock的名稱,系統自動生成,使用者可因應需要進行修改。
      Flow 需要轉接至的流程 (副流程)。
      Exits 如副流程中有使用Exit Blocks,則To Flow Block除了預設的出口外,還會出現額外的出口,各出口可接駁至不同的Block。相對而言,如副流程沒有使用Exit Block,則不會有Exits,即To Flow Block只有一個出口。(見圖)

      使用方法:選擇需要轉接到的流程(副流程),如需要在完成副流程後因應不同的結果進行分流,則要先在副流程加入Exit Block。

      To Flow Block的出口數量視乎副流程的Exit數量而定,如副流程沒有設定任何Exit Block (出口方塊),則只會有一個出口。

      Exit Block (出口方塊):

      正常情況下,當一個Block並沒有接駁至下一個Block,則該Block就是一個出口。但當你配合To Flow Block(請參考4.6.6.5)時,可能需要因應一個流程最後的結果,而分流至不同的路線,這時你需要使用Exit Block。

      可供輸入欄位:

      欄位 描述
      Name Block的名稱,系統自動生成,使用者可因應需要進行修改。
      Return Value 由副流程傳回主流程的值,也就是出口的名稱。(見圖)

      使用方法:在副流程中的最後一個Block之後加入,輸入Return Value即可。一個副流程可以有數個Exit Block,甚至使用相同的Return Value。使用相同的Return Value會被視為同一個出口。

      個案分析一:

      主流程

      副流程

      1. 跳至「口罩流程」
      2. 訪客在「口罩流程」選擇「是的」後,因沒有後續的Block,被視為正常離開副流程
      3. 正常離開副流程後,會經由To Flow Block的正常出口(最上面的出口)跳至下一個Block(如該出口沒有後續的Block,則視為此Flow完成)

      個案分析二:

      主流程

      副流程

      1. 跳至「口罩流程」
      2. 訪客在「口罩流程」選擇「不是」後,便進入「沒買」Exit (Exit不可有後續方塊)
      3. 由於經「沒買」Exit離開,會經由To Flow Block的「沒買」出口跳至下一個Block(如該出口沒有後續的Block,則視為此Flow完成)

    當完成Flow的設計,你需要使用Publish(發佈)以套用至你的平台帳戶上。

    • 發佈方法:

      按左方的菜單的Templates進入Template列表,在想要發佈的Template右方按Publish的圖案。

    • 無法Publish的常見原因:
      錯誤 解決方案
      With empty nodes 查看所示的Flow有沒有未設置完成的Blocks (有感歎號的Blocks)。
      No Starting Node on flow(s) 在該Flow的第一個Block上按滑鼠右鍵設為Start Block。(請參考4.6.4)
      Calls disabled flows 在Flow中使用了To Flow Block接駁至一個已經Disable的Flow,需要移除該To Flow Block,或將該To Flow Block選取另一個Active的Flow,或重新Enable該Disable的Flow。(請參考4.5)

    發佈成功的話,你將可在Platform Account中設定Flow Template。(見圖)

    然後便可到相關的平台進行測試。

    • 常見機械人的錯誤:
      錯誤 解決方案
      機械人沒回應 查看所示的Flow有沒有未設置完成的Blocks (有感歎號的Blocks)。
      出現機械人尚未設置完成 檢查平台帳戶的flow template是否已經設置好。(請參考4.8)
      出現不好意思,我不太懂你說什麼 輸入對話的動機 (Intents)不符合任何一個流程的觸發器。(請參考4.3)
      機械人不跟從設定運作 請檢查最新版本是否已經成功發佈。(請參考4.7)
  • 深入了解程序 (Procedure) 與 問答 (Q&A) 的分別

    如果讀者還記得在之前的章節提過,讓Flow被觸發的方法有三個,其中一個是經由動機(Intents) 觸發。但如果訪客尚在一個Flow之中,能不能觸發另一個Flow呢?答案是可以的,但會根據被觸發的Flow的種類 [即程序 (Procedure) 或問答 (Q&A) ],而有不同的行為。

    在一個程序流程 (Procedure Flow) 中使用動機 (Intents) 觸發另一個程序流程 (Procedure Flow)

    如上圖所示,當來訪者進入流程A的程序 (Procedure) 後,當進入等候回應方塊 (Wait Block) , 來訪者可自由輸入訊息,如他輸入的訊息正好是另一個程序流程 (Procedure Flow) (流程B) 的觸發 (Trigger),機械人就會詢問來訪者是否要轉話題,如來訪者回答「是」的話,則會離開流程A, 而進入流程B。當完成流程B後,亦不會回到流程A。

    在一個程序流程 (Procedure Flow) 中使用動機 (Intents) 觸發另一個觸發問答 (Q&A)

    如果來訪者在流程A的過程中,觸發的是問答 (Q&A) 而不是程序 (Procedure) ,則機械人不會詢問來訪者,直接跳至該問答 (Q&A) 流程,而在該問答 (Q&A) 流程結束後, 亦會自動回到流程A原來的位置。

    至於問答 (Q&A) 能否跳到其他流程呢?因為問答 (Q&A) 是沒法使用等候回應方塊 (Wait Block)的, 所以無法在過程中觸發其他流程。

  • 其他功能

    你可以看到聊天機械人的使用狀態。

    「危險地帶」的位置可讓你暫時關閉所有聊天機械人。

    圖示 描述
    檢視正在使用機械人的客戶以及其使用平台的模式
    以個別客戶與機械人對話內容為重點的模式
    平衡模式
    1. Set Type

      在客戶的方塊點擊右邊3點,再點選Set Type,選擇 緊急 (Urgent) 或Esclauted,讓其他同事以作識別。

    2. Status

      在客戶的方塊點擊右邊3點,再點選Status,選擇標記現時對話狀態。

    3. Take Over 真人客服介入

      在對話中客戶需要真人客服介入,我們可以在客戶的方塊點擊右邊3點,再點選Take Over,就能於左邊對話框進行介入。

    這是讓你能新增更多的使用者的帳戶去共同管理或查看。

    1. 在左方菜單點擊用戶管理 (Users)。

    2. 再按右上角的新增用戶 (Add User)按鈕。

    3. 填上用戶名稱,日後會在主頁登入之用。

    4. 填上用戶密碼,日後會在主頁登入之用。

    5. 點選More...,可選擇性填名字、職位或聯絡資料,均為讓使用者作識別用途。

    6. 權限位置,選擇使用者可使用的權限。

    7. 點選右下角保存。

    圖示 名稱
    Edit (編輯)
    變更密碼 (Change Password)
  • 實作例子

    假設,你要為一所藥店設計一個聊天機械人,主要用來處理客人訂購口罩和消毒液。

    跟著圖片的教學,你也可以完成屬於自己的聊天機器人,步驟如下:

    首先,你要為這機械人創建一個專案 (Projects)

    步驟如下:

    步驟1: 點選左邊菜單上的專案 (Projects)。

    步驟2: 點選右上角新增專案(Add Project)

    步驟3: 輸入名稱 (必須填)

    步驟4: 描述 (選擇性填)(名稱及描述只讓你作識別用途,並不影響機器人運作。)

    步驟5: 選擇想聊天機械人回覆的語言,可多項選擇英文、繁體中文、簡體中文及廣東話。


    系統會根據客人所輸入語言,系統會自動檢測語言後再作回覆。

    (注意:當選擇了多項語言,制作時就要輸入所有語言的內容,否則不能表)

    步驟6: 此為唯讀的欄位,當建立了 Flow (流程)後,則會在此欄位顯示。

    步驟7: 新增 (Add)

    需要新增兩個流程 (Flows),一個為訪客按開始使用時觸發的流程,另一個則為想要購買口罩的來訪者預備的流程。

    步驟如下:

    步驟1: 按一下剛新增的專案的名稱位置。

    步驟2: 點選右上角新增流程(Add Flow)。

    步驟3: 輸入名稱「開始流程」

    步驟4: 你開第一個流程就自動在觸發器 (Triggers) 設定了kick_start,代表訪客按開始使用時觸發的意思。

    步驟5: 按儲存 (Save)

    步驟6: 跟步驟2一樣,新增多1個流程,另一個名為「口罩流程」

    步驟7: 觸發器 (Triggers)無需加入,因今次會由「開始流程」去觸發的。

    步驟8: 按儲存 (Save)

    我們將要處理一系列的資料,如顧客購客的數量、貨品的種類、單價、總價,所以我們先建立四個變數:

    Variable Validation 用途
    Item FreeText 記錄客人想要買的貨品
    Qty Quantity 記錄客人想要買的貨品數量
    TotalPrice Price 記錄貨品總價
    UnitPrice Price 記錄貨品單價

    步驟如下:

    步驟1: 點選左邊菜單上的專案 (Projects)。

    步驟2: 點選已創建專案 (Projects)的筆圖示的設定。

    步驟3: 點選欄位變數 (Variable)。

    步驟4: 填上名稱為「貨品項目」。

    步驟5: 驗證選擇文字(字串) 。

    步驟6: 點選剔號,以作儲存。

    步驟7: 填上名稱為貨品數量。

    步驟8: 驗證選擇Quantity(整數)

    步驟9: 我們會在數量使用QA功能,所以需要在預設問題輸入「請問要幾多盒?」,再點選剔號,以作儲存。

    步驟10: 填上名稱為貨品總價。

    步驟11: 驗證選擇Price(點數),點選剔號,以作儲存。

    步驟12: 填上名稱為貨品單價。

    步驟13: 驗證選擇Price(點數),點選剔號,以作儲存。

    步驟14: 設定完成,在頂部點擊<箭咀返回專案 (Project)。

    如果要進入畫板,只需按剛新增的專案 (Project) 的名稱位置 > 按剛新增的流程 (Flow) 的名稱位置。

    現在先進入設計「口罩流程」的流程 (Flow)

    跟下圖所示建立不同的方塊 (Block):

    步驟1: 進入畫板,點選眼睛一下,以開啟修改模式。

    首先詢問客人購買物品(Output):為客人提供口罩資料及選擇,並詢問客人需要購買的種類。

    步驟2: 按滑鼠右鍵選擇輸出方塊 (Output), 並輸入訊息「我地依家有藍色口罩(一盒$50元30個) 同綠色口罩(一盒$40元30個) 請問你想要邊款?」。

    步驟3: 在輸出方塊 (Output) 的圓圈拉出等待回應方塊(Wait),等待客人回覆購買的種類

    步驟4: 在等待回應方塊 (Wait) 的圓圈拉出條件判斷方塊 (Switch),用來分流藍或綠色口罩, 在變數 (Variable) 位置選last_intention,由於客人的回答可能是顏色、亦可能是價錢, 所以我們建立四個分流路線,選擇「=」及分別輸入「藍色」、「50元」、「綠色」、「40元」。

    假若客人的回答並不符合以上四個選擇,所以要採取的應對方案。

    步驟5:在條件判斷方塊 (Switch)的否則 (Otherwise) 的圓圈拉出輸出方塊 (Output),並輸入訊息「對不起,我不太明白。」

    步驟6:然後在「不明白」的輸出方塊 (Output)的圓圈拉出接駁至之前建立的「詢問客人購買物品」的輸出方塊 (Output)上。

    記錄客人想要購買的物品。

    步驟7: 首先滑鼠右鍵建立兩個設定變數方塊 (Set Variable),在變數 (Variable) 的位置選擇「貨品項目」, 在空白位置輸入「藍色口罩」,另一個方塊就輸入「綠色口罩」,之後在「分流藍綠色口罩」的條件判斷方塊 (Switch)的分流路線, 將「藍色」和「50元」的圓圈接駁去「記錄客人購買物品一」的設定變數方塊 (Set Variable),

    步驟8: 另外就將「綠色」和「40元」的圓圈接駁去「記錄客人購買物品二」的設定變數方塊 (Set Variable)。

    如下圖分別與「分流藍綠色口罩(Switch)」的四個出口接上。

    記錄貨品的單價

    步驟9: 在「藍色口罩」的設定變數方塊 (Set Variable)的圓圈拉出一個設定變數方塊 (Set Variable), 在變數 (Variable) 的位置選擇「貨品單價」,在空白位置輸入價錢「50」。

    步驟10: 在另一個「綠色口罩」的設定變數方塊 (Set Variable)的圓圈拉出一個設定變數方塊 (Set Variable), 在變數 (Variable) 的位置選擇「貨品單價」,在空白位置輸入價錢「40」。

    計算總價,將購買數量剩以單價,由於購買數量會由客人提供,所以可使用QA功能, 而不需要設置額外的方塊去詢問如果客人在前面沒有提及想要購買的數量,機械人便會主動詢問客人。

    步驟11: 在滑鼠右鍵建立一個設定變數方塊 (Set Variable),在變數 (Variable) 的位置選擇「貨品總價」, 在空白位置右下角點選變數符號(Variable)按鈕或快捷鍵@ (圖: 綠色箭咀),選擇貨品單量, 再點選右下角點選運算符號(Operator)按鈕或快捷鍵# (圖: 藍色箭咀),選擇貨品乘號符號, 之後再點選變數符號(Variable) (圖: 綠色箭咀),選擇「貨品單價」,就按儲存。

    (注意:所有變數符號 (Variable) 及運算符號 (Operator) 必須使用下方按鈕或快捷鍵 @ 和 # 號並選取,不可以直接手動輸入文字。)

    將「記錄貨品單價一」和「記錄貨品單價二」的設定變數方塊 (Set Variable)的圓圈接駁去「計算總價」的設定變數方塊 (Set Variable)。

    確認訂單,用來覆核客人訂單。

    步驟12: 在「計算總價」的設定變數方塊 (Set Variable)的圓圈拉出一個輸出方塊 (Output), 並輸入訊息和加入變數符號 (Variable):

    「收到!{貨品數量}盒{貨品項目}

    一共{貨品總價}元

    請問你是否確認訂單?」

    (注意同樣地,所有變數符號 (Variable)必須透過選單選取不可複製貼上或手動輸入文字。

    步驟13: 在設定變數方塊 (Set Variable)的圓圈拉出一個等候回應方塊 (Wait),等待客人確認訂單。

    對客人的回答進行分流

    步驟14: 在等待回應方塊 (Wait)的圓圈拉出一個條件判斷方塊(Switch),在變數 (Variable) 的位置選擇「last_intention」, ,下方則輸入「是的」和「不是」;「是的」表示客人確認購買,可以不接駁至其他的方塊,這就表示這個流程正常完結。

    步驟15: 在「不是」的路線拉條出口方塊(Exit),在返回值 (Return Value) 輸入「沒買」,令其他流程使用「口罩流程」,可根據結果作出分流。

    步驟16: 在否則 (Otherwise) 的路線拉出一個輸出方塊 (Output),以應付客人沒有回答跟上面相符的答案,並接駁回等候回應方塊#2 (Wait)。

    完成了「口罩流程」,可以返回去制作「開始流程」

    現在先進入設計「開始流程」的流程 (Flow)

    跟下圖所示建立不同的方塊 (Block):

    步驟如下:

    步驟1: 進入畫板,點選眼睛一下,以開啟修改模式。

    步驟2: 按滑鼠右鍵選擇輸出方塊 (Output),並輸入歡迎客人的訊息「歡迎光臨! 我係企鵝藥店機械人!」。

    步驟3: 在打招呼的輸出方塊 (Output)的圓圈拉出多一個輸出方塊 (Output),並輸入詢問客人要購買什麼貨品的訊息「請問你想買口罩定消毒液?」

    ( 由於在之後會有方塊需要重覆問這一句,故此與「打招呼」的輸出方塊 (Output) 分開建立兩個方塊。)

    步驟4: 在詢問客人要購買什麼貨品的輸出方塊 (Output) 的圓圈拉出一個等待回應方塊 (Wait)。

    ( 用來等待客人回覆購買什麼貨品。)

    步驟5: 在等待回應方塊 (Wait)的圓圈拉出一個條件判斷方塊 (Switch),在變數 (Variable) 位置選擇「last_intention」,下方則分別選擇「=」、輸入「口罩」及選擇「=」、輸入「消毒液」(按+號以增加分流路線)。

    步驟6: 在種類分流的條件判斷方塊 (Switch) 的否則 (Otherwise) 圓圈拉出一個輸出方塊 (Output),並輸入不明白的訊息「對不起,我不太明白」,然後再接駁回到「詢問購買種類」的輸出方塊 (Output) 上。

    ( 用來處理當客人並非回答「口罩」或「消毒液」時的應對方案。)

    步驟7: 在種類分流的條件判斷方塊 (Switch) 的「口罩」路線上圓圈拉出一個進入其他流程方塊(To Flow),選擇「口罩流程」。

    ( 如果在「口罩流程」已經加入「沒買」的出口方塊 (Exit) ,則會在此出現屬於「沒買」的分流路線。

    步驟8: 在種類分流的條件判斷方塊 (Switch) 的「消毒液」路線上,有興趣亦可自行好像上面的「口罩流程」製作一次或者拉出一個輸出方塊 (Output),並輸入消毒液售罄的訊息「對不起,消毒液售罄!」。

    步驟9: 在進入其他流程方塊 (To Flow) 的「沒買」的圓圈拉出一個詢問意見的輸出方塊 (Output),並輸入的訊息「收到你確認唔買,希望你留下你寶貴意見。」。

    步驟10: 在進入其他流程方塊 (To Flow) 的另外的圓圈拉出一個謝謝恵顧的輸出方塊 (Output),並輸入的訊息「收到你確認訂單,謝謝你的惠顧!」


    為什麼要分成幾個流程 (Flow) ?我可以在同一個流程 (Flow) 處理所有事情嗎?

    原則上可以的,但為了讓流程 (Flow) 的結構簡潔一些,方便日後維護,以及方便流程 (Flow) 的重用,將不同功能的流程 (Flow) 分開會是較好的選擇。

    在畫板(Board) 設定完成後,發表 (Publish)。

    步驟如下:

    步驟1: 點選左邊菜單上的專案 (Projects)。

    步驟2: 在完成了的專案 (Projects) ,在旁邊的工具點選發表 (Publish)按鈕(圖示:箭咀向上),再點選發表 (Publish)。

    [ 如有錯誤(一些未設置完成的地方),亦會在此作出提示。可參閱前面章節「無法發表 (Publish)的常見原因」]。

    發表 (Publish)完,要連續去你的平台。

    Facebook

    步驟如下:

    步驟1: 點選左邊菜單上的平台連接 (Channels)。

    步驟2: 點選右上角新增連接平台(Add Channels),選擇Facebook

    步驟3: 在Facebook驗證時,在編輯設定選擇你的專頁,之後完成權限驗證。

    Website

    步驟如下:

    步驟1: 點選左邊菜單上的平台連接 (Channels)。

    步驟2: 點選右上角新增連接平台(Add Channels),選擇Asanga(Web)

    步驟3: 名稱是為機械人改名,ID是URL網址,再按右下角建立。

    步驟4: 點擊想要啟用聊天機械人的平台帳號旁邊的鉛筆。

    步驟5: 在選用專案中點選你剛完成的專案 (Projects),再按確定,就可以正式使用了。

    我們嘗試測驗一下剛完成的聊天機械人,你可以去自己平台專頁做測試或者使用我們平台的測試盒子。

    步驟如下:

    步驟1: 在專案(Project)左邊的測試(圖:正方形)。

    步驟2: 可以跟圖片去測試一下。

  • 進階用法

    變數也可以用來迴圈的次數,例如,使用者想要用聊天機械人做一個猜謎遊戲,訪客可以有三次機會,如第三次仍然沒有答中,則為失敗。

    詳細步驟:

    1. 開始之前先在已創建的Project (專案)中,點選左方的一支筆的圖示。
    2. 點選變數 (Variable) 欄位
    3. 在名稱中填上「i」字,你可自由改名,只讓你識別。
    4. 驗証 (Validation) 選取Number。
    5. 在右上方按儲存
    6. 進入畫板 (Board),先按滑鼠右鍵加入設定變數方塊 (Set Variable)
    7. 連按兩下方塊,在變數(Variable)位置選擇「i」
    8. 在下面空白位置填上「0」
    9. 在右下方點選保存 (Save)
    10. 在圓圈位置拉出輸出方塊 (Output Block) ,填上謎語。
    11. 拉出等候回應方塊 (Wait Block)
    12. 再用條件判斷方塊 (Switch Block)核對答案是否正確,請在變數位置選擇last_intention,並選擇=,再輸入正確答案。
    13. 在正確答案的圓圈拉出輸出方塊 (Output),並填上要恭喜的訊息。
    14. 如答錯的話,請在否則 (Otherwise)的圓圈拉出條件判斷方塊 (Switch Block),請在變數位置選擇「i」,在下面空白位置填上「<3」,系統就會檢查i,即答錯的次數是否少於3。
    15. 如答錯的次數少於3的做法,先拉出設定變數方塊 (Set Variable),在變數(Variable)位置選擇「i」,點選下面空白位置內有圖示x,選擇「i」,再填上「+1」。
    16. 在變數方塊 (Set Variable)的圓圈拉出輸出方塊 (Output),填上要答錯的訊息, 再拉去之前已創建的等候回應方塊 (Wait Block),並讓訪客重新作答。
    17. 如不是少於3,則會走否則 (Otherwise)的路線,拉出輸出方塊 (Output),並填上宣佈遊戲結束的訊息。
    18. 控制迴圈對機械人的設計很重要,能避免客人困在迴圈裏無法跳出來,影響客人體驗。

  • 系統要求

    1. 支援滑鼠的瀏覽器, 手提電話不適用

    2. 建議瀏覽器: Google Chrome(較穩定) , Microsoft Edge