聊天介面設計規範

Siyi Wu
DualCores Studio
Published in
8 min readMar 7, 2016

簡單整理一下聊天介面(Conversational User Interface, CUI)的設計規範,以下內容可作為設計Bot對話模式和內容時的參考。在這邊分為幾個大項目說明,分別是輸入驗證轉換任務回頭追蹤定時離開等待緊急輸入、以及從清單中選擇

  • bot開頭先簡單地打招呼和自我介紹,告訴user可以詢問它什麼內容。
  • bot告訴user完成了哪些任務,並引導user下一步。
  • 當互動成功時,bot可逐步減少提示。
  • 根據user與bot的活動歷程,提供進一步的資訊或操作。
  • 確保bot提供的是與任務相關的建議,否則就會變成垃圾訊息。
  • 多選選單、文件瀏覽、地圖搜尋..還是用指標式的圖案和按鍵較為恰當。

輸入驗證

在GUI中,你有許多方法可以限制使用者的回答方式,但MUI需接收來自user各種不同的回答內容,所以如何架構對話中的問題及消化回答內容就變得特別重要:

  • 問出bot需要的東西,若user一次就回答清楚,就不用再多問。
  • bot給user回答提示。一次問一個問題,保持問題與回應夠精準。

User: What size t-shirt are you? We have medium, large, and extra-large

  • 當回應是有效時,重複user的答案,對話內連接下一題。

Bot: Got it. Size large. And what color would you like?

  • 當回應是無效時,向user解釋bot期待的回答(項目列舉),可以的話,解釋一下bot無法解讀的部分。

Bot: And what color would you like?

User: purple

Bot: I’m sorry, we don’t have purple. We have white, gray, brown, red, orange, pink, and black. What color would you like?

User: brbrbl

Bot: I’m sorry, “brbrbl”? Is that a color? We have white, gray, brown, red, pink and black. What color would you like?

User: gray

Bot: Cool! So a large gray t-shirt!

  • user有好幾種回應方式,可能都指向同一種選擇,設計時都要考慮在內。

_________________________________________________________________

轉換任務

不同於傳統的GUI介面,可以在各個平台或網頁之間切換頁面來轉換任務,MUI提供一個直通通的程序,bot一次只能處理一件事。以下是MUI在任務轉換時的設計準則:

  • 當bot正在執行多個不同任務時,要先跟user明確的確認目前執行中的任務是否暫停。這個任務可能已經花很多時間在做了但被轉換到下一個任務,要先與user確定是不是要取消,以免功虧一簣。

User: Meekan, schedule a team meeting tomorrow

User: Meekan, how busy am I on Thursday?

Bot: We have an active meeting in progress. Say “cancel” if you want to abort the current meeting.

  • 如果目前已經處理中的任務沒很重要,那麼bot要迅速的轉換去處理下一個user給的任務,並告訴user這個轉換中發生的事,取消了什麼任務,並執行了什麼任務。

Bot: Chris invited you to the project launch meeting on Friday 10am. Would you like to Accept or Decline?

User: Arrange a new meeting tomorrow with @jesse

Bot: Okay, Skipping the RSVP for now.

Bot: Matching your calendars for a meeting tomorrow (…)

_________________________________________________________________

回頭追蹤

  • user常常會忘記他上次問過什麼,如果突然又問起會讓user感到困惑。回朔問題要適當地插入對話。

Bot: What size t-shirt are you? We have medium, large, and extra-large

User: large

Bot: Got it. Size large. And what color would you like?

User: actually make it extra large

Bot: Okay, extra-large. And what color would you like?

_________________________________________________________________

定時離開

  • 你離開bot對話出去吃個中餐,或聊天清單被其他對話擠爆,跟bot的對話早就不知忘到哪去了。過期的對話過了一整天沒回應就中止吧。

_________________________________________________________________

等待緊急輸入

在GUI環境可以有個跳出視窗,直到回應跳出框的選項才可進行其他操作,但MUI無法強迫使用者優先操作某項目,我們複製此行為到MUI環境:

  • 告訴user需要回應什麼及為什麼他需要回應,然後bot要準備幾種在這種狀況下的回應方式,不要每次拒絕都用同個句子,這只會讓狀況更糟。這裡可探討這個接觸點是user有負面情緒,要小心處理,可說明為何我會對statbot一直用同樣句子拒絕導致我很惱怒,別讓user覺得自己很笨。

Bot: To do my job, I need access to your schedule. Follow this link to connect your calendar.

User: Schedule a new meeting tomorrow

Bot: Seriously, you need to connect your calendar here to enjoy my scheduling superpowers.

User: Am I busy tomorrow?

Bot: I can’t wait to start working on your schedule! Please connect your calendar so I can do my magic.

  • 如果不是真的特別重要的資訊,就不要進入此類狀況。也不要全盤否認使用者的回應,試著猜測user的答案或至少允許部分有限制的功能給user。這些都要確認bot是真的需要這項資訊,以免做無謂的干擾。

_________________________________________________________________

從清單中選擇

  • 這裏沒有下拉選單、單選框、複選框..,所以要給每個選項特別的名字或編號讓user選擇。這裡還有一種方式是將對話框結合部分GUI來做,將選單或選框嵌入對話。簡單的點按在某些時候還是比輸入文字有效率的多。

User: Meekan, cancel that meeting I have tomorrow

Bot: You have 3 meetings tomorrow, which one would you like me to cancel?

(1) Project launch at 10 am
(2) Team stand-up at 11 am
(3) 1-on-1 with Jake at 2:30 pm

User: Cancel 3

Bot: Okay, I’m canceling “1-on-1 with Jake” tomorrow. I’ll notify Jake about this.

Slackbot uses deep links to facilitate actions.
Telegram uses pop-up buttons for discovery and for shortcuts.

~我是思儀(Evonne),UI/UX Designer。持續有新點子,歡迎Follow我喔~

參考來源:

All Talk and No Buttons: The Conversational UI

Designing the Conversational UI

--

--