«Помогут в работе»: как сделать чат-ботов умнее

ServiceNow объявила о приобретении стартапа Parlo, разрабатывающего решения на базе машинного обучения, в частности, системы для обработки естественного языка (NLP). Расскажем о целях приобретения стартапа и алгоритме настройки чат-бота на платформе Now Platform.

ekyoz09fzdhmkfqprn4gwqwergu.jpeg
/ фото ☰☵ Michele M.F. CC

Зачем это ServiceNow


В Parlo предлагают платформу Broca, которая заточена под распознавание речи. ServiceNow планируют интегрировать Broca в свою Now Platform. Пэт Кейси (Pat Casey), старший вице-президент ServiceNow по DevOps, говорит, что компания стремится разнообразить процесс взаимодействия с машинами с помощью новых технологий для распознавания жестов и голоса.

Функциями NLP собираются снабдить чат-бот Virtual Agent, который уже поддерживает интеграцию с IBM Watson. Этот чат-бот предназначен для обработки запросов сотрудников и клиентов и может выполнять ряд задач, например, сбрасывать пароли или формировать отчет об инциденте. Чаты Virtual Agent также можно интегрировать с корпоративными мессенджерами: Slack или Microsoft Teams. Как сообщают в компании, чат-бот способен обработать 15–20% всех рутинных запросов клиентов связанных, например, с оформлением заказов и проверкой их статуса.

Когда в Virtual Agent добавят возможности продукта от Parlo, чат-бот сможет лучше понимать сотрудников (в том числе сленг и разговорные фразы). За счет этого персоналу и клиентам компании будет проще взаимодействовать с чат-ботом и платформой в целом.

lgtigyozh8xqgu5wkwfo7gcw7h0.jpeg
/ фото Papa Pic PD

Сделка должна была быть закрыта в конце мая. После этого в SN планировали начать внедрение функций NLP в решение Virtual Agent. Однако уже сейчас решение Virtual Agent обладает некоторыми «интеллектуальными способностями» благодаря интеграции с IBM Watson.

Их уже оценили в Альбертском университете. Чат-бот Virtual Agent использовали в течение двух недель. На момент окончания испытаний бот успешно обрабатывал 30% поступающих пользовательских запросов. В университете планируют и дальше задействовать систему в решении повседневных задач, чтобы в итоге добиться показателя в 80% и выше.

Как создать чат-бота


Система Now Platform позволяет реализовать свое чат-бот-приложение, интегрированное с сервисами IBM Watson. Далее рассмотрим один из вариантов реализации, приведенных в документации ServiceNow. В whitepaper приводится следующий алгоритм:1. Задать правила предметной области
Сперва нужно создать асинхронное правило в таблице live_message. Это будет точка входа для чат-бот-приложения. Асинхронный подход разблокирует семафоры перед обработкой REST-сообщений, передаваемых системе Watson. Эти семафоры контролируют количество транзакций, выполняемых параллельно. В результате это помогает увеличить производительность при работе с несколькими пользователями одновременно.2. Вызвать REST API
Далее нужно прописать исходящий вызов REST к сервису Conversation у IBM Watson. Вот пример кода, который проводится в официальном документе ServiceNow:

send: function(text) {
   try {
      var r = new sn_ws.RESTMessageV2 ('WatsonConversation', 'Message');
      r.setStringParameterNoEscape ('message', text);
      r.setStringParameterNoEscape ('version', this.version);
      r.setStringParameterNoEscape ('workplaceId', this.workplace_id);
      r.setStringParameterNoEscape ('context', this.getContext ());

      var response = r.execute();

      var responseBody = response.getBody();
      var httpStatus = response.getStatusCode();

      var responseObj = JSON.parse(responseBody);

      return {
         intents: this.parseIntents(responseObj ['intents'],'intent','confidence'),
         entities: this.parseEntities(responseObj ['entities'], 'entity', 'value'),
         outputs: responseObj ['output'], ['text'],
         input: responseObj ['input'], ['text'],
         context: responseObj ['context'],
         conversation_id: responseObj ['context'], ['conversation_id']
         response: responseBody
      };
   }
   catch(ex) {
      gs.error(ex + ': ' + responseBody);
      gs.addErrorMessage(ex);
      gs.addErrorMessage(response);
      return ex;
   }
},


Этот код использует объект сообщения REST, созданный ранее, устанавливает параметры и делает вызов REST с помощью r.execute (). Далее скрипт блокируется, ожидая ответного HTTP-объекта.3. Отправить ответ в чат клиента
После того как код приложения получил ответ от сервиса Watson, и обработка завершена, система отправляет ответное сообщение конечному пользователю. Это делается с помощью скрипта LiveFeedMessage и вызова метода postMessage (data).

Далее нужно задать еще одно правило бизнес-логики, которое уже посылает сообщение на фронтенд (необходимый список конфигураций вы можете найти здесь).

В ServiceNow также предлагают другой вариант интеграции, в котором используются синхронные правила. Ознакомиться с ним можно в pdf-документе по ссылке.

Таким образом, чат-боты Virtual Agent помогут обрабатывать большое количество однотипных обращений, например в саппорт, и дадут специалистам техподдержки время для решения более сложных задач. Как отмечают в ServiceNow, система будет доступна с версии платформы Kingston.


P.S. О чем мы пишем в Первом блоге о корпоративном IaaS:
P.P. S. Другие наши материалы на Хабре:

© Habrahabr.ru