[ELMA3] Подсистемы искусственного интеллекта (AI) и роботизации (RPA)
Подсистема искусственного интеллекта (AI)
Взаимодействие ELMA с подсистемой искусственного интеллекта осуществляется через Web API.
Робот состоит из следующих основных блоков:
- REST API – web service, написанный на python с использованием веб-сервиса flask.
- Модуль обработки входных данных.
- Модуль 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 и исполнение процесса продолжается.
Функционально с точки зрения пользователя это выглядит так:
- Искусственный интеллект читает входящее бумажное письмо, распознает его и регистрирует в системе в рамках бизнес-процессов документооборота: https://www.facebook.com/groups/bpmforenterprise/permalink/2431633017072360/.
- Искусственный интеллект читает договор в бумаге, полученный от контрагента, и сравнивает его с согласованной внутри компании версией: 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 приходит ответ в виде строки и запускается бизнес-процесс.