KR102436293B1 - 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정 - Google Patents

이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정 Download PDF

Info

Publication number
KR102436293B1
KR102436293B1 KR1020197036460A KR20197036460A KR102436293B1 KR 102436293 B1 KR102436293 B1 KR 102436293B1 KR 1020197036460 A KR1020197036460 A KR 1020197036460A KR 20197036460 A KR20197036460 A KR 20197036460A KR 102436293 B1 KR102436293 B1 KR 102436293B1
Authority
KR
South Korea
Prior art keywords
agent
assistant
image data
module
agents
Prior art date
Application number
KR1020197036460A
Other languages
English (en)
Other versions
KR20200006103A (ko
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 구글 엘엘씨
Priority to KR1020227028365A priority Critical patent/KR102535791B1/ko
Publication of KR20200006103A publication Critical patent/KR20200006103A/ko
Application granted granted Critical
Publication of KR102436293B1 publication Critical patent/KR102436293B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

Abstract

컴퓨터 디바이스의 카메라로부터 수신된 이미지 데이터에 적어도 부분적으로 기초하여, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 복수의 에이전트로부터 추천 에이전트를 선택하는 어시스턴트가 설명된다. 어시스턴트는 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지를 결정하고, 추천된 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 권장하는 결정에 응답하여, 추천된 에이전트의 표시를 출력한다. 어시스턴트는 추천된 에이전트를 확인하는 사용자 입력의 수신에 응답하여, 추천된 에이전트가 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 한다.

Description

이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정
일부 컴퓨팅 플랫폼은 사용자가 가상의 컴퓨팅 어시스턴트(예를 들어, "지능형 개인 어시스턴트"또는 간단히 "어시스턴트"라고도 함)와 채팅, 말하기 또는 통신하여, 어시스턴트가 유용한 정보를 출력하고, 사용자의 요구에 응답하거나, 사용자가 다양한 실제 또는 가상 태스크을 완료하는 것을 돕도록 특정 동작을 수행하게 한다. 예를 들어, 컴퓨팅 디바이스는 마이크로폰 또는 카메라를 이용하여 사용자 발언 또는 사용자 환경에 대응하는 사용자 입력(예를 들어, 오디오 데이터, 이미지 데이터 등)을 수신할 수 있다. 컴퓨팅 디바이스에서 적어도 부분적으로 실행되는 어시스턴트는 사용자 입력을 분석하여, 사용자 입력에 기초하여 유용한 정보를 출력하고, 사용자 입력에 의해 표시된 사용자의 요구에 응답함으로써 사용자를 "지원(assist)"하려고 시도하거나, 사용자 입력에 기초하여 사용자가 다양한 실제 또는 가상 태스크을 완료하는 것을 돕도록 특정 동작을 수행할 수 있다.
일반적으로, 본 개시의 기술은 어시스턴트가 어시스턴트에 의해 획득된 이미지 데이터에 적어도 부분적으로 기초하여 액션을 취하하거나 동작을 수행하기 위해 다수의 에이전트를 관리하게 할 수 있다. 다수의 에이전트는 어시스턴트 내에 포함된 하나 이상의 당사자(first-party)(1P) 에이전트를 포함하고 및/또는 어시스턴트 및/또는 그 어시스턴트의 일부가 아니거나 그 어시스턴트와 공통 발행자를 공유하지 않는 컴퓨팅 디바이스의 애플리케이션 또는 컴포넌트와 관련된 하나 이상의 제3자(3P) 에이전트 공통 퍼블리셔와 공통 발행자를 공유할 수 있다. 사용자로부터 사용자의 개인 정보를 사용, 저장 및/또는 분석하기 위한 명시적 및 명확한 권한을 수신한 후, 컴퓨팅 디바이스는 이미지 센서(예를 들어, 카메라)를 통해 사용자 환경에 대응하는 이미지 데이터를 수신할 수 있다. 에이전트 선택 모듈은 이미지 데이터의 컨텐츠에 적어도 부분적으로 기초하여 사용자 환경에 대해 사용자가 수행하고자 하는 하나 이상의 액션을 결정하기 위해 이미지 데이터를 분석할 수 있다. 액션은 어시스턴트에 의해 또는 어시스턴트에 의해 관리되는 복수의 에이전트로부터의 하나 이상의 에이전트의 조합에 의해 수행될 수 있다. 어시스턴트는 어시스턴트 또는 추천 에이전트(들)가 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하고 그 추천의 표시를 출력할 수 있다. 추천을 확인하거나 변경하는 사용자 입력을 수신하는 것에 응답하여, 어시스턴트는 에이전트(들)가 하나 이상의 액션을 수행, 개시, 초대 또는 수행하게 할 수 있다. 이러한 방식으로, 어시스턴트는 사용자의 환경에 적절한 액션을 결정할 뿐만 아니라 그 액션을 수행하기 위한 적절한 액터(actor)를 추천하도록 구성된다. 따라서, 설명된 기술은 사용자가 다양한 액션을 발견하고 어시스턴트가 다양한 액션을 수행하게 하는데 필요한 사용자 입력의 양을 감소시킴으로써 어시스턴트와의 사용성을 향상시킬 수 있다.
일 예에서, 본 개시는 방법에 관한 것으로, 컴퓨팅 디바이스에 의해 액세스 가능한 어시스턴트에 의해, 컴퓨팅 디바이스와 통신하는 이미지 센서로부터 이미지 데이터를 수신하는 단계와; 어시스턴트에 의해, 이미지 데이터에 기초하여 컴퓨팅 디바이스에 의해 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하는 단계와; 어시스턴트에 의해, 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하는 단계와; 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 어시스턴트에 의해, 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계를 포함한다.
다른 예에서, 본 개시는 시스템에 관한 것으로서, 컴퓨팅 디바이스의 카메라로부터 이미지 데이터를 수신하고; 이미지 데이터에 기초하여 컴퓨팅 디바이스로부터 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하고; 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하기 위한 수단을 포함한다. 상기 시스템은 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 수단을 추가로 포함한다.
다른 예에서, 본 개시는 컴퓨터 판독 가능 저장 매체에 관한 것으로, 컴퓨팅 디바이스의 하나 이상의 프로세서에 의해 실행될 때 컴퓨팅 디바이스로 하여금: 컴퓨팅 디바이스의 카메라로부터 이미지 데이터를 수신하고, 이미지 데이터에 기초하여 컴퓨팅 디바이스로부터 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하고; 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하게 하는 명령들을 포함한다. 상기 명령들은 실행될 때, 하나 이상의 프로세서로 하여금: 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 추가로 개시하게 한다.
다른 예에서, 본 개시는 카메라, 입력 디바이스, 출력 디바이스, 하나 이상의 프로세서, 및 어시스턴트와 관련된 명령들을 저장하는 메모리를 포함하는 컴퓨팅 디바이스에 관한 것이다. 상기 명령들는 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금: 컴퓨팅 디바이스의 카메라로부터 이미지 데이터를 수신하고, 이미지 데이터에 기초하여 그리고 컴퓨팅 디바이스로부터 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하고; 그리고 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하게 한다. 상기 명령들은 실행될 때, 하나 이상의 프로세서로 하여금: 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 추가로 개시하게 한다.
하나 이상의 예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어 있다. 본 개시의 다른 특징, 목적 및 이점은 상세한 설명 및 도면 및 청구 범위로부터 명백할 것이다.
도 1은 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하는 예시적인 시스템을 도시하는 개념도이다.
도 2는 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 3은 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하는 하나 이상의 프로세서에 의해 수행되는 예시적인 동작들을 도시하는 흐름도이다.
도 4는 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 시스템을 도시하는 블록도이다.
도 1은 본 개시의 하나 이상의 양태에 따라 예시적인 어시스턴트를 실행하는 예시적인 시스템을 도시하는 개념도이다. 도 1의 시스템(100)은 네트워크(130)를 통해 검색 서버 시스템(180), 제3자(3P) 에이전트 서버 시스템(170A-170N)(통칭하여 "3P 에이전트 서버 시스템(170)") 및 컴퓨팅 디바이스(110)와 통신하는 디지털 어시스턴트 서버(160)를 포함한다. 시스템(100)이 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170), 검색 서버 시스템(180) 및 컴퓨팅 디바이스(110) 사이에 분배되는 것으로 도시되어 있지만, 다른 예에서, 시스템(100)에 귀속되는 특징 및 기술은 컴퓨팅 디바이스(110)의 로컬 컴포넌트에 의해 내부적으로 수행될 수 있다. 유사하게, 디지털 어시스턴트 서버(160) 및/또는 3P 에이전트 서버 시스템(170)은 특정 컴포넌트를 포함할 수 있고, 이하의 설명에서 검색 서버 시스템(180) 및/또는 컴퓨팅 디바이스(110)에 귀속되는 다양한 기술을 수행할 수 있다.
네트워크(130)는 컴퓨팅 시스템, 서버 및 컴퓨팅 디바이스 사이에서 데이터를 전송하기 위한 임의의 공용 또는 사설 통신 네트워크, 예를 들어 셀룰러, Wi-Fi 및/또는 다른 유형의 네트워크를 나타낸다. 디지털 어시스턴트 서버(160)는 컴퓨팅 디바이스(110)가 네트워크(130)에 연결될 때 컴퓨팅 디바이스(110)에 액세스 가능한 가상 지원 서비스를 제공하기 위해 컴퓨팅 디바이스(110)와 네트워크(130)를 통해 데이터를 교환할 수 있다. 유사하게, 3P 에이전트 서버 시스템(170)은 컴퓨팅 디바이스(110)가 네트워크(130)에 연결될 때 컴퓨팅 디바이스(110)와 네트워크(130)를 통해 데이터를 교환하여 컴퓨팅 디바이스(110)에 액세스 가능한 가상 에이전트 서비스를 제공할 수 있다. 디지털 어시스턴트 서버(160)는 네트워크(130)를 통해 검색 서버 시스템(180)과 데이터를 교환하여 검색 서버 시스템(180)에 의해 제공된 검색 서비스에 액세스할 수 있다. 컴퓨팅 디바이스(110)는 네트워크(130)를 통해 검색 서버 시스템(180)과 데이터를 교환하여 검색 서버 시스템(180)에 의해 제공되는 검색 서비스에 액세스할 수 있다. 3P 에이전트 서버 시스템(170)은 네트워크(130)를 통해 검색 서버 시스템(180)과 데이터를 교환하여 검색 서버 시스템(180)에 의해 제공된 검색 서비스에 액세스할 수 있다.
네트워크(130)는 동작 가능하게 상호 연결되어 서버 시스템(160, 170 및 180)과 컴퓨팅 디바이스(110) 사이의 정보 교환을 제공하는 하나 이상의 네트워크 허브, 네트워크 스위치, 네트워크 라우터 또는 임의의 다른 네트워크 장비를 포함할 수 있다. 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 및 검색 서버 시스템(180)은 임의의 적절한 통신 기술을 사용하여 네트워크(130)를 통해 데이터를 송수신할 수 있다. 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 및 검색 서버 시스템(180)은 각각의 네트워크 링크를 사용하여 네트워크(130)에 동작 가능하게 연결될 수 있다. 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170), 및 검색 서버 시스템(180)을 네트워크(130)에 연결하는 링크는 이더넷 또는 다른 유형의 네트워크 연결일 수 있고, 이러한 연결은 무선 및/또는 유선 연결일 수 있다.
디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 및 검색 서버 시스템(180)은 네트워크(130)와 같은 네트워크로/로부터 정보를 송수신할 수 있는 하나 이상의 데스크탑 컴퓨터, 랩탑 컴퓨터, 메인 프레임, 서버, 클라우드 컴퓨팅 시스템 등과 같은 임의의 적합한 원격 컴퓨팅 시스템을 나타낸다. 디지털 어시스턴트 서버(160)는 어시스턴트 서비스를 호스팅(또는 적어도 액세스를 제공)한다. 3P 에이전트 서버 시스템(170)은 어시스턴트 에이전트를 호스팅(또는 적어도 액세스를 제공)한다. 검색 서버 시스템(180)은 검색 서비스를 호스팅(또는 적어도 액세스를 제공)한다. 일부 예에서, 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 및 검색 서버 시스템(180)은 클라우드를 통해 그들의 각각의 서비스에 대한 액세스를 제공하는 클라우드 컴퓨팅 시스템을 나타낸다.
컴퓨팅 디바이스(110)는 개별 모바일 또는 비-모바일 컴퓨팅 디바이스를 나타낸다. 컴퓨팅 디바이스(110)의 예는 휴대폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버, 메인 프레임, 셋탑 박스, 텔레비전, 웨어러블 디바이스(예를 들어, 컴퓨터형 시계, 컴퓨터형 안경, 컴퓨터형 장갑 등), 홈 오토메이션 디바이스 또는 시스템(예를 들어, 지능형 온도 조절기 또는 보안 시스템), 음성 인터페이스 또는 수조 홈 어시스턴트 디바이스, 개인 정보 단말기(PDA), 게임 시스템, 미디어 플레이어, 전자책 리더 , 모바일 텔레비전 플랫폼, 자동차 네비게이션 또는 인포테인먼트 시스템, 또는 어시스턴트를 실행 또는 액세스하고 네트워크(130)와 같은 네트워크를 통해 정보를 수신하도록 구성된 임의의 다른 유형의 모바일, 비-모바일, 웨어러블 및 비-웨어러블 컴퓨팅 디바이스를 포함한다.
컴퓨팅 디바이스(110)는 네트워크(130)를 통해 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 및/또는 검색 서버 시스템(180)과 통신하여 디지털 어시스턴트 서버(160)에 의해 제공되는 어시스턴트 서비스, 3P 에이전트 서버 시스템(170)에 의해 제공되는 가상 에이전트에 액세스할 수 있고, 및/또는 검색 서버 시스템(180)에 의해 제공되는 검색 서비스에 액세스할 수 있다. 어시스턴트 서비스를 제공하는 과정에서, 디지털 어시스턴트 서버(160)는 네트워크(130)를 통해 검색 서버 시스템(180)과 통신하여 태스크를 완료하기 위해 어시스턴트 서비스 정보의 사용자에게 제공하기 위한 검색 결과를 획득할 수 있다. 디지털 어시스턴트 서버(160)는 네트워크(130)를 통해 3P 에이전트 서버 시스템(170)과 통신하여, 어시스턴트 서비스의 추가 지원을 사용자에게 제공하기 위해 3P 에이전트 서버 시스템(170)에 의해 제공되는 하나 이상의 가상 에이전트를 참여시킬 수 있다. 3P 에이전트 서버 시스템(170)은 네트워크(130)를 통해 검색 서버 시스템(180)과 통신하여, 태스크을 완료하기 위해 언어 에이전트 정보의 사용자에게 제공하기 위한 검색 결과를 획득할 수 있다.
도 1의 예에서, 컴퓨팅 디바이스(110)는 사용자 인터페이스 디바이스(UID)(112), 카메라(114), 사용자 인터페이스(UI) 모듈(120), 어시스턴트 모듈(122A), 3P 에이전트 모듈(128aA-128aN)(통칭하여 "에이전트 모듈(128a)") 및 에이전트 인덱스(124A)를 포함한다. 디지털 어시스턴트 서버(160)는 어시스턴트 모듈(122B) 및 에이전트 인덱스(124B)를 포함한다. 검색 서버 시스템(180)은 검색 모듈(182)을 포함한다. 3P 에이전트 서버 시스템(170) 각각은 개별 3P 에이전트 모듈(128bA-128bN)(통칭하여 "에이전트 모듈(128b)")을 포함한다.
컴퓨팅 디바이스(110)의 UIC(112)는 컴퓨팅 디바이스(110)를 위한 입력 및/또는 출력 디바이스로서 기능할 수 있다. UID(112)는 다양한 기술을 사용하여 구현될 수 있다. 예를 들어, UID(112)는 존재 감지 입력 스크린, 마이크로폰 기술, 적외선 센서 기술, 카메라, 또는 사용자 입력을 수신하는데 사용하기 위한 다른 입력 디바이스 기술을 사용하는 입력 디바이스로서 기능할 수 있다. UID(112)는 사용자에게 정보를 출력하는데 사용하기 위한 임의의 하나 이상의 디스플레이 디바이스, 스피커 기술, 햅틱 피드백 기술 또는 다른 출력 디바이스 기술을 사용하여 사용자에게 출력을 제공하도록 구성된 출력 디바이스로서 기능할 수 있다.
컴퓨팅 디바이스(110)의 카메라(114)는 이미지를 기록 또는 캡처하기 위한기구일 수 있다. 카메라(114)는 비디오 또는 영화를 구성하는 개별 스틸 사진 또는 이미지 시퀀스를 캡처할 수 있다. 카메라(114)는 컴퓨팅 디바이스(110)의 물리적 컴포넌트일 수 있다. 카메라(114)는 컴퓨팅 디바이스(110)의 사용자 또는 컴퓨팅 디바이스(110)에서 실행되는 애플리케이션(및 카메라(114)의 기능) 사이의 인터페이스로서 작용하는 카메라 애플리케이션을 포함할 수 있다. 카메라(114)는 무엇보다도 하나 이상의 이미지를 캡처하고, 하나 이상의 객체에 초점을 맞추고, 다양한 플래시 설정을 이용하는 것과 같은 다양한 기능을 수행할 수 있다.
모듈(120, 122A, 122B, 128a, 128b, 및 182)은 소프트웨어, 하드웨어, 펌웨어, 또는 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 검색 서버 시스템(180) 및 3P 에이전트 서버 시스템(170) 중 하나에 존재하고 및/또는 실행되는 하드웨어, 소프트웨어 및 펌웨어의 조합을 사용하여 기술된 동작들을 수행할 수 있다. 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 검색 서버 시스템(180) 및 3P 에이전트 서버 시스템(170)은 다수의 프로세서 또는 다수의 디바이스를 이용하여 모듈(120, 122A, 122B, 128a, 128b 및 182)을 실행할 수 있다. 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 검색 서버 시스템(180) 및 3P 에이전트 서버 시스템(170)은 기본 하드웨어에서 실행되는 가상 머신으로서 모듈(120, 122A, 122B, 128a, 128b 및 182)을 실행할 수 있다. 모듈(120, 122A, 122B, 128a, 128b 및 182)은 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 또는 검색 서버 시스템(180)의 컴퓨팅 플랫폼의 애플리케이션 계층에서 또는 운영 체제의 하나 이상의 서비스로서 실행될 수 있다.
UI 모듈(120)은 UID(112)와의 사용자 상호 작용, 카메라(114)에 의해 검출된 입력, 및 UID(112), 카메라(114) 및 컴퓨팅 디바이스(110)의 다른 컴포넌트 사이의 상호 작용을 관리할 수 있다. UI 모듈(120)은 UID(112)를 통해 어시스턴트 서비스를 제공하기 위해 디지털 어시스턴트 서버(160)와 상호 작용할 수 있다. UI 모듈(120)은 컴퓨팅 디바이스(110)의 사용자가 출력을 보고 및/또는 UID(112)에서 입력을 제공함에 따라 UID(112)가 사용자 인터페이스를 출력하게 할 수 있다.
사용자로부터 사용자의 개인 정보를 사용, 저장 및/또는 분석할 수 있는 명시적이고 명확한 권한을 수신한 후, UI 모듈(120), UID(112) 및 카메라(114)는 다른 시간에 그리고 사용자와 컴퓨팅 디바이스(110)가 다른 위치에 있을 때, 사용자가 컴퓨팅 디바이스(110)와 상호 작용함에 따라 사용자로부터 입력(예를 들어, 음성 입력, 터치 입력, 비-터치 또는 존재 감지 입력, 비디오 입력, 오디오 입력 등)의 하나 이상의 표시를 수신할 수 있다. UI 모듈(120), UID(112) 및 카메라(114)는 UID(112) 및 카메라(114)에서 검출된 입력을 해석할 수 있고, UID(112) 및 카메라(114)에서 검출된 입력에 관한 정보를 어시스턴트 모듈(122) 및/또는 하나 이상의 다른 관련 플랫폼, 운영 체제, 애플리케이션, 및/또는 예를 들어, 컴퓨팅 디바이스(110)가 기능을 수행하게 하기 위해 컴퓨팅 디바이스(110)에서 실행되는 서비스로 중계할 수 있다.
권한을 제공한 후에도, 사용자는 컴퓨팅 디바이스(110)에 입력을 제공함으로써 권한을 철회할 수 있다. 이에 응답하여, 컴퓨팅 디바이스(110)는 사용자의 개인 권한의 사용을 중단하고 삭제할 것이다.
UI 모듈(120)은 컴퓨팅 디바이스(110) 및/또는 서버 시스템(160 및 180)과 같은 하나 이상의 원격 컴퓨팅 시스템에서 실행되는 하나 이상의 관련 플랫폼, 운영 체제, 애플리케이션 및/또는 서비스로부터 정보 및 명령을 수신할 수 있다. 또한, UI 모듈(120)은 컴퓨팅 디바이스(110)에서 실행되는 하나 이상의 관련 플랫폼, 운영 체제, 애플리케이션 및/또는 서비스, 및 컴퓨팅 디바이스(110)와의 출력(예를 들어, 그래픽, 광 플래시, 사운드, 햅틱 응답 등)을 생성하기 위한 컴퓨팅 디바이스(110)의 다양한 출력 디바이스(예를 들어, 스피커, LED 표시기, 오디오 또는 햅틱 등) 사이의 중개자로서 작용할 수 있다. 예를 들어, UI 모듈(120)은 UID(112)가 디지털 어시스턴트 서버(160)로부터 네트워크(130)를 통해 수신하는 데이터 UI 모듈(120)에 기초하여 사용자 인터페이스를 출력하게 할 수 있다. UI 모듈(120)은 디지털 어시스턴트 서버(160) 및/또는 어시스턴트 모듈(122)로부터 입력으로서, 사용자 인터페이스를 제시하기 위한 정보(예를 들어, 오디오 데이터, 텍스트 데이터, 이미지 데이터 등) 및 명령을 수신할 수 있다.
검색 모듈(182)은 검색 모듈(182)이 (예를 들어, 컴퓨팅 디바이스(110)와 관련된 컨텍스트 정보에 기초하여) 자동으로 생성하거나 검색 모듈(182)이 디지털 어시스턴트 서버(160), 3P 에이전트 서버 시스템(170) 또는 컴퓨팅 디바이스(110)로부터 (예를 들어, 어시스턴트가 컴퓨팅 디바이스(110)의 사용자를 대신하여 완료하는 태스크의 일부로서) 수신하는 검색 쿼리와 관련이 있는 것으로 결정된 정보에 대한 검색을 실행할 수 있다. 검색 모듈(182)은 검색 쿼리에 기초하여 인터넷 검색 또는 로컬 디바이스 검색을 수행하여 그 검색 쿼리와 관련된 정보를 식별할 수 있다. 검색을 실행한 후, 검색 모듈(182)은 검색(예를 들어, 검색 결과)으로부터 리턴된 정보를 디지털 어시스턴트 서버(160), 하나 이상의 3P 에이전트 서버 시스템(170) 또는 컴퓨팅 디바이스(110)로 출력할 수 있다.
검색 모듈(182)은 이미지에 포함된 하나 이상의 시각적 엔티티를 결정하기 위해 이미지 기반 검색을 실행할 수 있다. 예를 들어, 검색 모듈(182)은 입력으로서 (예를 들어, 어시스턴트 모듈(122)로부터) 이미지 데이터를 수신할 수 있고, 이에 응답하여 그 이미지로부터 인식 가능한 엔티티(예를 들어, 객체)의 하나 이상의 라벨 또는 다른 표시를 출력할 수 있다. 예를 들어, 검색 모듈(182)은 입력으로서 와인 병의 이미지를 수신하여, 와인 병, 와인 브랜드, 와인 유형, 병 유형 등과 같은 시각적 엔티티의 라벨 및 다른 식별자를 출력할 수 있다. 다른 예로서, 검색 모듈(182)은 입력으로서 거리에 있는 개의 이미지를 수신하여, 개, 거리, 지나가는 거리, 전경의 개, 보스턴 테리어 등)과 같이 거리 뷰에서 인식 가능한 시각적 엔티티의 라벨 또는 다른 식별자를 출력할 수 있다. 따라서, 검색 모듈(182)은 이미지 데이터(예를 들어, 이미지 또는 비디오 스트림)와 관련된 하나 이상의 관련 객체 또는 엔티티를 나타내는 정보 또는 엔티티를 출력할 수 있고, 이로부터 어시스턴트 모듈(122A 및 122B)은 하나 이상의 잠재적인 액션을 결정하기 위해 그 이미지 데이터와 관련된 "의도"를 추론할 수 있다.
컴퓨팅 디바이스(110)의 어시스턴트 모듈(122A) 및 디지털 어시스턴트 서버(160)의 어시스턴트 모듈(122B)은, a) 컴퓨팅 디바이스의 사용자로부터 수신된 사용자 입력(예를 들어, 발화된 발언, 텍스트 입력, 등)을 만족시키고 및/또는 b) 카메라(114)와 같은 카메라에 의해 캡처된 이미지 데이터로부터 추론된 액션을 수행하기 위해 에이전트를 선택하도록 구성된 어시스턴트를 자동으로 실행하기 위해 본 명세서에서 기술된 유사한 기능들을 각각 수행할 수 있다. 어시스턴트 모듈(122B) 및 어시스턴트 모듈(122A)은 통칭하여 어시스턴트 모듈(122)로 지칭될 수 있다. 어시스턴트 모듈(122B)은 디지털 어시스턴트 서버(160)가 네트워크(130)를 통해 (예를 들어, 컴퓨팅 디바이스(110)로) 제공하는 어시스턴트 서비스의 일부로서 에이전트 인덱스(124B)를 유지할 수 있다. 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110)에서 로컬로 실행하는 어시스턴트 서비스의 일부로서 에이전트 인덱스(124A)를 유지할 수 있다. 에이전트 인덱스(124A) 및 에이전트 인덱스(124B)는 통칭하여 에이전트 인덱스(124)로 지칭될 수 있다. 어시스턴트 모듈(122B) 및 에이전트 인덱스(124B)는 예시적인 어시스턴트의 서버 측 또는 클라우드 구현을 나타내는 반면, 어시스턴트 모듈(122A) 및 에이전트 인덱스(124A)는 예시적인 어시스턴트의 클라이언트 측 또는 로컬 구현을 나타낸다.
모듈(122A 및 122B)은 컴퓨팅 디바이스(110)의 사용자와 같은 개인에 대한 태스크 또는 서비스를 수행할 수 있는 지능형 개인 어시스턴트로서 실행하도록 구성된 각각의 소프트웨어 에이전트를 포함할 수 있다. 모듈(122A 및 122B)은 (예를 들어, UID(112)에서 검출된) 사용자 입력, (예를 들어, 카메라(114)에 의해 캡처된) 이미지 데이터, (예를 들어, 위치, 시간, 날씨, 이력 등에 기초한) 컨텍스트(상황) 인식, 및/또는 (예를 들어, 컴퓨팅 디바이스(110), 디지털 어시스턴트 서버(160)에 로컬로 저장된, 검색 서버 시스템(180)에 의해 제공된 검색 서비스를 통해 획득된 또는 네트워크(130)를 통한 일부 다른 정보 소스를 통해 획득된) 다양한 다른 정보 소스로부터 다른 정보에 액세스 하는 기능에 기초하여 이들 태스크 또는 서비스를 수행할 수 있다.
모듈(122A 및 122B)은 다양한 정보 소스로부터 수신된 입력에 대해 인공 지능 및/또는 기계 학습 기술을 수행하여 사용자를 대신하여 하나 이상의 태스크을 자동으로 식별하고 완료할 수 있다. 예를 들어, 카메라(114)에 의해 캡처된 이미지 데이터가 주어지면, 어시스턴트 모듈(122A)은 신경망에 의존하여 이미지 데이터로부터, 사용자가 수행하고자 하는 태스크 및/또는 그 태스크을 수행하기 위한 하나 이상의 에이전트를 결정할 수 있다.
일부 예에서, 모듈들(122)에 의해 제공되는 어시스턴트는 당사자(1P) 어시스턴트 및/또는 1P 에이전트로 지칭된다. 예를 들어, 모듈들(122)로 표현되는 에이전트는 컴퓨팅 디바이스(110)의 운영 체제 및/또는 디지털 어시스턴트 서버(160)의 소유자와 공통 발행자 및/또는 공통 개발자를 공유할 수 있다. 이와 같이, 일부 예에서, 모듈들(122)로 표현된 에이전트는 제3자(3P) 에이전트와 같은 다른 에이전트에 이용 가능하지 않은 기능을 가질 수 있다. 일부 예에서, 모듈들(122)로 표시되는 에이전트는 둘 다 1P 에이전트가 아닐 수 있다. 예를 들어, 어시스턴트 모듈(122A)로 표시되는 에이전트는 1P 에이전트일 수 있는 반면, 어시스턴트 모듈(122B)로 표시되는 에이전트는 3P 에이전트일 수 있다.
전술한 바와 같이, 어시스턴트 모듈(122A)은 컴퓨팅 디바이스(110)의 사용자와 같은 개인에 대한 태스크 또는 서비스를 수행할 수 있는 지능형 개인 어시스턴트로 실행하도록 구성된 소프트웨어 에이전트를 나타낼 수 있다. 그러나, 일부 예에서, 어시스턴트는 개인에 대한 태스크 또는 서비스를 수행하기 위해 다른 에이전트를 이용하는 것이 바람직할 수 있다.
3P 에이전트 모듈(128b 및 128a)(통칭하여, "3P 에이전트 모듈(128)")은 개인에 대한 태스크 또는 서비스를 수행하기 위해 어시스턴트 모듈(122)에 의해 이용될 수 있는 시스템(100)의 다른 어시스턴트 또는 에이전트를 나타낸다. 모듈들(128)에 의해 제공되는 어시스턴트 및/또는 에이전트는 제3자 어시스턴트 및/또는 3P 에이전트로 지칭된다. 3P 에이전트 모듈(128)로 표현된 어시스턴트 및/또는 에이전트는 컴퓨팅 디바이스(110)의 운영 체제 및/또는 디지털 어시스턴트 서버(160)의 소유자와 공통 발행자를 공유하지 않을 수 있다. 이와 같이, 일부 예에서, 모듈들(128)로 표현되는 어시스턴트 및/또는 에이전트는 1P 에이전트 어시스턴트 및/또는 에이전트와 같은 다른 어시스턴트 및/또는 에이전트에 이용 가능한 데이터에 대한 기능 또는 액세스를 갖지 않을 수 있다. 다르게 말하면, 각각의 에이전트 모듈(128)은 컴퓨팅 디바이스(110)로부터 액세스 가능한 개별 제3자 서비스와 관련된 3P 에이전트일 수 있고, 일부 예에서, 각각의 에이전트 모듈(128)과 관련된 개별 제3자 서비스는 어시스턴트 모듈(122)에 의해 제공되는 서비스와 상이할 수 있다. 3P 에이전트 모듈(128b)은 예시적인 3P 에이전트의 서버 측 또는 클라우드 구현을 나타내는 반면, 3P 에이전트 모듈(128a)은 예시적인 3P 에이전트의 클라이언트 측 또는 로컬 구현을 나타낸다.
3P 에이전트 모듈(128)은 컴퓨팅 디바이스(110)와 같은 컴퓨팅 디바이스의 사용자로부터 수신된 발언을 만족시키도록 구성된 개별 에이전트를 자동으로 실행하거나, 컴퓨팅 디바이스(110)와 같은 컴퓨팅 디바이스에 의해 획득된 이미지 데이터에 적어도 부분적으로 기초하여 태스크 또는 액션을 수행할 수 있다. 하나 이상의 3P 에이전트 모듈(128)은 컴퓨팅 디바이스(110)의 사용자와 같은 개인에 대한 태스크 또는 서비스를 수행할 수 있는 지능형 개인 어시스턴트로서 실행되도록 구성된 소프트웨어 에이전트를 나타낼 수 있는 반면, 하나 이상의 다른 3P 에이전트 모듈(128)은 어시스턴트 모듈(122)에 대한 태스크 또는 서비스를 수행하기 위해 어시스턴트 모듈(122)에 의해 이용될 수 있는 소프트웨어 에이전트를 나타낼 수 있다.
어시스턴트 모듈(122A) 및/또는 어시스턴트 모듈(122B)과 같은 시스템(100)의 하나 이상의 컴포넌트는 에이전트 인덱스(124A) 및/또는 에이전트 인덱스(124B)(통칭하여, "에이전트 인덱스(124)")를 반(semi)-구조화된 인덱스에, 컴퓨팅 디바이스(110)의 사용자와 같은 개인에 이용 가능하거나, 컴퓨팅 디바이스(110)에서 실행되거나 액세스 가능한 어시스턴트 모듈(122)과 같은 어시스턴트에 이용 가능한 에이전트와 관련된 에이전트 정보를 저장하도록 유지할 수 있다. 예를 들어, 에이전트 인덱스들(124)은 각각의 이용 가능한 에이전트에 대한 에이전트 정보를 갖는 단일 엔트리를 포함할 수 있다.
특정 에이전트에 대한 에이전트 인덱스들(124)에 포함된 엔트리는 특정 에이전트의 개발자에 의해 제공된 에이전트 정보로부터 구성될 수 있다. 그러한 엔트리에 포함될 수 있거나 그 엔트리를 구성하는데 사용될 수 있는 일부 예시적인 정보 필드는 에이전트의 설명, 에이전트의 하나 이상의 엔트리 포인트, 에이전트의 카테고리. 에이전트의 하나 이상의 트리거 문구, 에이전트와 연관된 웹 사이트, 에이전트의 기능 리스트 및/또는 하나 이상의 그래픽 의도(예를 들어, 이미지에 포함된 엔티티의 식별자 또는 에이전트에 의해 작동될 수 있는 이미지 부분)를 포함하지만 이에 한정되지는 않는다. 일부 예에서, 하나 이상의 정보 필드는 자유 형태의 자연 언어로 작성될 수 있다. 일부 예에서, 하나 이상의 정보 필드는 미리 정의된 리스트로부터 선택될 수 있다. 예를 들어, 카테고리 필드는 사전 정의된 카테고리 세트(예를 들어, 게임, 생산성, 통신)로부터 선택될 수 있다. 일부 예에서, 에이전트의 엔트리 포인트는 에이전트(예를 들어, 휴대폰)와 인터페이스하기 위해 사용되는 디바이스 유형(들)일 수 있다. 일부 예에서, 에이전트의 엔트리 포인트는 리소스 주소 또는 에이전트의 다른 인수일 수 있다.
일부 예에서, 에이전트 인덱스들(124)은 이용 가능한 에이전트의 사용 및/또는 수행과 관련된 에이전트 정보를 저장할 수 있다. 예를 들어, 어시스턴트 인덱스들(124)은 각각의 이용 가능한 어시스턴트에 대한 에이전트 품질 스코어를 포함할 수 있다. 일부 예에서, 에이전트 품질 스코어는 특정 에이전트가 경쟁 에이전트보다 더 자주 선택되는지 여부, 에이전트의 개발자가 다른 고품질 에이전트를 생성했는지 여부, 에이전트의 개발자가 다른 사용자 속성에 대해 양호한(또는 불량한) 스팸(spam) 스코어를 갖는지 여부 및 사용자가 일반적으로 실행중에 에이전트를 포기하는지 여부 중 하나 이상에 기초하여 결정될 수 있다. 일부 예에서, 어시스턴트 품질 스코어는 0과 1 사이의 값으로 나타낼 수 있다.
에이전트 인덱스들(124)은 그래픽 의도와 에이전트 사이의 매핑을 제공할 수 있다. 위에서 논의된 바와 같이, 특정 에이전트의 개발자는 그 특정 에이전트와 관련될 하나 이상의 그래픽 의도를 제공할 수 있다. 그래픽 의도의 예로는 수학 연산자 또는 공식, 로고, 아이콘, 상표, 동물 얼굴 또는 특징의 인물, 건물, 랜드 마크, 간판, 기호, 객체, 엔티티, 개념, 또는 이미지 데이터로부터 인식할 수 있는 기타 요소가 있다. 일부 예에서, 에이전트 선택의 품질을 향상시키기 위해, 어시스턴트 모듈(122)은 제공된 그래픽 의도에 따라 확장될 수 있다. 예를 들어, 어시스턴트 모듈(122)은 그래픽 의도를 다른 유사한 또는 관련된 그래픽 의도와 관련시킴으로써 그래픽 의도를 확장할 수 있다. 예를 들어, 어시스턴트 모듈(122)은 보다 특정한 개 관련 의도(예를 들어, 품종, 색상 등) 또는 보다 일반적인 개 관련 의도(예를 들어, 다른 애완 동물, 다른 동물 등)를 갖는 개에 대한 그래픽 의도에 따라 확장될 수 있다.
동작시, 어시스턴트 모듈(122A)은 UI 모듈(120)로부터 카메라(114)에 의해 획득된 이미지 데이터를 수신할 수 있다. 일 예로서, 어시스턴트 모듈(122A)은 카메라(114)의 시야에서 하나 이상의 시각적 엔티티를 나타내는 이미지 데이터를 수신할 수 있다. 예를 들어, 식당에 앉아있는 동안, 사용자는 컴퓨팅 디바이스(110)의 카메라(114)를 테이블상의 와인 병쪽으로 향하게 하고, 카메라(114)가 와인 병의 사진을 찍게 하는 UID(112)로 사용자 입력을 제공할 수 있다. 이미지 데이터는 카메라 애플리케이션, 메시징 애플리케이션 등과 같은 별도의 애플리케이션의 컨텍스트에서 캡처될 수 있, 어시스턴트 모듈(122A)에 제공되는 이미지에 대한 액세스 또는 대안적으로 어시스턴트 모듈(122A)의 어시스턴트 애플리케이션의 동작 양태의 컨텍스트로부터 캡처될 수 있다.
본 개시의 하나 이상의 기술에 따르면, 어시스턴트 모듈(122A)은 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 추천 에이전트 모듈(128)을 선택할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 1P 에이전트(즉, 어시스턴트 모듈(122A)에 의해 제공된 1P 에이전트), 3P 에이전트(즉, 3P 에이전트 모듈(128) 중 하나에 의해 제공된 3P 에이전트), 또는 1P 에이전트와 3P 에이전트의 일부 조합이 액션을 수행할 수 있는지 또는 사용자가 와인 병의 이미지 데이터와 관련된 태스크을 수행하는 것을 도울 수 있는지 여부를 결정할 수 있다.
어시스턴트 모듈(122A)은 dlalw 데이터의 분석에 대한 에이전트의 선택에 기초할 수 있다. 일 예로서, 어시스턴트 모듈(122A)은 이미지 데이터와 관련될 수 있는 모든 가능한 엔티티, 객체 및 개념을 결정하기 위해 이미지 데이터에 대해 시각 인식 기술을 수행할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 검색 모듈(182)에 대한 요청과 함께 이미지 데이터를 네트워크(130)를 통해 검색 서버 시스템(180)에 출력하여, 이미지 데이터의 이미지 기반 검색을 수행함으로써 이미지 데이터에 대한 시각 인식 기술을 수행할 수 있다. 그 요청에 응답하여, 어시스턴트 모듈(122A)은 검색 모듈(182)에 의해 수행된 이미지 기반 검색으로부터 리턴된 의도 리스트를 네트워크(130)를 통해 수신할 수 있다. 와인 병의 이미지에 대한 이미지 기반 검색으로부터 리턴된 의도 리스트는 "와인 병" 또는 일반적으로 "와인"과 관련된 의도를 리턴할 수 있다.
어시스턴트 모듈(122A)은 에이전트 인덱스(124A)의 엔트리들에 기초하여, 임의의 에이전트(예를 들어, 1P 또는 3P 에이전트)가 이미지 데이터로부터 추론된 의도(들)에 등록되었는지 여부를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 와인 의도를 에이전트 인덱스(124A)에 입력할 수 있고, 와인 의도로 등록된 하나 이상의 에이전트 모듈(128)의 리스트를 출력으로서 수신할 수 있으므로 와인과 관련된 액션을 수행하는데 사용될 수 있다.
어시스턴트 모듈(122A)은 의도로 등록된 하나 이상의 에이전트를 랭킹하고, 하나 이상의 최고 랭킹 에이전트를 추천 에이전트로 선택하여 이미지 데이터와 관련된 액션을 수행할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 의도로 등록된 각각의 에이전트 모듈(128)과 관련된 에이전트-품질 스코어에 기초하여 랭킹를 결정할 수 있다. 어시스턴트 모듈(122A)은 인기도 또는 사용 빈도 즉, 컴퓨팅 디바이스(110)의 사용자 또는 다른 컴퓨팅 디바이스의 사용자가 특정 에이전트 모듈(128)을 얼마나 자주 사용하는지에 기초하여 에이전트를 랭킹할 수 있다. 어시스턴트 모듈(122A)은 식별된 의도로 등록된 모든 에이전트로부터 추천된 에이전트 모듈(128)을 선택하기 위해 컨텍스트(예를 들어, 위치, 시간 및 다른 컨텍스트 정보)에 기초하여 에이전트 모듈(128)을 랭킹할 수 있다.
어시스턴트 모듈(122A)은 주어진 컨텍스트, 특정 사용자 및/또는 특정 의도에 대해 추천하기 위해 선호 에이전트 모듈(128)을 예측하기 위한 규칙을 개발할 수 있다. 예를 들어, 컴퓨팅 디바이스(110)의 사용자 및 다른 컴퓨팅 디바이스의 사용자로부터 획득된 과거 사용자 상호 작용 데이터에 기초하여, 어시스턴트 모듈(122A)은 대부분의 사용자가 특정 의도에 기초하여 액션을 수행하기 위해 특정 에이전트 모듈(128)을 사용하는 것을 선호하지만, 컴퓨팅 디바이스(110)의 사용자는 대신 그 특정 의도에 기초하여 액션을 수행하기 위해 다른 에이전트 모듈(128)을 사용하는 것을 선호할 수 있으므로, 대부분의 다른 사용자가 선호하는 에이전트보다 사용자의 선호 에이전트를 더 높게 랭킹할 수 있다.
어시스턴트 모듈(122A)은 어시스턴트 모듈(122A) 또는 추천된 에이전트 모듈(128)이 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정할 수 있다. 예를 들어, 일부 경우, 어시스턴트 모듈(122A)은 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 추천 에이전트일 수 있지만, 에이전트 모듈(128) 중 하나는 추천 에이전트일 수 있다. 어시스턴트 모듈(122A)은 하나 이상의 에이전트 모듈(128) 중에서 어시스턴트 모듈(122A)을 랭킹할 수 있고, 최고 랭킹 에이전트(예를 들어, 어시스턴트 모듈(122A) 또는 에이전트 모듈(128))를 선택하여 카메라(114)로부터 수신된 이미지 데이터로부터 추론된 의도에 기초하여 액션을 수행한다. 예를 들어, 에이전트 모듈(128aA)은 다양한 와인에 대한 정보를 제공하도록 구성된 에이전트일 수 있고, 또한 와인을 구매할 수 있는 상거래 서비스에 대한 액세스를 제공할 수 있다. 어시스턴트 모듈(122A)은 에이전트 모듈(128aA)이 와인과 관련된 액션을 수행하는 추천된 에이전트 형태라고 결정할 수 있다.
추천된 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천하도록 결정하는 것에 응답하여, 어시스턴트 모듈(122A)은 그 추천된 에이전트의 표시를 출력할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 그 어시스턴트 모듈(122A)이 사용자가 현재 시간에 액션을 수행하는 것을 돕기 위해 사용자가 에이전트 모듈(128aA)과 상호 작용하도록 추천한다는 것을 나타내는 가청, 시각 및/또는 햅틱 통지를 UID(112)를 통해 UI 모듈(120)이 출력하게 할 수 있다. 통지는 어시스턴트 모듈(122A)이 사용자가 와인 또는 와인들에 관심이 있을 수 있음을 이미지 데이터로부터 추론했다는 표시를 포함할 수 있고, 에이전트 모듈(128aA)이 질문에 대답하거나 심지어 와인을 주문하는데 도움이 될 수 있음을 사용자에게 알릴 수 있다.
일부 예에서, 추천(된) 에이전트는 하나 이상의 추천 에이전트일 수 있다. 이러한 경우, 어시스턴트 모듈(122A)은 통지의 일부로서 사용자가 특정 추천 에이전트를 선택하기 위한 요청을 출력할 수 있다.
어시스턴트 모듈(122A)은 그 추천 에이전트를 확인하는 사용자 입력을 수신할 수 있다. 예를 들어, 통지를 출력한 후, 사용자는 UID(112)에 터치 입력을 제공하거나 UID(112)로 음성 입력을 제공하여, 사용자가 카메라(114)에 의해 획득된 이미지 데이터에 대해 액션을 수행하기 위해 추천 에이전트를 사용하기를 원함을 확인한다.
어시스턴트 모듈(122A)이 그러한 사용자 확인 또는 다른 명시적 동의를 수신하지 않는 한, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 임의의 이미지 데이터를 임의의 모듈(122A)로 출력하는 것을 삼가할 수 있다. 분명히, 어시스턴트 모듈(122)이 사용자로부터 명시적인 동의를 받지 않는 한, 어시스턴트 모듈(122)은 카메라(114)에 의해 캡처된 이미지 데이터를 포함하여 사용자 또는 컴퓨팅 디바이스(110)의 임의의 개인 정보를 사용하거나 분석하는 것을 삼가할 수 있다. 어시스턴트 모듈(122)은 또한 사용자가 동의를 철회하거나 제거할 기회를 제공할 수 있다.
어떤 경우, 추천 에이전트를 확인하는 사용자 입력을 수신하는 것에 응답하여, 어시스턴트 모듈(122A)은 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션의 수행을 적어도 개시하게 할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 사용자가 카메라(114)에 의해 획득된 이미지 데이터에 대해 액션을 수행하기 위해 추천 에이전트를 사용하기를 원하는 것을 확인하는 정보를 수신하고, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 이미지 데이터를 그 이미지 데이터를 처리하고 임의의 적절한 액션를 취하라는 명령과 함께 추천 에이전트로 전송할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 이미지 데이터를 에이전트 모듈(128aA)로 전송할 수 있다. 에이전트 모듈(128aA)은 이미지 데이터에 대한 자체 분석을 수행하고, 웹 사이트를 열고, 액션을 트리거하고, 사용자와 대화를 시작하고, 비디오를 보여 주거나, 이미지 데이터를 사용하여 다른 관련 액션을 수행할 수 있다. 예를 들어, 에이전트 모듈(128aA)은 와인 병의 이미지 데이터에 대한 자체 이미지 분석을 수행하여, 와인의 특정 브랜드 또는 유형을 결정하고, UI 모듈(120) 및 UID(112)를 통해 사용자가 병을 사고 싶은지 또는 리뷰를 보고 싶은지를 묻는 통지를 출력gkf 수 있다.
이러한 방식으로, 본 개시의 기술에 따른 어시스턴트는 사용자의 환경에 적합하거나 그래픽 "의도"와 관련될 수 있는 액션들을 결정하도록 구성될 수 있을뿐만 아니라, 그 액션들을 수행하기 위해 적절한 행위자 또는 에이전트를 추천하도록 구성될 수도 있다. 따라서, 설명된 기술은 사용자가 사용자 환경에서 수행될 수 있는 액션을 발견하기 위해 필요한 사용자 입력의 양을 감소시킴으로써 어시스턴트와의 사용성을 향상시킬 수 있고, 어시스턴트가 훨씬 적은 입력으로 다양한 액션을 수행하게 할 수도 있다.
전술한 접근법에 의해 제공되는 몇 가지 이점들은 (1) 사용자로부터의 특정 문의에 의존하지 않고 또는 사용자가 문서나 다른 방법을 통해 액션 또는 기능을 배우는데 시간을 소비하기보다는 어시스턴트의 액션 또는 기능을 사용자에게 사전에 안내(direct)함으로써 디바이스의 작동에 대한 처리 복잡성 및 시간을 감소시킬 수 있고, (2) 사용자와 관련된 의미있는 정보 및 정보가 로컬로 저장되어 개인 데이터에 대해 사용자의 디바이스에서 복잡하고 메모리 소비가 많은 전송 보안 프로토콜의 필요성을 감소시킬 수 있고, (3) 예시적인 어시스턴트가 사용자에게 액션 또는 기능을 안내하기 때문에 사용자에 의해 더 적은 특정 문의가 요청될 수 있으므로, 쿼리 재작성 및 다른 계산적으로 복잡한 데이터 검색을 위한 사용자 디바이스에 대한 요구가 감소되며, (4) 특정 문의의 양이 감소함에 따라 어시스턴트 모듈이 특정 문의에 응답해야 하는 데이터가 감소될 수 있으므로 네트워크 사용량이 감소될 수 있다. 이러한 방식으로, 어시스턴트는 인터페이스 또는 가이드없이 어시스턴트의 모든 기능을 사용자에게 소개할 수 있다. 어시스턴트는 사용자의 환경에 기초하여, 특히 이미지 데이터를 사용하여 사용자에게 행동 또는 기능을 안내할 수 있다. 어시스턴트는 어시스턴트를 호출하고, 어시스턴트의 액션 또는 기능을 호출하고, 액션 또는 기능의 대상으로서 어시스턴트를 이미지에 안내하기 위해 별도의 입력을 요구하지 않고 이미지 데이터 제공을 그 이미지에 대한 사용자의 관심의 직접적인 표현으로 사용할 수 있다.
도 2는 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다. 도 2의 컴퓨팅 디바이스(210)는 도 1의 컴퓨팅 디바이스(110)의 예로서 아래에서 설명된다. 도 2는 컴퓨팅 디바이스(210)의 하나의 특정 예만을 도시하고, 컴퓨팅 디바이스(210)의 다른 많은 예는 다른 경우에 사용될 수 있고, 예시적인 컴퓨팅 디바이스(210)에 포함된 컴포넌트의 서브 세트를 포함하거나 도 2에 도시되지 않은 추가 컴포넌트를 포함할 수 있다.
도 2의 예에 도시된 바와 같이, 컴퓨팅 디바이스(210)는 사용자 인터페이스 디바이스(USD)(212), 하나 이상의 프로세서(240), 하나 이상의 통신 유닛(242), 카메라(214)를 포함하는 하나 이상의 입력 컴포넌트(244), 하나 이상의 출력 컴포넌트(246) 및 하나 이상의 저장 컴포넌트(248)를 포함한다. USD(212)는 디스플레이 컴포넌트(202), 존재 감지 입력 컴포넌트(204), 마이크로폰 컴포넌트(206) 및 스피커 컴포넌트(208)를 포함한다. 컴퓨팅 디바이스(210)의 저장 컴포넌트(248)는 UI 모듈(220), 어시스턴트 모듈(222), 검색 모듈(282), 하나 이상의 애플리케이션 모듈(226), 에이전트 선택 모듈(227), 3P 에이전트 모듈(228A-228N)(통칭하여 "3P 에이전트 모듈(228)"), 컨텍스트 모듈(230) 및 에이전트 인덱스(224)를 포함한다.
통신 채널(250)은 컴포넌트 간 통신(물리적, 통신적으로 및/또는 동작적으로)을 위해 컴포넌트(212, 240, 242, 244, 246 및 248) 각각을 상호 연결할 수 있다. 일부 예에서, 통신 채널들(250)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조, 또는 데이터를 전달하기 위한 임의의 다른 방법을 포함할 수 있다.
컴퓨팅 디바이스(210)의 하나 이상의 통신 유닛(242)은 하나 이상의 네트워크(예를 들어, 도 1의 시스템(100)의 네트워크(130))상에서 네트워크 신호를 송신 및/또는 수신함으로써 하나 이상의 유선 및/또는 무선 네트워크를 통해 외부 디바이스(예를 들어, 도 1의 시스템(100)의 디지털 어시스턴트 서버(160) 및/또는 검색 서버 시스템(180))와 통신할 수 있다. 통신 유닛(242)의 예는 네트워크 인터페이스 카드(예를 들어, 이더넷 카드, 광 송수신기, 무선 주파수 송수신기, GPS(global positioning system) 수신기, 또는 정보를 송신 및/또는 수신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 통신 유닛(242)의 다른 예는 단파 라디오, 셀룰러 데이터 라디오, 무선 네트워크 라디오 및 범용 직렬 버스(USB) 제어기를 포함할 수 있다.
카메라(214)를 포함하여 컴퓨팅 디바이스(210)의 하나 이상의 입력 컴포넌트(244)는 입력을 수신할 수 있다. 입력의 예는 촉각, 텍스트, 오디오, 이미지 및 비디오 입력이다. 카메라(114)에 부가하여, 일 예에서, 컴퓨팅 디바이스(210)의 입력 컴포넌트(242)는 존재 감지 입력 디바이스(예를 들어, 터치 감지 스크린, PSD), 마우스, 키보드, 음성 응답 시스템, 마이크로폰 또는 컴퓨팅 디바이스(210)의 환경의 입력 또는 인간 또는 기계로부터의 입력을 검출하기 위한 임의의 다른 유형의 디바이스를 포함한다. 일부 예에서, 입력 컴포넌트(242)는 하나 이상의 센서 컴포넌트, 하나 이상의 위치 센서(GPS 컴포넌트, Wi-Fi 컴포넌트, 셀룰러 컴포넌트), 하나 이상의 온도 센서, 하나 이상의 움직임 센서(예를 들어, 가속도계, 자이로)를 포함할 수 있다. 하나 이상의 압력 센서(예를 들어, 기압계), 하나 이상의 주변 광 센서, 및 하나 이상의 다른 센서(예를 들어, 적외선 근접 센서, 습도계 센서 등)를 포함할 수 있다. 다른 비 제한적인 예로서, 다른 센서는 심박 센서, 자력계, 포도당 센서, 후각 센서, 나침반 센서, 스텝 카운터 센서를 포함할 수 있다.
컴퓨팅 디바이스(110)의 하나 이상의 출력 컴포넌트(246)는 출력을 생성할 수 있다. 출력의 예는 촉각, 오디오 및 비디오 출력이다. 일 예에서, 컴퓨팅 디바이스(210)의 출력 컴포넌트(246)는 존재 감지 디스플레이, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, 음극선 관(CRT) 모니터, 액정 디스플레이(LCD), 또는 사람이나 기계로 출력을 생성하기 위한 임의의 다른 유형의 디바이스를 포함한다.
컴퓨팅 디바이스(210)의 UID(212)는 컴퓨팅 디바이스(110)의 UID(112)와 유사할 수 있으며 디스플레이 컴포넌트(202), 존재-감지 입력 컴포넌트(204), 마이크로폰 컴포넌트(206) 및 스피커 컴포넌트(208)를 포함한다. 디스플레이 컴포넌트(202)는 정보가 USD(212)에 의해 디스플레이되는 스크린일 수 있고, 존재 감지 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)에서 및/또는 근처에서 객체를 검출할 수 있다. 스피커 컴포넌트(208)는 UID(212)에 의해 가청 정보가 재생되는 스피커일 수 있는 반면, 마이크 컴포넌트(206)는 디스플레이 컴포넌트(202) 및/또는 스피커 컴포넌트(208)에 및/또는 근처에 제공된 가청 입력을 검출할 수 있다.
컴퓨팅 디바이스(210)의 내부 컴포넌트로 도시되어 있지만, UID(212)는 입력 및 출력을 전송 및/또는 수신하기 위해 컴퓨팅 디바이스(210)와 데이터 경로를 공유하는 외부 컴포넌트를 나타낼 수도 있다. 예를 들어, 일 예에서, UID(212)는 컴퓨팅 디바이스(210)의 외부 패키징(예를 들어, 휴대 전화기의 스크린) 내에 위치되고 그에 물리적으로 연결된 컴퓨팅 디바이스(210)의 내장 컴포넌트를 나타낸다. 다른 예에서, UID(212)는 컴퓨팅 디바이스(210)의 패키징 또는 하우징(예를 들어, 컴퓨팅 디바이스(210)와 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터 등)의 외부에 위치하고 물리적으로 분리된 컴퓨팅 디바이스(210)의 외부 컴포넌트를 나타낸다. .
일 예시적인 범위로서, 존재 감지 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)의 2 인치 이하 내에 있는 손가락 또는 스타일러스와 같은 객체를 검출할 수 있다. 존재 감지 입력 컴포넌트(204)는 객체가 검출된 디스플레이 컴포넌트(202)의 위치(예를 들어, [x, y] 좌표)를 결정할 수 있다. 다른 예시적인 범위에서, 존재 감지 입력 컴포넌트(204)는 디스플레이 컴포넌트(202)로부터 6 인치 이하의 객체를 검출할 수 있고 다른 범위도 가능하다. 존재 감지 입력 컴포넌트(204)는 용량성, 유도성 및/또는 광학 인식 기술을 사용하여 사용자의 손가락에 의해 선택된 디스플레이 컴포넌트(202)의 위치를 결정할 수 있다. 일부 예에서, 존재 감지 입력 컴포넌트(204)는 또한 디스플레이 컴포넌트(202)와 관련하여 설명된 바와 같이 촉각, 오디오 또는 비디오 자극을 사용하여 사용자에게 출력을 제공한다. 도 2에서, PSD(212)는 사용자 인터페이스를 제시할 수 있다.
스피커 컴포넌트(208)는 컴퓨팅 디바이스(210)의 하우징에 내장된 스피커를 포함할 수 있고, 일부 예에서, 컴퓨팅 디바이스(210)에 동작 가능하게 연결된 유선 또는 무선 헤드폰 세트에 내장된 스피커일 수 있다. 마이크로폰 컴포넌트(206)는 UID(212)에서 또는 그 근처에서 발생하는 가청 입력을 검출할 수 있다. 마이크로폰 컴포넌트(206)는 배경 노이즈를 제거하고 검출된 오디오 신호로부터 사용자 음성(speech)을 분리하기 위해 다양한 노이즈 제거 기술을 수행할 수 있다.
컴퓨팅 디바이스(210)의 UID(212)는 컴퓨팅 디바이스(210)의 사용자로부터의 입력으로서 2 차원 및/또는 3 차원 제스처를 검출할 수 있다. 예를 들어, UID(212)의 센서는 UID(212)의 센서의 임계 거리 내의 사용자의 움직임(예를 들어, 손, 팔, 펜, 스타일러스 움직임)을 검출할 수 있다. UID(212)는 그 움직임의 2 차원 또는 3 차원 벡터 표현을 결정하고 그 벡터 표현을 다차원을 갖는 제스처 입력(예를 들어, 손 흔들기, 핀치, 박수, 펜 스트로크 등)에 상관시킬 수 있다. 다시 말해서, UID(212)는 사용자가 UID(212)가 디스플레이를 위해 정보를 출력하는 스크린 또는 표면 또는 그 근처에서 제스처를 요구할 필요없이 다차원 제스처를 검출할 수 있다. 대신, UID(212)는 UID(212)가 디스플레이를 위해 정보를 출력하는 스크린 또는 표면 근처에 있거나 위치하지 않을 수 있는 센서에서 또는 센서 근처에서 수행되는 다차원 제스처를 검출할 수 있다.
하나 이상의 프로세서(240)는 기능을 구현하고 및/또는 컴퓨팅 디바이스(210)와 관련된 명령을 실행할 수 있다. 프로세서(240)의 예는 애플리케이션 프로세서, 디스플레이 컨트롤러, 보조 프로세서, 하나 이상의 센서 허브, 및 프로세서, 프로세싱 유닛 또는 프로세싱 디바이스로서 기능하도록 구성된 임의의 다른 하드웨어를 포함한다. 모듈(220, 222, 226, 227, 228, 230 및 282)은 컴퓨팅 디바이스(210)의 다양한 액션, 동작 또는 기능을 수행하기 위해 프로세서(240)에 의해 작동될 수 있다. 예를 들어, 컴퓨팅 디바이스(210)의 프로세서(240)는 프로세서(240)로 하여금 동작 모듈(220, 222, 226, 227, 228, 230 및 282)을 수행하게 하는 저장 컴포넌트(248)에 의해 저장된 명령들을 검색하고 실행할 수 있다. 명령들는 프로세서(240)에 의해 실행될 때 컴퓨팅 디바이스(210)로 하여금 저장 컴포넌트(248) 내에 정보를 저장하게 할 수 있다.
컴퓨팅 디바이스(210) 내의 하나 이상의 저장 컴포넌트(248)는 컴퓨팅 디바이스(210)의 동작 동안 처리를 위한 정보를 저장할 수 있다(예를 들어, 컴퓨팅 디바이스(210)는 컴퓨팅 디바이스(210)에서 실행되는 동안 모듈(220, 222, 226, 227, 228, 230 및 282)에 의해 액세스된 데이터를 저장할 수 있다). 일부 예에서, 저장 컴포넌트(248)는 저장 컴포넌트(248)의 주요 목적이 장기 저장이 아님을 의미하는 임시 메모리이다. 컴퓨팅 디바이스(210)의 저장 컴포넌트(248)는 휘발성 메모리로서 정보의 단기 저장을 위해 구성될 수 있으므로 전원이 꺼진 경우 저장된 컨텐츠를 유지하지 않는다. 휘발성 메모리의 예는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 및 당 업계에 공지된 다른 형태의 휘발성 메모리를 포함한다.
일부 예에서, 저장 컴포넌트(248)는 또한 하나 이상의 컴퓨터 판독 가능한 저장 매체를 포함한다. 일부 예에서 저장 컴포넌트(248)는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 저장 컴포넌트(248)는 휘발성 메모리에 의해 전형적으로 저장된 것보다 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 컴포넌트(248)는 또한 비-휘발성 메모리 공간으로서 정보를 장기 저장하고 전원 온/오프 사이클 후에 정보를 유지하도록 구성될 수 있다. 비 휘발성 메모리의 예는 자기 하드 디스크, 광 디스크, 플로피 디스크, 플래시 메모리, 또는 EPROM (Electrical Programmable Memory) 또는 EEPROM(Electrically Erasable and Programmable) 메모리의 형태를 포함한다. 저장 컴포넌트(248)는 모듈(220, 222, 226, 227, 228, 230, 282) 및 에이전트 인덱스(224)와 관련된 프로그램 명령 및/또는 정보(예를 들어, 데이터)를 저장할 수 있다. 저장 컴포넌트(248)는 모듈(220, 222, 226, 227, 228, 230, 282) 및 에이전트 인덱스(224)와 관련된 데이터 또는 다른 정보를 저장하도록 구성된 메모리를 포함할 수 있다.
UI 모듈(220)은 도 1의 컴퓨팅 디바이스(110)의 UI 모듈(120)의 모든 기능을 포함할 수 있고, 예를 들어, 컴퓨팅 디바이스(110)가 컴퓨팅 디바이스(110)의 사용자와 어시스턴트 모듈(222) 사이의 상호 작용을 용이하게 하기 위해 컴퓨팅 디바이스(210)가 USD(212)로 제공하는 사용자 인터페이스를 관리하기 위한 UI 모듈(120)과 유사한 동작을 수행할 수 있다. 예를 들어, 컴퓨팅 디바이스(210)의 UI 모듈(220)은 어시스턴트 사용자 인터페이스를 출력(예를 들어, 오디오를 디스플레이 또는 재생)하기 위한 명령을 포함하는 정보를 어시스턴트 모듈(222)로부터 수신할 수 있다. UI 모듈(220)은 통신 채널(250)을 통해 어시스턴트 모듈(222)로부터 정보를 수신하고 이 데이터를 사용하여 사용자 인터페이스를 생성할 수 있다. UI 모듈(220)은 UID(212)가 UID(212)에서 사용자 인터페이스를 제시하도록 통신 채널(250)을 통해 디스플레 또는 가청 출력 명령 및 관련 데이터를 전송할 수 있다.
UI 모듈(220)은 카메라(114)에 의해 검출된 하나 이상의 입력의 표시를 수신할 수 있고 카메라 입력에 관한 정보를 어시스턴트 모듈(222)로 출력할 수 있다. 일부 예에서, UI 모듈(220)은 UID(212)에서 검출된 하나 이상의 사용자 입력의 표시를 수신하여, 사용자 입력에 관한 정보를 어시스턴트 모듈(222)로 출력할 수 있다. 예를 들어, UID(212)는 사용자로부터의 음성 입력을 검출하여 그 음성 입력에 관한 데이터를 UI 모듈로 전송할 수 있다.
UI 모듈(220)은 추가 해석을 위해 카메라 입력의 표시를 어시스턴트 모듈(222)로 전송할 수 있다. 어시스턴트 모듈(222)은 카메라 입력에 기초하여, 상기 검출된 카메라 입력이 하나 이상의 사용자 태스크과 관련될 수 있다고 결정할 수 있다.
애플리케이션 모듈(226)은 사용자에게 정보를 제공하고 및/또는 태스크를 수행하기 위해 어시스턴트 모듈(222)과 같은 어시스턴트에 의해 액세스될 수 있는 컴퓨팅 디바이스(210)에서 실행되고 그로부터 액세스 가능한 다양한 개별 애플리케이션 및 서비스를 나타낸다. 컴퓨팅 디바이스(210)의 사용자는 하나 이상의 애플리케이션 모듈(226)과 관련된 사용자 인터페이스와 상호 작용하여 컴퓨팅 디바이스(210)가 기능을 수행하게 할 수 있다. 애플리케이션 모듈(226)의 다수의 예는 피트니스 애플리케이션, 캘린더 애플리케이션, 검색 애플리케이션, 지도 또는 내비게이션 애플리케이션, 운송 서비스 애플리케이션(예를 들어, 버스 또는 기차 추적 애플리케이션), 소셜 미디어 애플리케이션, 게임 애플리케이션, 이메일 애플리케이션, 채팅 또는 메시징 애플리케이션, 인터넷 브라우저 애플리케이션, 또는 컴퓨팅 디바이스(210)에서 실행될 수 있는 임의의 및 다른 모든 애플리케이션이 존재할 수 있고 이를 포함할 수 있다.
컴퓨팅 디바이스(210)의 검색 모듈(282)은 컴퓨팅 디바이스(210) 대신 통합 검색 기능을 수행할 수 있다. 검색 모듈(282)은 UI 모듈(220), 하나 이상의 애플리케이션 모듈(226) 및/또는 어시스턴트 모듈(222)에 의해 그들 대신 검색 동작을 수행하도록 호출될 수 있다. 호출될 때, 검색 모듈(282)은 다양한 로컬 및 원격 정보 소스에 걸쳐 검색 쿼리를 생성하고 생성된 검색 쿼리에 기초하여 검색을 실행하는 것과 같은 검색 기능을 수행할 수 있다. 검색 모듈(282)은 실행된 검색의 결과를 호출 컴포넌트 또는 모듈에 제공할 수 있다. 즉, 검색 모듈(282)은 호출 명령에 응답하여 검색 결과를 UI 모듈(220), 어시스턴트 모듈(222) 및/또는 애플리케이션 모듈(226)에 출력할 수 있다.
컨텍스트 모듈(230)은 컴퓨팅 디바이스(210)의 컨텍스트를 정의하기 위해 컴퓨팅 디바이스(210)와 관련된 컨텍스트 정보를 수집할 수 있다. 구체적으로, 컨텍스트 모듈(210)은 특정 시간에 컴퓨팅 디바이스(210) 및 컴퓨팅 디바이스(210)의 사용자의 물리적 및/또는 가상 환경의 특성을 지정하는 컴퓨팅 디바이스(210)의 컨텍스트를 정의하기 위해 어시스턴트 모듈(222)에 의해 주로 사용된다.
본 개시 전반에 걸쳐 사용되는 바와 같이, "컨텍스트 정보"라는 용어는 컴퓨팅 디바이스 및 컴퓨팅 디바이스의 사용자가 특정 시간에 경험할 수 있는 가상 및/또는 물리적 환경 특성을 지정하기 위해 컨텍스트 모듈(230)에 의해 사용될 수 있는 임의의 정보를 기술하는데 사용된다. 컨텍스트 정보의 예는 많으며, 컴퓨팅 디바이스(210)의 센서(예를 들어, 위치 센서, 가속도계, 자이로, 기압계, 주변 광 센서, 근접 센서, 마이크로폰 및 임의의 다른 센서)에 의해 획득된 센서 정보, 컴퓨팅 디바이스(210)의 통신 모듈에 의해 송수신되는 통신 정보(예를 들어, 텍스트 기반 통신, 가청 통신, 비디오 통신 등), 및 컴퓨팅 디바이스(210)에서 실행되는 애플리케이션과 관련된 애플리케이션 사용 정보(예를 들어, 애플리케이션과 관련된 애플리케이션 데이터, 인터넷 검색 이력, 텍스트 커뮤니케이션, 음성 및 영상 커뮤니케이션, 캘린더 정보, 소셜 미디어 게시물 및 관련 정보 등)를 포함할 수 있다. 컨텍스트 정보의 추가 예는 컴퓨팅 디바이스(210) 외부의 송신 디바이스로부터 획득된 신호 및 정보를 포함한다. 예를 들어, 컨텍스트 모듈(230)은 컴퓨팅 디바이스(210)의 무선 또는 통신 유닛을 통해, 상인의 물리적 위치에 또는 근처에 위치한 외부 비콘으로부터 전송된 비콘 정보를 수신할 수 있다.
어시스턴트 모듈(222)은 도 1의 컴퓨팅 디바이스(110)의 어시스턴트 모듈(122A)의 모든 기능을 포함할 수 있고, 어시스턴트를 제공하기 위한 어시스턴트 모듈(122A)과 유사한 동작을 수행할 수 있다. 일부 예에서, 어시스턴트 모듈(222)은 어시스턴트 기능을 제공하기 위해 로컬로(예를 들어, 프로세서(240)에서) 실행될 수 있다. 일부 예에서, 어시스턴트 모듈(222)은 컴퓨팅 디바이스(210)에 액세스 가능한 원격 지원 서비스에 대한 인터페이스로서 작용할 수 있다. 예를 들어, 어시스턴트 모듈(222)은 도 1의 디지털 어시스턴트 서버(160)의 어시스턴트 모듈(122B)에 대한 인터페이스 또는 애플리케이션 프로그래밍 인터페이스(API)일 수 있다.
에이전트 선택 모듈(227)은 주어진 발언을 만족시키기 위해 하나 이상의 에이전트를 선택하는 기능을 포함할 수 있다. 일부 예에서, 에이전트 선택 모듈(227)은 독립형 모듈일 수 있다. 일부 예에서, 에이전트 선택 모듈(227)은 어시스턴트 모듈(222)에 포함될 수 있다.
에이전트 인덱스(224)는 도 1의 시스템(100)의 에이전트 인덱스(124A 및 124B)와 유사하게, 3P 에이전트와 같은 에이전트와 관련된 정보를 저장할 수 있다. 어시스턴트 모듈(222) 및/또는 에이전트 선택 모듈(227)은 이미지 데이터로부터 추론된 태스크 또는 동작을 수행하기 위한 어시스턴트 태스크을 수행하고 및/또는 에이전트를 선택하기 위해 컨텍스트 모듈(230) 및/또는 검색 모듈(282)에 의해 제공된 임의의 정보에 더하여 에이전트 인덱스(224)에 저장된 정보에 의존할 수 있다.
어시스턴트 모듈(222)의 요청에 따라, 에이전트 선택 모듈(227)은 카메라(214)에 의해 캡처된 이미지 데이터와 관련된 태스크 또는 동작을 수행하기 위해 하나 이상의 에이전트를 선택할 수 있다. 그러나, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하기 전에, 에이전트 선택 모듈(227)은 에이전트 인덱스(224)를 생성하고 및/또는 그들의 기능에 관한 정보를 3P 에이전트 모듈(228)로부터 수신하기 위해 사전 구성 또는 설정 프로세스가 진행될 수 있다.
에이전트 선택 모듈(227)은 복수의 에이전트의 각각의 특정 에이전트로부터 해당 특정 에이전트와 관련된 하나 이상의 개별 의도를 포함하는 등록 요청을 수신할 수 있다. 에이전트 선택 모듈(227)은 복수의 에이전트로부터의 각각의 특정 에이전트를 그 특정 에이전트와 관련된 하나 이상의 개별 의도로 등록할 수 있다. 예를 들어, 컴퓨팅 디바이스(220)에 로딩될 때, 3P 에이전트 모듈(228)은 에이전트 선택 모듈(227)에 각각의 에이전트를 등록하는 정보를 에이전트 선택 모듈(227)에 전송할 수 있다. 등록 정보는 에이전트 식별자 및 에이전트가 충족시킬 수 있는 하나 이상의 의도를 포함할 수 있다. 예를 들어, 3P 에이전트 모듈(228A)은 PizzaHouse Company에 대한 피자 주문 에이전트일 수 있고, 컴퓨팅 디바이스(220)에 설치될 때, 3P 에이전트 모듈(228A)은 "PizzaHouse"라는 이름, "PizzaHouse 로고 또는 상표, "음식 ","레스토랑" 및 "피자 "를 나타내는 이미지 또는 단어와 관련된 의도로 3P 에이전트 모듈(228A)을 등록하는 정보를 에이전트 선택 모듈(227)에 전송할 수 있다. 에이전트 선택 모듈(227)은 3P 에이전트 모듈(228A)의 식별자와 함께 등록 정보를 에이전트 정보(224)에 저장할 수 있다.
에이전트 선택 모듈(227)이 식별된 에이전트를 순위 매김하는 에이전트 인덱스(224)에 저장된 에이전트 정보는, 컴퓨팅 디바이스(210)의 사용자 및/또는 다른 컴퓨팅 디바이스의 사용자에 의한 특정 에이전트의 사용 빈도를 나타내는 특정 에이전트의 인기도 스코어와, 특정 에이전트의 의도와 이미지 데이터 사이의 관련성 스코어와, 특정 에이전트와 이미지 데이터 사이의 유용성 스코어와, 특정 에이전트와 관련된 하나 이상의 의도 각각과 관련된 중요도 스코어와, 특정 에이전트와 관련된 사용자 만족도 스코어와, 특정 에이전트와 관련된 사용자 상호 작용 스코어와, 그리고 특정 에이전트와 관련된 품질 스코어(예를 들어, 이미지 데이터로부터 추정된 다양한 의도 및 에이전트에 대한 의도 레지스터 사이의 매칭의 가중치 합)을 포함한다. 에이전트 모듈(328)의 순위는 예를 들어, 2개의 상이한 유형의 스코어를 곱하거나 더함으로써 에이전트 선택 모듈(227)에 의해 결정된 각각의 가능한 에이전트에 대한 조합된 스코어에 기초할 수 있다.
에이전트 인덱스(224) 및/또는 그들의 기능에 관한 3P 에이전트 모듈(228)로부터 수신된 등록 정보에 기초하여, 에이전트 선택 모듈(227)은 추천 에이전트가 이미지 데이터로부터 추론된 하나 이상의 의도로 등록되었다는 결정에 응답하여 추천 에이전트를 선택할 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 에이전트 선택 모듈(227)에 의해, 음식, 피자 등을 주문하려는 의도를 나타내는 것으로 결정된 어시스턴트 모듈(222)로부터의 이미지 데이터를 사용할 수 있다. 에이전트 선택 모듈(227)은 이미지 데이터로부터 추정된 의도를 에이전트 인덱스(224)에 입력하고, 에이전트 인덱스(224)로부터의 출력으로서 3P 에이전트 모듈(228A)의 표시 및 음식 또는 피자 의도로 등록된 하나 이상의 다른 3P 에이전트 모듈(228)을 수신할 수 있다.
에이전트 선택 모듈(227)은 이미지 데이터로부터 추론된 하나 이상의 의도와 매칭치하는 에이전트 인덱스(224)로부터 등록된 에이전트를 식별할 수 있다. 에이전트 선택 모듈(227)은 식별된 에이전트를 랭킹할 수 있다. 다시 말해서, 이미지 데이터로부터 하나 이상의 의도를 추론하는 것에 응답하여, 에이전트 선택 모듈(227)은 3P 에이전트 모듈(228)로부터, 이미지 데이터로부터 추론된 하나 이상의 의도 중 적어도 하나에 등록된 하나 이상의 3P 에이전트 모듈(228)을 식별할 수 있다. 하나 이상의 3P 에이전트 모듈(228) 및 하나 이상의 의도 각각과 관련된 정보에 기초하여, 에이전트 모듈(227)은 하나 이상의 3P 에이전트 모듈(228)의 랭킹를 결정하고, 그 랭킹에 적어도 부분적으로 기초하여 하나 이상의 3P 에이전트 모듈(228)로부터, 추천된 3P 에이전트 모듈(228)을 선택할 수 있다.
일부 예에서, 에이전트 선택 모듈(227)은 이미지 기반 인터넷 검색을 통해 이미지 데이터를 전송함으로써(즉, 검색 모듈(282)로 하여금 이미지 데이터에 기초하여 인터넷을 검색하게 함으로써) 이미지 데이터에 적어도 부분적으로 기초하여 하나 이상의 추천 에이전트를 식별할 수 있다. 일부 예에서, 어시스턴트 선택 모듈(227)은 어시스턴트 인덱스(224) 외에 이미지 기반 인터넷 검색을 통해 이미지 데이터를 전송함으로써 이미지 데이터에 적어도 부분적으로 기초하여 하나 이상의 추천 어시스턴트을 식별할 수 있다.
일부 예에서, 에이전트 인덱스(224)는 의도와 관련된 에이전트에 대한 스코어를 생성하기 위해 기계 학습 시스템을 포함하거나 기계 학습 시스템으로 구현될 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 이미지 데이터로부터 추론된 하나 이상의 의도를 에이전트 인덱스(224)의 기계 학습 시스템에 입력할 수 있다. 기계 학습 시스템은 하나 이상의 에이전트 각각 및 하나 이상의 의도와 관련된 정보에 기초하여, 하나 이상의 에이전트 각각에 대한 개별 스코어를 결정할 수 있다. 에이전트 선택 모듈(227)은 기계 학습 시스템으로부터 하나 이상의 에이전트 각각에 대한 개별 스코어를 수신할 수 있다.
일부 예에서, 어시스턴트 색인(224) 및/또는 어시스턴트 색인(224)의 기계 학습 시스템은 어시스턴트 모듈(222)과 관련된 정보 및 어시스턴트 모듈(222)이 이미지 데이터에 적어도 부분적으로 기초하여 하나 이상의 액션 또는 태스크를 수행하도록 추천할지를 결정하기 위해 임의의 의도로 등록되어 있는지 여부에 의존할 수 있다. 즉, 에이전트 선택 모듈(227)은 이미지 데이터로부터 추론된 하나 이상의 의도를 에이전트 인덱스(224)의 기계 학습 시스템에 입력할 수 있다. 일부 예에서, 에이전트 선택 모듈(227)은 컨텍스트 모듈(230)에 의해 획득된 컨텍스트 정보를 에이전트 인덱스(224)의 기계 학습 시스템에 입력하여 3P 에이전트 모듈(228)의 순위를 결정할 수 있다. 기계 학습 시스템은 어시스턴트 모듈(222)과 관련된 정보, 하나 이상의 의도 및/또는 컨텍스트 정보에 기초하여 어시스턴트 모듈(222)에 대한 개별 스코어를 결정할 수 있다. 에이전트 선택 모듈(227)은 기계 학습 시스템으로부터 어시스턴트 모듈(222)에 대한 개별 스코어를 수신할 수 있다.
에이전트 선택 모듈(227)은 어시스턴트 모듈(222) 또는 3P 에이전트 모듈(228)의 추천된 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정할 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 3P 에이전트 모듈(228) 중 최고 랭킹의 하나에 대한 개별 스코어가 어시스턴트 모듈(222)의 스코어를 초과하는지 여부를 결정할 수 있다. 3P 에이전트 모듈(228)로부터 최고 랭킹 에이전트에 대한 개별 스코어가 어시스턴트 모듈(222)의 스코어를 초과한다는 결정에 응답하여, 에이전트 선택 모듈(227)은 최고 랭킹 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행하는 것을 추천하도록 결정할 수 있다. 3P 에이전트 모듈(228)로부터 최고 랭킹 에이전트에 대한 개별 스코어가 어시스턴트 모듈(222)의 스코어를 초과하지 않는다는 것을 결정하는 것에 응답하여, 에이전트 선택 모듈(227)은 최고 랭킹 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행하는 것을 추천하도록 결정할 수 있다.
에이전트 선택 모듈(227)은 하나 이상의 액션을 수행할 에이전트를 선택하기 위해 인터넷 검색으로부터의 랭킹 및/또는 결과를 분석할 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 검색 결과를 검사하여 에이전트와 관련된 웹 페이지 결과가 있는지를 결정할 수 있다. 에이전트와 관련된 웹 페이지 결과가 있는 경우, 에이전트 선택 모듈(227)은 (에이전트가 랭킹 결과에 아직 포함되지 않은 경우) 그 웹 페이지 결과와 관련된 에이전트를 랭킹 결과에 삽입할 수 있다. 에이전트 선택 모듈(227)은 웹 스코어의 강도에 따라 에이전트의 순위를 높이거나 낮출 수 있다. 일부 예에서, 에이전트 선택 모듈(227)은 사용자가 그 결과 세트 내의 임의의 에이전트와 상호 작용했는지 여부를 결정하기 위해 개인 이력 저장소를 조회할 수 있다. 그런 경우, 에이전트 선택 모듈(227)은 이들 에이전트와의 사용자 이력의 강도에 따라 에이전트에게 부스트(즉, 증가된 순위)를 제공할 수 있다.
에이전트 선택 모듈(227)은 순위에 기초하여 이미지 데이터로부터 추론된 액션을 수행하도록 추천하기 위해 3P 에이전트를 선택할 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 최고 순위를 갖는 3P 에이전트를 선택할 수 있다. 순위에 타이(tie, 동순위)가 존재하는 경우 및/또는 최고 순위를 갖는 3P 에이전트의 순위가 순위 임계값보다 작은 경우와 같은 일부 예에서, 에이전트 선택 모듈(227)은 발언을 만족시키기 위해 3P 에이전트를 선택하도록 사용자 입력을 요청할 수 있다. 예를 들어, 에이전트 선택 모듈(227)은 UI 모듈(220)로 하여금 사용자가 발언을 만족시키기 위해 N(예를 들어, 2, 3, 4, 5 등)개의 중간 순위의 3P 에이전트로부터 3P 에이전트를 선택하도록 요청하는 사용자 인터페이스(즉, 선택 UI)를 출력하게 할 수 있다. 일부 예에서, N개의 중간 순위의 3P 에이전트는 N개의 최고 순위의 에이전트를 포함할 수 있다. 일부 예에서, N개의 중간 순위의 3P 에이전트는 N개의 최고 순위의 에이전트 이외의 에이전트를 포함할 수 있다.
에이전트 선택 모듈(227)은 에이전트의 속성을 검사하고 및/또는 다양한 3P 에이전트로부터 결과를 획득하고, 그 결과를 순위 매기고, 어시스턴트 모듈(222)로 하여금 최고 순위의 결과를 제공하는 3P 에이전트를 호출(즉, 선택)하게 할 수 있다. 예를 들어, 의도가 "피자"와 관련이 있는 경우, 에이전트 선택 모듈(227)은 사용자의 현재 위치를 결정하고, 어떤 피자 소스(출처)가 사용자의 현재 위치에 가장 가까운지를 결정하고, 해당 현재 위치와 관련된 피자 소스를 순위 매김할 수 있다. 유사하게, 에이전트 선택 모듈(227)은 아이템의 가격에 대해 다수의 3P 에이전트를 폴링(poll)한 다음, 에이전트를 제공하여 사용자가 최저 가격에 기초하여 구매를 완료할 수 있도록 허용할 수 있다. 에이전트 선택 모듈(227)은 어떤 3P 에이전트가 가능한지 결정하기 전에 어떤 1P 에이전트도 태스크를 수행할 수 없다고 결정할 수 있으며, 이들 중 하나 또는 몇 개만 할 수 있다고 가정하면 해당 에이전트만 태스크를 구현하기 위한 옵션으로서 사용자에게 제공한다.
이러한 방식으로, 어시스턴트 모듈(222) 및 에이전트 선택 모듈(227)을 통해, 컴퓨팅 디바이스(210)는 다른 유형의 디지털 어시스턴트 서비스보다 덜 복잡한 어시스턴트 서비스를 제공할 수 있다. 즉, 컴퓨팅 디바이스(210)는 다른 서비스 제공자 또는 3P 에이전트에 의존하여 일상적인 사용 중에 발생할 수 있는 모든 가능한 태스크을 처리하기 보다는 적어도 일부 복잡한 태스크을 수행할 수 있다. 그렇게함으로써, 컴퓨팅 디바이스(210)는 사용자가 3P 에이전트와 이미 가지고 있는 사적인 관계를 보존할 수 있다.
도 3은 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하는 하나 이상의 프로세서에 의해 수행되는 예시적인 동작들을 도시한 흐름도이다. 도 3은 도 1의 시스템(100)의 컴퓨팅 디바이스(110)와 관련하여 아래에서 설명된다. 예를 들어, 컴퓨팅 디바이스(110)의 하나 이상의 프로세서에서 실행되는 동안 어시스턴트 모듈(122A)은 본 개시의 하나 이상의 양태에 따른 동작(302-314)을 수행할 수 있다. 그리고 일부 예에서, 디지털 어시스턴트 서버(160)의 하나 이상의 프로세서에서 실행되는 어시스턴트 모듈(122B)은 본 개시의 하나 이상의 양태에 따라 동작(302-314)을 수행할 수 있다.
동작시, 컴퓨팅 디바이스(110)는 카메라(114) 또는 다른 이미지 센서(302)로부터와 같은 이미지 데이터를 수신할 수 있다. 예를 들어, 이미지 데이터를 포함하여 개인 정보를 이용하기 위해 사용자로부터 명시적인 허가를 받은 후, 컴퓨팅 디바이스(110)의 사용자는 컴퓨팅 디바이스(110)의 카메라(114)를 벽의 영화 포스터를 향해 포인팅하고 UID(112)에 사용자 입력을 제공하여 카메라(114)가 영화 포스터의 사진을 찍게 한다.
본 개시의 하나 이상의 기술에 따르면, 어시스턴트 모듈(122A)은 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트 모듈(128)을 선택할 수 있다(304). 예를 들어, 어시스턴트 모듈(122A)은 1P 에이전트(즉, 어시스턴트 모듈(122A)에 의해 제공되는 1P 에이전트), 3P 에이전트(즉, 3P 에이전트 모듈(128) 중 하나에 의해 제공되는 3P 에이전트), 또는 1P 에이전트와 3P 에이전트의 일부 조합이 액션을 수행할 수 있는지 또는 사용자가 영화 포스터의 이미지 데이터와 관련된 태스크를 수행하는 것을 도울 수 있는지 여부를 결정할 수있다.
어시스턴트 모듈(122A)은 이미지 데이터의 분석에 대해 에이전트 선택을 기초로할 수 있다. 일 예로서, 어시스턴트 모듈(122A)은 이미지 데이터와 관련될 수 있는 모든 가능한 엔티티, 객체 및 개념을 결정하기 위해 이미지 데이터에 대한 시각 인식 기술을 수행할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 이미지 데이터의 이미지 기반 검색을 수행함으로써 이미지 데이터에 대한 시각 인식 기술을 수행하기 위해 검색 모듈(182)에 대한 요청과 함께 이미지 데이터를 네트워크(130)를 통해 검색 서버 시스템(180)로 출력할 수 있다. 그 요청에 응답하여, 어시스턴트 모듈(122A)은 네트워크(130)를 통해 검색 모듈(182)에 의해 수행된 이미지 기반 검색으로부터 리턴된 의도 리스트를 수신할 수 있다. 와인 병 이미지의 이미지 기반 검색으로부터 리턴된 의도 리스트는 일반적으로 "영화 이름" 또는 "영화" 또는 "영화 포스터"와 관련된 의도를 리턴할 수 있다.
어시스턴트 모듈(122A)은 에이전트 인덱스(124A)의 엔트리에 기초하여, 임의의 에이전트(예를 들어, 1P 또는 3P 에이전트)가 이미지 데이터로부터 추론된 의도(들)에 등록되었는지 여부를 결정할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 영화 의도를 에이전트 인덱스(124A)에 입력하고 그 영화 의도에 등록된 하나 이상의 에이전트 모듈(128)의 리스트를 출력으로서 수신할 수 있으므로, 영화와 관련된 액션을 수행하는데 사용될 수 있다.
어시스턴트 모듈(122A)은 주어진 컨텍스트, 특정 사용자 및/또는 특정 의도에 대해 추천하기 위해 선호 에이전트 모듈(128)을 예측하기 위한 규칙을 개발할 수 있다. 예를 들어, 컴퓨팅 디바이스(110)의 사용자 및 다른 컴퓨팅 디바이스의 사용자로부터 획득된 과거의 사용자 상호 작용 데이터에 기초하여, 어시스턴트 모듈(122A)은 대부분의 사용자가 특정 의도에 기초하여 액션을 수행하기 위해 특정 에이전트 모듈(128)을 사용하는 것을 선호하지만, 컴퓨팅 디바이스(110)의 사용자는 그 대신 특정 의도에 기초하여 액션을 수행하기 위해 다른 에이전트 모듈(128)을 사용하는 것을 선호할 수 있으므로, 대부분의 다른 사용자가 선호하는 에이전트보다 사용자의 선호 에이전트를 더 높게 순위를 매길 수 있다.
어시스턴트 모듈(122A)은 어시스턴트 모듈(122A) 또는 추천된 에이전트 모듈(128)이 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정할 수 있다(306). 예를 들어, 일부 경우에, 어시스턴트 모듈(122A)은 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 추천 에이전트일 수 있지만, 에이전트 모듈(128) 중 하나는 추천 에이전트일 수 있다. 어시스턴트 모듈(122A)은 하나 이상의 에이전트 모듈(128) 중에서 어시스턴트 모듈(122A)을 순위 매김하고, 최고 순위 에이전트(예를 들어, 어시스턴트 모듈(122A) 또는 에이전트 모듈(128)) 중 하나를 선택하여 카메라(114)로부터 수신된 이미지 데이터로부터의 추론된 의도에 기초하여 액션을 수행할 수 있다. 예를 들어, 어시스턴트 모듈(122A) 및 에이전트 모듈(128aA)은 각각 영화 티켓을 주문하거나, 영화 예고편을 보거나, 영화를 대여하도록 구성된 에이전트일 수 있다. 어시스턴트 모듈(122A)은 어시스턴트 모듈(122A) 및 에이전트 모듈(128aA)과 관련된 품질 스코어를 비교하여, 영화 포스터와 관련된 액션을 수행하기 위해 어떤 것을 추천할 것인지 결정할 수 있다.
어시스턴트 모듈(122A)이 이미지 데이터(306, 어시스턴트)와 관련된 하나 이상의 액션을 수행할 것을 추천하도록 결정하는 것에 응답하여, 어시스턴트 모듈(122A)은 어시스턴트 모듈(122A)이 액션을 수행하게 할 수 있다(308). 예를 들어, 어시스턴트 모듈(122A)은 UI 모듈(120)로 하여금 UTD(112)를 통해, 사용자가 영화 포스터 내의 특정 영화의 상영 또는 포스터 내의 영화의 예고편을 보기 위해 티켓을 구매하기를 원하는지 여부에 대한 사용자 입력을 요청하는 사용자 인터페이스를 출력하게 할 수 있다.
추천 에이전트가 이미지 데이터(306, 에이전트)와 관련된 하나 이상의 액션을 수행할 것을 추천하도록 결정하는 것에 응답하여, 어시스턴트 모듈(122A)은 추천 에이전트의 표시를 출력할 수 있다(310). 예를 들어, 어시스턴트 모듈(122A)은 UI 모듈(120)로 하여금 카메라(114)에 의해 캡처된 이미지 데이터에 적어도 부분적으로 기초하여, 어시스턴트 모듈(122A)이 현재 시간에 사용자가 액션을 수행하는 것을 돕기 위해 에이전트 모듈(128aA)과의 사용자 상호 작용을 추천하고 있음을 나타내는 가청, 시각 및/또는 햅틱 통지를 UTD(112)를 통해 출력하게 할 수 있다. 통지는 어시스턴트 모듈(122A)이 사용자가 영화 또는 포스터의 특정 영화에 관심이 있을 수 있는 이미지 데이터로부터 추론되었다는 표시를 포함할 수 있고, 에이전트 모듈(128aA)이 질문에 답변하고, 예고편을 보여 주거나, 영화 티켓을 주문하는 것을 도울 수 있음을 사용자에게 알릴 수 있다.
일부 예에서, 추천 에이전트는 하나 이상의 추천 에이전트일 수 있다. 이러한 경우, 어시스턴트 모듈(122A)은 통지의 일부로서 사용자가 특정 추천 에이전트를 선택하라는 요청을 출력할 수 있다.
어시스턴트 모듈(122A)은 추천 에이전트를 확인하는 사용자 입력을 수신할 수 있다(312). 예를 들어, 통지를 출력한 후, 사용자는 UID(112)에 터치 입력을 제공하거나 UID(112)에 음성 입력을 제공하여, 사용자가 추천 에이전트를 사용하여 영화 티켓을 주문하기를 원하거나 영화 포스터의 영화 예고편을 보길 원한다는 것을 확인한다.
어시스턴트 모듈(122A)이 그러한 사용자 확인 또는 다른 명시적 동의를 수신하지 않으면, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 임의의 이미지 데이터를 임의의 모듈(128A)에 출력하는 것을 억제할 수 있다. 확실히, 어시스턴트 모듈(122)은 어시스턴트 모듈(122)이 사용자로부터 명시적인 동의를 받지 않는 한, 카메라(114)에 의해 캡처된 이미지 데이터 캡처를 포함하여 사용자 또는 컴퓨팅 디바이스(110)의 임의의 개인 정보를 사용하거나 분석하는 것을 억제할 수 있다. 어시스턴트 모듈(122)은 또한 사용자가 동의를 철회하거나 제거할 기회를 제공할 수 있다.
어떤 경우든, 추천 에이전트를 확인하는 사용자 입력의 수신에 응답하여, 어시스턴트 모듈(122A)은 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 할 수 있다(314). 예를 들어, 어시스턴트 모듈(122A)은 사용자가 카메라(114)에 의해 획득된 이미지 데이터에 대해 액션을 수행하기 위해 추천 에이전트를 사용하기를 원함을 확인하는 정보를 수신하고, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 이미지 데이터를 그 이미지 데이터를 처리하고 임의의 적절한 액션를 취하라는 명령과 함께 추천 에이전트로 전송할 수 있다. 예를 들어, 어시스턴트 모듈(122A)은 카메라(114)에 의해 캡처된 이미지 데이터를 에이전트 모듈(128aA)로 전송하거나 에이전트 모듈(128aA)과 관련된 컴퓨팅 디바이스(110)에서 실행되는 애플리케이션을 시작할 수 있다. 에이전트 모듈(128aA)은 이미지 데이터에 대한 자체 분석을 수행하고, 웹 사이트를 열고, 액션을 트리거하고, 사용자와 대화를 시작하고, 비디오를 보여 주거나, 이미지 데이터를 사용하여 임의의다른 관련 액션을 수행할 수 있다. 예를 들어, 에이전트 모듈(128aA)은 영화 포스터의 이미지 데이터에 대한 자체 이미지 분석을 수행하고, 특정 영화를 결정하고, 사용자가 영화의 예고편을 보길 원하는지 묻는 통지를 UI 모듈(120) 및 UID(112)를 통해 출력할 수 있다.
보다 일반적으로, "추천 에이전트가 액션을 수행하게 하는 것"은 3P 에이전트를 호출하는 어시스턴트 모듈(122A)과 같은 어시스턴트를 포함할 수 있다. 이러한 경우, 태스크 또는 동작을 수행하기 위해, 3P 에이전트는 승인, 지불 정보 입력 등과 같은 추가 사용자 액션을 여전히 요구할 수 있다. 물론, 추천 에이전트가 액션을 수행하게 하는 것은 3P 에이전트가 일부 경우 추가 사용자 액션을 요구하지 않고 액션을 수행하게 할 수도 있다.
일부 예에서, 어시스턴트 모듈(122A)은 추천된 3P 에이전트가 하나 이상의 액션과 관련된 정보를 결정하거나 결과를 생성하거나, 또는 완전히 완료되지 않은 액션을 시작한 다음, 어시스턴트 모듈(122A)이 결과를 사용자와 공유하거나 그 액션을 완료하도록 허용함으로써 추천 에이전트가 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 할 수 있다. 예를 들어, 3P 에이전트는 어시스턴트 모듈(122A)에 의해 시작된 후 피자 주문의 모든 세부 사항(예를 들어, 수량, 유형, 토핑, 주소, 시간, 배달/반송 등)을 수신한 다음 어시스턴트 모듈(122A)이 주문을 완료하도록 어시스턴트 모듈(122A)로 제어를 다시 넘길 수 있다. 예를 들어, 3P 에이전트는 컴퓨팅 디바이스(110)로 하여금 UIC(112)에서 "이제 이 주문을 완료하기 위해 <1P 어시스턴트>로 돌아갑니다"라는 표시를 출력하게 할 수 있다. 이러한 방식으로, 1P 어시스턴트는 주문의 금융 세부 사항을 처리하여 사용자의 신용 카드 등이 공유되지 않도록할 수 있다. 다시 말해서, 본 명세서에 설명된 기술에 따르면, 3P는 액션의 일부를 수행한 다음 동작을 완료하거나 추가하기 위해 1P 어시스턴트로 제어를 다시 넘길 수 있다.
도 4는 본 개시의 하나 이상의 양태에 따른 예시적인 어시스턴트를 실행하도록 구성된 예시적인 컴퓨팅 시스템을 도시하는 블록도이다. 도 4의 디지털 어시스턴트 서버(460)는 도 1의 디지털 어시스턴트 서버(160)의 예로서 아래에서 설명된다. 도 4는 디지털 어시스턴트 서버(460)의 하나의 특정 예만을 도시하고, 디지털 어시스턴트 서버(460)의 많은 다른 예는 다른 경우에 사용될 수 있고, 예를 들어 디지털 어시스턴트 서버(460)에 포함된 컴포넌트의 서브 세트를 포함할 수 있거나 도 4에 도시되지 않은 추가 컴포넌트를 포함할 수 있다.
도 4의 예에 도시된 바와 같이, 디지털 어시스턴트 서버(460)는 하나 이상의 프로세서(440), 하나 이상의 통신 유닛(442) 및 하나 이상의 저장 컴포넌트(448)를 포함한다. 저장 컴포넌트(448)는 어시스턴트 모듈(422), 에이전트 선택 모듈(427), 에이전트 정확도 모듈(431), 검색 모듈(482), 컨텍스트 모듈(430) 및 사용자 에이전트 인덱스(424)를 포함한다.
프로세서(440)는 도 2의 컴퓨팅 시스템(210)의 프로세서(240)와 유사하다. 통신 유닛(442)은 도 2의 컴퓨팅 시스템(210)의 통신 유닛(242)과 유사하다. 저장 디바이스(448)는 도 2의 컴퓨팅 시스템(210)의 저장 디바이스(248)와 유사하다. 통신 채널(450)은 도 2의 컴퓨팅 시스템(210)의 통신 채널(250)과 유사하며, 따라서 컴포넌트 간 통신을 위해 컴포넌트(440, 442 및 448) 각각을 상호 연결할 수 있다. 일부 예에서, 통신 채널들(450)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조, 또는 데이터를 통신하기 위한 임의의 다른 방법을 포함할 수 있다.
디지털 어시스턴트 서버(460)의 검색 모듈(482)은 컴퓨팅 디바이스(210)의 검색 모듈(282)과 유사하며 디지털 어시스턴트 서버(460)를 대신하여 통합 검색 기능을 수행할 수 있다. 즉, 검색 모듈(482)은 어시스턴트 모듈(422)을 대신하여 검색 동작을 수행할 수 있다. 일부 예에서, 검색 모듈(482)은 어시스턴트 모듈(422)을 대신하여 검색 동작을 수행하기 위해 검색 시스템(180)과 같은 외부 검색 시스템과 인터페이스할 수 있다. 호출되는 경우, 검색 모듈(482)은 다양한 로컬 및 원격 정보 소스에 걸쳐 검색 쿼리를 생성하고, 생성된 검색 쿼리에 기초하여 검색을 실행하는 것과 같은 검색 기능을 수행할 수 있다. 검색 모듈(482)은 실행된 검색의 결과를 호출 컴포넌트 또는 모듈에 제공할 수 있다. 즉, 검색 모듈(482)은 검색 결과를 어시스턴트 모듈(422)로 출력할 수 있다.
디지털 어시스턴트 서버(460)의 컨텍스트 모듈(430)은 컴퓨팅 디바이스(210)의 컨텍스트 모듈(230)과 유사하다. 컨텍스트 모듈(430)은 컴퓨팅 디바이스의 컨텍스트를 정의하기 위해 도 1의 컴퓨팅 디바이스(110) 및 도 2의 컴퓨팅 디바이스(210)와 같은 컴퓨팅 디바이스와 관련된 컨텍스트 정보를 수집할 수 있다. 컨텍스트 모듈(430)은 디지털 어시스턴트 서버(160)에 의해 제공되는 서비스를 인터페이스하고 액세스하는 컴퓨팅 디바이스의 컨텍스트를 정의하기 위해 어시스턴트 모듈(422) 및/또는 검색 모듈(482)에 의해 주로 사용될 수 있다. 컨텍스트는 특정 시간에 컴퓨팅 디바이스의 물리적 및/또는 가상 환경 및 컴퓨팅 디바이스의 사용자의 특성을 지정할 수 있다.
에이전트 선택 모듈(427)은 컴퓨팅 디바이스(210)의 에이전트 선택 모듈(227)과 유사하다.
어시스턴트 모듈(422)은 도 2의 컴퓨팅 디바이스(210)의 어시스턴트 모듈(222)뿐만 아니라 도 1의 어시스턴트 모듈(122A) 및 어시스턴트 모듈(122B)의 모든 기능을 포함할 수 있다. 어시스턴트 모듈(422)은 어시스턴트 서버(460)를 통해 액세스 가능한 어시스턴트 서비스를 제공하기 위한 어시스턴트 모듈(122B)과 유사한 동작을 수행할 수 있다. 즉, 어시스턴트 모듈(422)은 네트워크를 통해 디지털 어시스턴트 서버(460)와 통신하는 컴퓨팅 디바이스에 액세스 가능한 원격 지원 서비스에 대한 인터페이스로서 작용할 수 있다. 예를 들어, 어시스턴트 모듈(422)은도 1의 디지털 어시스턴트 서버(160)의 원격 지원 모듈(122B)에 대한 인터페이스 또는 API일 수 있다.
에이전트 인덱스(424)는 도 2의 에이전트 인덱스(224)와 유사하게, 3P 에이전트와 같은 에이전트와 관련된 정보를 저장할 수 있다. 어시스턴트 모듈(422) 및/또는 에이전트 선택 모듈(427)은 어시스턴트 태스크를 수행하거나 에이전트를 선택하여 액션을 수행하거나 이미지 데이터로부터 추론된 태스크를 완료하기 위해, 컨텍스트 모듈(430) 및/또는 검색 모듈(482)에 의해 제공되는 임의의 정보 외에, 에이전트 인덱스(424)에 저장된 정보에 의존할 수 있다.
본 개시의 하나 이상의 기술에 따르면, 에이전트 정확도 모듈(431)은 에이전트에 대한 추가 정보를 수집할 수 있다. 일부 예에서, 에이전트 정확도 모듈(431)은 자동화 에이전트 크롤러(crawler)인 것으로 간주될 수 있다. 예를 들어, 에이전트 정확도 모듈(431)은 각각의 에이전트를 질의하고 그것이 수신하는 정보를 저장할 수 있다. 일 예로서, 에이전트 정확도 모듈(431)은 디폴트 에이전트 진입점(entry point)으로 요청을 송신할 수 있고 그 기능에 관한 에이전트로부터의 설명을 다시 수신할 것이다. 에이전트 정확도 모듈(431)은 이 수신된 정보를 에이전트 인덱스(424)에 저장할 수 있다(즉, 타겟팅을 개선하기 위해).
일부 예에서, 디지털 어시스턴트 서버(460)는 적용 가능한 경우 에이전트들에 대한 재고 정보를 수신할 수 있다. 일 예로서, 온라인 식료품점을 위한 에이전트는 디지털 어시스턴트 서버(460)에 설명, 가격, 수량 등을 포함하여 그들의 제품의 데이터 피드(예를 들어, 구조화된 데이터 피드)를 제공할 수 있다. 에이전트 선택 모듈(예를 들어, 에이전트 선택 모듈(224) 및/또는 에이전트 선택 모듈(424))은 사용자의 발언을 만족시키기 위해 에이전트를 선택하는 것의 일부로서 이 데이터에 액세스할 수 있다. 이러한 기술을 통해 시스템은 "프로세코(prosecco) 한 병 주문"과 같은 쿼리에 더 잘 응답할 수 있다. 이러한 상황에서, 에이전트 선택 모듈은 에이전트가 실시간 재고를 제공하고, 상기 재고가 상기 에이전트가 프로세코를 판매하고 프로세코 재고가 있음을 나타낸 경우 이미지 데이터를 에이전트와 보다 확실하게 일치시킬 수 있다.
일부 예에서, 디지털 어시스턴트 서버(460)는 사용자가 사용하고자 하는 에이전트를 탐색/발견하기 위해 사용자가 브라우징할 수 있는 에이전트 디렉토리를 제공할 수 있다. 디렉토리에는 각 어시스턴트에 대한 설명, 기능 목록(예를 들어, 이 어시스턴트를 사용하여 택시를 부를 수 있습니다", "이 어시스턴트을 사용하여 음식 레시피를 찾을 수 있습니다")이 있을 수 있다. 사용자가 디렉토리에서 사용하고자 하는 에이전트를 찾는 경우, 사용자는 에이전트를 선택할 수 있고 에이전트는 사용자에게 제공될 수 있다. 예를 들어, 어시스턴트 모듈(422)은 에이전트를 에이전트 인덱스(224) 및/또는 에이전트 인덱스(424)에 추가할 수 있다. 이와 같이, 에이전트 선택 모듈(227) 및/또는 에이전트 선택 모듈(427)은 향후 발언을 만족시키기 위해 상기 추가된 에이전트를 선택할 수 있다. 일부 예에서, 하나 이상의 에이전트는 사용자 선택없이 에이전트 인덱스(224) 또는 에이전트 인덱스(424)에 추가될 수 있다. 이러한 예들 중 일부에서, 에이전트 선택 모듈(227) 및/또는 에이전트 선택 모듈(427)은 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위해 사용자에 의해 선택되지 않은 에이전트를 선택 및/또는 제안할 수 있다. 일부 예에서, 에이전트 선택 모듈(227) 및/또는 에이전트 선택 모듈(427)은 사용자에 의해 에이전트가 선택되었는지 여부에 기초하여 에이전트를 더 순위화할 수 있다.
일부 예에서, 에이전트 디렉토리에 열거된 하나 이상의 에이전트는 무료일 수 있다(즉, 무료로 제공됨). 일부 예에서, 에이전트 디렉토리에 나열된 하나 이상의 에이전트는 무료가 아닐 수 있다(즉, 사용자는 에이전트를 사용하기 위해 돈 또는 다른 고려 사항을 지불해야할 수 있다). 일부 예에서, 에이전트 디렉토리는 사용자 리뷰 및 등급을 수집할 수 있다. 수집된 사용자 리뷰 및 등급은 에이전트 품질 스코어를 수정하는데 사용될 수 있다. 일 예로서, 에이전트가 긍정적인 리뷰 및/또는 등급을 수신하는 경우, 에이전트 정확도 모듈(431)은 에이전트 인덱스(224) 또는 에이전트 인덱스(424)에서 에이전트의 인기도 스코어 또는 에이전트 품질 스코어를 증가시킬 수 있다. 다른 예로서, 에이전트가 부정적인 리뷰 및/또는 등급을 수신하는 경우, 에이전트 정확도 모듈(431)은 에이전트 인덱스(224) 또는 에이전트 인덱스(424)에서 에이전트의 인기도 스코어 또는 에이전트 품질 스코어를 감소시킬 수 있다.
컴퓨팅 디바이스의 개선된 동작은 위의 설명에 따라 얻어진다는 것이 이해될 것이다. 예를 들어, 사용자에 의해 제공된 태스크를 실행하기 위해 선호 에이전트를 식별함으로써, 일반화된 검색 및 복잡한 쿼리 재작성이 감소될 수 있다. 이것은 대역폭 및 데이터 전송의 사용을 줄이고, 임시 휘발성 메모리 사용을 줄이며, 배터리 소모를 줄이다. 더욱이, 특정 실시 예에서, 디바이스 성능을 최적화하고 및/또는 셀룰러 데이터 사용량을 최소화하는 것은 에이전트를 순위화하기 위한 가중치가 높은 특징일 수 있으며, 이러한 기준에 기초한 에이전트의 선택은 디바이스 성능 및/또는 감소된 데이터 사용량의 바람직한 직접 개선을 제공한다.
예시(clause) 1. 방법은 컴퓨팅 디바이스에 의해 액세스 가능한 어시스턴트에 의해, 컴퓨팅 디바이스와 통신하는 이미지 센서로부터 이미지 데이터를 수신하는 단계와; 어시스턴트에 의해, 이미지 데이터에 기초하여 컴퓨팅 디바이스에 의해 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하는 단계와; 어시스턴트에 의해, 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하는 단계와; 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 어시스턴트에 의해, 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하게 하는 단계를 포함한다.
예시 2. 예시 1에 있어서, 이미지 데이터와 관련된 하나 이상의 액션를 수행하기 위해 추천 에이전트를 선택하는 단계 이전에: 어시스턴트에 의해, 복수의 에이전트의 각각의 특정 에이전트로부터, 그 특정 에이전트와 관련된 하나 이상의 개별 의도(intent)를 포함하는 등록 요청을 수신하는 단계와; 그리고 어시스턴트에 의해, 복수의 에이전트에서 각각의 특정 에이전트를 그특정 에이전트와 관련된 하나 이상의 개별 의도로 등록하는 단계를 더 포함한다.
예시 3. 예시 2에 있어서, 상기 추천 에이전트를 선택하는 단계는 추천 에이전트가 이미지 데이터로부터 추론된 하나 이상의 의도로 등록되었다는 결정에 응답하여 추천 에이전트를 선택하는 단계를 포함한다.
예시 4. 예시 1 내지 예시 3 중 어느 하나에 있어서, 상기 에이전트를 선택하는 단계는 이미지 데이터로부터 하나 이상의 의도를 추론하는 단계와: 복수의 에이전트로부터, 하나 이상의 의도 중 적어도 하나로 등록된 하나 이상의 에이전트를 식별하는 단계와; 하나 이상의 에이전트 및 하나 이상의 의도 각각과 관련된 정보에 기초하여, 하나 이상의 에이전트의 순위를 결정하는 단계와; 그리고 순위에 적어도 부분적으로 기초하여, 복수의 에이전트로부터, 추천 에이전트를 선택하는 단계를 더 포함한다.
예시 5. 예시 4에 있어서, 상기 하나 이상의 에이전트에서 특정 에이전트와 관련된 정보는 특정 에이전트의 인기도 스코어, 특정 에이전트와 이미지 데이터 사이의 관련성 스코어, 특정 에이전트와 이미지 사이의 유용성 스코어, 특정 에이전트와 관련된 하나 이상의 의도 각각과 관련된 중요도 스코어, 특정 에이전트와 관련된 사용자 만족도 스코어, 및 특정 에이전트와 관련된 사용자 상호 작용 스코어 중 적어도 하나를 포함한다.
예시 6. 예시 4 또는 예시 5에 있어서, 상기 하나 이상의 에이전트의 순위를 결정하는 단계는 어시스턴트에 의해, 기계 학습 시스템으로, 하나 이상의 에이전트 및 하나 이상의 의도 각각과 관련된 정보를 입력하는 단계와; 어시스턴트에 의해, 기계 학습 시스템으로부터, 하나 이상의 에이전트 각각에 대한 개별 스코어를 수신하는 단계와; 그리고 하나 이상의 에이전트 각각에 대한 개별 스코어에 기초하여, 하나 이상의 에이전트의 순위를 결정하는 단계를 포함한다.
예시 7. 예시 6에 있어서, 상기 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 추천할지 여부를 결정하는 단계는, 어시스턴트에 의해, 기계 학습 시스템으로 어시스턴트 및 하나 이상의 의도와 관련된 정보를 입력하는 단계와; 어시스턴트에 의해, 기계 학습 시스템으로부터 어시스턴트에 대한 스코어를 수신하는 단계와; 하나 이상의 에이전트로부터의 최고 순위 에이전트에 대한 개별 스코어가 어시스턴트의 스코어를 초과하는지 여부를 결정하는 단계와; 하나 이상의 에이전트로부터의 최고 순위 에이전트에 대한 개별 스코어가 어시스턴트의 스코어를 초과한다는 결정에 응답하여, 어시스턴트에 의해, 최고 순위 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천하도록 결정하는 단계를 포함한다.
예시 8. 예시 4 내지 예시 7 중 어느 한 예시에 있어서, 상기 하나 이상의 에이전트의 순위를 결정하는 단계는 어시스턴트에 의해, 기계 학습 시스템으로, 컴퓨팅 디바이스와 관련된 컨텍스트 정보를 단계를 더 포함한다.
예시 9. 예시 1 내지 예시 8 중 어느 한 예시에 있어서, 상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는, 어시스턴트에 의해, 추천 에이전트와 관련된 원격 컴퓨팅 시스템으로, 추천 에이전트와 관련된 원격 컴퓨팅 시스템으로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하게 하기 위해 이미지 데이터의 적어도 일부를 출력하는 단계를 포함한다.
예시 10. 예시 1 내지 예시 8 중 어느 한 예시에 있어서, 상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는 어시스턴트에 의해, 추천 에이전트 대신에 이미지 데이터의 적어도 일부와 관련된 사용자 입력에 대한 요청을 출력하는 단계를 포함한다.
예시 11. 예시 1 내지 예시 10 중 어느 한 예시에 있어서, 상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는 어시스턴트에 의해, 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 컴퓨팅 디바이스로부터의 애플리케이션을 시작(lanch)하게 하는 단계를 포함하고, 상기 애플리케이션은 어시스턴트와 상이하다.
예시 12. 예시 1 내지 예시 11 중 어느 한 예시에 있어서, 상기 복수의 에이전트에서 각각의 에이전트는 컴퓨팅 디바이스로부터 액세스 가능한 각각의 제3자 서비스와 관련된 제3자 에이전트이다.
예시 13. 예시 12에 있어서, 상기 복수의 에이전트 각각과 관련된 각각의 제3자 서비스는 어시스턴트에 의해 제공된 서비스와 상이하다.
예시 14. 컴퓨팅 디바이스는 카메라; 출력 디바이스; 입력 디바이스; 적어도 하나의 프로세서; 및 실행될 때, 적어도 하나의 프로세서로 하여금 어시스턴트를 싱행하게 하는 명령들을 저장하는 메모리를 포함하고, 상기 어시스턴트는 카메라로부터 이미지 데이터를 수신하고; 이미지 데이터에 기초하여 컴퓨팅 디바이스에 의해 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하고; 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하고; 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 구성된다.
예시 15. 예시 14에 있어서, 상기 어시스턴트는 이미지 데이터와 관련된 하나 이상의 액션를 수행하기 위해 추천 에이전트를 선택하기 전에: 복수의 에이전트의 각각의 특정 에이전트로부터, 그 특정 에이전트와 관련된 하나 이상의 개별 의도를 포함하는 등록 요청을 수신하고; 그리고 복수의 에이전트에서 각각의 특정 에이전트를 그 특정 에이전트와 관련된 하나 이상의 개별 의도로 등록하도록 더 구성된다.
예시 16. 예시 14 또는 예시 15에 있어서, 상기 어시스턴트는 추천 에이전트가 이미지 데이터로부터 추론된 하나 이상의 의도로 등록되었다는 결정에 응답하여 추천 에이전트를 선택하도록 더 구성된다.
예시 17. 예시 14 내지 예시 16 중 어느 하나에 있어서, 상기 어시스턴트는 적어도 이미지 데이터로부터 하나 이상의 의도를 추론하고: 복수의 에이전트로부터, 하나 이상의 의도 중 적어도 하나로 등록된 하나 이상의 에이전트를 식별하고; 하나 이상의 에이전트 및 하나 이상의 의도 각각과 관련된 정보에 기초하여, 하나 이상의 에이전트의 순위를 결정하고; 순위에 적어도 부분적으로 기초하여, 복수의 에이전트로부터, 추천 에이전트를 선택함으로써 추천 에이전트를 선택하도록 더 구성된다.
예시 18. 예시 17에 있어서, 상기 하나 이상의 에이전트에서 특정 에이전트와 관련된 정보는 특정 에이전트의 인기도 스코어, 특정 에이전트와 이미지 데이터 사이의 관련성 스코어, 특정 에이전트와 이미지 사이의 유용성 스코어, 특정 에이전트와 관련된 하나 이상의 의도 각각과 관련된 중요도 스코어, 특정 에이전트와 관련된 사용자 만족도 스코어, 및 특정 에이전트와 관련된 사용자 상호 작용 스코어 중 적어도 하나를 포함한다.
예시 19. 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때 어시스턴트를 제공하는 명령들을 포함하는 컴퓨터 판독 가능 저장 매체로서, 상기 어시스턴트는 이미지 데이터를 수신하고; 이미지 데이터에 기초하여 컴퓨팅 디바이스로부터 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하고; 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하고; 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하게 하도록 구성된다.
예시 20. 예시 19에 있어서, 상기 어시스턴트는 이미지 데이터와 관련된 하나 이상의 액션를 수행하기 위해 추천 에이전트를 선택하기 전에: 복수의 에이전트의 각각의 특정 에이전트로부터, 그 특정 에이전트와 관련된 하나 이상의 개별 의도를 포함하는 등록 요청을 수신하고; 그리고 복수의 에이전트에서 각각의 특정 에이전트를 그 특정 에이전트와 관련된 하나 이상의 개별 의도로 등록하도록 더 구성된다.
예시 21. 시스템은 예시 1 내지 예시 13의 방법 중 어느 하나를 수행하기 위한 수단을 포함한다.
하나 이상의 예에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령 또는 코드로서 컴퓨터 판독 가능 매체상에 저장되거나 컴퓨터 판독 가능 매체를 통해 전송되고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체 또는 예를 들어, 통신 프로토콜에 따라 컴퓨터 프로그램의 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체 또는 매체들을 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비-일시적인 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에서 설명된 기술의 구현을 위한 명령, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 소토리지, 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 저장 매체를 포함할 수 있지만, 이에 제한되지는 않는다. 또한, 임의의 연결은 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 명령들은 동축 케이블, 광섬유 케이블, 트위스트 페어(twisted pair), DSL(Digital Subscriber Line) 또는 적외선, 라디오 및 전자 레인지와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 기타 원격 소스로부터 전송되는 경우, 그 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오 및 마이크로 웨이브와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체(medium) 및 매체(media) 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적 매체를 포함하지 않지만, 비-일시적인 유형의 저장 매체를 지시한다는 것을 이해해야한다. 본 명세서에서 사용되는 디스크(disk 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크, 광 디스크, 디지털 다목적 디스크(DVD), 플로피 디스크(disk) 및 블루 레이 디스크를 포함하며, 여기서 디스크(disk)는 일반적으로 자기적으로 데이터를 재생하는 반면, 디스크(disc)는 레이저로 광학적으로 데이터를 재생한다. 상기 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
명령들는 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 로직 어레이(FPGA), 또는 기타 등가의 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 중 어느 하나 또는 본 명세서에 설명된 기술의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양태에서, 본 명세서에 설명된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 기술들은 하나 이상의 회로 또는 논리 요소로 완전히 구현될 수 있다.
본 개시의 기술들은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩 세트)를 포함하여 다양한 디바이스 또는 장치로 구현될 수 있다. 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 측면을 강조하기 위해 다양한 컴포넌트, 모듈 또는 유닛이 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛에 의한 실현을 요구하지는 않는다. 오히려, 전술한 바와 같이, 다양한 유닛이 하드웨어 유닛으로 조합되거나 적절한 소프트웨어 및/또는 펌웨어와 함께 전술한 바와 같이 하나 이상의 프로세서를 포함하는 상호 운용 가능한 하드웨어 유닛의 컬렉션에 의해 제공될 수 있다.
다양한 실시예들이 설명되었다. 이들 및 다른 실시 양태는 하기 청구 범위의 범주 내에 있다.

Claims (15)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해 액세스 가능한 어시스턴트에 의해, 컴퓨팅 디바이스와 통신하는 이미지 센서로부터 이미지 데이터를 수신하는 단계;
    어시스턴트에 의해, 이미지 데이터에 기초하여 컴퓨팅 디바이스에 의해 액세스 가능한 복수의 에이전트로부터, 이미지 데이터와 관련된 하나 이상의 액션을 수행하기 위해 추천 에이전트를 선택하는 단계;
    어시스턴트에 의해, 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천할지 여부를 결정하는 단계;
    추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천한다는 결정에 응답하여, 어시스턴트에 의해, 추천 에이전트로 하여금 적어도 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    이미지 데이터와 관련된 하나 이상의 액션를 수행하기 위해 추천 에이전트를 선택하는 단계 이전에:
    어시스턴트에 의해, 복수의 에이전트의 각각의 특정 에이전트로부터, 그 특정 에이전트와 관련된 하나 이상의 개별 의도(intent)를 포함하는 등록 요청을 수신하는 단계; 및
    어시스턴트에 의해, 복수의 에이전트에서 각각의 특정 에이전트를 그특정 에이전트와 관련된 하나 이상의 개별 의도로 등록하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 추천 에이전트를 선택하는 단계는,
    상기 추천 에이전트가 이미지 데이터로부터 추론된 하나 이상의 의도로 등록되었다는 결정에 응답하여 추천 에이전트를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 에이전트를 선택하는 단계는,
    이미지 데이터로부터 하나 이상의 의도를 추론하는 단계:
    복수의 에이전트로부터, 하나 이상의 의도 중 적어도 하나로 등록된 하나 이상의 에이전트를 식별하는 단계;
    하나 이상의 에이전트 및 하나 이상의 의도 각각과 관련된 정보에 기초하여, 하나 이상의 에이전트의 순위를 결정하는 단계; 및
    순위에 적어도 부분적으로 기초하여, 복수의 에이전트로부터, 추천 에이전트를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 에이전트에서 특정 에이전트와 관련된 정보는,
    특정 에이전트의 인기도 스코어,
    특정 에이전트와 이미지 데이터 사이의 관련성 스코어,
    특정 에이전트와 이미지 사이의 유용성 스코어,
    특정 에이전트와 관련된 하나 이상의 의도 각각과 관련된 중요도 스코어,
    특정 에이전트와 관련된 사용자 만족도 스코어, 및
    특정 에이전트와 관련된 사용자 상호 작용 스코어 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 하나 이상의 에이전트의 순위를 결정하는 단계는,
    어시스턴트에 의해, 기계 학습 시스템으로, 하나 이상의 에이전트 및 하나 이상의 의도 각각과 관련된 정보를 입력하는 단계;
    어시스턴트에 의해, 기계 학습 시스템으로부터, 하나 이상의 에이전트 각각에 대한 개별 스코어를 수신하는 단계; 및
    하나 이상의 에이전트 각각에 대한 개별 스코어에 기초하여, 하나 이상의 에이전트의 순위를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 어시스턴트 또는 추천 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 추천할지 여부를 결정하는 단계는,
    어시스턴트에 의해, 기계 학습 시스템으로 어시스턴트 및 하나 이상의 의도와 관련된 정보를 입력하는 단계;
    어시스턴트에 의해, 기계 학습 시스템으로부터 어시스턴트에 대한 스코어를 수신하는 단계;
    하나 이상의 에이전트로부터의 최고 순위 에이전트에 대한 개별 스코어가 어시스턴트의 스코어를 초과하는지 여부를 결정하는 단계;
    하나 이상의 에이전트로부터의 최고 순위 에이전트에 대한 개별 스코어가 어시스턴트의 스코어를 초과한다는 결정에 응답하여, 어시스턴트에 의해, 최고 순위 에이전트가 이미지 데이터와 관련된 하나 이상의 액션을 수행할 것을 추천하도록 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제4항에 있어서,
    상기 하나 이상의 에이전트의 순위를 결정하는 단계는,
    어시스턴트에 의해, 기계 학습 시스템으로, 컴퓨팅 디바이스와 관련된 컨텍스트 정보를 입력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는,
    어시스턴트에 의해, 추천 에이전트와 관련된 원격 컴퓨팅 시스템으로, 추천 에이전트와 관련된 원격 컴퓨팅 시스템으로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하게 하기 위해 이미지 데이터의 적어도 일부를 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는,
    어시스턴트에 의해, 추천 에이전트 대신에 이미지 데이터의 적어도 일부와 관련된 사용자 입력에 대한 요청을 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션의 수행을 개시하게 하는 단계는,
    어시스턴트에 의해, 추천 에이전트로 하여금 이미지 데이터와 관련된 하나 이상의 액션을 수행하도록 컴퓨팅 디바이스로부터의 애플리케이션을 시작(lanch)하게 하는 단계를 포함하고, 상기 애플리케이션은 어시스턴트와 상이한 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 복수의 에이전트에서 각각의 에이전트는,
    컴퓨팅 디바이스로부터 액세스 가능한 각각의 제3자 서비스와 관련된 제3자 에이전트인 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    상기 복수의 에이전트 각각과 관련된 각각의 제3자 서비스는 어시스턴트에 의해 제공된 서비스와 상이한 것을 특징으로 하는 방법.
  14. 컴퓨팅 디바이스로서,
    카메라;
    출력 디바이스;
    입력 디바이스;
    적어도 하나의 프로세서; 및
    실행될 때, 적어도 하나의 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항의 방법을 실행하게 하는 명령들을 저장하는 메모리를 포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
  15. 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 제1항 내지 제13항 중 어느 한 항의 방법을 수행하는 명령들을 포함하는 컴퓨터 판독 가능 저장 매체.
KR1020197036460A 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정 KR102436293B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227028365A KR102535791B1 (ko) 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762507606P 2017-05-17 2017-05-17
US62/507,606 2017-05-17
US15/603,092 2017-05-23
US15/603,092 US20180336045A1 (en) 2017-05-17 2017-05-23 Determining agents for performing actions based at least in part on image data
PCT/US2018/033021 WO2018213485A1 (en) 2017-05-17 2018-05-16 Determining agents for performing actions based at least in part on image data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227028365A Division KR102535791B1 (ko) 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정

Publications (2)

Publication Number Publication Date
KR20200006103A KR20200006103A (ko) 2020-01-17
KR102436293B1 true KR102436293B1 (ko) 2022-08-25

Family

ID=64271677

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197036460A KR102436293B1 (ko) 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정
KR1020227028365A KR102535791B1 (ko) 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227028365A KR102535791B1 (ko) 2017-05-17 2018-05-16 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정

Country Status (6)

Country Link
US (1) US20180336045A1 (ko)
EP (1) EP3613214A1 (ko)
JP (1) JP7121052B2 (ko)
KR (2) KR102436293B1 (ko)
CN (2) CN114756122A (ko)
WO (1) WO2018213485A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366291B2 (en) 2017-09-09 2019-07-30 Google Llc Systems, methods, and apparatus for providing image shortcuts for an assistant application
US20210295836A1 (en) * 2018-07-31 2021-09-23 Sony Corporation Information processing apparatus, information processing method, and program
US11200811B2 (en) * 2018-08-03 2021-12-14 International Business Machines Corporation Intelligent recommendation of guidance instructions
JP7280066B2 (ja) * 2019-03-07 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
JP7288781B2 (ja) * 2019-03-27 2023-06-08 本田技研工業株式会社 情報提供装置、情報提供方法、およびプログラム
US10629191B1 (en) * 2019-06-16 2020-04-21 Linc Global, Inc. Methods and systems for deploying and managing scalable multi-service virtual assistant platform
CN110503954B (zh) * 2019-08-29 2021-12-21 百度在线网络技术(北京)有限公司 语音技能启动方法、装置、设备及存储介质
US11803887B2 (en) * 2019-10-02 2023-10-31 Microsoft Technology Licensing, Llc Agent selection using real environment interaction
CN111756850B (zh) * 2020-06-29 2022-01-18 金电联行(北京)信息技术有限公司 一种服务于互联网数据采集的代理ip请求频率自动调整方法及系统
US11928572B2 (en) * 2021-03-31 2024-03-12 aixplain, Inc. Machine learning model generator
US11782569B2 (en) * 2021-07-26 2023-10-10 Google Llc Contextual triggering of assistive functions
WO2023113877A1 (en) * 2021-12-13 2023-06-22 Google Llc Selecting between multiple automated assistants based on invocation properties
CN114489890A (zh) * 2022-01-11 2022-05-13 广州繁星互娱信息科技有限公司 分屏显示方法和装置、存储介质及电子装置
WO2024060003A1 (en) * 2022-09-20 2024-03-28 Citrix Systems, Inc. Computing device and methods providing input sequence translation for virtual computing sessions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110098029A1 (en) 2009-10-28 2011-04-28 Rhoads Geoffrey B Sensor-based mobile search, related methods and systems
US20110128288A1 (en) 2009-12-02 2011-06-02 David Petrou Region of Interest Selector for Visual Queries
US20130046571A1 (en) 2011-08-18 2013-02-21 Teletech Holdings, Inc. Method for proactively predicting subject matter and skill set needed of support services
US20130311339A1 (en) 2012-05-17 2013-11-21 Leo Jeremias Chat enabled online marketplace systems and methods
US20150209616A1 (en) 2013-08-29 2015-07-30 Google Inc. Recommended modes of transportation for achieving fitness goals
US20170032138A1 (en) 2015-07-27 2017-02-02 Microsoft Technology Licensing, Llc Automated data transfer from mobile application silos to authorized third-party applications

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736524B2 (en) * 2011-01-06 2017-08-15 Veveo, Inc. Methods of and systems for content search based on environment sampling
CN103718564B (zh) 2011-08-05 2018-01-09 索尼公司 接收装置、接收方法以及信息处理系统
US9036069B2 (en) * 2012-02-06 2015-05-19 Qualcomm Incorporated Method and apparatus for unattended image capture
CA2908095A1 (en) 2013-04-23 2014-10-30 Quixey, Inc. Entity bidding
US20150032535A1 (en) * 2013-07-25 2015-01-29 Yahoo! Inc. System and method for content based social recommendations and monetization thereof
EP3063646A4 (en) * 2013-12-16 2017-06-21 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9720934B1 (en) * 2014-03-13 2017-08-01 A9.Com, Inc. Object recognition of feature-sparse or texture-limited subject matter
US20150310377A1 (en) * 2014-04-24 2015-10-29 Videodesk Sa Methods, devices and systems for providing online customer service
US10518409B2 (en) * 2014-09-02 2019-12-31 Mark Oleynik Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
US20160077892A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Automatic Sensor Selection Based On Requested Sensor Characteristics
US20160117202A1 (en) * 2014-10-28 2016-04-28 Kamal Zamer Prioritizing software applications to manage alerts
CN105068661B (zh) * 2015-09-07 2018-09-07 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法和系统
US20180191797A1 (en) * 2016-12-30 2018-07-05 Facebook, Inc. Dynamically generating customized media effects
US10783188B2 (en) * 2017-02-17 2020-09-22 Salesforce.Com, Inc. Intelligent embedded self-help service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110098029A1 (en) 2009-10-28 2011-04-28 Rhoads Geoffrey B Sensor-based mobile search, related methods and systems
US20110128288A1 (en) 2009-12-02 2011-06-02 David Petrou Region of Interest Selector for Visual Queries
US20130046571A1 (en) 2011-08-18 2013-02-21 Teletech Holdings, Inc. Method for proactively predicting subject matter and skill set needed of support services
US20130311339A1 (en) 2012-05-17 2013-11-21 Leo Jeremias Chat enabled online marketplace systems and methods
US20150209616A1 (en) 2013-08-29 2015-07-30 Google Inc. Recommended modes of transportation for achieving fitness goals
US20170032138A1 (en) 2015-07-27 2017-02-02 Microsoft Technology Licensing, Llc Automated data transfer from mobile application silos to authorized third-party applications

Also Published As

Publication number Publication date
KR102535791B1 (ko) 2023-05-26
WO2018213485A1 (en) 2018-11-22
CN114756122A (zh) 2022-07-15
JP2020521376A (ja) 2020-07-16
CN110637464A (zh) 2019-12-31
KR20220121898A (ko) 2022-09-01
CN110637464B (zh) 2022-04-12
JP7121052B2 (ja) 2022-08-17
EP3613214A1 (en) 2020-02-26
KR20200006103A (ko) 2020-01-17
US20180336045A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
KR102436293B1 (ko) 이미지 데이터에 적어도 부분적으로 기초하여 액션을 수행하기 위한 에이전트 결정
JP7108122B2 (ja) コンピュータによるエージェントのための合成音声の選択
US10854188B2 (en) Synthesized voice selection for computational agents
US10853747B2 (en) Selection of computational agent for task performance
US11166087B2 (en) Cross-device handoffs
KR102293281B1 (ko) 가상 어시스턴트의 개인화
US20240037414A1 (en) Proactive virtual assistant
US20220100540A1 (en) Smart setup of assistant services
US11663535B2 (en) Multi computational agent performance of tasks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant