KR20220079836A - 머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성 - Google Patents

머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성 Download PDF

Info

Publication number
KR20220079836A
KR20220079836A KR1020227010805A KR20227010805A KR20220079836A KR 20220079836 A KR20220079836 A KR 20220079836A KR 1020227010805 A KR1020227010805 A KR 1020227010805A KR 20227010805 A KR20227010805 A KR 20227010805A KR 20220079836 A KR20220079836 A KR 20220079836A
Authority
KR
South Korea
Prior art keywords
model
user
workflow
models
trained
Prior art date
Application number
KR1020227010805A
Other languages
English (en)
Inventor
카르틱 아이어
라다크리쉬난 아이어
나빈 쿠마르 엠
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20220079836A publication Critical patent/KR20220079836A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

머신 러닝(ML)을 사용한 로봇 프로세스 자동화(RPA) 워크플로들의 자동 완성이 개시된다. 트레이닝된 ML 모델은 RPA 워크플로들(예를 들면, 하나의 워크플로, 소수의 워크플로들, 다수의 워크플로들, 나머지 워크플로 등)에서의 다음 일련의 활동들을 지능적으로 및 자동으로 예측하고 완성할 수 있다. 일정 시간 기간에 걸쳐 워크플로들을 생성하는 동안 사용자들이 취하는 액션들이 캡처되어 저장될 수 있다. ML 모델은 이어서 트레이닝될 수 있고 워크플로를 예측하고 완성하기 위해 저장된 액션들을 저장된 워크플로 액션 시퀀스들과 매칭시키는 데 사용될 수 있다. 시간이 지남에 따라 점점 더 많은 워크플로 시퀀스들이 캡처되고 저장되기 때문에, 더 많은 수의 시퀀스들을 예측하고/하거나 더 정확하게 예측하기 위해 ML 모델이 재트레이닝될 수 있다. 사용자의 시간과 노력을 절감하기 위해 일부 실시예들에서 자동 완성이 실시간으로 행해질 수 있다.

Description

