«О бедной Элизе замолвите слово…»

В чате 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, который подходит лучше всего.


А что это за зелёный аватар у робота? Что там нарисовано?


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

Игра произвела неизгладимое впечатление, как уровнем программирования, сложностью графики, так и неординарным сюжетом. Так вот, изображение этого враждебного искусственного интеллекта и было взято за прообраз аватара робота Elisa. Затем, спустя несколько лет, вышел System Shock II, в гораздо более высоком разрешении, чем 320x200 точек. Соответственно, картинка была взята уже оттуда и уменьшена до размеров аватара. Выглядел враждебный ИИ приблизительно так, как на рисунке. К слову, разработчики игры наделили его весьма своеобразным характером и многими человеческими качествами.


Elisa умеет разговаривать? И если нет — то можно ли её научить этому?


Да, в некотором роде умеет. Но не поддерживать светскую беседу, а отправлять необходимые сообщения в приватах. 

Во-первых, при открытии привата с роботом со стороны пользователя, можно автоматически прислать ему стандартное сообщение. Как это сделать, описано в следующем разделе статьи. Как правило, этой функцией пользуются администраторы серверов. Каким может быть текст?

Например:

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

Это просто примеры из реальных серверов, которые работают у разных клиентов. Вы можете использовать данную функцию по своему усмотрению. Или не использовать её вовсе.

Во-вторых, робот может отправлять сообщения с помощью скрипта, который исполняется на сервере. Тут простор для полёта фантазии ещё больше.

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

Примеры простых скриптов можно посмотреть в разделе "Статьи" — "Расширение возможностей MyChat: скрипты" на официальном сайте.

И в-третьих, в сообщении, которое передаётся человеку при открытии привата с роботом, можно вставлять в текст так называемые ACTIONS, благодаря которым можно реализовать интерактивную систему вопросов-ответов. Практически HelpDesk. Как угодно разветвлённую и достаточно гибко работающую.


А можно ли переименовать Элизу?


"— Назвать её Роботом или ещё чем-то похуже? И аватар дать не страшного зелёного нечто, а что-то весёленькое типа Винни-Пуха?", "— У нас всех людей в компании зовут нормально, робот слишком выделяется. Надо его переименовать, чтобы все знали, что это такое".

Отвечаем — можно! Для этого необходимо зайти в настройки сервера MyChat, выбрать подраздел "Информация" и заменить имя/аватар робота:

Изменения отображаются у клиентов мгновенно, для этого не нужно перезапускать сервер. Аватар можно выбрать один из 240 предустановленных. 

Весьма удобной штукой является сообщение, которое робот автоматически передаёт любому пользователю, открывающему приват с ним. В этом сообщении администратор сервера может написать что угодно, а также использовать ACTIONS. С их помощью можно сделать целую автоматизированную систему вопросов-ответов, но это большая тема для отдельной статьи.

Кстати говоря, если корпоративная политика не одобряет использования картинок-аватаров, то в настройках клиента чата можно их отключить, и тогда все аватары изменятся на стилизованное изображение мальчик/девочка:

А для того, чтобы вручную не перенастраивать все клиентские компьютеры, стоит воспользоваться технологией удалённой загрузки настроек MyChat клиентам. Ну а робот останется зелёным "Чужим", надо же ему как-то отличаться от нормальных людей:

Подводя итоги, можно сказать, что Элиза будет жить долго и счастливо, выполняя всё больше работ и всё больше интегрируясь в MyChat. Будем надеяться, что робот станет эдакой визитной карточкой продукта и завоюет симпатии системных администраторов и обычных пользователей корпоративного мессенджера MyChat. 

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