Бот Еліза в корпоративному месенджері MyChat

У чаті MyChat є багато цікавих речей, і одна з них це вбудований робот. О скільки питань про цю технологію довелося вислухати творцям програми! 

Хто така, ця дівчина Еліза? Навіщо вона потрібна? Вона розмовляє? Чому вона не хлопчик і не дівчинка, а Чужий? Як її вимкнути? А чому вона у каналах сидить? А у нас начальниця Еліза Миколаївна, вона нервує, що в корпоративному чаті ще одна Еліза є :) 

Питань десятки, причому часто дуже різних і неповторних. Включати у довідку відповіді на ці питання, напевно, буде нелогічно, тим більше, що від версії до версії ми намагаємося зробити MyChat ближчим і зрозумілішим як адміністраторам, так і користувачам. Тому спробуємо відповісти на найсерйозніші, найцікавіші та смішніші питання людей у цій статті. 

Отже, приступимо. 

  1. Що це за користувач Elisa сидить у каналі і нічого не каже?
  2. Чому вбудованого робота звати саме Elisa?
  3. Я хочу її вимкнути! Мені не потрібні будь-які роботи в чаті!
  4. А що це за зелений аватар у робота? Що там намальовано?
  5. Elisa вміє розмовляти? І якщо ні, то чи можна її навчити цьому?
  6. А чи можна перейменувати Елізу?

Що це за користувач Elisa сидить у каналі і нічого не каже?


У чаті MyChat є технологія, що дозволяє робити конференції (канали, кімнати), в яких можуть спілкуватися одразу декілька людей одночасно. Тому в дистрибутиві, що встановлюється "з нуля", розробники додали один канал "main" (або "Головний"), він створюється автоматично, як тільки сервер буде запущено. Погодьтеся, це зручно, коли система тільки-но починає розгортатися, до сервера підключаються люди — і вони відразу ж можуть розмовляти один з одним у загальній кімнаті "main". 

Згодом користувачі навчаться користуватися пошуком, адміністратор зробить спільну панель контактів і люди зможуть знаходити один одного в чаті без проблем. А на початку, коли система в новинку, простота спілкування дуже важлива. 

Коли MyChat тільки-но починав розроблятися, а це було в 2004 році (звідси, до речі, і 2004 порт для роботи програми), було прийнято рішення взяти за основу ідеологію IRC-серверів для створення текстових конференцій. У серверах IRC канал, або конференція, існує доти, доки в ній є хоча б одна людина. Коли з конференції йдуть всі люди, вона автоматично знищується. 

Це дуже зручно тому, що користувачі можуть створювати безліч різних конференцій самостійно, особливо коли людей не 30-40 осіб, а сотні. І якщо сервер не зможе автоматично видаляти ці канали, дуже скоро буде хаос і мішанина. З іншого боку, якщо сервер тільки-но запущений — то створювати канали ще нікому, адже користувачі ще не підключені до нього. 

Так і з'явилася на світ Elisa — робот, який створювався сервером MyChat автоматично, щоб створити канал "main" і тихенько в ньому сидіти, доки сервер не буде вимкнений. Потім у чаті з'явилася можливість створювати будь-яку кількість каналів відразу при старті, а не лише один "main". І Еліза стала мультизадачна, виконуючи все більше і більше роботи від версії до версії.

Але найпершим і найголовнішим завданням було автоматичне створення конференцій та підтримка їх у живому стані, навіть якщо з них підуть усі користувачі. 


Чому вбудованого робота звати саме Elisa?


Коли головний розробник MyChat навчався в інституті, там викладався предмет — "Штучний інтелект". І так склалося, що курсовою роботою була програма, яка мала імітувати розмову звичайної людини. Текстом. Грубо кажучи, треба було сісти за комп'ютер, запустити програму та почати з нею говорити, як у чаті, друкуючи будь-які фрази та вирази. Програма повинна була відповідати і підтримувати розмову на більш-менш пристойному рівні. Чудес, звичайно, від такої програми ніхто не очікував, проте халтурити не хотілося.

Штучний інтелект

Після деякого періоду досліджень предметної галузі з'ясувалося, що навчити програму думати, як людина, та будувати осмислені пропозиції — завдання непомірної складності. Проте є спосіб зробити так, щоб програма створювала ілюзію того, що вона мислить і відповідає, наче людина. І питанням створення такої програми задався Джозеф Вейценбаум аж в 1966 році. Він написав програму, яка пародіює розмову з психотерапевтом. Програма називалася ELIZA і була дуже простою, тому що на всі репліки людини відповідала питаннями, які перефразували те, про що написала людина. 

В 1995 році була створена програма A.L.I.C.E, яка використовує техніку евристичного зіставлення фрази користувача зі зразками основою знань. Іншими словами, в базі даних цієї програми знаходиться величезна кількість фраз і виразів з різних галузей людської діяльності, і програма намагається підібрати тему і відповідь автоматично. До речі, на даний момент вона вважається чи не абсолютним лідером у цій галузі. На жаль, програма "розмовляє" лише англійською мовою. Але, завдяки нереально великій базі даних висловлювань, часто показує дивовижні результати. За цією адресою можна було поспілкуватись з даною програмою та оцінити її рівень. 

