多輪對話(新畫布)
基本概念
多輪對話可理解為是根據上下文內容,進行連續的,以達到解決某一類特定任務為目的的對話。也即是說,無法在用戶與機器人的一次問答中完全達到對話目的,則可理解為多輪對話。具體示例如下圖所示:
在多輪對話示例中,用戶可直接詢問今天杭州天氣,此時機器人可直接進行杭州天氣回復,但由于并非所有用戶都會在詢問天氣時加上地址,所以此時機器人必然反問用戶地址信息后再回復天氣信息。也就是說,對于機器人而言,判斷一段對話是否為多輪對話,不應看達成對話目的的最簡潔對話方式的問答輪次,而是最復雜對話方式的對話輪次。
功能組成部分
機器人多輪對話大致是由:預設用戶可能輸入信息、預設機器人回復內容和觸發規則這三部分組成的。機器人能夠與用戶進行多輪對話,是因為人工已提前預設好有關用戶可能輸入信息和對應的機器人回復內容,用戶輸入信息后則會觸發機器人進行回復內容播報。
預設輸入信息
意圖
概念:意圖可理解為是不同表達形式的同一類型的內容。如用戶說:“你真棒啊、太厲害了、你好專業、你語氣太溫柔了吧”等都可以歸于“用戶表揚意圖”。
作用:通過新建意圖可配置用戶可能輸入的信息。以查天氣為例,設置“查天氣意圖”和對應意圖的回復內容,當用戶輸入信息是有關查天氣,則將觸發匹配“查天氣意圖”,機器人將輸出對應的回復內容。
實體
概念:實體是同類型單詞的合集,如:城市、日期、顏色等。
作用:對同一個意圖加上不同的屬性時,則會衍生出一個新的意圖,如“查天氣意圖”加上“地址”屬性后,則會衍生出“查詢杭州天氣意圖”“查詢北京天氣意圖”“查詢江西天氣意圖”等意圖,且所衍生出的各意圖對應回復內容不盡相同。通過實體配置則可將此類意圖歸結為“查詢某地址天氣意圖”,此處地址即為一個實體,對應的通過調用實體信息的方式配置對應意圖的回復內容,大大提升了列舉意圖及其對應回復內容的效率。
預設回復內容
節點
概念:節點可理解為是在整個多輪對話流中的一個個對話狀態。
作用:可在節點中配置機器人回復內容。此外,機器人回復后,用戶可能會根據機器人回復內容再做出信息輸入,可在節點中進行意圖的引用以預設用戶可能輸入的信息。
意圖與實體可在“對話流節點”中調用,具體調用方法可參考《對話流設計》;
對話設計中,除了設計正常用戶回復流程,還需要在“節點”中對以下各種異常情況進行設計:
用戶無輸入
拒識:機器人不理解用戶意圖;
不確定:機器人不確定用戶意圖。
對話流
概念:對話流由一個個節點連接形成的,表示多輪對話的整體流程。
作用:對話流是對節點能力的集成,用以完成整體多輪對話的對話目的。
觸發規則
多輪對話中,用戶的輸入信息在觸發已經設置的意圖后,機器人會對該意圖下的回復內容進行播報,而觸發這一動作是通過機器人內置算法自動實現的。
示例
應某業務需求,現在要對用戶當前體溫狀態進行了解,并對體溫在37度以上和以下的用戶進行不同的話術回復。有關對話流設計可參考如下圖:
當以上對話流設計完成后,需進行對話流發布使其生效,且要綁定到機器人上,機器人則可具備多輪對話的能力。具體有關對話流發布于綁定操作可參見《對話流設計》。
參數 | 描述 |
對話流 | 對話流是由一個個節點連接形成的,表示多輪對話的整體流程。 |
意圖 | 意圖用來定義對話工廠內用戶表述的一種意向,比如查天氣、訂機票、是本人等。 |
實體 | 實體是同類型單詞的合集,如:城市、日期、顏色等。語義通過實體進行理解,然后抽取并輸出機器可以理解的格式。 |
槽位 | 在填槽節點上配置的槽位,使用 slotVars['完整槽位名'] 或 slotVars['完整槽位名.origin']語法進行引用,求值結果為對應的槽位值,該值在當前開啟意圖內有效。 |
變量 | 客戶自己在平臺機器人內定義的變量,使用 botVars['變量名稱']語法進行引用,求值結果為對應的變量值,該值在整通對話有效。 |
服務返回參數 | 全局服務、自定義函數內返回的參數,使用 svcVars['xxx']語法進行引用,該值在整通對話有效。 |
環境參數 | 上游系統隨路傳入的變量,使用 envVars['環境參數名稱']語法進行引用,求值結果為對應的變量值,該值僅當前輪對話有效。 |
系統參數 | 機器人問答過程中,系統自動維護的變量,使用 sysVars['xxx']語法進行引用,在整通對話有效。 |