CUI - conversational user interface, що перекладається як товариський інтерфейс. Ця концепція призначеного для користувача інтерфейсу, що спілкується з користувачем у вигляді діалогу. Її основне завдання - спростити взаємодію користувача з продуктом за допомогою голосових інтерфейсів і месенджерів. CUI застосовують у створенні чат ботів і голосових помічників для додавання їм "людяності". Зараз мало хто використовує ці принципи, більшість задають сценарії взаємодії інтуїтивно.
Комп'ютер мультизадачний, мультиінтерфейсний і багатовіконний, його інтерфейс забезпечує роздільну багатозадачність. Користувач має широкий вибір дій і можливих команд. Браузери, програми та навіть месенджери мають цю можливість, чого не можна сказати про чат боти.
Взаємодія з ботом відбувається тільки через текст або голосове введення. Спілкування кнопками, які за своєю суттю - швидкі команди, відбувається через той же рядок введення.
Інтерфейс введення у чат бота аналогічний інтерфейсу командного рядка. І це повертає його назад у часи, коли комп'ютери повністю керувались командним рядком, і можна було задати одну команду за один раз. Це створює труднощі у розумінні, що саме сказати боту, щоб він правильно тебе зрозумів і зробив те, що ти від нього чекаєш.
Коли командний рядок переріс в графічний інтерфейс Norton Commander, взаємодія відразу стала більш простою і зрозумілою. Він дозволяє бачити усі команди, розуміти, що натискати або вводити і як отримати бажаний результат.
Можливості інтерфейсів для користувачів можна умовно розташувати на шкалі залученості, де мінімальний вибір буде у користувачів голосового інтерфейсу, а максимальний - у віртуальній реальності (в теорії - необмежений вибір).
Як бачимо, чат бот знаходиться в лівій половині цієї шкали, після голосового інтерфейсу. Це означає, що можливостей у текстового інтерфейсу чат бота трохи більше, ніж у голосового, але все одно не багато. Потрібно врахувати це при створенні бота і використовувати можливості по максимуму.
Якщо чат бот служить заміною реальної людини, то він повинен:
Коли користувач веде переписку з реальною людиною, людина не буде вимагати точного введення команд або нескінченно перепитувати. Людина буде задавати додаткові питання, намагаючись вирішити проблему. Так за допомогою грамотно побудованого CUI, бот зможе розуміти, що від нього чекає користувач, навіть при не точно введених командах, і видавати осмислену відповідь.
Концепція CUI для спілкування між користувачем і ботом побудована на великій кількості можливих сценаріїв. Сценарії продумуються в форматі діалогу, де кожне повідомлення від бота закінчується питанням або пропозицією користувачеві. Сукупність сценаріїв має вигляд дерева рішень, за яким відбудовується ланцюжок реакцій на кожну дію користувача.
Для того, щоб правильно вибирати сценарії, а також розпізнавати значення введених фраз, використовуються системи розпізнаванняня природної мови (natural language recognition) на основі машинного навчання (machine learning).
Якість чат бота оцінюється користувачем за функціональністю, зрозумілістю та відсутністю глухих кутів. І саме продуманість дерева рішень впливає на зрозумілість чат бота для користувача, і відсутність тупикових ситуацій. Є простий інструмент перевірити її роботу - botsociety. Botsociety дозволяє прогнати всі сценарії в гілці рішень, щоб знайти і виправити всі глухі кути.
Іноді розмовного формату CUI для чат бота мало, або він не зовсім підходить за форматом. У таких випадках варто комбінувати товариський інтерфейс (CUI) з графічним (GUI), і чи в цілому виходити з інтерфейсу бота.
В такому випадку потрібно дати користувачеві зрозуміти, що остаточне ключове рішення або перевірка рішення буде здійснюватися живою людиною. Бот може просто видати одне таке повідомлення користувачу чи надати можливість звернутися до оператора - тоді рівень довіри до бота збільшиться.
Щоб уникнути помилок і спростити введення важливих даних, краще використовувати форми.
Спілкування з ботом повідомленнями або шляхом розпізнавання голосу помічником має відповідати принципам, сформульованим Полом Грайсом (Paul Grice):
спілкування має бути достовірним (thruhful), інформативним (informative) і відповідним напрямку діалогу (relevant).
Не мусить бути "єдино вірного шляху" ( "happy path"), яким потрібно пройти для отримання результату або необхідності говорити строго певні слова. Чат бот повинен використовувати алгоритми для того, щоб використовувати всі можливості мови і робити спілкування наближеним до спілкування з людиною, за необхідності запрошуючи користувача скористатися іншими видами інтерфейсів.