Однак жодна подібна програма не здатна пройти тест Тюрінга, який визначає, людина чи машина веде розмову. Принаймні поки що це не вдалося нікому. 

Тому було вирішено розробляти програму-співрозмовника за принципом цих двох програм. Протягом тривалого часу автор, його друзі та однокурсники, "спілкувалися" з програмою, збагачуючи її словниковий запас. І в "годину X", коли курсову роботу потрібно було показувати "в бойовому" режимі, викладач сів за комп'ютер і розпочав тест. Лог розмови не зберігся, але курсова робота була здана на відмінно після 4-ї відповіді під загальний сміх студентів. База питань і відповідей, а також алгоритм, що використовується, вийшли дуже вдалими і з гарним почуттям гумору. Усі репліки в програмі з боку комп'ютера писалися від вигаданого імені Elisa.

І коли через кілька років почав розроблятися MyChat, вбудований робот отримав ім'я Elisa. 


Я хочу її вимкнути! Мені не потрібні будь-які роботи в чаті!


Та без питань. Однак вам доведеться відмовитися від авто-створюваних конференцій, які створюватимуться роботом відразу після запуску сервера. Конференції (або канали) доведеться створювати вашим користувачам самим.

Але, з іншого боку, можливо, ви збираєтеся використовувати MyChat як месенджер, без конференцій зовсім? Панель контактів та привати — що ще потрібно? Це, звичайно, не означає, що ви забудете про Елізу назавжди, проте "мозолити очі" в конференціях вона вам уже не буде. І інтерфейс чат-клієнта стане на порядок простіше, і, можливо, звичніше, для тих людей, які звикли до класичних інтернет-пейджерів.

Але якщо ви не готові відмовитись від авто-створюваних конференцій, є можливість візуально "прибрати" бота Елізу. Зробити це можна в налаштуваннях MyChat Client:

Відключити бота Елізу


А що це за зелений аватар у робота? Що там намальовано?


Персонаж гри System Shock

Так історично склалося, що головний розробник MyChat, років за 10 до створення першої версії MyChat, 1994 року грав у комп'ютерну гру System Shock. Така собі гримуча суміш стилів: стімпанку, хорору і шутера. Сюжет гри переказувати тут сенсу немає, але варто сказати, що основним антагоністом гри був штучний інтелект SHODAN, який за сюжетом мав перемогти головного героя. 

Гра справила незабутнє враження як рівнем програмування, складністю графіки, так і неординарним сюжетом. Так ось, зображення цього ворожого штучного інтелекту було взято за прообраз аватара робота Elisa. Потім, через кілька років, вийшов System Shock II, у набагато вищій роздільній здатності, ніж 320x200 пікселів. Відповідно, картинку було взято вже звідти і зменшено до розмірів аватара. Виглядав ворожий ШІ приблизно так, як на малюнку. До речі, розробники гри наділили його дуже своєрідним характером та багатьма людськими якостями.


Elisa вміє розмовляти? І якщо ні, то чи можна її навчити цьому?


Так, певною мірою вміє. Але не підтримувати світську бесіду, а надсилати необхідні повідомлення у приватах.

По-перше, при відкритті привату з роботом з боку користувача можна автоматично надіслати йому стандартне повідомлення. Як це зробити описано у відповідному розділі Довідки. Зазвичай, цією функцією користуються адміністратори серверів. Яким може бути текст?

Наприклад:

  • правила чату (для публічних розважальних серверів);
  • список інструкцій та нормативних документів для корпоративного користування з посиланнями в інтрамережі;
  • телефонний довідник співробітників компанії.

Це просто приклади із реальних серверів, які працюють у різних клієнтів. Ви можете використовувати цю функцію на свій розсуд. Або не використовувати її зовсім.

По-друге, робот може надсилати повідомлення за допомогою скрипта, який виконується на сервері. Тут простір для польоту фантазії ще більший.

Скрипт — це програма вбудованою мовою. Ви можете написати програму, яка надсилатиме повідомлення потрібним користувачам у різні моменти часу. Наприклад, будь-які повідомлення, сервісні повідомлення тощо. Один з наших клієнтів використовує цю технологію для того, щоб оперативно повідомляти співробітників банку про надходження свіжої пошти внутрішніми каналами зв'язку, а також автоматично нагадувати про необхідність формування різних файлів звітності.

Приклади скриптів можна переглянути в розділі "Довідки".


А чи можна перейменувати Елізу?


Можна. Для цього необхідно зайти в налаштування сервера MyChat, обрати підрозділ "Налаштування" -> "Інформація про сервер" і замінити ім'я робота:

Зміна назви бота MyChat

Зміни відображаються у клієнтів миттєво, для цього не потрібно перезапускати сервер.

Підбиваючи підсумки, можна сказати, що Еліза житиме довго і щасливо, виконуючи все більше робіт і все більше інтегруючись у MyChat. Сподіватимемося, що робот стане такою собі візитною карткою продукту і завоює симпатії системних адміністраторів і звичайних користувачів корпоративного месенджера MyChat. 



Служба поддержки