[ELMA3] Подсистемы искусственного интеллекта (AI) и роботизации (RPA)

Подсистема искусственного интеллекта (AI)

Взаимодействие ELMA с подсистемой искусственного интеллекта осуществляется через Web API.

Робот состоит из следующих основных блоков:

  1. REST API – web service, написанный на python с использованием веб-сервиса flask.
  2. Модуль обработки входных данных.
  3. Модуль AI.

Процесс принятия решения инициируется посредством получения POST-запроса клиентского ПО на указанный сервер.

Формат запроса обговаривается заранее, форма запроса – xml.

Пример тела запроса:

<DOCUMENT
    <OPERATION>getDecision</OPERATION>
    <FILES>
        <FILE_NAME>имя файла</FILE_NAME>
        <LINK>ссылка на файл</LINK>
</FILES>
</DOCUMENT>

Пример ответа:

<STATUS>OK</STATUS>
<EMP_ID>значение целевой переменной</EMP_ID>
<CONFIDENCE>98.27</CONFIDENCE>

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

Модуль AI производит загрузку предобученной модели (архитектура модели может быть разной, это и random forest, xgboost, logistic regression, neurealnetwors: rnn, lstm ...), рассчитывает значение целевой переменной и передает его обратно web-сервису для отправки клиенту. Мы ведем собственные разработки на открытых компонентах (Google AI, Yandex CatBoost, Tesseract OCR).

Взаимодействие ELMA и AI

Общая логика взаимодействия ELMA и подсистемы AI следующая: из процесса с помощью пользовательского расширения производится обращение к подсистеме AI, данные из нее после обработки передаются в ELMA и исполнение процесса продолжается.

Функционально с точки зрения пользователя это выглядит так:

  1. Искусственный интеллект читает входящее бумажное письмо, распознает его и регистрирует в системе в рамках бизнес-процессов документооборота: https://www.facebook.com/groups/bpmforenterprise/permalink/2431633017072360/.
  2. Искусственный интеллект читает договор в бумаге, полученный от контрагента, и сравнивает его с согласованной внутри компании версией: https://www.facebook.com/groups/bpmforenterprise/permalink/2426581667577495/.

Точки интеграции с подсистемами RPA и AI и их встраивание в бизнес-процессы

В основе исполнения процессов в ELMA лежит управление состоянием экземпляров процесса (через Windows Workflow Foundation) и выполнение бизнес-логики элементов процесса.

Для корректного исполнения процессов в ELMA создана очередь исполнения элементов процессов. Процесс можно запустить из интерфейса системы ELMA, либо через метод Web API: ~/API/REST/Workflow/StartProcess.

На старте процесса происходит создание контекста процесса и экземпляра процесса (WorkflowInstance), определяются исполнители задач, инициатор и ответственный за экземпляр (исходя из настроек процесса). Также в очередь исполнения элементов процесса помещаются первые задачи на исполнение. Очередь исполнения элементов процесса является асинхронной. Выполнение элементов очереди – это выполнение конкретного элемента процесса. Каждый элемент выполняется в отдельной транзакции – это обеспечивает целостность данных и целостность очереди исполнения. Разбор и обработка элементов очереди осуществляется всеми узлами фермы серверов ELMA (Рис. 1).

Рис. 1. Схема работы очереди исполнения элементов процесса

В ELMA существует специальный тип элемента процесса – Пользовательское расширение. Внутри расширения закладывается бизнес-логика (настраивается в Дизайнере ELMA), при этом само расширение исполняется как стандартный элемент бизнес-процесса – так, как описано выше. Для бесшовной и быстрой интеграции с подсистемами RPA и AI созданы предустановленные универсальные расширения, которые можно размещать в любых процессах.

Элемент процесса описывается двумя классами: класс Element и класс Activity (бизнес-логика, действие) (Рис. 2). Класс Element описывает настройку элемента процесса, а его экземпляр содержит в себе все параметры для обращения за данными во внешние подсистемы (RPA и AI). Экземпляр класса Element хранится внутри диаграммы процесса в сериализованном виде. Класс Activity описывает логику исполнения, а его экземпляр исполняет бизнес-логику.

