機器人話術分享,整理邏輯及優化方案詳解?( 二 )


再次地,這樣的設置是通過人為地制定一套規則,讓機器人可處理不同的業務問題,從而讓機器人對話“智能” 。
3. 流程間跳轉限制多個流程間,有諸多的流程是并列的關系 。但是 也有流程間是“父子”關系、“只進不出”關系 。
舉個例子,比如流程A和流程B:

  • 在某些情況下,流程B的準入條件,必須是進入了流程A后,滿足一定條件,如訪客說了某個關鍵字,才可進入流程B 。這種關系即“父子”關系,A流程是父流程;B流程是子流程 。不進入A流程,就不能進入B流程 。
  • 在某些情況下,流程A可跳轉到流程B,但是流程B不可跳轉到流程A 。常見的情形是,流程A是“無意圖”流程,流程B是有意圖的流程 。一般而言,在識別了訪客意圖后,當訪客當前輪次的表述是無意圖,也不會跳轉回“無意圖”流程 。
通常,我們會通過流程關系的設置,來確定流程間的跳轉關系和限制 。在Google Dialogflow中,Context的概念,就是為了設置流程間的“父子關系” 。不僅是流程間的跳轉關系,流程中傳遞的信息(詞槽信息)也會被傳遞/繼承 。故稱之為Context語境 。
4. 流程問句重復/不重復發送行業中有一部分場景,是需要把機器人做成“仿真”的 。即:讓訪客無感知/較弱感知到與自己對話的是一個機器人 。這些情況下,就需要將機器人做擬人化設計 。
流程問句的重復/不重復發送設計,是其中很重要的一步 。試想,如果在一個對話中(特別是客服等提供業務服務的對話),對方反復發送同一句話,你會不會很容易質疑對方就是一個機器人,很生氣地結束對話,或者要求轉人工?
那么,如何讓機器人避免流程話術重復發送呢?
我們的處理是,在設計流程的問句時,再配置上該問句要收集的信息 。通過對上文該信息的識別、獲取、存儲與判斷,來避免下文重復發送相同/類似的問句 。比如:
【流程A】機器人問:“您多大年紀呢?”,配置“年齡”的信息
【流程B】機器人問:“您今年幾歲呢?”,配置“年齡”的信息
當上文執行了流程A的上述問題,并獲取保存了訪客的“年齡”信息,則在下文執行流程B時,再次詢問“年齡”的問句將被跳過,不會再觸發 。從而實現避免重復發同類問句的目的 。
當然,如果機器人是“非仿真”的機器人,則無需做這一重判斷處理 。因為用戶對于對話的認知就是在跟機器人對話,無所謂是否重復話術 。但是,AI不就是通過智能讓生活更加便捷美好嗎?仿真化對應的智能,勢必會是以后的大趨勢 。
5. 流程重復/不重復執行執行過的流程,當訪客表述又再次滿足其準入的條件時,流程還可以重復執行嗎?
其實這一點和上面一點的思路有點類似 。流程重復執行,意味著發過了的問句/話術再次發送一遍 。對于“仿真”的機器人來說,一般是需要做避免重復執行的設計 。
比如:
  • 流程A中執行到第3輪話術,由于訪客表述跳轉到了流程B
  • 當流程B執行后,又滿足流程A的條件從而回到流程A
  • 那么此時,應該
  • 從流程A的第4輪繼續執行(接著剛才執行到的第3輪)
同樣的,如果是“非仿真”的機器人,可容忍流程重復執行,則無需做此設計 。
6. 流程被打斷后恢復/不恢復當流程發生跳轉的,一般會伴隨流程的打斷 ??赡艿那樾问牵谠辛鞒讨辛牡猛?,訪客突然說了個與該流程不相干的內容,或是另起一個話題,導致跳轉到了另一個流程 。
比如:
  • 流程A中執行到第3輪話術,由于訪客表述跳轉到了流程B
  • 當流程B執行完
  • 此時,由于A流程是被打斷的主要場景,訪客更傾向于繼續將A流程話題繼續至結束 。故需恢復至A流程并執行完
這種情況一般是在A流程是主要場景/流程的情況下,在A流程中做的設置 。而對于那些較為次要的流程,則較無需做“打斷后恢復”的設置 。因為有可能其跳轉的是主要的流程,便無需做恢復動作 。
7. 信息采集與追問對話的本質是對話雙方信息的交流 。在對話流程進行中,信息的采集尤為重要 。信息不僅可作為機器人話術的組成部分、作為訪客信息記錄/傳遞,還可作為條件判斷的來源、第三方接口的傳遞內容 。所以信息采集對于對話流程來說很重要 。
所以,一般我們在設計流程的問句時,會設置相應的信息采集內容 。還是上面的例子: 機器人問:“您多大年紀呢?”,一般會設置“年齡”的信息采集 ??赏ㄟ^算法的實體識別(NER)技術,獲取訪客表述的年齡信息 。

推薦閱讀