머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성
관련 출원들의 상호 참조
본 출원은 2019년 10월 15일에 출원된 인도 가특허 출원 제201911041766호의 이익을 주장하는, 2019년 12월 4일에 출원된 미국 정규 특허 출원 제16/702,966호의 이익을 주장한다. 이러한 이전에 출원된 출원들의 주제는 이로써 그 전체가 참고로 포함된다.
기술 분야
본 발명은 일반적으로 로봇 프로세스 자동화(RPA), 더 구체적으로는, 머신 러닝(ML)을 사용한 RPA 워크플로들의 자동 완성에 관한 것이다.
RPA 워크플로는 많은 모듈들 및/또는 시퀀스들을 포함할 수 있다. 유사한 태스크들에 대한 워크플로들을 생성할 때, 사용자는 종종 특정 단계들 또는 시퀀스들을 반복하는 경향이 있다. 워크플로에서 이러한 단계들을 반복하는 것은 더 많은 개발자 시간이 걸리고 생산성을 감소시킨다. 기존의 해결책들은 비즈니스 자동화를 위한 워크플로 설계들의 템플릿 기반(template-driven) 생성을 제공한다. 그렇지만, 이러한 템플릿들은 사전 설정되어 있으며, 그의 변경 사항들을 고려하는 것은 고사하고, 사용자 의도 또는 요구사항들을 예측하는 데 인텔리전스를 포함하지 않는다. 그에 따라, 워크플로 생성 동안 그러한 반복을 감소시키거나 피하는 개선된 해결책이 유익할 수 있다.
본 발명의 특정 실시예들은 현재 RPA 기술들에 의해 아직 완전히 식별, 인식 또는 해결되지 않은 기술 분야에서의 문제들 및 요구들에 대한 해결책들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 ML을 사용한 RPA 워크플로들의 자동 완성에 관한 것이다.
일 실시예에서, 시스템은 각자의 디자이너 애플리케이션들을 포함하는 복수의 개발자 컴퓨팅 시스템들 및 워크플로들을 저장하는 데이터베이스를 포함한다. 워크플로들은 활동 시퀀스들을 포함한다. 이 시스템은 하나 이상의 ML 모델을 트레이닝시키도록 구성된 서버를 또한 포함한다. 디자이너 애플리케이션들은 각자의 사용자들이 RPA 워크플로들을 생성하고 있을 때 활동들을 모니터링하고, 각자의 워크플로들에서의 활동 시퀀스들을 캡처하며, 각자의 워크플로들에서의 캡처된 활동 시퀀스들, 각자의 워크플로들 자체, 또는 양쪽 모두가 데이터베이스에 저장되게 하고, 하나 이상의 트레이닝된 ML 모델을 호출하도록 구성된다. 서버는 개발자들이 워크플로에 하나 이상의 활동을 추가하고/하거나 워크플로 내의 하나 이상의 활동을 수정한 후에 하나 이상의 다음 활동 시퀀스를 식별하기 위해 저장된 워크플로들을 사용하여 하나 이상의 ML 모델을 트레이닝시키도록 구성된다. 하나 이상의 트레이닝된 ML 모델은 현재 사용자가 현재 워크플로에 활동들을 추가하거나 현재 워크플로 내의 활동들을 수정할 때 현재 워크플로를 분석하고, 적어도 제안 신뢰 임계치(suggestion confidence threshold)에 의해 추가 및/또는 수정된 활동들 중 하나 이상이 다음 활동 시퀀스를 나타낸다는 것을 검출하며, 하나 이상의 트레이닝된 ML 모델이 제안 신뢰 임계치가 다음 활동 시퀀스에 대해 충족되거나 초과되었음을 검출할 때 다음 활동 시퀀스를 사용자에게 제안하도록 구성된다.
다른 실시예에서, 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 구체화된다. 이 프로그램은 적어도 하나의 프로세서로 하여금 사용자가 RPA 워크플로를 생성하고 있을 때 RPA 워크플로에서의 활동들을 모니터링하게 하고 RPA 워크플로에서의 모니터링된 활동들의 시퀀스들, RPA 워크플로 자체, 또는 양쪽 모두를 캡처하게 하도록 구성된다. 이 프로그램은 또한 적어도 하나의 프로세서로 하여금 캡처된 활동 시퀀스들, RPA 워크플로, 또는 양쪽 모두를 분석을 위해 제1 ML 모델로 송신하게 하도록 구성된다. 이 프로그램은 적어도 하나의 프로세서로 하여금 제1 ML 모델로부터 하나 이상의 제안된 다음 활동 시퀀스를 수신하게 하고 하나 이상의 제안된 다음 활동 시퀀스를 사용자에게 제안하게 하도록 더 구성된다.
또 다른 실시예에서, 컴퓨터 구현 방법은 하나 이상의 RPA 디자이너 애플리케이션으로부터 복수의 수집된 워크플로들을 수신하는 단계 및 개발자들이 워크플로에 하나 이상의 활동을 추가하고/하거나 워크플로 내의 하나 이상의 활동을 수정한 후에 하나 이상의 다음 활동 시퀀스를 식별하기 위해 복수의 수집된 워크플로들을 사용하여 하나 이상의 ML 모델을 트레이닝시키는 단계를 포함한다. 컴퓨터 구현 방법은 트레이닝 이후에 하나 이상의 트레이닝된 ML 모델을 하나 이상의 RPA 디자이너 애플리케이션에 이용 가능하게 만드는 단계를 또한 포함한다.
본 발명의 특정 실시예들의 장점들이 용이하게 이해되도록, 위에서 간략하게 설명된 본 발명의 더 상세한 설명이 첨부된 도면들에 예시되는 특정 실시예들을 참조하여 제공될 것이다. 이러한 도면들이 본 발명의 전형적인 실시예들만을 묘사하고 따라서 본 발명의 범위를 제한하는 것으로 간주되지 않아야 한다는 것이 이해되어야 하는 반면, 본 발명이 첨부 도면을 사용하여 더 구체적이고 상세하게 기술되고 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 2는 본 발명의 일 실시예에 따른, 배포된 RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 3은 본 발명의 일 실시예에 따른, 디자이너, 활동들 및 드라이버들 간의 관계를 예시하는 아키텍처 다이어그램이다.
도 4는 본 발명의 일 실시예에 따른, RPA 시스템을 예시하는 아키텍처 다이어그램이다.
도 5는 본 발명의 일 실시예에 따른, ML을 사용하여 RPA 워크플로들을 자동으로 완성하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 다이어그램이다.
도 6a는 본 발명의 일 실시예에 따른, 잠재적인 다음 활동 시퀀스가 ML 모델에 의해 검출된 후의 디자이너 애플리케이션을 예시하는 스크린샷이다.
도 6b는 본 발명의 일 실시예에 따른, 사용자가 제안된 다음 활동 시퀀스가 올바르다는 것을 표시하고 시퀀스가 워크플로에 추가된 후의 도 6a의 디자이너 애플리케이션을 예시하는 스크린샷이다.
도 6c는 본 발명의 일 실시예에 따른, 자동 완성된 변수들 탭을 예시하는 스크린샷이다.
도 6d는 본 발명의 일 실시예에 따른, 자동 완성된 속성들 탭을 예시하는 스크린샷이다.
도 7은 본 발명의 일 실시예에 따른, RPA 워크플로에 대한 제안된 다음 활동 시퀀스를 거부 또는 수락하고 자동으로 완성하기 위한 프로세스를 예시하는 흐름 다이어그램이다.
도 8은 본 발명의 일 실시예에 따른, 개인화된 흐름과 일반화된 흐름 양쪽 모두에 대한 자동 완성 아키텍처 다이어그램이다.
도 9는 본 발명의 일 실시예에 따른, ML을 사용하여 RPA 워크플로들을 자동으로 완성하기 위한 프로세스를 예시한 플로차트이다.
일부 실시예들은 ML을 사용한 RPA 워크플로들의 자동 완성에 관한 것이다. 본 명세서에서 사용되는 바와 같이, ML은 본 발명의 범위를 벗어나지 않으면서 딥 러닝(DL)(예를 들면, 딥 러닝 신경 네트워크들(DLNN들)), 쉘로우 러닝(예를 들면, 쉘로우 러닝 신경 네트워크들(SLNN들)), 임의의 다른 적합한 유형의 머신 러닝, 또는 이들의 임의의 조합을 지칭할 수 있다. 그러한 실시예들은 ML 기술들을 사용하여 워크플로들(예를 들면, 하나의 워크플로, 소수의 워크플로들, 다수의 워크플로들, 나머지 워크플로 등)에서의 다음 일련의 활동들을 지능적으로 및 자동으로 예측하고 완성할 수 있다. 워크플로들을 생성하는 동안 사용자들이 생성 및/또는 수정하는 활동들이 캡처되고 일정 시간 기간 동안 데이터베이스에 저장될 수 있다. ML 모델은 이어서 RPA 개발자들에 의해 생성되는 활동 시퀀스들을 포함하는 워크플로들을 포함하는 적합한 데이터 세트(예를 들면, XAML(extensible application markup language) 파일 데이터 세트)에 대해 트레이닝될 수 있다. XAML 파일들은 RPA 워크플로들을 생성하는 데 사용되는 정보(예를 들면, 활동들, 파라미터들, 활동 흐름 등)를 포함할 수 있다.
일단 ML 모델이 트레이닝되면, 개발자가 현재 빌드하고 있는 워크플로와 관련된 정보를 저장하는 파일들(예를 들면, XAML 파일들)이 RPA 디자이너 애플리케이션에 의해 ML 모델에 입력 데이터로서 전달될 수 있다. ML 모델은 이어서 이 입력을 사용하고 자동 완성을 위한 다음 활동 시퀀스를 예측할 수 있다. 일부 실시예들에서 이 예측된 출력의 포맷도 XAML 파일일 수 있다. 워크플로에서의 현재 활동 시퀀스가 적어도 미리 결정된 신뢰 임계치(즉, 제안 신뢰 임계치)를 갖는 다음 활동 시퀀스의 예측으로 이어지지 않는 경우, 개발자가 계속해서 워크플로를 생성함에 따라 디자이너 애플리케이션은 계속하여 워크플로 정보를 XAML 모델에 주기적으로 전달할 수 있으며, 그 시점에서, 예측이 제안 신뢰 임계치를 충족시키는 경우 다음 활동 시퀀스의 제안이 제공될 수 있다.
패턴들을 찾기 위해 RPA 개발자들로부터의 워크플로 데이터의 더 큰 캐시가 저장되고 분석될 수 있도록 글로벌 ML 모델의 트레이닝이 서버 측에서 행해질 수 있다. 또한, 서버는 대량의 프로세싱 및 그래픽 프로세싱 유닛(GPU) 리소스들을 가지는 경향이 있으며, 이는 트레이닝이 더 빨리 행해질 수 있게 한다. 그렇지만, 본 발명의 범위를 벗어나지 않으면서 하나 이상의 ML 모델의 트레이닝이 동일한 컴퓨팅 시스템에서, 상이한 컴퓨팅 시스템들에서, 클라이언트 측에서, 서버 측에서, 또는 임의의 다른 컴퓨팅 시스템(들) 및/또는 위치(들)에서 행해질 수 있다.
일부 실시예들에서, 개별 개발자 스타일들 및 선호사항들을 고려하도록 각각의 RPA 개발자에 대해 로컬 모델들이 트레이닝될 수 있다. 예를 들어, 개발자는 활동 시퀀스 이후에 특정 이메일을 송신하는 것을 선호할 수 있고, 특정 변수 유형들을 선호할 수 있는 등을 할 수 있다. 일단 트레이닝되면, 글로벌 및 로컬 ML 모델들이 RPA 개발자 애플리케이션으로 푸시될 수 있거나 원격으로 RPA 애플리케이션에 이용 가능하게 될 수 있다(예를 들면, RPA 개발자 애플리케이션의 요청에 따라 서버 측에서 실행될 수 있다). 해당 사용자에 대해 어떤 로컬 ML 모델도 개발되지 않은 경우, 글로벌 ML 모델이 사용될 수 있다. 일부 실시예들에서, 로컬 ML 모델이 먼저 적용될 수 있고, 다음 시퀀스가 예측되지 않은 경우(예를 들면, 로컬 모델에 대한 신뢰 임계치가 충족되지 않는 경우), 제안할 시퀀스를 찾기 위해 글로벌 ML 모델이 적용될 수 있다. 특정 실시예들에서, 로컬 ML 모델과 글로벌 ML 모델은 상이한 신뢰도 임계치들을 가질 수 있다.
글로벌 ML 모델은, 다수의 또는 많은 RPA 개발자들로부터의 워크플로 데이터로부터 학습하기 때문에, 덜 빈번히 업데이트될 수 있고 트레이닝시키는 데 더 오래 걸릴 수 있다. 반면에, 로컬 모델은 주어진 개발자로부터의 워크플로 데이터를 사용한다. 따라서, 일부 실시예들에서, 글로벌 모델은 몇 주마다 업데이트될 수 있는 반면, 로컬 모델은 며칠마다 업데이트될 수 있다. 당연히, 각각의 모델이 트레이닝될 수 있는 속도 및 빈도는 주어진 구현 및 프로세싱 리소스들에 의존한다.
일단 트레이닝되면, ML 모델 또는 모델들은 워크플로의 해당 부분을 완성하기 위해 워크플로의 자동 생성된 시퀀스들과 관련하여 사용자 확인을 수신할 수 있다. 시간이 지남에 따라 점점 더 많은 워크플로 시퀀스들이 캡처되고 저장되기 때문에, 더 많은 수의 시퀀스들을 예측하고/하거나 더 정확하게 예측하기 위해 ML 모델 또는 모델들이 재트레이닝될 수 있다. 사용자 또는 개발자의 시간과 노력을 절감하기 위해 일부 실시예들에서 자동 완성이 실시간으로 행해질 수 있다.
일부 실시예들에서, 개발자는 맨 처음부터 자신의 워크플로를 빌드하기 시작할 수 있다. 단계(즉, 활동)가 워크플로에 추가될 때, ML 모델(로컬, 글로벌, 또는 양쪽 모두)은 해당 단계, 및 잠재적으로 시퀀스 내의 하나 이상의 선행 단계(들)를 분석하고, 적어도 미리 결정된 확률 임계치를 충족시키는 해당 단계 이후에 하나 이상의 시퀀스가 잠재적으로 요망될 수 있는지 여부를 검사할 수 있다. 일단 사용자가 워크플로에 활동을 추가하면, 다음 논리적 활동 시퀀스가 예측되고 자동 완성될 수 있는지 여부를 검사하기 위해 이 새로 추가된 활동을 포함한 마지막 N 개의 활동이 ML 모델에 의해 고려될 수 있다. 이러한 가능성은 일부 실시예들에서 90% 초과일 수 있는 모델 예측의 임계 신뢰 수준에 의해 결정될 수 있다. 워크플로에서의 현재 활동 시퀀스에 기초하여 제안될 저장된 시퀀스들에 대한 신뢰 수준이 임계 신뢰 수준보다 낮은 경우, 제안이 제공되지 않을 수 있다. 제안 신뢰 임계치가 충족될 때까지 다음 활동이 추가될 때 ML 모델이 이어서 또다시 실행될 수 있다. 따라서, 잠재적으로 제안될 각각의 가능한 시퀀스에 대해 결정된 신뢰 임계치들도 있고 이러한 시퀀스들이 제안되기 위해 충족시켜야 하는 제안 신뢰 임계치도 있다.
둘 이상의 가능한 다음 활동 시퀀스가 제안 신뢰 임계치를 초과할 수 있는 것이 가능하다. 이러한 경우에, 사용자/개발자는 워크플로에서의 하나 이상의 다음 단계를 잠재적으로 완성하기 위한 옵션들로서 이러한 시퀀스들을 제시받을 수 있다. 특정 실시예들에서, 시퀀스들은 그 각자의 신뢰 임계치들의 순서로 순위화된다. 사용자/개발자는 이어서 워크플로에 자동으로 추가되는 적절한 다음 시퀀스를 선택할 수 있다.
특정 실시예들에서, 이것은 본 발명의 범위를 벗어나지 않으면서 워크플로에 활동들을 추가하는 것, 변수들(즉, 프로그래밍 변수들)의 선언들 및 용법을 설정하는 것, 특정 파일들로부터 판독하는 것/특정 파일들에 기입하는 것, 및/또는 워크플로에서의 시퀀스를 논리적으로 결론짓기 위한 임의의 다른 원하는 관련 단계들을 포함할 수 있다. 프로그래밍 언어와 어느 정도 유사한 RPA 워크플로는 전형적으로 워크플로의 실행 동안 사용되는 상이한 유형들의 변수들을 갖는다. 이러한 변수들이 적절한 데이터 유형으로서 선언되지 않는 경우, 워크플로는 오류들에 봉착할 수 있다. 따라서, 숫자들(예를 들면, 정수), 텍스트(예를 들면, 문자열) 등을 보유할 변수들의 올바른 데이터 유형들이 선택되어야 한다. 따라서, 일부 실시예들은 워크플로들의 자동 완성을 수행하기도 하고 지능적으로 올바른 유형의 관련 변수들을 내부적으로 선언한다.
상기에 따라, 일부 실시예들에서, ML 모델은 제안 신뢰 점수(즉, 서브시퀀스가 주어진 단계 또는 활동, 또는 이들의 시퀀스 이후에 사용될 것이라는 ML 모델에 의한 추정된 확률)를 충족시키거나 초과하는 시퀀스 예측들을 제공한다. ML 모델은 많은 워크플로들 전체 및 이러한 워크플로들 내의 시퀀스들을 사용하는 트레이닝에 기초하여 신뢰 점수를 학습할 수 있다. 또한 상기에 따라, 다수의 시퀀스들이 주어진 단계에 대한 신뢰 임계치를 초과하는 경우(예를 들면, 2 개 이상의 시퀀스가 임계치를 충족시키거나 초과하는 신뢰 점수를 가지기 때문에 적어도 2 개의 논리적 분기가 존재하는 경우), 개발자가 이러한 시퀀스들로 프롬프팅될 수 있다. 개발자는 이어서 어느 시퀀스가 올바른지를 선택할 수 있다(또는 일부 실시예들에서, 어떤 시퀀스도 올바르지 않다고 표시할 수 있다). 시퀀스가 선택되는 경우, 선택된 시퀀스가 워크플로에 자동으로 추가된다. 만약 그렇지 않다면, 개발자는 워크플로 개발 프로세스를 계속한다. 일부 실시예들에서, 일정 시간 기간에 걸쳐, ML 모델은 개발자의 개인적 스타일, 논리, 및 규약에 관해 점점 더 많이 학습할 수 있다. ML 모델은 이어서 개발자가 개인적으로 원했을 것임을 ML 모델이 어떻게 추정하는지에 기초하여 워크플로를 예측하고 완성하기 위해 이 정보를 사용할 수 있다.
일부 실시예들에서, ML 모델은 유인 피드백(attended feedback), 무인 피드백(unattended feedback), 또는 양쪽 모두를 통해 트레이닝될 수 있다. 유인 피드백은 개발자가 트레이닝 데이터를 생성하는 데 적극적으로 관여하는 경우를 포함한다. 예를 들어, RPA 개발자는 예측된 다음 활동 시퀀스를 사용하고 트레이닝을 위해 이것을 서버 측에 제공하기를 원하지 않은 이유들에 대해 프롬프팅될 수 있다. 무인 피드백은 사용자의 적극적인 참여 없이 수집되는 정보를 포함한다. 예를 들어, 사용자가 활동 시퀀스를 거부했다는 사실만으로도 ML 모델이 해당 주어진 사용자에 대해 의도된 대로 작동하고 있지 않을 수 있다는 정보를 제공할 수 있다. 개발자가 제안을 거부한 후에 워크플로에 포함시키는 활동들은 이어서 개발자가 실제로 찾고 있는 것과 관련하여 모델을 트레이닝시키는 데 사용될 수 있다. 글로벌적으로 이러한 경향이 있는 경우, 이 정보는 또한 글로벌 ML 모델을 트레이닝시키는 데 사용될 수 있다.
유인 피드백, 무인 피드백, 또는 양쪽 모두는 로컬 및 글로벌 ML 모델들을 트레이닝시키기 위한 입력을 제공한다. 글로벌 ML 모델은 모든 RPA 개발자들 또는 RPA 개발자들의 서브세트를 위한 일반화된 모델이며, 로컬 ML 모델은 개인화되고 사용자 특정적이다. 로컬 ML 모델이 존재하지 않거나 제안 신뢰 임계치를 충족시키거나 초과하는 시퀀스를 찾지 못하는 경우, 예측에 대한 제안 신뢰 임계치를 충족시키거나 초과하는 제안을 찾으려고 시도하기 위해 글로벌 ML 모델이 조회될 수 있다. 특정 실시예들에서, 셋 이상의 ML 모델이 사용될 수 있다. 예를 들어, 일부 실시예들은 주어진 개발자에 대한 로컬 모델을 이용할 수 있고, 이어서 점점 더 큰 개발자 그룹들, 글로벌 모델에 이르기까지 적용되는 N 개의 다음 모델(예를 들면, 프로그래밍 팀, 이어서 그룹, 이어서 회사 등)을 이용할 수 있다.
도 1은 본 발명의 일 실시예에 따른, RPA 시스템(100)을 예시하는 아키텍처 다이어그램이다. RPA 시스템(100)은 개발자가 워크플로들을 설계하고 구현할 수 있게 하는 디자이너(110)를 포함한다. 디자이너(110)는 애플리케이션 통합은 물론, 제3자 애플리케이션들, 관리 정보 기술(IT) 태스크들, 및 비즈니스 IT 프로세스들을 자동화하기 위한 솔루션을 제공할 수 있다. 디자이너(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말하면, 디자이너(110)는 워크플로들 및 로봇들의 개발 및 배포를 용이하게 한다.
자동화 프로젝트는, 본 명세서에서 "활동들"로서 정의되는, 워크플로에서의 개발된 일단의 커스텀 단계들 간의 관계 및 실행 순서에 대한 개발자 제어를 제공하는 것에 의해 규칙 기반 프로세스들의 자동화를 가능하게 한다. 디자이너(110)의 실시예의 하나의 상업적 예는 UiPath Studio™이다. 각각의 활동은, 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널에 기입하는 것 등과 같은, 액션을 포함할 수 있다. 일부 실시예들에서, 워크플로들은 네스팅되거나 임베딩될 수 있다.
일부 유형들의 워크플로들은 시퀀스들, 플로차트들, 유한 상태 머신들(FSM들), 및/또는 글로벌 예외 핸들러들을 포함할 수 있지만, 이에 제한되지 않는다. 시퀀스들은, 워크플로를 복잡하게 하지 않고 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 하는, 선형 프로세스들에 특히 적합할 수 있다. 플로차트들은 더 복잡한 비즈니스 논리에 특히 적합하여, 다수의 분기 논리 연산자들을 통해 더 다양한 방식으로 의사 결정들의 통합 및 활동들의 연결을 가능하게 할 수 있다. FSM들은 대규모 워크플로들에 특히 적합할 수 있다. FSM들은 그들의 실행에서 유한한 수의 상태들을 사용할 수 있는데, 이 상태들은 조건(즉, 전환) 또는 활동에 의해 트리거될 수 있다. 글로벌 예외 핸들러들은 실행 오류에 봉착할 때 워크플로 거동을 결정하는 데 및 프로세스들을 디버깅하는 데 특히 적합할 수 있다.
일단 디자이너(110)에서 워크플로가 개발되면, 비즈니스 프로세스들의 실행이 컨덕터(conductor)(120)에 의해 조율되는데, 컨덕터(120)는 디자이너(110)에서 개발된 워크플로들을 실행하는 하나 이상의 로봇(130)을 조율한다. 컨덕터(120)의 실시예의 하나의 상업적 예는 UiPath Orchestrator™이다. 컨덕터(120)는 환경에서의 리소스들의 생성, 모니터링, 및 배포의 관리를 용이하게 한다. 컨덕터(120)는 제3자 솔루션들 및 애플리케이션들과의 통합 지점으로서 작용할 수 있다.
컨덕터(120)는 로봇들(130)의 플릿을 관리하여, 중앙 집중식 지점으로부터 로봇들(130)을 연결시키고 실행할 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇들(132), 무인 로봇들(134), 개발 로봇들(무인 로봇들(134)과 유사하지만, 개발 및 테스트 목적들로 사용됨), 및 비생산 로봇들(유인 로봇들(132)과 유사하지만, 개발 및 테스트 목적들로 사용됨)을 포함하지만, 이에 제한되지 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거되고 동일한 컴퓨팅 시스템에서 인간과 함께 작동한다. 유인 로봇들(132)은 중앙 집중식 프로세스 배포 및 로깅 매체를 위해 컨덕터(120)에서 사용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 태스크들을 수행하는 것을 도울 수 있고, 사용자 이벤트들에 의해 트리거될 수 있다. 일부 실시예들에서, 프로세스들이 이러한 유형의 로봇에 대해 컨덕터(120)로부터 시작될 수 없고/있거나 잠금 화면 하에서 실행될 수 없다. 특정 실시예들에서, 유인 로봇들(132)은 로봇 트레이로부터 또는 커맨드 프롬프트로부터만 시작될 수 있다. 일부 실시예들에서, 유인 로봇들(132)은 인간 감독 하에서 실행되어야 한다.
무인 로봇들(134)은 가상 환경들에서 무인으로 실행되며, 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 워크 큐들(work queues)에 대한 지원을 제공하는 것을 담당할 수 있다. 일부 실시예들에서 모든 로봇 유형들에 대한 디버깅이 디자이너(110)에서 실행될 수 있다. 유인 로봇들과 무인 로봇들 양쪽 모두는, 메인프레임들, 웹 애플리케이션들, VM들, 엔터프라이즈 애플리케이션들(예를 들면, SAP®, SalesForce®, Oracle® 등에 의해 생산된 것들), 및 컴퓨팅 시스템 애플리케이션들(예를 들면, 데스크톱 및 랩톱 애플리케이션들, 모바일 디바이스 애플리케이션들, 웨어러블 컴퓨터 애플리케이션들 등)을 포함하지만 이에 제한되지 않는, 다양한 시스템들 및 애플리케이션들을 자동화할 수 있다.
컨덕터(120)는, 프로비저닝, 배포, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호연결성을 제공하는 것을 포함하지만 이에 제한되지 않는, 다양한 능력들을 가질 수 있다. 프로비저닝은 로봇들(130)과 컨덕터(120)(예를 들면, 웹 애플리케이션) 사이의 연결들의 생성 및 유지를 포함할 수 있다. 배포는 실행을 위해 패키지 버전들을 할당된 로봇들(130)에 올바르게 전달하는 것을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하는 것 및 사용자 권한들을 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들면, 대규모 데이터 세트들을 저장하고 빠르게 쿼리할 수 있게 하는 ElasticSearch®)에 로그들을 저장하고 인덱싱하는 것을 포함할 수 있다. 컨덕터(120)는 제3자 솔루션들 및/또는 애플리케이션들을 위한 중앙 집중식 통신 지점으로서 역할하는 것에 의해 상호연결성을 제공할 수 있다.
로봇들(130)은 디자이너(110)에서 빌드되는 워크플로들을 실행하는 실행 에이전트들일 수 있다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 기본적으로 Microsoft Windows® SCM(Service Control Manager) 관리 서비스를 설치한다. 그 결과, 그러한 로봇들(130)은 로컬 시스템 계정으로 대화형 Windows® 세션들을 열 수 있고, Windows® 서비스의 권한을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드에서 설치될 수 있다. 그러한 로봇들(130)의 경우, 이는 로봇들(130)이 주어진 로봇(130)이 설치된 사용자와 동일한 권한을 갖는다는 것을 의미한다. 이 특징은 고밀도(HD) 로봇들에 대해서도 이용 가능할 수 있으며, 이는 각각의 머신을 그의 최대 잠재적으로 최대한 활용하는 것을 보장한다. 일부 실시예들에서, 임의의 유형의 로봇(130)이 HD 환경에서 구성될 수 있다.
일부 실시예들에서, 로봇들(130)이 여러 컴포넌트들로 분할되고, 각각의 컴포넌트는 특정 자동화 태스크에 전용된다. 일부 실시예들에서, 로봇 컴포넌트들은 SCM 관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행기들, 에이전트들, 및 커맨드 라인을 포함하지만 이에 제한되지 않는다. SCM 관리 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고, 컨덕터(120)와 실행 호스트들(즉, 로봇들(130)이 실행되는 컴퓨팅 시스템들) 사이에서 프록시로서 역할한다. 이러한 서비스들은 로봇들(130)에 대한 자격증명들을 맡아서 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 론칭된다.
일부 실시예들에서 사용자 모드 로봇 서비스들은 Windows® 세션들을 관리하고 모니터링하며, 컨덕터(120)와 실행 호스트들 사이에서 프록시로서 역할한다. 사용자 모드 로봇 서비스들은 로봇들(130)에 대한 자격증명들을 맡아서 관리할 수 있다. SCM 관리 로봇 서비스가 설치되어 있지 않더라도 Windows® 애플리케이션이 자동으로 론칭될 수 있다.
실행기들은 Windows® 세션 하에서 주어진 작업들을 실행할 수 있다(즉, 워크플로들을 실행할 수 있다). 실행기들은 모니터별 DPI(dots per inch) 설정들을 알고 있을 수 있다. 에이전트들은 시스템 트레이 창에 이용 가능한 작업들을 디스플레이하는 WPF(Windows® Presentation Foundation) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 작업들을 시작하거나 중지하고 설정들을 변경하도록 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업들을 시작하도록 요청할 수 있는 콘솔 애플리케이션이고, 작업들의 출력을 기다린다.
로봇들(130)의 컴포넌트들이 위에서 설명된 바와 같이 분할되는 것은 개발자들을 돕고, 사용자들을 지원하며, 컴퓨팅 시스템들은 각각의 컴포넌트가 실행하고 있는 것을 더 쉽게 실행하고, 식별하며 추적한다. 실행기 및 서비스에 대해 상이한 방화벽 규칙들을 셋업하는 것과 같은, 특수 거동들이 이러한 방식으로 컴포넌트별로 구성될 수 있다. 일부 실시예들에서 실행기는 모니터별 DPI 설정들을 항상 알고 있을 수 있다. 그 결과, 워크플로들은, 이들이 생성된 컴퓨팅 시스템의 구성에 관계없이, 임의의 DPI로 실행될 수 있다. 일부 실시예들에서 디자이너(110)로부터의 프로젝트들은 브라우저 줌 레벨과도 무관할 수 있다. DPI를 인식하지 못하거나 인식하지 못하는 것으로 의도적으로 표시되는 애플리케이션들의 경우, 일부 실시예들에서 DPI가 디스에이블될 수 있다.
도 2는 본 발명의 일 실시예에 따른, 배포된 RPA 시스템(200)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측, 또는 양쪽 모두가 본 발명의 범위를 벗어나지 않으면서 임의의 원하는 수의 컴퓨팅 시스템들을 포함할 수 있다는 점에 유의해야 한다. 클라이언트 측에서, 로봇 애플리케이션(210)은 실행기들(212), 에이전트(214), 및 디자이너(216)를 포함한다. 그렇지만, 일부 실시예들에서, 디자이너(216)는 컴퓨팅 시스템(210)에서 실행되지 않을 수 있다. 실행기들(212)은 프로세스들을 실행하고 있다. 도 2에 도시된 바와 같이, 여러 비즈니스 프로젝트들이 동시에 실행될 수 있다. 이 실시예에서 에이전트(214)(예를 들면, Windows® 서비스)는 모든 실행기들(212)에 대한 단일 접촉 지점이다. 이 실시예에서 모든 메시지들은 컨덕터(230)에 로깅되며, 컨덕터(230)는 이들을 데이터베이스 서버(240), 인덱서 서버(250), 또는 양쪽 모두를 통해 더 프로세싱한다. 도 1과 관련하여 위에서 논의된 바와 같이, 실행기들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 이름과 사용자 이름 사이의 연관을 나타낸다. 로봇은 다수의 실행기들을 동시에 관리할 수 있다. 동시에 실행되는 다수의 대화형 세션들을 지원하는 컴퓨팅 시스템들(예를 들면, Windows® Server 2012)에서, 다수의 로봇들은, 각각이 별개의 Windows® 세션에서 고유 사용자 이름을 사용하여, 동시에 실행될 수 있다. 이것이 위에서 HD 로봇들이라고 지칭되어 있다.
에이전트(214)는 또한 로봇의 상태를 송신하는 것(예를 들면, 로봇이 여전히 기능하고 있음을 나타내는 "하트비트" 메시지를 주기적으로 송신하는 것) 및 실행될 패키지의 필수 버전을 다운로드하는 것을 담당하고 있다. 일부 실시예들에서 에이전트(214)와 컨덕터(230) 사이의 통신은 항상 에이전트(214)에 의해 개시된다. 통지 시나리오에서, 에이전트(214)는 로봇에 커맨드들(예를 들면, 시작, 중지 등)을 송신하기 위해 컨덕터(230)에 의해 나중에 사용되는 WebSocket 채널을 열 수 있다.
서버 측에는, 프레젠테이션 계층(웹 애플리케이션(232), OData(Open Data Protocol) REST(Representative State Transfer) API(Application Programming Interface) 엔드포인트들(234)과 통지 및 모니터링(236)), 서비스 계층(API 구현/비즈니스 논리(238)), 및 지속성 계층(데이터베이스 서버(240) 및 인덱서 서버(250))이 포함된다. 컨덕터(230)는 웹 애플리케이션(232), OData REST API 엔드포인트들(234), 통지 및 모니터링(236), 및 API 구현/비즈니스 논리(238)를 포함한다. 일부 실시예들에서, 사용자가 컨덕터(230)의 인터페이스에서 (예를 들면, 브라우저(220)를 통해) 수행하는 대부분의 액션들은 다양한 API들을 호출하는 것에 의해 수행된다. 본 발명의 범위를 벗어나지 않으면서, 그러한 액션들은 로봇들에 대한 작업들을 시작하는 것, 큐들에 데이터를 추가하는 것/큐들에 있는 데이터를 제거하는 것, 무인으로 실행되도록 작업들을 스케줄링하는 것 등을 포함할 수 있지만 이에 제한되지 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이 실시예에서, 웹 애플리케이션(232)은 HTML(Hypertext Markup Language) 및 JS(JavaScript)를 사용한다. 그렇지만, 본 발명의 범위를 벗어나지 않으면서 임의의 원하는 마크업 언어들, 스크립트 언어들, 또는 임의의 다른 포맷들이 사용될 수 있다. 사용자는 컨덕터(230)를 제어하기 위한 다양한 액션들을 수행하기 위해 이 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터의 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성하고, 로봇들에 패키지들을 할당하며, 로봇별로 및/또는 프로세스별로 로그들을 분석하고, 로봇들을 시작 및 중지하는 등을 할 수 있다.
웹 애플리케이션(232) 외에도, 컨덕터(230)는 OData REST API 엔드포인트들(234)을 노출시키는 서비스 계층을 또한 포함한다. 그렇지만, 본 발명의 범위를 벗어나지 않으면서 다른 엔드포인트들이 포함될 수 있다. REST API는 웹 애플리케이션(232)과 에이전트(214) 양쪽 모두에 의해 사용된다. 이 실시예에서 에이전트(214)는 클라이언트 컴퓨터 상의 하나 이상의 로봇의 슈퍼바이저이다.
이 실시예에서 REST API는 구성, 로깅, 모니터링, 및 큐잉 기능성을 커버한다. 일부 실시예들에서 구성 엔드포인트들은 애플리케이션 사용자들, 권한들, 로봇들, 자산들, 릴리스들, 및 환경들을 정의 및 구성하는 데 사용될 수 있다. 로깅 REST 엔드포인트들은, 예를 들어, 오류들, 로봇들에 의해 송신되는 명시적 메시지들, 및 다른 환경 특정 정보와 같은, 상이한 정보를 로깅하는 데 사용될 수 있다. 배포 REST 엔드포인트들은 작업 시작 커맨드가 컨덕터(230)에서 사용되는 경우 실행되어야 하는 패키지 버전을 쿼리하기 위해 로봇들에 의해 사용될 수 있다. 큐잉 REST 엔드포인트들은, 큐에 데이터를 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것 등과 같은, 큐들 및 큐 항목 관리를 담당할 수 있다.
모니터링 REST 엔드포인트들은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는 에이전트(214)를 등록하는 것, 구성 설정들을 에이전트(214)에 전달하는 것, 및 서버 및 에이전트(214)로부터 통지들을 송신/수신하는 것을 위해 사용되는 REST 엔드포인트들일 수 있다. 일부 실시예들에서 통지 및 모니터링 API(236)는 또한 WebSocket 통신을 사용할 수 있다.
이 실시예에서 지속성 계층은 한 쌍의 서버들 - 데이터베이스 서버(240)(예를 들면, SQL 서버) 및 인덱서 서버(250) - 를 포함한다. 이 실시예에서 데이터베이스 서버(240)는 로봇들, 로봇 그룹들, 관련 프로세스들, 사용자들, 역할들, 스케줄들 등의 구성들을 저장한다. 일부 실시예들에서 이 정보는 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 항목들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 (인덱서 서버(250)에 추가적으로 또는 그 대신에) 로봇들에 의해 로깅된 메시지들을 저장할 수 있다.
일부 실시예들에서 선택적인 인덱서 서버(250)는 로봇들에 의해 로깅되는 정보를 저장하고 인덱싱한다. 특정 실시예들에서, 인덱서 서버(250)는 구성 설정들을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는 오픈 소스 프로젝트 전문 검색 엔진인 ElasticSearch®를 사용한다. (예를 들면, 메시지 로그(log message) 또는 라인 쓰기(write line)와 같은 활동들을 사용하여) 로봇들에 의해 로깅되는 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)로 송신될 수 있으며, 여기서 이 메시지들은 미래의 활용을 위해 인덱싱된다.
도 3은 본 발명의 일 실시예에 따른, 디자이너(310), 활동들(320, 330), 및 드라이버들(340) 사이의 관계(300)를 예시하는 아키텍처 다이어그램이다. 상기에 따라, 개발자는 로봇들에 의해 실행되는 워크플로들을 개발하기 위해 디자이너(310)를 사용한다. 워크플로들은 사용자 정의 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 일부 실시예들은 이미지에서 비-텍스트 시각적 컴포넌트들을 식별할 수 있으며, 이는 본 명세서에서 컴퓨터 비전(CV)이라고 불린다. 그러한 컴포넌트들에 관련된 일부 CV 활동들은 click, type, get text, hover, element exists, refresh scope, highlight 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서 click은, 예를 들어, CV, 광학 문자 인식(OCR), 퍼지 텍스트 매칭, 및 다중 앵커(multi-anchor)를 사용하여 요소를 식별하고 이를 클릭한다. type은 상기를 사용하여 요소를 식별할 수 있고 요소에 타이핑할 수 있다. get text는 OCR을 사용하여 특정 텍스트의 위치를 식별하고 이를 스캔할 수 있다. hover는 요소를 식별하고 그 위에서 호버링할 수 있다. element exists는 위에서 설명된 기술들을 사용하여 화면 상에 요소가 존재하는지 여부를 검사할 수 있다. 일부 실시예들에서, 디자이너(310)에서 구현될 수 있는 수백 또는 심지어 수천 개의 활동이 있을 수 있다. 그렇지만, 본 발명의 범위를 벗어나지 않으면서 임의의 수 및/또는 유형의 활동들이 이용 가능할 수 있다.
UI 자동화 활동들(330)은 하위 레벨 코드로 작성되는 특별한 하위 레벨 활동들(예를 들면, CV 활동들)의 서브세트이고 화면과의 상호작용들을 용이하게 한다. UI 자동화 활동들(330)은 로봇이 원하는 소프트웨어와 상호작용할 수 있게 하는 드라이버들(340)을 통해 이러한 상호작용들을 용이하게 한다. 예를 들어, 드라이버들(340)은 OS 드라이버들(342), 브라우저 드라이버들(344), VM 드라이버들(346), 엔터프라이즈 애플리케이션 드라이버들(348) 등을 포함할 수 있다.
드라이버들(340)은 후크들을 찾는 것, 키들에 대해 모니터링하는 것 등 저레벨에서 OS와 상호작용할 수 있다. 이들은 Chrome®, IE®, Citrix®, SAP® 등과의 통합을 용이하게 할 수 있다. 예를 들어, "click" 활동은 드라이버들(340)을 통해 이러한 상이한 애플리케이션들에서 동일한 역할을 수행한다.
도 4는 본 발명의 일 실시예에 따른, RPA 시스템(400)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템들(100 및/또는 200)일 수 있거나 이들을 포함할 수 있다. RPA 시스템(400)은 로봇들을 실행하는 다수의 클라이언트 컴퓨팅 시스템들(410)을 포함한다. 컴퓨팅 시스템들(410)은 그에서 실행되는 웹 애플리케이션을 통해 컨덕터 컴퓨팅 시스템(420)과 통신할 수 있다. 컨덕터 컴퓨팅 시스템(420)은, 차례로, 데이터베이스 서버(430) 및 선택적인 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3과 관련하여, 이러한 실시예들에서 웹 애플리케이션이 사용되지만, 본 발명의 범위를 벗어나지 않으면서 임의의 적합한 클라이언트/서버 소프트웨어가 사용될 수 있다는 점에 유의해야 한다. 예를 들어, 컨덕터는 클라이언트 컴퓨팅 시스템들 상의 비-웹 기반 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버 측 애플리케이션을 실행할 수 있다.
도 5는 본 발명의 일 실시예에 따른, ML을 사용하여 RPA 워크플로들을 자동으로 완성하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 다이어그램이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본 명세서에 묘사 및/또는 설명된 컴퓨팅 시스템들 중 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위한, 버스(505)에 결합된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는, CPU(Central Processing Unit), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), GPU(Graphics Processing Unit), 이들의 다수의 인스턴스들, 및/또는 이들의 임의의 조합을 포함한, 임의의 유형의 범용 또는 특정 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한 다수의 프로세싱 코어들을 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 일부 실시예들에서 다중 병렬 프로세싱이 사용될 수 있다. 특정 실시예들에서, 프로세서(들)(510) 중 적어도 하나는 생물학적 뉴런들을 모방하는 프로세싱 요소들을 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다. 일부 실시예들에서, 뉴로모픽 회로들은 폰 노이만(Von Neumann) 컴퓨팅 아키텍처의 전형적인 컴포넌트들을 필요로 하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행될 명령어들 및 정보를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 유형들의 비일시적 컴퓨터 판독 가능 매체들 또는 이들의 조합들의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독 가능 매체들은 프로세서(들)(510)에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수 있고 휘발성 매체들, 비휘발성 매체들, 또는 양쪽 모두를 포함할 수 있다. 매체들은 또한 이동식, 비이동식, 또는 양쪽 모두일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하기 위해 트랜시버와 같은 통신 디바이스(520)를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어나지 않으면서 FDMA(Frequency Division Multiple Access), SC-FDMA(Single Carrier FDMA), TDMA(Time Division Multiple Access), CDMA(Code Division Multiple Access), OFDM(Orthogonal Frequency Division Multiplexing), OFDMA(Orthogonal Frequency Division Multiple Access), GSM(Global System for Mobile communications), GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), cdma2000, W-CDMA(Wideband CDMA), HSDPA(High-Speed Downlink Packet Access), HSUPA(High-Speed Uplink Packet Access), HSPA(High-Speed Packet Access), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(Home Node-B), Bluetooth, RFID(Radio Frequency Identification), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(fifth generation), NR(New Radio), 이들의 임의의 조합, 및/또는 임의의 다른 현재 존재하거나 미래에 구현되는 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어나지 않으면서 단일(singular), 어레이(arrayed), 위상(phased), 스위치(switched), 빔포밍(beamforming), 빔스티어링(beamsteering), 이들의 조합, 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나를 포함할 수 있다.
프로세서(들)(510)는 버스(505)를 통해, 플라스마 디스플레이, LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, FED(Field Emission Display), OLED(Organic Light Emitting Diode) 디스플레이, 플렉시블 OLED 디스플레이, 플렉시블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고화질 디스플레이, 레티나® 디스플레이, IPS(In-Plane Switching) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적합한 디스플레이와 같은, 디스플레이(525)에 더 결합된다. 디스플레이(525)는 저항성, 용량성, SAW(surface-acoustic wave) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 내부 전반사 좌절(frustrated total internal reflection) 등을 사용하는 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 다중 입력 터치 디스플레이, 다중 터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위를 벗어나지 않으면서 임의의 적합한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
키보드(530) 및, 컴퓨터 마우스, 터치패드 등과 같은, 커서 제어 디바이스(535)는 사용자가 컴퓨팅 시스템과 인터페이싱할 수 있게 하도록 버스(505)에 더 결합된다. 그렇지만, 특정 실시예들에서, 물리적 키보드 및 마우스가 존재하지 않을 수 있고, 사용자는 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호작용할 수 있다. 설계 선택에 따라 임의의 유형 및 조합의 입력 디바이스들이 사용될 수 있다. 특정 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이가 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(500)과 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 컴퓨팅 시스템(500)은 자율적으로 작동할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈들을 저장한다. 이 모듈들은 컴퓨팅 시스템(500)을 위한 운영 체제(540)를 포함한다. 이 모듈들은 본 명세서에 설명된 프로세스들 또는 그 파생물들 전부 또는 일부를 수행하도록 구성된 자동 워크플로 완성 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능성을 포함하는 하나 이상의 추가적인 기능 모듈(550)을 포함할 수 있다.
본 기술 분야의 통상의 기술자는 본 발명의 범위를 벗어나지 않으면서 "시스템"이 서버, 임베디드 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적합한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 구체화될 수 있다는 것을 이해할 것이다. 위에서 설명된 기능들을 "시스템"에 의해 수행되는 것으로 제시하는 것은 결코 본 발명의 범위를 제한하도록 의도되지 않으며, 본 발명의 많은 실시예들의 하나의 예를 제공하도록 의도되어 있다. 실제로, 본 명세서에 개시된 방법들, 시스템들, 및 장치들은, 클라우드 컴퓨팅 시스템들을 포함한, 컴퓨팅 기술에 따라 로컬화된 형태 및 분산된 형태로 구현될 수 있다.
본 명세서에 설명된 시스템 특징들 중 일부가, 그들의 구현 독립성을 더 상세하게 강조하기 위해, 모듈들로서 제시되었다는 점에 유의해야 한다. 예를 들어, 모듈은 커스텀 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 로직 칩들, 트랜지스터들, 또는 다른 개별 컴포넌트들과 같은 기성품 반도체들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래머블 게이트 어레이들, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍 가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 또한 다양한 유형들의 프로세서들에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수 있다. 실행 가능 코드의 식별된 유닛은, 예를 들어, 하나 이상의 물리적 또는 논리적 컴퓨터 명령어 블록을 포함할 수 있는데, 이들은, 예를 들어, 객체, 프로시저, 또는 함수로서 조직화될 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행 파일들은 물리적으로 함께 위치할 필요가 없지만, 함께 논리적으로 연결될 때 모듈을 구성하고 모듈에 대한 진술된 목적을 달성하는, 상이한 위치들에 저장된 이질적 명령어들을 포함할 수 있다. 게다가, 모듈들은 컴퓨터 판독 가능 매체에 저장될 수 있으며, 컴퓨터 판독 가능 매체는 본 발명의 범위를 벗어나지 않으면서, 예를 들어, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하는 데 사용되는 임의의 다른 그러한 비일시적 컴퓨터 판독 가능 매체일 수 있다.
실제로, 실행 가능 코드의 모듈은 단일 명령어, 또는 많은 명령어들을 포함할 수 있고, 심지어, 여러 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 간에, 및 여러 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 동작 데이터는 본 명세서에서 모듈들 내에서 식별 및 예시될 수 있으며, 임의의 적합한 형태로 구체화되고 임의의 적합한 유형의 데이터 구조 내에 조직화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 상이한 저장 디바이스들에 걸쳐를 포함하여 상이한 위치들에 걸쳐 분산될 수 있고, 적어도 부분적으로, 시스템 또는 네트워크에서 단지 전자 신호들로서 존재할 수 있다.
비제한적인 예로서, RPA 디자이너 애플리케이션의 사용자가 웹 브라우저를 열고 브라우징된 웹 페이지가 표를 포함하는 인터넷 상의 특정 정보에 대해 탐색하기 위한 시퀀스들을 포함하는 워크플로를 고려한다. 사용자는 이어서 Excel® 워크북(workbook)을 열고 이 표를 복사하여 Excel® 스프레드시트(spreadsheet)에 붙여넣는 활동들을 추가할 수 있다. 백그라운드에서, 디자이너 애플리케이션은 사용자가 워크플로들을 생성할 때 사용자에 의해 취해진 액션들을 추적하고 각각의 활동 또는 활동 시퀀스 이후에 하나 이상의 ML 모델을 조회할 수 있다. 사용자가 특정 활동을 추가한 후에 이러한 활동 시퀀스를 반복적으로 포함시키는 경향이 있는 경우, ML 모델(들)은 특정 콘텍스트 및 시작 활동에 기초하여 사용자가 이러한 액션 시퀀스를 수행할 가능성이 있음을 예측하도록 학습할 수 있다(예를 들면, 사용자가 웹 브라우저를 론칭하는 활동을 추가할 때, 사용자는 이어서 웹 사이트를 방문하고 표를 복사하여 Excel® 스프레드시트에 붙여넣는 활동들을 추가한다).
일단 이 시퀀스가 (예를 들면, 사용자별로, 회사 내의 사용자들에 공통으로, 글로벌적으로 공통으로 등) 학습되면, 웹 브라우저를 여는 태스크를 추가할 시에, ML 모델은 하나 이상의 다음 활동 시퀀스가 제안 신뢰 수준을 충족시키거나 초과한다는 것을 나타낼 수 있고, 디자이너 애플리케이션은 워크플로에 추가할 다음 시퀀스를 선택하기 위한 선택안으로 사용자를 프롬프트할 수 있다. 대안적으로, 일부 실시예들에서, 디자이너 애플리케이션은 제안 신뢰 임계치가 충족되거나 초과될 때 사용자의 입력 없이 워크플로에 시퀀스를 자동으로 추가할 수 있거나, 다수의 시퀀스들이 제안 신뢰 임계치를 충족시키거나 초과할 때 최고 신뢰 임계치를 갖는 다음 시퀀스를 선택할 수 있다. 또 다른 실시예들에서, 디자이너 애플리케이션은 다음 활동 시퀀스의 신뢰 수준이 상대 확실성 임계치(relative certainty threshold) 미만이지만 제안 신뢰 임계치 초과인 경우 워크플로에 학습된 시퀀스를 추가하는 선택안으로 사용자를 프롬프트할 수 있고, 다음 활동 시퀀스의 신뢰 수준이 상대 확실성 임계치 이상인 경우 사용자의 입력 없이 워크플로에 이 시퀀스를 자동으로 추가할 수 있다. 예를 들어, 워크플로의 시퀀스는 Excel 애플리케이션 범위 내의 워크북 경로를 자동으로 추가하는 것, ML 모델에 기초하여 "셀 쓰기(Write Cell)" 또는 "범위 쓰기(Write Range)" 활동을 드롭하는 것, 현재 문제에 적합한 관례에 따라 시트의 이름을 바꾸는 것, 결과들을 Excel® 스프레드시트에 기입하는 것, 및 진행 상황에 관한 로그들을 작성하기 위해 "메시지 로그(Log Message)" 활동을 드롭하는 것을 포함할 수 있다. 예를 들어, 사용자가 화면 상의 "엔터 키(Enter Key)"를 클릭할 때 디자이너 애플리케이션은 워크플로를 자동으로 완성할 수 있다. 게다가, 사용자가 Excel® 스프레드시트에서 표를 작성하고 싶어한다는 것을 예측한 후에, 이 예에서 디자이너 애플리케이션은 파일에 적절한 이름, 시작 셀, 및 시트 이름을 주고, 변수 선언들을 제공하며, 속성 선언들을 제공하고, 동작들이 성공적이었는지 여부에 관한 사용자에 대한 메시지를 로깅한다.
일반적으로, Excel®을 여는 것, 파일의 이름을 지정하는 것, 시작 셀을 입력하는 것, 시트 이름을 입력하는 것, 및 변수들을 선언하는 것과 같은 워크플로의 완성은 숙련된 사용자가 완성하는 데 약 65 내지 75초 걸린다. Excel® 작성 동작들에 일반적인 경향이 있는 이러한 단계들을 완료하는 데 시간을 절감하기 위해, 일부 실시예들의 ML 모델은 워크플로의 다음 시퀀스를 예측할 수 있고, 제안이 개발자에게 제공될 수 있으며, 개발자는, 컴퓨팅 성능에 따라, 2 내지 3초 내에 제안을 수락할 수 있다. 이 예에서 이것은 개발 시간을 1분 초과만큼 단축시킬 수 있다. RPA 개발자가 빈번히 그러한 시퀀스를 사용하여 워크플로들을 생성하는 경우, 개발 시간의 절감은 상당할 수 있다.
사용자가 예측된 다음 활동 시퀀스에 만족하는 경우, 이 다음 활동 시퀀스가 워크플로에 추가될 수 있다. 사용자가 ML 모델에 의해 제공되는 워크플로의 예측된 다음 시퀀스에 만족하지 않는 경우(예를 들면, 사용자의 개인적 선호사항들이 상이한 경우, 워크플로들을 빌드하는 사용자의 스타일이 상이한 경우, 비즈니스 사용 사례가 다른 것을 필요로 하는 경우, 논리적 오류가 있는 경우 등), ML 모델을 재트레이닝시키기 위해 피드백이 제공될 수 있다. 피드백이 사용자 특정적인 경우, ML 모델은 해당 사용자의 선호사항들에 대해 재트레이닝될 수 있고, 커스텀 모델이 생성될 수 있다. 시간이 지남에 따라, ML 모델은 사용자가 작업 중인 것을 학습하고 그에 따라 워크플로들의 다음 시퀀스들을 제안한다. 피드백이 사용자 특정적이 아닌 경우(예를 들면, 글로벌 모델의 경우 또는 단지 개별 사용자보다 더 큰 사용자 그룹에 대한 모델의 경우), 피드백은 일정 시간 기간에 걸쳐 다른 사용자들로부터의 피드백과 함께 수집될 수 있으며, ML 모델은 이어서 모든 사용자들 또는 사용자 그룹에 대해 더 정확하도록 재트레이닝될 수 있다.
도 6a는 본 발명의 일 실시예에 따른, 잠재적인 다음 활동 시퀀스가 ML 모델에 의해 검출된 후의 디자이너 애플리케이션(600)을 예시하는 스크린샷(600)이다. 여기서, 개발자는 Excel® 애플리케이션 범위(Excel® Application Scope) 활동(610)을 워크플로에 드롭하였다. 이 실시예에서 디자이너 애플리케이션에 의해 실행되는 ML 모델은 워크플로의 논리를 분석하고, 후속하는 활동 시퀀스가 사용자에 의해 요망될 수 있다고 결정한다. ML 모델은 이어서 제안된 시퀀스를 디자이너 애플리케이션에 제공하고, 디자이너 애플리케이션은 워크플로를 자동으로 완성하기 위한 제안(즉, "자동 완성하려면 엔터를 누르세요" 프롬프트(620)를 제공하는 것)과 함께 이를 사용자에게 디스플레이한다.
개발자가 엔터 키를 누른 후에, 도 6b에 도시된 바와 같이, 시퀀스가 워크플로에 자동으로 추가된다. 일부 실시예들에서, 시퀀스는 또한 개발자의 개인적 스타일 및/또는 선호사항들을 고려할 수 있다. 워크플로가 완전하지 않을 수 있거나, 추가의 태스크들이 수행되어야 하는 경우 개발자가 워크플로에 추가적인 액션들을 추가하기로 선택할 수 있다. 변수들 및 속성들이 또한, 제각기, 변수들 탭(630)(도 6c 참조) 및 속성들 탭(640)(도 6d 참조)에서의 현재 워크플로 논리에 기초하여 자동으로 완성된다.
도 7은 본 발명의 일 실시예에 따른, RPA 워크플로에 대한 제안된 다음 활동 시퀀스를 거부 또는 수락하고 자동으로 완성하기 위한 프로세스(700)를 예시하는 흐름 다이어그램이다. 이 프로세스는 개발자가 디자이너 애플리케이션에서 워크플로를 생성하는 것으로 시작되며, 사용자가 워크플로에 활동들을 추가하고 수정할 때 디자이너 애플리케이션은 이 워크플로를 XAML 워크플로로서 저장한다. 사용자가 활동을 추가하거나 수정할 때, 현재 XAML 워크플로가 프리프로세싱을 위해 ML 모델로 송신된다. 프리프로세싱 동안, XAML 파일로부터의 관련 데이터가 추출되고, 관련 없는 데이터는 제거된다. 특정 실시예들에서, 프리프로세싱은 정확도를 더 개선시키기 위해 ML 모델에 의한 고려를 위한 관련성 있는 데이터를 추가하거나 도출하는 것(예를 들어, 더 관련성 있는 메타데이터 변수들을 추가하는 것)을 포함할 수 있다.
프리프로세싱 이후에, 최신 ML 모델이 모델 인벤토리 데이터베이스로부터 풀링되고, 최신 ML 모델이 로드되고 프리프로세싱된 데이터에 대해 실행된다. ML 모델의 실행으로부터 결과되는 데이터는 이어서 추론을 위해 디자이너 애플리케이션에 전달되고(예를 들면, 제안된 다음 활동 시퀀스를 포함하는 XAML 파일), 디자이너 애플리케이션은 이 데이터를 사용하여 제안을 사용자에게 디스플레이한다. 사용자가 이어서 제안을 수락하는 경우, 개발자 애플리케이션은 다음 활동 시퀀스를 워크플로에 추가하고, 사용자는 이어서 계속하여 워크플로를 개발할 수 있다.
사용자가 제안을 거부하더라도, 사용자는 여전히 계속하여 워크플로를 개발할 수 있다. 그렇지만, 거부된 워크플로의 XAML은 이어서 거부된 XAML 자동 완성 제안들의 데이터 인벤토리 데이터베이스로 송신된다. 일정 시간이 경과한 후에, 또는 그렇게 하도록 수동으로 지시받을 때, ML 모델들을 트레이닝시키기 위한 트레이닝 모듈은 데이터 인벤토리 데이터베이스로부터 거부된 자동 완성 제안들을 풀링하고, 이들을 사용하여 ML 모델을 재트레이닝시킨다. 일단 재트레이닝되면, ML 모델의 이 최신 버전은 디자이너 애플리케이션에 의해 사용되기 위해 모델 인벤토리 데이터베이스에 저장된다.
도 8은 본 발명의 일 실시예에 따른, 개인화된 흐름과 일반화된 흐름 양쪽 모두에 대한 자동 완성 아키텍처 다이어그램(800)이다. 사용자가 워크플로를 개발하기 시작할 때 그리고 하나 이상의 활동이 워크플로에 추가된 후에, 사용자에게 제안할 하나 이상의 잠재적인 다음 활동 시퀀스를 예측하기 위해 초기 XAML 워크플로가 디자이너 애플리케이션으로부터 하나 이상의 검색(2)된 ML 모델로 전달(1)된다. 일부 실시예들에서, 사전 트레이닝된 ML 모델들이 개인화되고(로컬) 일반화된다(글로벌). 로컬 ML 모델이 제안 신뢰 구간을 초과하는 제안할 시퀀스를 찾지 못하는 경우, 글로벌 ML 모델이 사용될 수 있다. 어떤 제안들도 제안 신뢰 임계치를 충족시키지 않는 경우, 사용자가 워크플로에 추가하고/하거나 워크플로를 수정할 때 디자이너 애플리케이션은 XAML 워크플로들을 계속하여 송신할 수 있다.
하나 이상의 제안이 (예를 들면, XAML 워크플로들로서) 제공되는 경우, 이들은 디자이너 애플리케이션에서 사용자에게 제안(3)된다. 사용자가 제안(들)을 수락하거나 거부하는지 여부, 및 어느 제안이 선택되었는지(있는 경우)는 주어진 ML 모델이 어떻게 작동하고 있는지에 관한 표시를 제공하는 예측된 활동들에 관련된 메트릭들(예를 들면, 주어진 메트릭들에 대한 확률 점수들)을 업데이트(4)하는 데 사용될 수 있다. 사용자가 제안된 활동 또는 활동 시퀀스를 거부하는 경우, 사용자는 계속해서 자신의 워크플로를 빌드할 수 있다. 디자이너 애플리케이션은 이어서 사용자의 워크플로를 계속하여 모니터링하고, 그의 완성 이후에, 완성된 워크플로를 미래에 트레이닝 데이터로서 사용될 피드백으로서 트레이닝 데이터베이스로 송신(5)한다. 일부 실시예들에서, 이 데이터는 로컬 ML 모델, 글로벌 ML 모델, 또는 양쪽 모두를 재트레이닝시키는 데 사용될 수 있다.
트레이닝 데이터베이스에 사용자의 워크플로를 저장한 후의 어느 시점에서, ML 모델(들)이 재트레이닝(6)된다. 예측 점수들이 이전에 트레이닝된 ML 모델(들)보다 개선되는 경우, 새로 트레이닝된 ML 모델(들)이 최신의 최상 모델로서 간주될 것이고, 미래의 프로세싱을 위한 ML 모델(들)로서 역할하도록 모델 데이터베이스에 업로드(7)될 것이다.
일부 실시예들에서, 디자이너 애플리케이션이 로드될 때, 다수의 ML 모델들이 다운로드되어 사용될 수 있다. 예를 들어, 사용자에게 맞춤화된 로컬 ML 모델 및 다수의 또는 많은 사용자들로부터의 워크플로들을 사용하여 트레이닝되는 글로벌 ML 모델이 로드될 수 있다. 디자이너 애플리케이션은 먼저 로컬 ML 모델을 호출하고 로컬 ML 모델이 임의의 제안들을 반환하는지(예를 들면, 하나 이상의 시퀀스가 90% 제안 신뢰 임계치를 충족시키거나 초과하는지) 여부를 확인할 수 있다. 만약 그렇다면, 제안(들)이 사용자에게 제공될 수 있다. 만약 그렇지 않다면, 하나 이상의 제안이 제안 신뢰 임계치를 충족시키거나 초과하는지 여부를 확인하기 위해 글로벌 ML 모델이 호출될 수 있다.
대응하는 ML 모델들(예를 들면, 로컬 및 글로벌)에 대한 모델 세부사항들은 일부 실시예들에서 모델 데이터베이스 내의 개별 테이블들에서 업데이트될 수 있다. 예를 들어, 본 발명의 범위를 벗어나지 않으면서 모델 데이터베이스는 모델 ID, 모델 버전, 모델 경로, 모델 상태, 및/또는 임의의 다른 적합한 필드들과 같은 필드들을 포함할 수 있다. 그러한 필드들은 각자의 ML 모델을 서빙할 때 제공될 수 있다.
도 9는 본 발명의 일 실시예에 따른, ML을 사용하여 RPA 워크플로들을 자동으로 완성하기 위한 프로세스(900)를 예시한 플로차트이다. 프로세스는, 905에서, 생성된 워크플로들, 생성된 워크플로들에서의 활동 시퀀스들, 또는 양쪽 모두를 디자이너 애플리케이션에 의해 캡처하고 이들을 데이터베이스에 저장하기 시작한다. 일부 실시예들에서, 워크플로들, 활동 시퀀스들, 또는 양쪽 모두는 XAML 포맷으로 되어 있을 수 있다. 이어서 910에서, 저장된 워크플로들, 활동 시퀀스들, 또는 양쪽 모두가 하나 이상의 ML 모델을 트레이닝시키는 데 사용된다. 이어서 915에서, 트레이닝된 ML 모델(들)이 사용자 컴퓨팅 시스템들에 배포되거나 사용자들에게 다른 방식으로 이용 가능하게 된다.
일단 배포되거나 이용 가능하게 되면, 920에서 디자이너 애플리케이션은 워크플로 개발 동안 사용자 활동들을 모니터링하고 이들을 하나 이상의 ML 모델 중 적어도 하나에 제공한다. 일부 실시예들에서, 이전에 실행된 ML 모델이 다음 활동 시퀀스를 검출하지 않는 경우 다수의 ML 모델들이 순차적으로 호출되고 실행될 수 있다. 925에서 ML 모델(들)이 제안 신뢰 임계치를 충족시키거나 초과하는 하나 이상의 잠재적인 다음 활동 시퀀스를 검출하지 않는 경우, 프로세스는 단계(920)로 돌아간다. 그렇지만, 925에서 제안 신뢰 임계치를 충족시키거나 초과하는 하나 이상의 잠재적인 다음 활동 시퀀스가 검출되는 경우, 930에서 시퀀스(들)가 사용자에게 제안된다.
935에서 사용자가 제안을 수락하는 경우, 940에서 제안된 활동 시퀀스가 워크플로에 자동으로 추가된다. 그렇지만, 사용자가 제안을 거부하는 경우, 945에서 디자이너 애플리케이션은 사용자가 워크플로를 완성하기를 기다리고 이어서 완성된 워크플로가 저장되게 한다. 이어서 950에서 ML 모델(들)을 재트레이닝시키기 위해 완성된 워크플로 및 잠재적으로 일부 또는 많은 다른 완성된 워크플로들이 사용되고, 955에서 재트레이닝된 ML 모델(들)이 배포되거나 이용 가능하게 된다.
도 9에서 수행되는 프로세스 단계들은 본 발명의 실시예들에 따른, 프로세서(들)이 도 9에 설명된 프로세스(들)의 적어도 일부를 수행하기 위한 명령어들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 구체화될 수 있다. 컴퓨터 판독 가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하는 데 사용되는 임의의 다른 그러한 매체 또는 매체들의 조합일 수 있지만, 이에 제한되지 않는다. 컴퓨터 프로그램은 도 9에 설명된 프로세스 단계들의 전부 또는 일부를 구현하도록 컴퓨팅 시스템의 프로세서(들)(예를 들면, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령어들을 포함할 수 있으며, 이 인코딩된 명령어들은 또한 컴퓨터 판독 가능 매체에 저장될 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현으로 구현될 수 있다. 컴퓨터 프로그램은 서로 작동 가능하게 통신하고 디스플레이할 정보 또는 지시사항들을 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적합한 디바이스에서 작동하도록 구성될 수 있다.
본 명세서에서의 도면들에 일반적으로 설명되고 예시된 바와 같이, 본 발명의 다양한 실시예들의 컴포넌트들이 매우 다양한 상이한 구성들로 배열 및 설계될 수 있다는 것이 쉽게 이해될 것이다. 따라서, 첨부된 도면들에 나타낸 바와 같은, 본 발명의 실시예들의 상세한 설명은 청구된 바와 같은 본 발명의 범위를 제한하도록 의도되지 않으며, 단지 본 발명의 선택된 실시예들을 나타낸다.
본 명세서 전반에 걸쳐 설명된 본 발명의 특징들, 구조들, 또는 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 예를 들어, 본 명세서 전반에 걸친 “특정 실시예들”, “일부 실시예들”, 또는 유사한 표현에 대한 언급은 해당 실시예와 관련하여 설명되는 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸친 문구들 "특정 실시예들에서", "일부 실시예들에서", "다른 실시예들에서", 또는 유사한 표현의 출현들은 반드시 모두가 동일한 그룹의 실시예들을 지칭하는 것은 아니며, 설명된 특징들, 구조들, 또는 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다.
본 명세서 전반에 걸친 특징들, 장점들, 또는 유사한 표현에 대한 언급이 본 발명으로 실현될 수 있는 특징들 및 장점들 모두가 본 발명의 임의의 단일 실시예에 있어야 하거나 있는 것을 의미하지 않는다는 점에 유의해야 한다. 오히려, 특징들 및 장점들을 언급하는 표현은 한 실시예와 관련하여 설명된 특정 특징, 장점 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전체에 걸친 특징들 및 장점들, 및 유사한 표현에 대한 논의가 동일한 실시예를 참조할 수 있지만 반드시 그런 것은 아니다.
또한, 본 발명의 설명된 특징들, 장점들, 및 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 관련 기술 분야의 통상의 기술자는 본 발명이 특정 실시예의 특정 특징들 또는 장점들 중 하나 이상이 없더라도 실시될 수 있다는 것을 인식할 것이다. 다른 경우에, 본 발명의 모든 실시예들에 존재하는 것은 아닐 수 있는 추가적인 특징들 및 장점들이 특정 실시예들에서 인식될 수 있다.
본 기술분야의 통상의 기술자는 위에서 논의된 바와 같은 본 발명이 상이한 순서의 단계들로 및/또는 개시된 것들과 상이한 구성들의 하드웨어 요소들로 실시될 수 있다는 것을 쉽게 이해할 것이다. 따라서, 본 발명이 이러한 바람직한 실시예들에 기초하여 설명되었지만, 본 발명의 사상 및 범위 내에 남아 있으면서, 특정 수정들, 변형들, 및 대안적인 구성들이 명백할 것이라는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 따라서, 본 발명의 범위를 결정하기 위해, 첨부된 청구항들이 참조되어야 한다.

Claims (37)

  1. 시스템으로서,
    각자의 디자이너 애플리케이션들을 포함하는 복수의 개발자 컴퓨팅 시스템들;
    워크플로들을 저장하는 데이터베이스 - 상기 워크플로들은 활동 시퀀스들을 포함함 -; 및
    하나 이상의 머신 러닝(ML) 모델을 트레이닝시키도록 구성된 서버
    를 포함하며,
    상기 디자이너 애플리케이션들은 각자의 사용자들이 로봇 프로세스 자동화(RPA) 워크플로들을 생성하고 있을 때 활동들을 모니터링하고, 상기 각자의 워크플로들에서의 상기 활동 시퀀스들을 캡처하며, 상기 각자의 워크플로들에서의 상기 캡처된 활동 시퀀스들, 상기 각자의 워크플로들 자체, 또는 양쪽 모두가 상기 데이터베이스에 저장되게 하고, 상기 하나 이상의 트레이닝된 ML 모델을 호출하도록 구성되고,
    상기 서버는 개발자들이 워크플로에 하나 이상의 활동을 추가하고/하거나 워크플로 내의 하나 이상의 활동을 수정한 후에 하나 이상의 다음 활동 시퀀스를 식별하기 위해 상기 저장된 워크플로들을 사용하여 상기 하나 이상의 ML 모델을 트레이닝시키도록 구성되며,
    상기 하나 이상의 트레이닝된 ML 모델은:
    현재 사용자가 현재 워크플로에 활동들을 추가하거나 상기 현재 워크플로 내의 활동들을 수정할 때 상기 현재 워크플로를 분석하고,
    적어도 제안 신뢰 임계치에 의해 상기 추가 및/또는 수정된 활동들 중 하나 이상이 다음 활동 시퀀스를 나타낸다는 것을 검출하며,
    상기 하나 이상의 트레이닝된 ML 모델이 상기 제안 신뢰 임계치가 상기 다음 활동 시퀀스에 대해 충족되거나 초과되었음을 검출할 때 상기 다음 활동 시퀀스를 상기 사용자에게 제안하도록 구성되는, 시스템.
  2. 제1항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델이 상기 다음 활동 시퀀스를 제안한 후에, 상기 현재 사용자가 상기 다음 활동 시퀀스가 올바르다는 확인을 상기 디자이너 애플리케이션에서 제공할 때, 상기 디자이너 애플리케이션은 상기 다음 활동 시퀀스를 상기 워크플로에 자동으로 추가하도록 구성되는, 시스템.
  3. 제2항에 있어서, 상기 다음 활동 시퀀스를 상기 워크플로에 자동으로 추가하는 것은 변수들의 선언들 및 용법을 설정하는 것, 속성들을 설정하는 것, 파일들로부터 판독하고/하거나 파일들에 기입하는 것, 또는 이들의 임의의 조합을 포함하는, 시스템.
  4. 제1항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델이 상기 다음 활동 시퀀스를 제안한 후에, 사용자가 상기 다음 활동 시퀀스가 올바르지 않다는 표시를 상기 디자이너 애플리케이션에서 제공할 때, 상기 디자이너 애플리케이션은 상기 현재 사용자가 상기 현재 워크플로를 완성한 후에 상기 현재 워크플로가 상기 하나 이상의 트레이닝된 ML 모델의 후속적인 재트레이닝을 위해 상기 데이터베이스에 저장되게 하도록 구성되는, 시스템.
  5. 제1항에 있어서, 둘 이상의 다음 활동 시퀀스가 상기 제안 신뢰 임계치를 충족시키거나 초과할 때, 상기 디자이너 애플리케이션은 상기 제안 신뢰 임계치를 충족시키거나 초과하는 상기 둘 이상의 활동 시퀀스 중에서 선택하는 옵션을 상기 사용자에게 제공하도록 구성되는, 시스템.
  6. 제1항에 있어서, 상기 제안 신뢰 임계치는 상기 하나 이상의 트레이닝된 ML 모델의 상기 트레이닝 동안 학습되는 신뢰 점수에 기초한 확률 임계치인, 시스템.
  7. 제1항에 있어서, 상기 서버는 미리 결정된 시간 기간이 경과한 후에, 상기 하나 이상의 트레이닝된 ML 모델의 상기 트레이닝 이후 미리 결정된 양의 데이터가 수집된 후에, 미리 결정된 수의 사용자들이 워크플로들을 자동으로 완성한 후에, 미리 결정된 수 또는 백분율의 사용자들이 상기 하나 이상의 트레이닝된 ML 모델로부터의 제안들을 거부한 후에, 또는 이들의 임의의 조합으로 상기 하나 이상의 트레이닝된 ML 모델을 재트레이닝시키도록 구성되는, 시스템.
  8. 제7항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델 중 적어도 하나는:
    사용자가 시간 경과에 따라 워크플로들을 개발할 때, 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합을 학습하고;
    상기 학습된 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합에 기초하여 다음 활동 시퀀스들을 제안하도록 구성되는, 시스템.
  9. 제1항에 있어서, 상기 시스템은 추가의 사용자 입력이 없어도 상기 다음 활동 시퀀스를 자동으로 완성하도록 구성되는, 시스템.
  10. 제1항에 있어서,
    상기 하나 이상의 트레이닝된 ML 모델은 로컬 ML 모델 및 글로벌 ML 모델을 포함하고,
    상기 디자이너 애플리케이션은 상기 로컬 ML 모델을 먼저 호출하도록 구성되며,
    상기 로컬 ML 모델이 상기 제안 신뢰 임계치를 충족시키거나 초과하는 하나 이상의 다음 활동 시퀀스를 제안할 때, 상기 디자이너 애플리케이션은 상기 로컬 ML 모델로부터의 상기 하나 이상의 다음 활동 시퀀스를 상기 사용자에게 제공하도록 구성되고,
    상기 로컬 ML 모델이 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스를 제안하지 않을 때, 상기 디자이너 애플리케이션은 상기 글로벌 ML 모델을 호출하도록 구성되는, 시스템.
  11. 제10항에 있어서, 상기 로컬 ML 모델과 상기 글로벌 ML 모델은 상이한 제안 신뢰 임계치들을 활용하는, 시스템.
  12. 제1항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델 중 제1 ML 모델이 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스의 제안을 제공하지 않을 때, 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스가 발견될 때까지 또는 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스를 식별하지 않고 상기 하나 이상의 트레이닝된 ML 모델 모두가 호출될 때까지 상기 디자이너 애플리케이션은 상기 하나 이상의 트레이닝된 ML 모델 중 제2 ML 모델, 상기 하나 이상의 트레이닝된 ML 모델 중 제3 ML 모델 등을 호출하도록 구성되는, 시스템.
  13. 제1항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델은 상기 복수의 개발자 컴퓨팅 시스템들에서 실행되는, 시스템.
  14. 제1항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델은 유인 사용자 피드백, 무인 사용자 피드백, 또는 양쪽 모두를 사용하여 트레이닝되는, 시스템.
  15. 제1항에 있어서, 상기 워크플로들은 XAML(extensible application markup language) 포맷으로 되어 있는, 시스템.
  16. 비일시적 컴퓨터 판독 가능 매체에 구체화되는 컴퓨터 프로그램으로서, 상기 프로그램은 적어도 하나의 프로세서로 하여금:
    사용자가 로봇 프로세스 자동화(RPA) 워크플로를 생성하고 있을 때 상기 RPA 워크플로에서의 활동들을 모니터링하게 하고;
    상기 RPA 워크플로에서의 상기 모니터링된 활동들의 시퀀스들, 상기 RPA 워크플로 자체, 또는 양쪽 모두를 캡처하게 하며;
    상기 캡처된 활동 시퀀스들, 상기 RPA 워크플로, 또는 양쪽 모두를 분석을 위해 제1 머신 러닝(ML) 모델로 송신하게 하고;
    상기 제1 ML 모델로부터 하나 이상의 제안된 다음 활동 시퀀스를 수신하게 하며;
    상기 하나 이상의 제안된 다음 활동 시퀀스를 사용자에게 제안하게 하도록 구성되는, 컴퓨터 프로그램.
  17. 제16항에 있어서, 상기 제1 ML 모델은:
    상기 캡처된 활동 시퀀스들, 상기 RPA 워크플로, 또는 양쪽 모두를 분석하고;
    상기 캡처된 활동 시퀀스들, 상기 RPA 워크플로, 또는 양쪽 모두가 적어도 제안 신뢰 임계치에 의해 하나 이상의 다음 활동 시퀀스를 나타낸다는 것을 검출하며;
    상기 하나 이상의 제안된 다음 활동 시퀀스를 제안하도록 구성되는, 컴퓨터 프로그램.
  18. 제17항에 있어서, 둘 이상의 다음 활동 시퀀스가 상기 제안 신뢰 임계치를 충족시키거나 초과할 때, 상기 프로그램은 상기 적어도 하나의 프로세서로 하여금 상기 제안 신뢰 임계치를 충족시키거나 초과하는 상기 둘 이상의 활동 시퀀스 중에서 선택하는 옵션을 상기 사용자에게 제공하게 하도록 구성되는, 컴퓨터 프로그램.
  19. 제17항에 있어서, 상기 제안 신뢰 임계치는 상기 제1 ML 모델의 상기 트레이닝 동안 학습되는 신뢰 점수에 기초한 확률 임계치인, 컴퓨터 프로그램.
  20. 제16항에 있어서, 상기 제1 ML 모델은:
    상기 사용자가 시간 경과에 따라 워크플로들을 개발할 때, 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합을 학습하고;
    상기 학습된 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합에 기초하여 다음 활동 시퀀스들을 제안하도록 구성되는, 컴퓨터 프로그램.
  21. 제16항에 있어서, 상기 프로그램은 상기 적어도 하나의 프로세서로 하여금 추가의 사용자 입력이 없어도 상기 다음 활동 시퀀스를 자동으로 완성하게 하도록 더 구성되는, 컴퓨터 프로그램.
  22. 제16항에 있어서,
    상기 제1 ML 모델은 로컬 ML 모델이고,
    상기 프로그램은 상기 적어도 하나의 프로세서로 하여금 상기 로컬 ML 모델을 먼저 호출하게 하도록 구성되며,
    상기 로컬 ML 모델이 상기 제안 신뢰 임계치를 충족시키거나 초과하는 하나 이상의 다음 활동 시퀀스를 제안할 때, 상기 프로그램은 상기 적어도 하나의 프로세서로 하여금 상기 로컬 ML 모델로부터의 상기 하나 이상의 다음 활동 시퀀스를 상기 사용자에게 제공하게 하도록 구성되고,
    상기 로컬 ML 모델이 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스를 제안하지 않을 때, 상기 프로그램은 상기 적어도 하나의 프로세서로 하여금 글로벌 ML 모델을 호출하게 하도록 더 구성되는, 컴퓨터 프로그램.
  23. 제22항에 있어서, 상기 로컬 ML 모델과 상기 글로벌 ML 모델은 상이한 제안 신뢰 임계치들을 활용하는, 컴퓨터 프로그램.
  24. 제16항에 있어서, 상기 제1 ML 모델이 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스의 제안을 제공하지 않을 때, 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스가 발견될 때까지 또는 상기 제안 신뢰 임계치를 충족시키거나 초과하는 적어도 하나의 다음 활동 시퀀스를 식별하지 않고 상기 ML 모델들 모두가 호출될 때까지 상기 디자이너 애플리케이션은 제2 ML 모델, 제3 ML 모델 등을 호출하도록 구성되는, 컴퓨터 프로그램.
  25. 제16항에 있어서, 상기 하나 이상의 제안된 다음 활동 시퀀스를 상기 사용자에게 제안한 후에, 상기 사용자가 상기 다음 활동 시퀀스가 올바르다는 확인을 제공할 때, 상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금 상기 사용자가 선택한 다음 활동 시퀀스를 상기 워크플로에 자동으로 추가하게 하도록 구성되는, 컴퓨터 프로그램.
  26. 제25항에 있어서, 상기 다음 활동 시퀀스를 상기 워크플로에 자동으로 추가하는 것은 변수들의 선언들 및 용법을 설정하는 것, 속성들을 설정하는 것, 파일들로부터 판독하고/하거나 파일들에 기입하는 것, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 프로그램.
  27. 제16항에 있어서, 상기 하나 이상의 제안된 다음 활동 시퀀스를 상기 사용자에게 제안한 후에, 상기 사용자가 상기 다음 활동 시퀀스가 올바르지 않다는 표시를 제공할 때, 상기 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금 상기 사용자가 상기 워크플로를 완성한 후에 상기 현재 워크플로를 상기 제1 ML 모델의 후속적인 재트레이닝을 위해 데이터베이스에 저장시키게 하도록 구성되는, 컴퓨터 프로그램.
  28. 제16항에 있어서, 상기 제1 ML 모델은 유인 사용자 피드백, 무인 사용자 피드백, 또는 양쪽 모두를 사용하여 트레이닝되는, 컴퓨터 프로그램.
  29. 컴퓨터 구현 방법으로서,
    하나 이상의 로봇 프로세스 자동화(RPA) 디자이너 애플리케이션으로부터 복수의 수집된 워크플로들을 수신하는 단계;
    개발자들이 워크플로에 하나 이상의 활동을 추가하고/하거나 워크플로 내의 하나 이상의 활동을 수정한 후에 하나 이상의 다음 활동 시퀀스를 식별하기 위해 상기 복수의 수집된 워크플로들을 사용하여 하나 이상의 머신 러닝(ML) 모델을 트레이닝시키는 단계; 및
    상기 트레이닝 이후에 상기 하나 이상의 트레이닝된 ML 모델을 상기 하나 이상의 RPA 디자이너 애플리케이션에 이용 가능하게 만드는 단계
    를 포함하는, 컴퓨터 구현 방법.
  30. 제29항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델은:
    현재 사용자가 현재 워크플로에 상기 활동들을 추가하거나 상기 현재 워크플로 내의 상기 활동들을 수정할 때 상기 현재 워크플로를 분석하고,
    적어도 제안 신뢰 임계치에 의해 상기 추가 및/또는 수정된 활동들 중 하나 이상이 다음 활동 시퀀스를 나타낸다는 것을 검출하며;
    상기 하나 이상의 트레이닝된 ML 모델이 상기 제안 신뢰 임계치가 상기 다음 활동 시퀀스에 대해 충족되거나 초과되었음을 검출할 때 상기 다음 활동 시퀀스를 상기 사용자에게 제안하도록 구성되는, 컴퓨터 구현 방법.
  31. 제30항에 있어서, 상기 제안 신뢰 임계치는 상기 하나 이상의 트레이닝된 ML 모델의 상기 트레이닝 동안 학습되는 신뢰 점수에 기초한 확률 임계치인, 컴퓨터 구현 방법.
  32. 제29항에 있어서,
    사용자가 제안된 다음 활동 시퀀스를 거부한 경우 워크플로들을 수신하는 단계;
    상기 사용자가 상기 제안된 다음 활동 시퀀스를 거부한 경우 상기 수신된 워크플로들을 사용하여 상기 하나 이상의 트레이닝된 ML 모델을 재트레이닝시키는 단계;
    상기 하나 이상의 트레이닝된 ML 모델을 상기 하나 이상의 재트레이닝된 ML 모델로 교체하는 단계; 및
    상기 재트레이닝 이후에 상기 하나 이상의 재트레이닝된 ML 모델을 상기 하나 이상의 RPA 디자이너 애플리케이션에 이용 가능하게 만드는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  33. 제32항에 있어서, 상기 트레이닝은 미리 결정된 시간 기간이 경과한 후에, 상기 하나 이상의 트레이닝된 ML 모델의 상기 트레이닝 이후 미리 결정된 양의 데이터가 수집된 후에, 미리 결정된 수의 사용자들이 워크플로들을 자동으로 완성한 후에, 미리 결정된 수 또는 백분율의 사용자들이 상기 하나 이상의 트레이닝된 ML 모델로부터의 제안들을 거부한 후에, 또는 이들의 임의의 조합으로 행해지는, 컴퓨터 구현 방법.
  34. 제29항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델 중 적어도 하나는:
    사용자가 시간 경과에 따라 워크플로들을 개발할 때, 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합을 학습하고;
    상기 학습된 사용자 특정 스타일, 논리, 규약들, 또는 이들의 임의의 조합에 기초하여 다음 활동 시퀀스들을 제안하도록 구성되는, 컴퓨터 구현 방법.
  35. 제29항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델은 로컬 ML 모델 및 글로벌 ML 모델을 포함하는, 컴퓨터 구현 방법.
  36. 제35항에 있어서, 상기 로컬 ML 모델과 상기 글로벌 ML 모델은 상이한 제안 신뢰 임계치들을 활용하는, 컴퓨터 구현 방법.
  37. 제29항에 있어서, 상기 하나 이상의 트레이닝된 ML 모델은 유인 사용자 피드백, 무인 사용자 피드백, 또는 양쪽 모두를 사용하여 트레이닝되는, 컴퓨터 구현 방법.
KR1020227010805A 2019-10-15 2020-08-28 머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성 KR20220079836A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN201911041766 2019-10-15
IN201911041766 2019-10-15
US16/702,966 2019-12-04
US16/702,966 US11200539B2 (en) 2019-10-15 2019-12-04 Automatic completion of robotic process automation workflows using machine learning
PCT/US2020/048512 WO2021076240A1 (en) 2019-10-15 2020-08-28 Automatic completion of robotic process automation workflows using machine learning

Publications (1)

Publication Number Publication Date
KR20220079836A true KR20220079836A (ko) 2022-06-14

Family

ID=75382158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010805A KR20220079836A (ko) 2019-10-15 2020-08-28 머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성

Country Status (6)

Country Link
US (1) US11200539B2 (ko)
EP (1) EP4046105A4 (ko)
JP (1) JP2023524327A (ko)
KR (1) KR20220079836A (ko)
CN (1) CN114586049A (ko)
WO (1) WO2021076240A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847040B2 (en) 2016-03-16 2023-12-19 Asg Technologies Group, Inc. Systems and methods for detecting data alteration from source to target
AU2018200877A1 (en) * 2017-03-30 2018-10-18 Accenture Global Solutions Limited Closed loop nodal analysis
US11057500B2 (en) 2017-11-20 2021-07-06 Asg Technologies Group, Inc. Publication of applications using server-side virtual screen change capture
US11611633B2 (en) 2017-12-29 2023-03-21 Asg Technologies Group, Inc. Systems and methods for platform-independent application publishing to a front-end interface
US10877740B2 (en) 2017-12-29 2020-12-29 Asg Technologies Group, Inc. Dynamically deploying a component in an application
US11762634B2 (en) 2019-06-28 2023-09-19 Asg Technologies Group, Inc. Systems and methods for seamlessly integrating multiple products by using a common visual modeler
US11593709B2 (en) * 2019-10-15 2023-02-28 UiPath, Inc. Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US20220075605A1 (en) * 2019-10-15 2022-03-10 UiPath, Inc. Training and using artificial intelligence (ai) / machine learning (ml) models to automatically supplement and/or complete code of robotic process automation workflows
US11755760B2 (en) 2019-10-18 2023-09-12 Asg Technologies Group, Inc. Systems and methods for secure policies-based information governance
US11269660B2 (en) 2019-10-18 2022-03-08 Asg Technologies Group, Inc. Methods and systems for integrated development environment editor support with a single code base
US11055067B2 (en) 2019-10-18 2021-07-06 Asg Technologies Group, Inc. Unified digital automation platform
US11941137B2 (en) 2019-10-18 2024-03-26 Asg Technologies Group, Inc. Use of multi-faceted trust scores for decision making, action triggering, and data analysis and interpretation
US11886397B2 (en) 2019-10-18 2024-01-30 Asg Technologies Group, Inc. Multi-faceted trust system
US11110601B2 (en) * 2019-11-20 2021-09-07 UiPath, Inc. Scheduling robots for robotic process automation
US11379772B2 (en) * 2020-08-04 2022-07-05 Nice Ltd. Systems and methods for analyzing computer input to provide suggested next action for automation
EP4229534A1 (en) 2020-10-13 2023-08-23 ASG Technologies Group, Inc. DBA ASG Technologies Geolocation-based policy rules
US11301269B1 (en) * 2020-10-14 2022-04-12 UiPath, Inc. Determining sequences of interactions, process extraction, and robot generation using artificial intelligence / machine learning models
KR20220049296A (ko) * 2020-10-14 2022-04-21 삼성에스디에스 주식회사 로그 기반 워크플로우 생성 방법 및 그 장치
US11429351B2 (en) * 2021-01-21 2022-08-30 Intuit Inc. Methods and systems for building custom automation workflows to integrate multiple applications
US11763228B2 (en) 2021-04-06 2023-09-19 Nice Ltd. Systems and methods for analyzing and connecting automation sequences
WO2022266129A1 (en) * 2021-06-17 2022-12-22 Microsoft Technology Licensing, Llc Machine learning assisted automation of workflows based on observation of user interaction with operating system platform features
US11495119B1 (en) 2021-08-16 2022-11-08 Motorola Solutions, Inc. Security ecosystem
CN113807068B (zh) * 2021-09-30 2024-01-26 杭州分叉智能科技有限公司 一种基于RPA的Excel自动化方法
US20230101223A1 (en) * 2021-09-30 2023-03-30 UiPath, Inc. Digital assistant using robotic process automation
US11856030B2 (en) 2021-10-04 2023-12-26 Motorola Solutions, Inc. Security ecosystem
US20230267396A1 (en) * 2022-02-22 2023-08-24 International Business Machines Corporation Generating automation recommendations for ad hoc processes
US11816420B2 (en) * 2022-04-13 2023-11-14 Dell Products, L.P. Automatic template and logic generation from a codified user experience design
CN114926151A (zh) * 2022-06-21 2022-08-19 中关村科学城城市大脑股份有限公司 一种基于强化学习的rpa流程自动生成方法和装置
CN115082766B (zh) * 2022-07-25 2022-11-25 珠海金智维信息科技有限公司 一种rpa业务场景识别方法、系统、装置及存储介质
WO2024091682A1 (en) * 2022-10-28 2024-05-02 Strong Force TX Portfolio 2018, LLC Techniques for securing, accessing, and interfacing with enterprise resources
CN116703339B (zh) * 2023-08-09 2023-11-24 安徽思高智能科技有限公司 一种基于图Transformer模型的RPA流程推荐方法及系统

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US365799A (en) * 1887-07-05 Self feeding cotton peess
US5172313A (en) * 1987-12-11 1992-12-15 Schumacher Billy G Computerized management system
US7356583B2 (en) * 2002-10-11 2008-04-08 Northrop Grumman Corporation Indirect measurement of business processes
US7346892B2 (en) * 2003-05-27 2008-03-18 Microsoft Corporation Prediction and pre-selection of an element in syntax completion
US20040260591A1 (en) * 2003-06-17 2004-12-23 Oracle International Corporation Business process change administration
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
US7499897B2 (en) 2004-04-16 2009-03-03 Fortelligent, Inc. Predictive model variable management
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US20060136490A1 (en) 2004-12-17 2006-06-22 International Business Machines Corporation Autonomic creation of shared workflow components in a provisioning management system using multi-level resource pools
EP1960869A1 (en) * 2005-12-15 2008-08-27 International Business Machines Corporation Method and system for assisting a software developer in creating source code for a computer program
US20070276714A1 (en) * 2006-05-15 2007-11-29 Sap Ag Business process map management
US8762871B2 (en) * 2008-02-03 2014-06-24 Microsoft Corporation Dynamic preview of diagram elements to be inserted into a diagram
US8635593B2 (en) * 2008-05-13 2014-01-21 Hewlett-Packard Development Company, L.P. Dynamic autocompletion tool
US20100269032A1 (en) * 2009-04-15 2010-10-21 Microsoft Corporation Advanced text completion, such as for markup languages
US8898442B2 (en) * 2009-09-29 2014-11-25 Sap Se Scenario-based process modeling for business processes including exception flow to handle an error in a task of the series of tasks
US8321251B2 (en) * 2010-03-04 2012-11-27 Accenture Global Services Limited Evolutionary process system
US8448089B2 (en) * 2010-10-26 2013-05-21 Microsoft Corporation Context-aware user input prediction
US9116672B2 (en) * 2010-11-24 2015-08-25 iNTERFACEWARE Inc. Method and system for displaying selectable autocompletion suggestions and annotations in mapping tool
US20170109639A1 (en) * 2011-05-08 2017-04-20 Panaya Ltd. General Model for Linking Between Nonconsecutively Performed Steps in Business Processes
US20170109640A1 (en) * 2011-05-08 2017-04-20 Panaya Ltd. Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
US20170109676A1 (en) * 2011-05-08 2017-04-20 Panaya Ltd. Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
US20170109636A1 (en) * 2011-05-08 2017-04-20 Panaya Ltd. Crowd-Based Model for Identifying Executions of a Business Process
US8756171B2 (en) * 2011-06-15 2014-06-17 International Business Machines Corporation Generating predictions from a probabilistic process model
US8862975B2 (en) * 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US8639555B1 (en) * 2011-10-12 2014-01-28 Amazon Technologies, Inc. Workflow discovery through user action monitoring
US20130152038A1 (en) * 2011-12-09 2013-06-13 Microsoft Corporation Project management workflows
US20130179208A1 (en) * 2012-01-11 2013-07-11 Microsoft Corporation Workflow tasks
US9063764B2 (en) * 2012-05-24 2015-06-23 Kaseya Limited Automated software script creator and editor
US8904355B2 (en) 2013-03-14 2014-12-02 Accenture Global Services Limited Test script generation system
US20140310053A1 (en) * 2013-04-10 2014-10-16 Xerox Corporation Method and systems for providing business process suggestions and recommendations utilizing a business process modeler
US20140350994A1 (en) * 2013-05-23 2014-11-27 International Business Machines Corporation Providing best practice workflow to aid user in completing project that is constantly updated based on user feedback
WO2015022009A1 (en) * 2013-08-12 2015-02-19 Telefonaktiebolaget Lm Ericsson (Publ) Predicting elements for workflow development
US10607165B2 (en) * 2013-11-14 2020-03-31 Salesforce.Com, Inc. Systems and methods for automatic suggestions in a relationship management system
US10476971B2 (en) * 2014-06-18 2019-11-12 Alfresco Software, Inc. Configurable and self-optimizing business process applications
US9824079B1 (en) * 2014-07-11 2017-11-21 Google Llc Providing actions for mobile onscreen content
US9436507B2 (en) 2014-07-12 2016-09-06 Microsoft Technology Licensing, Llc Composing and executing workflows made up of functional pluggable building blocks
US9740462B2 (en) * 2014-08-27 2017-08-22 Sap Se Adaptive, context-aware, model-based suggestions
US10114619B2 (en) * 2015-08-06 2018-10-30 Sap Se Integrated development environment with multiple editors
US10365799B2 (en) 2016-02-09 2019-07-30 Wipro Limited System and methods for creating on-demand robotic process automation
US10678874B2 (en) * 2016-04-28 2020-06-09 Conduent Business Services, Llc Method and system for recommendation of a succession of one or more services for a service workflow
US10466863B1 (en) * 2016-06-01 2019-11-05 Google Llc Predictive insertion of graphical objects in a development environment
US20180046956A1 (en) * 2016-08-11 2018-02-15 Panaya Ltd. Warning About Steps That Lead to an Unsuccessful Execution of a Business Process
US10339027B2 (en) * 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
US20190205792A1 (en) 2016-11-02 2019-07-04 Intel Corporation Automated generation of workflows
US9817967B1 (en) 2017-01-13 2017-11-14 Accenture Global Solutions Limited Integrated robotics and access management for target systems
US10298757B2 (en) * 2017-02-23 2019-05-21 Accenture Global Solutions Limited Integrated service centre support
US20180294059A1 (en) * 2017-03-22 2018-10-11 Savant Care Inc. Mental Health Modeling Language
US20190155225A1 (en) 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US10983843B2 (en) * 2018-01-16 2021-04-20 Enterpriseweb Llc Event-driven programming model based on asynchronous, massively parallel dataflow processes for highly-scalable distributed applications
US11586463B2 (en) * 2018-04-17 2023-02-21 Oracle International Corporation Automated process flow learning
US20190324781A1 (en) * 2018-04-24 2019-10-24 Epiance Software Pvt. Ltd. Robotic script generation based on process variation detection
US10812627B2 (en) * 2019-03-05 2020-10-20 Sap Se Frontend process mining
US11481420B2 (en) * 2019-08-08 2022-10-25 Nice Ltd. Systems and methods for analyzing computer input to provide next action
US10990876B1 (en) * 2019-10-08 2021-04-27 UiPath, Inc. Detecting user interface elements in robotic process automation using convolutional neural networks

Also Published As

Publication number Publication date
US20210110345A1 (en) 2021-04-15
US11200539B2 (en) 2021-12-14
CN114586049A (zh) 2022-06-03
EP4046105A1 (en) 2022-08-24
JP2023524327A (ja) 2023-06-12
WO2021076240A1 (en) 2021-04-22
EP4046105A4 (en) 2023-09-27

Similar Documents

Publication Publication Date Title
US11200539B2 (en) Automatic completion of robotic process automation workflows using machine learning
KR102453988B1 (ko) 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트
US11815880B2 (en) Human-in-the-loop robot training for robotic process automation
US11648686B2 (en) Artificial intelligence-based process identification, extraction, and automation for robotic process automation
KR102453990B1 (ko) 인공 지능(ai)을 사용한 미디어 대 워크플로우 생성
US11919165B2 (en) Process evolution for robotic process automation and workflow micro-optimization
US11775860B2 (en) Reinforcement learning in robotic process automation
US20210110318A1 (en) Automatic analysis, prioritization, and robot generation for robotic process automation
US11592804B2 (en) Task automation by support robots for robotic process automation (RPA)
EP3809347A1 (en) Media-to-workflow generation using artificial intelligence (ai)
US20220075605A1 (en) Training and using artificial intelligence (ai) / machine learning (ml) models to automatically supplement and/or complete code of robotic process automation workflows