Рис. 2. Особенности элемента бизнес-процесса

В системе ELMA существует 2 вида Activity:

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

Действие по обращению в подсистему роботизации и AI выполняется сразу, как до него дошла очередь исполнения элементов процесса по ходу исполнения экземпляра процесса. В ходе исполнения Activity на основе настроек из элемента (экземпляра класса Element) конструируется веб-запрос, в который помещаются все необходимые параметры. Затем отправляется POST-запрос. Как только данные от подсистем были отправлены\получены (в зависимости от задачи), процесс исполняется согласно настроенной логике, очередь исполнения элементов процесса переходит к следующему элементу.

Подсистема роботизации (RPA)

Взаимодействие ELMA с подсистемой роботизации осуществляется через Web API.

Робот RPA может вызываться из процесса в нужной точке, выполнять необходимые действия и возвращать управление в процесс в ELMA. Либо он может при необходимости инициировать процесс в ELMA, вносить необходимые данные и отправлять процесс дальше.

Запуск робота внутри бизнес-процесса

В рамках бизнес-процесса в ELMA есть возможность запустить заранее созданного и сохраненного в Оркестраторе робота. Для этого необходимо знать учетные данные для входа в оркестратор, ID робота и releaseKey среды в оркестраторе.

Как описано выше в разделе «Точки интеграции с подсистемами RPA и AI и их встраивание в бизнес-процессы», для взаимодействия с RPA-системой реализовано пользовательское расширение (Рис. 3). Оно включается в логику бизнес-процесса на тех этапах, где это требуется. Само подключение сводится к передаче параметров запроса.

Рис. 3. Реализация взаимодействия с RPA-системой через пользовательское расширение

В сценарии пользовательского расширения создается подключение к Web-сервису (https://platform.uipath.com). На данный момент мы используем UIPath в качества RPA-системы (технологическое партнерство).

Назначается обработчик вызова, и производится авторизация с указанием учетных данных от Оркестратора. В заголовке для обмена данными указываем формат JSON.

Затем в сценарии формируется POST-запрос на получение токена авторизации. Токен авторизации получается путем обработки полученного JSON-ответа, выделения 3 позиции из строки авторизации. Токен сохраняется в контекстную переменную для дальнейшего использования. Данный токен авторизации необходимо в дальнейшем передавать как заголовок (Header) вместе с каждым запросом к методам (Рис. 4).

Рис. 4. Подключение и авторизация

Следующим этапом является создание запроса на запуск робота в Оркестраторе.

В заголовок передаются данные авторизации (токен авторизации, полученный на предыдущем шаге) и параметр обмена данными (указываем формат JSON).

Далее формируется строка POST-запроса, состоящая из:

  • ключа из UIPath;
  • идентификатора запускаемого робота;
  • входных аргументов (если это предусмотрено в логике работы робота).

Полученный результат в виде строки сохраняется в контекстную переменную. После успешного выполнения запроса Робот начинает выполнение задач (Рис. 5).

Рис. 5. Выполнение запроса на выполнение задачи роботом

Запуск бизнес-процесса ELMA с помощью Робота

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

Рис. 6. Настройки бизнес-процесса. Запуск из внешних систем

В алгоритм действия робота включается HTTP-запрос на запуск бизнес-процесса, в котором указывается адрес в качестве корневого в формате ~/API/REST (Рис. 7).

Рис. 7. Редактор выражений. HTTP-запрос на запуск бизнес-процесса

После чего в теле запроса формируется строка с указанием токена подключения к выбранному бизнес-процессу, и при необходимости передаются параметры процесса (для этого параметры должны быть обозначены в бизнес-процессе в качестве входных переменных) (Рис. 8).

Рис. 8. Редактор выражений. Токен и параметры процесса

После успешного выполнения запроса от сервера ELMA приходит ответ в виде строки и запускается бизнес-процесс.