KR20150095624A - System and methods for virtual agent recommendation for multiple persons - Google Patents

System and methods for virtual agent recommendation for multiple persons Download PDF

Info

Publication number
KR20150095624A
KR20150095624A KR1020157011902A KR20157011902A KR20150095624A KR 20150095624 A KR20150095624 A KR 20150095624A KR 1020157011902 A KR1020157011902 A KR 1020157011902A KR 20157011902 A KR20157011902 A KR 20157011902A KR 20150095624 A KR20150095624 A KR 20150095624A
Authority
KR
South Korea
Prior art keywords
virtual agent
user
information
virtual
individual
Prior art date
Application number
KR1020157011902A
Other languages
Korean (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
Priority claimed from US13/710,721 external-priority
Priority claimed from US13/710,678 external-priority patent/US9659298B2/en
Priority claimed from US13/710,897 external-priority patent/US20140164532A1/en
Priority claimed from US13/711,069 external-priority patent/US9148394B2/en
Priority claimed from US13/710,649 external-priority patent/US9276802B2/en
Priority claimed from US13/710,971 external-priority patent/US20140164953A1/en
Priority claimed from US13/711,036 external-priority patent/US9679300B2/en
Priority claimed from US13/710,721 external-priority patent/US9560089B2/en
Priority claimed from US13/710,701 external-priority patent/US9262175B2/en
Application filed by 뉘앙스 커뮤니케이션즈, 인코포레이티드 filed Critical 뉘앙스 커뮤니케이션즈, 인코포레이티드
Publication of KR20150095624A publication Critical patent/KR20150095624A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation, e.g. computer aided management of electronic mail or groupware; Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Abstract

적어도 하나의 가상 에이전트를 구현하기 위한 시스템, 방법 및 장치. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는, 제1 개인에 관한 제1 정보를 분석하고; 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하고; 그리고 제1 및 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하도록 프로그래밍되되, 복수의 개인은 제1 개인 및 제2 개인을 포함한다.A system, method and apparatus for implementing at least one virtual agent. In some embodiments, the at least one virtual agent is configured to: analyze first information about a first person; Analyzing second information about a second individual that is different from the first individual; And a joint recommendation for a plurality of individuals based at least in part on the first and second information, wherein the plurality of individuals includes a first person and a second person.

Description

다수의 개인을 위한 가상 에이전트 추천 시스템 및 방법{SYSTEM AND METHODS FOR VIRTUAL AGENT RECOMMENDATION FOR MULTIPLE PERSONS}TECHNICAL FIELD [0001] The present invention relates to a virtual agent recommendation system and a virtual agent recommendation system for a plurality of individuals.

스마트폰 및 태블릿 컴퓨터와 같은 일부 전자 디바이스는 가상 에이전트라고 알려져 있는 애플리케이션을 포함한다. 예컨대, 가상 에이전트 Siri(등록상표)는 Apple Computers, Inc.로부터 일부 디바이스 상에서 이용가능하고, (BulletProof Corp.로부터 이용가능한) 가상 에이전트 EVA는 Google, Inc.에 의해 개발된 Android(상표명) 모바일 운영 체제를 실행 중인 디바이스 상에 설치될 수 있다.Some electronic devices, such as smart phones and tablet computers, include applications known as virtual agents. For example, the virtual agent Siri (TM) is available on some devices from Apple Computers, Inc., and the virtual agent EVA (available from BulletProof Corp.) is an Android (TM) mobile operating system May be installed on the running device.

일부 가상 에이전트는 다양한 태스크를 수행함에 있어서 사용자에게 도움을 주도록 프로그래밍된다. 예컨대, 가상 에이전트는 전자 메시지를 보내고, 약속을 잡고, 전화를 걸고, 길 안내를 하도록 프로그래밍될 수 있다. 그러한 태스크를 완성함에 있어서, 가상 에이전트는 다른 애플리케이션(예컨대, 이메일 클라이언트)과 대화할 수 있고 로컬로(예컨대, 사용자의 전자 주소록으로부터) 또는 하나 이상의 네트워크를 통하여(예컨대, 월드 와이드 웹 또는 웹으로부터) 정보를 검색할 수 있다.Some virtual agents are programmed to assist the user in performing various tasks. For example, the virtual agent can be programmed to send an electronic message, hold an appointment, make a call, and guide the route. In completing such tasks, the virtual agent may interact with other applications (e.g., an email client) and communicate locally (e.g., from a user's electronic address book) or via one or more networks (e.g., Information can be retrieved.

다수의 개인을 위한 가상 에이전트 추천 시스템, 방법 및 장치가 제공된다.A virtual agent recommendation system, method and apparatus for a plurality of individuals is provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 가상 에이전트는, 제1 개인에 관한 제1 정보를 분석하고; 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하고; 그리고 제1 및 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하도록 프로그래밍되되, 복수의 개인은 제1 개인 및 제2 개인을 포함한다.In some embodiments, an apparatus is provided that includes at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one virtual agent comprises first information about the first person Analyze; Analyzing second information about a second individual that is different from the first individual; And a joint recommendation for a plurality of individuals based at least in part on the first and second information, wherein the plurality of individuals includes a first person and a second person.

일부 실시예에 있어서, 제1 정보는 제1 개인의 적어도 하나의 선호를 포함한다. 일부 실시예에 있어서, 제1 정보는 제1 개인에 의해 부과된 적어도 하나의 제한을 포함한다. 일부 실시예에 있어서, 제1 정보는 제1 개인의 하나 이상의 과거 활동에 관한 이력 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는, 제1 개인을 선순위 개인으로서 식별하고; 그리고 추천을 함에 있어서, 제2 개인에 관한 제2 정보보다 제1 개인에 관한 제1 정보에 우선권을 주도록 더 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는, 적어도 하나의 가상 에이전트를 인보크(invoke)한 개인을 식별하고; 그리고 추천을 함에 있어서, 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 개인에 관한 정보에 우선권을 주도록 더 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 추천으로서, 선택하도록 프로그래밍되고, 제1 정보는 제1 개인의 투표를 포함하고 제2 정보는 제2 개인의 투표를 포함한다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 제1 개인과 연관된 제1 가상 에이전트 및 제2 개인과 연관된 제2 가상 에이전트를 포함하고, 제1 및 제2 가상 에이전트는 추천을 함에 있어서 서로 교섭하도록 프로그래밍된다.In some embodiments, the first information includes at least one preference of the first individual. In some embodiments, the first information comprises at least one restriction imposed by the first individual. In some embodiments, the first information includes history information about one or more past activities of the first person. In some embodiments, the at least one virtual agent identifies the first individual as a senior person; And is further programmed to give preference to the first information about the first individual relative to the second information about the second individual. In some embodiments, the at least one virtual agent identifies an individual that has invoked at least one virtual agent; And in making the recommendations, it is further programmed to give preference to the information about the individual identified as having invoked at least one virtual agent. In some embodiments, the at least one virtual agent is programmed to select a candidate receiving the highest number of votes from a plurality of individuals as a recommendation from a plurality of candidates, wherein the first information includes a vote of the first person The second information includes a second person's vote. In some embodiments, the at least one virtual agent includes a first virtual agent associated with a first person and a second virtual agent associated with a second person, wherein the first and second virtual agents are configured to negotiate Programmed.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 제1 개인에 관한 제1 정보를 분석하는 단계; 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하는 단계; 및 제1 및 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하는 단계를 포함하되, 복수의 개인은 제1 개인 및 제2 개인을 포함한다.In some additional embodiments, a method is performed by at least one processor implementing at least one virtual agent, the method comprising: analyzing first information about a first individual; Analyzing second information about a second individual that is different from the first individual; And making a joint recommendation for a plurality of individuals based at least in part on the first and second information, wherein the plurality of individuals include the first person and the second person.

일부 실시예에 있어서, 제1 정보는 제1 개인의 적어도 하나의 선호를 포함한다. 일부 실시예에 있어서, 제1 정보는 제1 개인에 의해 부과된 적어도 하나의 제한을 포함한다. 일부 실시예에 있어서, 제1 정보는 제1 개인의 하나 이상의 과거 활동에 관한 이력 정보를 포함한다. 일부 실시예에 있어서, 방법은, 제1 개인을 선순위 개인으로서 식별하는 단계; 및 추천을 함에 있어서, 제2 개인에 관한 제2 정보보다 제1 개인에 관한 제1 정보에 우선권을 주는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 적어도 하나의 가상 에이전트를 인보크한 개인을 식별하는 단계; 및 추천을 함에 있어서, 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 개인에 관한 정보에 우선권을 주는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 추천으로서, 선택하는 단계를 더 포함하되, 제1 정보는 제1 개인의 투표를 포함하고 제2 정보는 제2 개인의 투표를 포함한다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 제1 개인과 연관된 제1 가상 에이전트 및 제2 개인과 연관된 제2 가상 에이전트를 포함하고, 제1 및 제2 가상 에이전트는 추천을 함에 있어서 서로 교섭하도록 프로그래밍된다.In some embodiments, the first information includes at least one preference of the first individual. In some embodiments, the first information comprises at least one restriction imposed by the first individual. In some embodiments, the first information includes history information about one or more past activities of the first person. In some embodiments, the method further comprises: identifying a first person as a senior person; And prioritizing the first information about the first individual relative to the second information about the second individual in making the recommendation. In some embodiments, the method further comprises: identifying an individual who invoked at least one virtual agent; And prioritizing information about an individual identified as having invoked at least one virtual agent in making recommendations. In some embodiments, the method further comprises selecting a candidate receiving the highest number of votes from a plurality of individuals as a recommendation from a plurality of candidates, wherein the first information includes a vote of the first person The second information includes a second person's vote. In some embodiments, the at least one virtual agent includes a first virtual agent associated with a first person and a second virtual agent associated with a second person, wherein the first and second virtual agents are configured to negotiate Programmed.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 제1 개인에 관한 제1 정보를 분석하는 단계; 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하는 단계; 및 제1 및 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하는 단계를 포함하되, 복수의 개인은 제1 개인 및 제2 개인을 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for implementing at least one virtual agent, when executed by at least one processor, the method comprising: Analyzing first information about an individual; Analyzing second information about a second individual that is different from the first individual; And making a joint recommendation for a plurality of individuals based at least in part on the first and second information, wherein the plurality of individuals include the first person and the second person.

일부 실시예에 있어서, 방법은, 제1 개인을 선순위 개인으로서 식별하는 단계; 및 추천을 함에 있어서, 제2 개인에 관한 제2 정보보다 제1 개인에 관한 제1 정보에 우선권을 주는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 적어도 하나의 가상 에이전트를 인보크한 개인을 식별하는 단계; 및 추천을 함에 있어서, 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 개인에 관한 정보에 우선권을 주는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 추천으로서, 선택하는 단계를 더 포함하되, 제1 정보는 제1 개인의 투표를 포함하고 제2 정보는 제2 개인의 투표를 포함한다.In some embodiments, the method further comprises: identifying a first person as a senior person; And prioritizing the first information about the first individual relative to the second information about the second individual in making the recommendation. In some embodiments, the method further comprises: identifying an individual who invoked at least one virtual agent; And prioritizing information about an individual identified as having invoked at least one virtual agent in making recommendations. In some embodiments, the method further comprises selecting a candidate receiving the highest number of votes from a plurality of individuals as a recommendation from a plurality of candidates, wherein the first information includes a vote of the first person The second information includes a second person's vote.

다자간 담화에의 가상 에이전트 참가를 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for participating in a virtual agent in a multilateral discourse is provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 가상 에이전트는, 다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하고; 다자간 담화 동안, 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하고; 그리고 제1 및 제2 입력을 사용하여 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하도록 프로그래밍된다.In some embodiments, there is provided an apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one virtual agent comprises: Analyzing the first input; Analyzing a second input provided by a second user different from the first user during the multilateral discourse; And to formulate at least one task to be performed by the virtual agent using the first and second inputs.

일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 제1 및 제2 입력에 적어도 일부 기반하여 공식화된 적어도 하나의 태스크를 수행하도록 더 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 적어도 하나의 태스크를 수행하는 결과를 다자간 담화에 참가하는 적어도 하나의 제3 사용자에게 제공하도록 더 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 프로세서는, 다자간 담화가 진행중인 동안 다자간 담화를 모니터링하고; 그리고 다자간 담화 내 트리거를 검출하는 것에 응답하여, 적어도 하나의 가상 에이전트를 다자간 담화에 주입하도록 더 프로그래밍된다. 일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 표현을 포함한다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 제1 입력을 제1 사용자로부터인 것으로 그리고 제2 입력을 제2 사용자로부터인 것으로 식별하기 위해 다자간 담화의 적어도 일부를 분석하도록 더 프로그래밍된다.In some embodiments, the at least one virtual agent is further programmed to perform at least one task formulated based at least in part on the first and second inputs. In some embodiments, the at least one virtual agent is further programmed to provide the result of performing at least one task to at least one third user participating in a multilayered discourse. In some embodiments, the at least one processor is configured to: monitor a multilayered discourse while the multilayer discourse is in progress; And is further programmed to inject at least one virtual agent into the multilayer discourse in response to detecting a trigger in the multilayer discourse. In some embodiments, the trigger includes a representation that is designated to invoke at least one virtual agent. In some embodiments, the at least one virtual agent is further programmed to analyze at least a portion of the multilayered discourse to identify a first input from a first user and a second input from a second user.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하는 단계; 다자간 담화 동안, 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하는 단계; 및 제1 및 제2 입력을 사용하여 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor in association with at least one virtual agent, the method comprising: analyzing a first input provided by a first user during a multilayered conversation; Analyzing a second input provided by a second user different from the first user during the multi-party discourse; And formulating at least one task to be performed by the virtual agent using the first and second inputs.

일부 실시예에 있어서, 방법은 제1 및 제2 입력에 적어도 일부 기반하여 공식화된 적어도 하나의 태스크를 수행하는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은 적어도 하나의 태스크를 수행하는 결과를 다자간 담화에 참가하는 적어도 하나의 제3 사용자에게 제공하는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 다자간 담화가 진행중인 동안 다자간 담화를 모니터링하는 단계; 및 다자간 담화 내 트리거를 검출하는 것에 응답하여, 적어도 하나의 가상 에이전트를 다자간 담화에 주입하는 단계를 더 포함한다. 일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 표현을 포함한다. 일부 실시예에 있어서, 방법은 제1 입력을 제1 사용자로부터인 것으로 그리고 제2 입력을 제2 사용자로부터인 것으로 식별하기 위해 다자간 담화의 적어도 일부를 분석하는 단계를 더 포함한다.In some embodiments, the method further comprises performing at least one task formulated based at least in part on the first and second inputs. In some embodiments, the method further comprises providing the result of performing at least one task to at least one third user participating in the multilateral discourse. In some embodiments, the method further comprises monitoring multi-party discourse while the multi-party discourse is in progress; And injecting at least one virtual agent into the multilayer discourse in response to detecting a trigger in the multilayer discourse. In some embodiments, the trigger includes a representation that is designated to invoke at least one virtual agent. In some embodiments, the method further comprises analyzing at least a portion of the multilayered discourse to identify the first input as being from the first user and the second input as being from the second user.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하는 단계; 다자간 담화 동안, 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하는 단계; 및 제1 및 제2 입력을 사용하여 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하는 단계를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for use in association with at least one virtual agent, when executed by at least one processor, the method comprising: Analyzing a first input provided by a first user during the multilateral conversation; Analyzing a second input provided by a second user different from the first user during the multi-party discourse; And formulating at least one task to be performed by the virtual agent using the first and second inputs.

일부 실시예에 있어서, 방법은 제1 및 제2 입력에 적어도 일부 기반하여 공식화된 적어도 하나의 태스크를 수행하는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은 적어도 하나의 태스크를 수행하는 결과를 다자간 담화에 참가하는 적어도 하나의 제3 사용자에게 제공하는 단계를 더 포함한다. 일부 실시예에 있어서, 방법은, 다자간 담화가 진행중인 동안 다자간 담화를 모니터링하는 단계; 및 다자간 담화 내 트리거를 검출하는 것에 응답하여, 적어도 하나의 가상 에이전트를 다자간 담화에 주입하는 단계를 더 포함한다. 일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 표현을 포함한다. 일부 실시예에 있어서, 방법은, 제1 입력을 제1 사용자로부터인 것으로 그리고 제2 입력을 제2 사용자로부터인 것으로 식별하기 위해 다자간 담화의 적어도 일부를 분석하는 단계를 더 포함한다.In some embodiments, the method further comprises performing at least one task formulated based at least in part on the first and second inputs. In some embodiments, the method further comprises providing the result of performing at least one task to at least one third user participating in the multilateral discourse. In some embodiments, the method further comprises monitoring multi-party discourse while the multi-party discourse is in progress; And injecting at least one virtual agent into the multilayer discourse in response to detecting a trigger in the multilayer discourse. In some embodiments, the trigger includes a representation that is designated to invoke at least one virtual agent. In some embodiments, the method further comprises analyzing at least a portion of the multilayered discourse to identify the first input as being from the first user and the second input as being from the second user.

가상 에이전트를 인보크하기 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for invoking a virtual agent are provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 프로세서는, 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채고; 그리고 사용자 입력 내 트리거를 검출하는 것에 응답하여, 메시징 애플리케이션에 의해 편의가 도모된 다자간 담화에 적어도 하나의 가상 에이전트를 주입하도록 더 프로그래밍된다.In some embodiments, there is provided an apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one processor is implemented on at least one processor, Intercepting user input to the messaging application for convenience; And in response to detecting a trigger within the user input, further injecting at least one virtual agent into the facilitated multilanguage conversation by the messaging application.

일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 단어 또는 구절을 포함한다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 키보드를 통하여 입력된 문자 입력을 포함하고, 적어도 하나의 프로세서는 적어도 하나의 키보드로부터 메시징 애플리케이션으로 제공되는 문자 입력을 가로채도록 프로그래밍된다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 자동 음성 인식(ASR) 엔진에 의해 문자로서 인식되는 사용자 음성을 포함하고, 적어도 하나의 프로세서는 ASR 엔진으로부터 메시징 애플리케이션으로 제공되는 문자를 가로채도록 프로그래밍된다. 일부 실시예에 있어서, 사용자 입력은 터치스크린 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 제스처를 포함한다. 일부 실시예에 있어서, 사용자 입력은 키보드 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 키스트로크 또는 키스트로크 조합을 포함한다. 일부 실시예에 있어서, 적어도 하나의 프로세서는 사람에 의해 사용되는 메시징 애플리케이션의 클라이언트와 동일한 인터페이스를 사용하여 메시징 애플리케이션의 서버와 통신하는 것에 적어도 일부 의하여 담화에 적어도 하나의 가상 에이전트를 주입하도록 프로그래밍된다.In some embodiments, the trigger includes a word or phrase designated to invoke at least one virtual agent. In some embodiments, the user input comprises character input entered via at least one keyboard, and at least one processor is programmed to intercept character input provided from the at least one keyboard to the messaging application. In some embodiments, the user input comprises user speech recognized as a character by at least one automatic speech recognition (ASR) engine, and at least one processor is programmed to intercept characters provided to the messaging application from the ASR engine do. In some embodiments, the user input comprises a touch screen input and the trigger includes a gesture designated to invoke at least one virtual agent. In some embodiments, the user input comprises a keyboard input and the trigger includes a keystroke or keystroke combination designated to invoke at least one virtual agent. In some embodiments, at least one processor is programmed to inject at least one virtual agent into the discourse at least in part by communicating with a server of the messaging application using the same interface as the client of the messaging application used by the person.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채는 단계; 및 사용자 입력 내 트리거를 검출하는 것에 응답하여, 메시징 애플리케이션에 의해 편의가 도모된 다자간 담화에 적어도 하나의 가상 에이전트를 주입하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor in association with at least one virtual agent, the method comprising: receiving user input to a messaging application running on at least one processor and facilitating multi- Intercepting; And injecting at least one virtual agent into the confidential multilateral discourse facilitated by the messaging application in response to detecting a trigger in user input.

일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 단어 또는 구절을 포함한다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 키보드를 통하여 입력된 문자 입력을 포함하고, 사용자 입력을 가로채는 단계는 적어도 하나의 키보드로부터 메시징 애플리케이션으로 제공되는 문자 입력을 가로채는 단계를 포함한다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 자동 음성 인식(ASR) 엔진에 의해 문자로서 인식되는 사용자 음성을 포함하고, 사용자 입력을 가로채는 단계는 ASR 엔진으로부터 메시징 애플리케이션으로 제공되는 문자를 가로채는 단계를 포함한다. 일부 실시예에 있어서, 사용자 입력은 터치스크린 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 제스처를 포함한다. 일부 실시예에 있어서, 사용자 입력은 키보드 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 키스트로크 또는 키스트로크 조합을 포함한다. 일부 실시예에 있어서, 담화에 적어도 하나의 가상 에이전트를 주입하는 단계는 사람에 의해 사용되는 메시징 애플리케이션의 클라이언트와 동일한 인터페이스를 사용하여 메시징 애플리케이션의 서버와 통신하는 단계를 포함한다.In some embodiments, the trigger includes a word or phrase designated to invoke at least one virtual agent. In some embodiments, the user input comprises character input entered via at least one keyboard, and intercepting user input comprises intercepting character input provided from the at least one keyboard to the messaging application. In some embodiments, the user input comprises user speech recognized as a character by at least one automatic speech recognition (ASR) engine, and intercepting user input comprises intercepting characters provided to the messaging application from the ASR engine . In some embodiments, the user input comprises a touch screen input and the trigger includes a gesture designated to invoke at least one virtual agent. In some embodiments, the user input comprises a keyboard input and the trigger includes a keystroke or keystroke combination designated to invoke at least one virtual agent. In some embodiments, injecting at least one virtual agent into the discourse comprises communicating with a server of the messaging application using the same interface as the client of the messaging application used by the person.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채는 단계; 및 사용자 입력 내 트리거를 검출하는 것에 응답하여, 메시징 애플리케이션에 의해 편의가 도모된 다자간 담화에 적어도 하나의 가상 에이전트를 주입하는 단계를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for use in association with at least one virtual agent, when executed by at least one processor, the method comprising: Intercepting user input to a messaging application running on at least one processor and facilitating multi-party conversation; And injecting at least one virtual agent into the confidential multilateral discourse facilitated by the messaging application in response to detecting a trigger in user input.

일부 실시예에 있어서, 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 단어 또는 구절을 포함한다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 키보드를 통하여 입력된 문자 입력을 포함하고, 사용자 입력을 가로채는 단계는 적어도 하나의 키보드로부터 메시징 애플리케이션으로 제공되는 문자 입력을 가로채는 단계를 포함한다. 일부 실시예에 있어서, 사용자 입력은 적어도 하나의 자동 음성 인식(ASR) 엔진에 의해 문자로서 인식되는 사용자 음성을 포함하고, 사용자 입력을 가로채는 단계는 ASR 엔진으로부터 메시징 애플리케이션으로 제공되는 문자를 가로채는 단계를 포함한다. 일부 실시예에 있어서, 사용자 입력은 터치스크린 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 제스처를 포함한다. 일부 실시예에 있어서, 사용자 입력은 키보드 입력을 포함하고 트리거는 적어도 하나의 가상 에이전트를 인보크하도록 지정된 키스트로크 또는 키스트로크 조합을 포함한다.In some embodiments, the trigger includes a word or phrase designated to invoke at least one virtual agent. In some embodiments, the user input comprises character input entered via at least one keyboard, and intercepting user input comprises intercepting character input provided from the at least one keyboard to the messaging application. In some embodiments, the user input comprises user speech recognized as a character by at least one automatic speech recognition (ASR) engine, and intercepting user input comprises intercepting characters provided to the messaging application from the ASR engine . In some embodiments, the user input comprises a touch screen input and the trigger includes a gesture designated to invoke at least one virtual agent. In some embodiments, the user input comprises a keyboard input and the trigger includes a keystroke or keystroke combination designated to invoke at least one virtual agent.

가상 에이전트의 사용자 인터페이스 제시를 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for presenting a user interface of a virtual agent are provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 프로세서는 메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 적어도 하나의 가상 에이전트를 제시하도록 더 프로그래밍된다.In some embodiments, an apparatus is provided that includes at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one processor is a participant in a multilayered discourse that occurs through a messaging application And is further programmed to present at least one virtual agent.

일부 실시예에 있어서, 적어도 하나의 프로세서는 담화에 참가하는 일인 이상의 개인과 동일한 방식으로 적어도 하나의 가상 에이전트를 제시하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 프로세서는 적어도 하나의 가상 에이전트를 담화에 참가하는 일인 이상의 개인과는 구별하는 방식으로 적어도 하나의 가상 에이전트를 제시하도록 프로그래밍된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 디스플레이 스크린의 제1 부분에서 제시되고 일인 이상의 개인의 투고는 제1 부분과는 다른 디스플레이 스크린의 제2 부분에서 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 적어도 하나의 제1 색상을 사용하여 제시되고 하나 이상의 사용자의 투고는 적어도 하나의 제1 색상과는 다른 적어도 하나의 제2 색상을 사용하여 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 문자-기반 메시징 애플리케이션이다. 일부 실시예에 있어서, 문자-기반 메시징 애플리케이션은 단문 메시지 서비스(SMS), 인스턴트 메시징(IM) 및 이메일로 이루어진 그룹으로부터 선택된다.In some embodiments, at least one processor is programmed to present at least one virtual agent in the same manner as one or more individuals participating in a discourse. In some embodiments, the at least one processor is programmed to present the at least one virtual agent in a manner that distinguishes the at least one virtual agent from the one or more individuals participating in the discourse. In some embodiments, the messaging application has a visual user interface to be displayed on a display screen of a user's device, the contribution of at least one virtual agent to a discourse is presented in a first portion of a display screen, Is presented in a second part of the display screen different from the first part. In some embodiments, the messaging application has a visual user interface to be displayed on the display screen of the user's device, the contribution of the at least one virtual agent to the discourse is presented using at least one first color, Is presented using at least one second color different from the at least one first color. In some embodiments, the messaging application is a character-based messaging application. In some embodiments, the text-based messaging application is selected from the group consisting of short message service (SMS), instant messaging (IM), and email.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은 메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 적어도 하나의 가상 에이전트를 제시하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor in association with at least one virtual agent, the method comprising presenting at least one virtual agent as a participant in the multilateral discourse that occurs through the messaging application do.

일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 담화에 참가하는 일인 이상의 개인과 동일한 방식으로 제시된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 적어도 하나의 가상 에이전트를 담화에 참가하는 일인 이상의 개인과는 구별하는 방식으로 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 디스플레이 스크린의 제1 부분에서 제시되고 일인 이상의 개인의 투고는 제1 부분과는 다른 디스플레이 스크린의 제2 부분에서 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 적어도 하나의 제1 색상을 사용하여 제시되고 하나 이상의 사용자의 투고는 적어도 하나의 제1 색상과는 다른 적어도 하나의 제2 색상을 사용하여 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 문자-기반 메시징 애플리케이션이다. 일부 실시예에 있어서, 문자-기반 메시징 애플리케이션은 단문 메시지 서비스(SMS), 인스턴트 메시징(IM) 및 이메일로 이루어진 그룹으로부터 선택된다.In some embodiments, at least one virtual agent is presented in the same manner as one or more individuals participating in a discourse. In some embodiments, at least one virtual agent is presented in a manner that distinguishes at least one virtual agent from one or more individuals who participate in the discourse. In some embodiments, the messaging application has a visual user interface to be displayed on a display screen of a user's device, the contribution of at least one virtual agent to a discourse is presented in a first portion of a display screen, Is presented in a second part of the display screen different from the first part. In some embodiments, the messaging application has a visual user interface to be displayed on the display screen of the user's device, the contribution of the at least one virtual agent to the discourse is presented using at least one first color, Is presented using at least one second color different from the at least one first color. In some embodiments, the messaging application is a character-based messaging application. In some embodiments, the text-based messaging application is selected from the group consisting of short message service (SMS), instant messaging (IM), and email.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은 메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 적어도 하나의 가상 에이전트를 제시하는 단계를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for use in association with at least one virtual agent, when executed by at least one processor, the method comprising: And presenting at least one virtual agent as a participant in the multilateral discourse occurring through the messaging application.

일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 담화에 참가하는 일인 이상의 개인과 동일한 방식으로 제시된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 적어도 하나의 가상 에이전트를 담화에 참가하는 일인 이상의 개인과는 구별하는 방식으로 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 디스플레이 스크린의 제1 부분에서 제시되고 일인 이상의 개인의 투고는 제1 부분과는 다른 디스플레이 스크린의 제2 부분에서 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 사용자의 디바이스의 디스플레이 스크린 상에 디스플레이될 시각적 사용자 인터페이스를 갖고, 담화로의 적어도 하나의 가상 에이전트의 투고는 적어도 하나의 제1 색상을 사용하여 제시되고 하나 이상의 사용자의 투고는 적어도 하나의 제1 색상과는 다른 적어도 하나의 제2 색상을 사용하여 제시된다. 일부 실시예에 있어서, 메시징 애플리케이션은 문자-기반 메시징 애플리케이션이다.In some embodiments, at least one virtual agent is presented in the same manner as one or more individuals participating in a discourse. In some embodiments, at least one virtual agent is presented in a manner that distinguishes at least one virtual agent from one or more individuals who participate in the discourse. In some embodiments, the messaging application has a visual user interface to be displayed on a display screen of a user's device, the contribution of at least one virtual agent to a discourse is presented in a first portion of a display screen, Is presented in a second part of the display screen different from the first part. In some embodiments, the messaging application has a visual user interface to be displayed on the display screen of the user's device, the contribution of the at least one virtual agent to the discourse is presented using at least one first color, Is presented using at least one second color different from the at least one first color. In some embodiments, the messaging application is a character-based messaging application.

가상 에이전트에 입력을 제공하기 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for providing input to a virtual agent are provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 프로세서는 다자간 담화의 레코드를 사용하여 적어도 하나의 가상 에이전트에 입력을 제공하도록 더 프로그래밍된다.In some embodiments, an apparatus is provided that includes at least one processor programmed with one or more executable instructions to implement at least one virtual agent, wherein the at least one processor uses at least one virtual And is further programmed to provide input to the agent.

일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 다자간 담화의 레코드를 사용하여 수행될 적어도 하나의 태스크를 식별하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 프로세서는 다자간 담화의 레코드를 수정하고 수정된 레코드를 사용하여 적어도 하나의 가상 에이전트에 입력을 제공하도록 프로그래밍된다. 일부 실시예에 있어서, 다자간 담화의 레코드를 수정하는 것은 다자간 담화의 적어도 일부를 제거하는 것을 포함한다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 다자간 담화의 레코드에 기반하여 사용자 선호 정보를 식별하고; 그리고 사용자 선호 정보를 고려함으로써 추천을 하도록 프로그래밍된다.In some embodiments, the at least one virtual agent is programmed to identify at least one task to be performed using a record of the multilateral discourse. In some embodiments, at least one processor is programmed to modify a record of the multilateral discourse and provide input to the at least one virtual agent using the modified record. In some embodiments, modifying the record of the multilayer discourse includes removing at least a portion of the multilayer discourse. In some embodiments, the at least one virtual agent identifies user preference information based on a record of the multilateral discourse; And is programmed to make recommendations by considering user preference information.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은 다자간 담화의 레코드를 사용하여 적어도 하나의 가상 에이전트에 입력을 제공하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor in association with at least one virtual agent, the method comprising providing input to at least one virtual agent using a record of the multilayer discourse.

일부 실시예에 있어서, 다자간 담화의 레코드는 수행될 적어도 하나의 태스크를 식별하도록 사용된다. 일부 실시예에 있어서, 방법은 다자간 담화의 레코드를 수정하는 단계를 더 포함하되, 수정된 레코드는 적어도 하나의 가상 에이전트에 입력을 제공하도록 사용된다. 일부 실시예에 있어서, 다자간 담화의 레코드를 수정하는 단계는 다자간 담화의 적어도 일부를 제거하는 단계를 포함한다. 일부 실시예에 있어서, 방법은, 다자간 담화의 레코드에 기반하여 사용자 선호 정보를 식별하는 단계; 및 사용자 선호 정보를 고려함으로써 추천을 하는 단계를 더 포함한다.In some embodiments, a record of the multilayered discourse is used to identify at least one task to be performed. In some embodiments, the method further comprises modifying the record of the multilayer discourse, wherein the modified record is used to provide input to the at least one virtual agent. In some embodiments, modifying the record of the multilayered discourse comprises removing at least a portion of the multilayer discourse. In some embodiments, the method includes identifying user preference information based on a record of the multilanguage discourse; And recommending by considering user preference information.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은 다자간 담화의 레코드를 사용하여 적어도 하나의 가상 에이전트에 입력을 제공하는 단계를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for use in association with at least one virtual agent, when executed by at least one processor, the method comprising: And using the record of the multilateral discourse to provide input to the at least one virtual agent.

일부 실시예에 있어서, 다자간 담화의 레코드는 수행될 적어도 하나의 태스크를 식별하도록 사용된다. 일부 실시예에 있어서, 방법은 다자간 담화의 레코드를 수정하는 단계를 더 포함하되, 수정된 레코드는 적어도 하나의 가상 에이전트에 입력을 제공하도록 사용된다. 일부 실시예에 있어서, 다자간 담화의 레코드를 수정하는 단계는 다자간 담화의 적어도 일부를 제거하는 단계를 포함한다. 일부 실시예에 있어서, 방법은, 다자간 담화의 레코드에 기반하여 사용자 선호 정보를 식별하는 단계; 및 사용자 선호 정보를 고려함으로써 추천을 하는 단계를 더 포함한다.In some embodiments, a record of the multilayered discourse is used to identify at least one task to be performed. In some embodiments, the method further comprises modifying the record of the multilayer discourse, wherein the modified record is used to provide input to the at least one virtual agent. In some embodiments, modifying the record of the multilayered discourse comprises removing at least a portion of the multilayer discourse. In some embodiments, the method includes identifying user preference information based on a record of the multilanguage discourse; And recommending by considering user preference information.

가상 에이전트 추천을 알려주기 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus are provided for informing a virtual agent recommendation.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 가상 에이전트는, 적어도 2인의 개인 간 관계를 식별하고; 그리고 적어도 2인의 개인 간 관계에 적어도 일부 기반하여 적어도 2인의 개인을 위한 추천을 하도록 프로그래밍된다.In some embodiments, an apparatus is provided that includes at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one virtual agent identifies at least two interpersonal relationships ; And a recommendation for at least two individuals based at least in part on at least two interpersonal relationships.

일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회의 적어도 하나의 측면과 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회를 위한 장소와 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참여할 활동의 유형과 관련된다. 일부 실시예에 있어서, 적어도 2인의 개인은 제1 개인을 포함하고, 적어도 하나의 가상 에이전트는 제1 개인의 사용자 프로파일에 저장된 정보에 액세스하는 것에 적어도 일부 의하여 적어도 2인의 개인 간 관계를 식별하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 적어도 하나의 소셜 네트워킹 서비스 제공자로부터 수집된 정보에 액세스하는 것에 적어도 일부 의하여 적어도 2인의 개인 간 관계를 식별하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 가상 에이전트는 적어도 하나의 제3 개인에 질의하는 것에 적어도 일부 의하여 적어도 2인의 개인 간 관계를 식별하도록 프로그래밍된다.In some embodiments, the recommendation is associated with at least one aspect of the fellowship in which at least two individuals are present. In some embodiments, the recommendation relates to a place for social gatherings where at least two individuals are present. In some embodiments, the recommendation relates to the type of activity in which at least two individuals will participate. In some embodiments, at least two individuals include a first person, and at least one virtual agent is programmed to identify at least a two person relationship by at least partly accessing information stored in a first person ' do. In some embodiments, the at least one virtual agent is programmed to identify at least a two-person relationship by at least partly accessing information collected from the at least one social networking service provider. In some embodiments, the at least one virtual agent is programmed to identify at least two interpersonal relationships by at least partly querying at least one third person.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 적어도 2인의 개인 간 관계를 식별하는 단계; 및 적어도 2인의 개인 간 관계에 적어도 일부 기반하여 적어도 2인의 개인을 위한 추천을 하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor implementing at least one virtual agent, the method comprising: identifying at least two interpersonal relationships; And making a recommendation for at least two individuals based at least in part on the relationship between the at least two individuals.

일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회의 적어도 하나의 측면과 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회를 위한 장소와 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참여할 활동의 유형과 관련된다. 일부 실시예에 있어서, 적어도 2인의 개인은 제1 개인을 포함하고, 적어도 2인의 개인 간 관계를 식별하는 단계는 제1 개인의 사용자 프로파일에 저장된 정보에 액세스하는 단계를 포함한다. 일부 실시예에 있어서, 적어도 2인의 개인 간 관계를 식별하는 단계는 적어도 하나의 소셜 네트워킹 서비스 제공자로부터 수집된 정보에 액세스하는 단계를 포함한다. 일부 실시예에 있어서, 적어도 2인의 개인 간 관계를 식별하는 단계는 적어도 하나의 제3 개인에 질의하는 단계를 포함한다.In some embodiments, the recommendation is associated with at least one aspect of the fellowship in which at least two individuals are present. In some embodiments, the recommendation relates to a place for social gatherings where at least two individuals are present. In some embodiments, the recommendation relates to the type of activity in which at least two individuals will participate. In some embodiments, at least two individuals include a first person, and the step of identifying the at least two persons relationship comprises accessing information stored in a user profile of the first person. In some embodiments, identifying the at least two interpersonal relationships comprises accessing information collected from at least one social networking service provider. In some embodiments, identifying the at least two interpersonal relationships comprises querying at least one third person.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 적어도 2인의 개인 간 관계를 식별하는 단계; 및 적어도 2인의 개인 간 관계에 적어도 일부 기반하여 적어도 2인의 개인을 위한 추천을 하는 단계를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for implementing at least one virtual agent, when executed by at least one processor, the method comprising: Identifying a relationship between the two individuals; And making a recommendation for at least two individuals based at least in part on the relationship between the at least two individuals.

일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회의 적어도 하나의 측면과 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참석할 친목회를 위한 장소와 관련된다. 일부 실시예에 있어서, 추천은 적어도 2인의 개인이 참여할 활동의 유형과 관련된다. 일부 실시예에 있어서, 적어도 2인의 개인은 제1 개인을 포함하고, 적어도 2인의 개인 간 관계를 식별하는 단계는 제1 개인의 사용자 프로파일에 저장된 정보에 액세스하는 단계를 포함한다. 일부 실시예에 있어서, 적어도 2인의 개인 간 관계를 식별하는 단계는 적어도 하나의 소셜 네트워킹 서비스 제공자로부터 수집된 정보에 액세스하는 단계를 포함한다.In some embodiments, the recommendation is associated with at least one aspect of the fellowship in which at least two individuals are present. In some embodiments, the recommendation relates to a place for social gatherings where at least two individuals are present. In some embodiments, the recommendation relates to the type of activity in which at least two individuals will participate. In some embodiments, at least two individuals include a first person, and the step of identifying the at least two persons relationship comprises accessing information stored in a user profile of the first person. In some embodiments, identifying the at least two interpersonal relationships comprises accessing information collected from at least one social networking service provider.

가상 에이전트 대화의 레코드를 저장하기 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for storing records of a virtual agent conversation are provided.

일부 실시예에서는, 적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치가 제공되며, 적어도 하나의 프로세서는 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하도록 더 프로그래밍되되, 영수증은 대화 동안 하나 이상의 사용자에 의해 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함한다.In some embodiments, an apparatus is provided that includes at least one processor programmed by one or more executable instructions to implement at least one virtual agent, wherein the at least one processor is configured to interact with at least one virtual agent Wherein the receipt comprises at least some information provided to the at least one virtual agent by one or more users during the conversation.

일부 실시예에 있어서, 적어도 하나의 프로세서는, 영수증과 관련된 사용자 입력을 수신하고; 그리고 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하도록 더 프로그래밍된다. 일부 실시예에 있어서, 영수증은 적어도 하나의 가상 에이전트가 한 추천을 포함하고, 영수증을 업데이트하는 것은 추천과 관련된 사용자 피드백을 영수증에 부가하는 것을 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신되고, 적어도 하나의 프로세서는, 제1 사용자가 사용자 입력 내 정보를 제1 사용자와는 다른 일인 이상의 개인과 공유하기를 바라는지의 표시를 제1 사용자로부터 수신하고; 그리고 제1 사용자로부터의 표시에 따라 사용자 입력에 기반하여 업데이트된 영수증의 일부로의 액세스를 제어하도록 더 프로그래밍된다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신되고, 적어도 하나의 프로세서는 사용자 입력에 적어도 일부 기반하여 제1 사용자의 사용자 프로파일을 업데이트하도록 더 프로그래밍된다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신된 제1 사용자 입력이고, 적어도 하나의 프로세서는, 제1 사용자와는 다른 제2 사용자로부터 영수증과 관련된 제2 사용자 입력을 수신하고; 그리고 제2 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하도록 더 프로그래밍된다. 일부 실시예에 있어서, 하나 이상의 사용자는 복수의 사용자를 포함하고 적어도 하나의 가상 에이전트는 복수의 사용자와 각각 연관된 복수의 가상 에이전트를 포함하고, 복수의 가상 에이전트는 복수의 사용자에 의해 제공된 입력에 기반하여 영수증에 대한 적어도 하나의 업데이트를 조정하도록 프로그래밍된다. 일부 실시예에 있어서, 영수증은 적어도 하나의 가상 에이전트에 의해 하나 이상의 사용자에 제공된 적어도 일부의 정보를 더 포함한다.In some embodiments, the at least one processor is configured to receive user input associated with the receipt; And is further programmed to update the receipt based at least in part on user input. In some embodiments, the receipt includes a recommendation made by at least one virtual agent, and updating the receipt includes adding user feedback related to the recommendation to the receipt. In some embodiments, the user input is received from a first user, and the at least one processor is configured to display an indication of whether the first user wishes to share information in the user input with one or more individuals other than the first user, Receiving from a user; And is further programmed to control access to a portion of the updated receipt based on user input in accordance with an indication from the first user. In some embodiments, user input is received from a first user, and at least one processor is further programmed to update a user profile of the first user based at least in part on user input. In some embodiments, the user input is a first user input received from a first user, and the at least one processor receives a second user input related to the receipt from a second user other than the first user; And to update the receipt based at least in part on the second user input. In some embodiments, the at least one user includes a plurality of users, the at least one virtual agent includes a plurality of virtual agents each associated with a plurality of users, and the plurality of virtual agents are based on inputs provided by the plurality of users To adjust at least one update to the receipt. In some embodiments, the receipt further comprises at least some information provided to the one or more users by the at least one virtual agent.

일부 추가적 실시예에서는, 적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하는 단계를 포함하되, 영수증은 대화 동안 하나 이상의 사용자에 의해 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함한다.In some additional embodiments, a method is performed by at least one processor in association with at least one virtual agent, the method comprising: storing a receipt for conversation between at least one virtual agent and one or more users, , The receipt includes at least some information provided to the at least one virtual agent by one or more users during the conversation.

일부 실시예에 있어서, 그 방법은, 영수증과 관련된 사용자 입력을 수신하는 단계; 및 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 영수증은 적어도 하나의 가상 에이전트가 한 추천을 포함하고, 영수증을 업데이트하는 단계는 추천과 관련된 사용자 피드백을 영수증에 부가하는 단계를 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신되고, 방법은, 제1 사용자가 사용자 입력 내 정보를 제1 사용자와는 다른 일인 이상의 개인과 공유하기를 바라는지의 표시를 제1 사용자로부터 수신하는 단계; 및 제1 사용자로부터의 표시에 따라 사용자 입력에 기반하여 업데이트된 영수증의 일부로의 액세스를 제어하는 단계를 더 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신되고, 방법은 사용자 입력에 적어도 일부 기반하여 제1 사용자의 사용자 프로파일을 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신된 제1 사용자 입력이고, 방법은, 제1 사용자와는 다른 제2 사용자로부터 영수증과 관련된 제2 사용자 입력을 수신하는 단계; 및 제2 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 하나 이상의 사용자는 복수의 사용자를 포함하고 적어도 하나의 가상 에이전트는 복수의 사용자와 각각 연관된 복수의 가상 에이전트를 포함하고, 방법은 복수의 가상 에이전트가 복수의 사용자에 의해 제공된 입력에 기반하여 영수증에 대한 적어도 하나의 업데이트를 조정하는 단계를 더 포함한다. 일부 실시예에 있어서, 영수증은 적어도 하나의 가상 에이전트에 의해 하나 이상의 사용자에 제공된 적어도 일부의 정보를 더 포함한다.In some embodiments, the method includes receiving user input associated with a receipt; And updating the receipt based at least in part on the user input. In some embodiments, the receipt includes a recommendation made by at least one virtual agent, and the step of updating the receipt includes adding user feedback related to the recommendation to the receipt. In some embodiments, user input is received from a first user, and the method further comprises receiving from the first user an indication of whether the first user wishes to share information in the user input with one or more individuals other than the first user ; And controlling access to a portion of the updated receipt based on the user input in accordance with the indication from the first user. In some embodiments, the user input is received from a first user, and the method further comprises updating the user profile of the first user based at least in part on the user input. In some embodiments, the user input is a first user input received from a first user, the method further comprising: receiving a second user input related to the receipt from a second user other than the first user; And updating the receipt based at least in part on the second user input. In some embodiments, the at least one user includes a plurality of users and the at least one virtual agent comprises a plurality of virtual agents each associated with a plurality of users, the method further comprising: And adjusting at least one update to the receipt based on the receipt. In some embodiments, the receipt further comprises at least some information provided to the one or more users by the at least one virtual agent.

일부 추가적 실시예에서는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하는 단계를 포함하되, 영수증은 대화 동안 하나 이상의 사용자에 의해 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함한다.In some further embodiments, there is provided at least one computer-readable medium having encoded thereon instructions for performing a method for use in association with at least one virtual agent, when executed by at least one processor, the method comprising: And storing a receipt for conversation between the at least one virtual agent and the at least one user, wherein the receipt comprises at least a portion of the information provided to the at least one virtual agent by the one or more users during the conversation.

일부 실시예에 있어서, 그 방법은, 영수증과 관련된 사용자 입력을 수신하는 단계; 및 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신되고, 방법은, 제1 사용자가 사용자 입력 내 정보를 제1 사용자와는 다른 일인 이상의 개인과 공유하기를 바라는지의 표시를 제1 사용자로부터 수신하는 단계; 및 제1 사용자로부터의 표시에 따라 사용자 입력에 기반하여 업데이트된 영수증의 일부로의 액세스를 제어하는 단계를 더 포함한다. 일부 실시예에 있어서, 사용자 입력은 제1 사용자로부터 수신된 제1 사용자 입력이고, 방법은, 제1 사용자와는 다른 제2 사용자로부터 영수증과 관련된 제2 사용자 입력을 수신하는 단계; 및 제2 사용자 입력에 적어도 일부 기반하여 영수증을 업데이트하는 단계를 더 포함한다.In some embodiments, the method includes receiving user input associated with a receipt; And updating the receipt based at least in part on the user input. In some embodiments, user input is received from a first user, and the method further comprises receiving from the first user an indication of whether the first user wishes to share information in the user input with one or more individuals other than the first user ; And controlling access to a portion of the updated receipt based on the user input in accordance with the indication from the first user. In some embodiments, the user input is a first user input received from a first user, the method further comprising: receiving a second user input related to the receipt from a second user other than the first user; And updating the receipt based at least in part on the second user input.

가상 에이전트 간 정보를 공유하기 위한 시스템, 방법 및 장치가 제공된다.A system, method and apparatus for sharing information between virtual agents is provided.

일부 실시예에서는, 적어도 하나의 제1 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 디바이스가 제공되며, 디바이스는 제1 디바이스이고, 적어도 하나의 제1 가상 에이전트는, 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하되, 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되고; 그리고 적어도 하나의 제1 가상 에이전트와 적어도 하나의 제2 가상 에이전트 간 공유된 정보를 사용하여 제1 및 제2 사용자를 위한 공동 추천을 하도록 프로그래밍된다.In some embodiments, there is provided a device comprising at least one processor programmed by one or more executable instructions to implement at least one first virtual agent, wherein the device is a first device, and the at least one first virtual agent Sharing information with at least one second virtual agent running on at least one second device different from the first device, wherein at least one first virtual agent is associated with the first user and comprises at least one second virtual The agent is associated with a second user; And jointly making recommendations for the first and second users using information shared between the at least one first virtual agent and the at least one second virtual agent.

일부 실시예에 있어서, 적어도 하나의 제1 가상 에이전트는 제1 사용자에 관한 정보를 적어도 하나의 제2 가상 에이전트와 공유하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 제1 가상 에이전트는 제1 사용자의 선호 정보를 적어도 하나의 제2 가상 에이전트와 공유하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 제1 가상 에이전트는 제1 사용자의 위치 정보를 적어도 하나의 제2 가상 에이전트와 공유하도록 프로그래밍된다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계는 제2 사용자에 관한 정보를 적어도 하나의 제2 가상 에이전트로부터 수신하는 단계를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제1 가상 에이전트는 제1 사용자에 관한 현재 정보를 사용하여 추천과 관련된 영수증을 동적으로 업데이트하도록 더 프로그래밍된다. 일부 실시예에 있어서, 추천은 제1 사용자가 참석할 친목회와 관련되고, 적어도 하나의 제1 가상 에이전트는 제1 사용자의 현재 위치를 사용하여 제1 사용자에 대한 도착 추정 시간을 동적으로 업데이트하도록 프로그래밍된다.In some embodiments, the at least one first virtual agent is programmed to share information about the first user with at least one second virtual agent. In some embodiments, the at least one first virtual agent is programmed to share the preference information of the first user with at least one second virtual agent. In some embodiments, the at least one first virtual agent is programmed to share position information of the first user with at least one second virtual agent. In some embodiments, sharing information with the at least one second virtual agent comprises receiving information about the second user from at least one second virtual agent. In some embodiments, the at least one first virtual agent is further programmed to dynamically update the receipt associated with the recommendation using current information about the first user. In some embodiments, the recommendation is associated with a social network the first user is to attend, and at least one first virtual agent is programmed to dynamically update the arrival estimate time for the first user using the current user's current location .

일부 추가적 실시예에서는, 제1 디바이스 상에서 적어도 하나의 제1 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 방법이 수행되며, 그 방법은, 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계로서, 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되는 것인 공유하는 단계; 및 적어도 하나의 제1 가상 에이전트와 적어도 하나의 제2 가상 에이전트 간 공유된 정보를 사용하여 제1 및 제2 사용자를 위한 공동 추천을 하는 단계를 포함한다.In some additional embodiments, a method is performed by at least one processor that implements at least one first virtual agent on a first device, the method being executed on at least one second device other than the first device Sharing information with at least one second virtual agent, wherein at least one first virtual agent is associated with a first user and at least one second virtual agent is associated with a second user; And making a joint recommendation for the first and second user using information shared between the at least one first virtual agent and the at least one second virtual agent.

일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자에 관한 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자의 선호 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자의 위치 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계는 제2 사용자에 관한 정보를 적어도 하나의 제2 가상 에이전트로부터 수신하는 단계를 포함한다. 일부 실시예에 있어서, 방법은 제1 사용자에 관한 현재 정보를 사용하여 추천과 관련된 영수증을 동적으로 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 추천은 제1 사용자가 참석할 친목회와 관련되고, 제1 사용자의 현재 위치는 제1 사용자에 대한 도착 추정 시간을 동적으로 업데이트하도록 사용된다.In some embodiments, the information shared with the at least one second virtual agent includes information about the first user. In some embodiments, the information shared with the at least one second virtual agent includes preference information of the first user. In some embodiments, the information shared with the at least one second virtual agent includes location information of the first user. In some embodiments, sharing information with the at least one second virtual agent comprises receiving information about the second user from at least one second virtual agent. In some embodiments, the method further comprises dynamically updating the receipt associated with the recommendation using current information about the first user. In some embodiments, the recommendation is associated with a social network to which the first user is to attend, and the current location of the first user is used to dynamically update the arrival estimate time for the first user.

일부 추가적 실시예에서는, 제1 디바이스 상에서 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 제1 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체가 제공되며, 그 방법은, 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계로서, 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되는 것인 공유하는 단계; 및 적어도 하나의 제1 가상 에이전트와 적어도 하나의 제2 가상 에이전트 간 공유된 정보를 사용하여 제1 및 제2 사용자를 위한 공동 추천을 하는 단계를 포함한다.In some further embodiments, at least one computer-readable medium is provided that, when executed by at least one processor on a first device, encodes instructions for performing a method for implementing at least one first virtual agent , The method comprising the steps of: sharing information with at least one second virtual agent running on at least one second device different from the first device, wherein the at least one first virtual agent is associated with a first user One second virtual agent being associated with a second user; And making a joint recommendation for the first and second user using information shared between the at least one first virtual agent and the at least one second virtual agent.

일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자에 관한 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자의 선호 정보를 포함한다. 일부 실시예에 있어서, 적어도 하나의 제2 가상 에이전트와 공유된 정보는 제1 사용자의 위치 정보를 포함한다. 일부 실시예에 있어서, 방법은 제1 사용자에 관한 현재 정보를 사용하여 추천과 관련된 영수증을 동적으로 업데이트하는 단계를 더 포함한다. 일부 실시예에 있어서, 추천은 제1 사용자가 참석할 친목회와 관련되고, 제1 사용자의 현재 위치는 제1 사용자에 대한 도착 추정 시간을 동적으로 업데이트하도록 사용된다.In some embodiments, the information shared with the at least one second virtual agent includes information about the first user. In some embodiments, the information shared with the at least one second virtual agent includes preference information of the first user. In some embodiments, the information shared with the at least one second virtual agent includes location information of the first user. In some embodiments, the method further comprises dynamically updating the receipt associated with the recommendation using current information about the first user. In some embodiments, the recommendation is associated with a social network to which the first user is to attend, and the current location of the first user is used to dynamically update the arrival estimate time for the first user.

수반 도면은 반드시 축척대로 그려진 것은 아니다. 명확성의 목적으로, 모든 도면마다 모든 컴포넌트마다 라벨이 붙여지지는 않을 수 있다.
도 1은, 일부 실시예에 따라, 가상 에이전트와 관련되어 본 명세서에 개시된 개념이 구현될 수 있는 시스템의 예시도;
도 2는, 본 발명의 일부 실시예에 따라, 가상 에이전트가 인보크될 수 있는 다자간 담화의 일례도;
도 3은, 본 발명의 일부 실시예에 따라, 가상 에이전트를 인보크하기 위한 프로세스의 예시도;
도 4는, 본 발명의 일부 실시예에 따라, 수행될 태스크를 공식화하고 그리고/또는 태스크를 수행하도록 가상 에이전트에 의해 사용될 수 있는 프로세스의 예시도;
도 5는, 본 발명의 일부 실시예에 따라, 가상 에이전트 대화에 대한 영수증을 저장하기 위한 데이터 스토어의 예시도;
도 6은, 본 발명의 일부 실시예에 따라, 수행될 태스크를 공식화하고 그리고/또는 태스크를 수행함에 있어서 다수의 가상 에이전트가 서로 대화하는 시스템의 예시도;
도 7은, 일부 실시예에 따라, 본 발명의 다양한 진보적 태양이 구현될 수 있는 예시적 컴퓨터의 도식도.
The accompanying drawings are not necessarily drawn to scale. For the sake of clarity, not every component may be labeled for every drawing.
1 is an illustration of a system in which the concepts disclosed herein may be implemented in connection with a virtual agent, in accordance with some embodiments;
Figure 2 is an example of a multilayered discourse in which a virtual agent may be invoked, according to some embodiments of the present invention;
Figure 3 is an illustration of a process for invoking a virtual agent, in accordance with some embodiments of the present invention;
4 is an illustration of a process that may be used by a virtual agent to formulate a task to be performed and / or perform a task, in accordance with some embodiments of the present invention;
5 is an illustration of a data store for storing a receipt for a virtual agent conversation, in accordance with some embodiments of the present invention;
6 is an illustration of a system in which multiple virtual agents interact with each other in formulating a task to be performed and / or performing a task, in accordance with some embodiments of the present invention;
Figure 7 is a schematic diagram of an exemplary computer in which various inventive aspects of the present invention may be implemented, in accordance with some embodiments.

발명자는 관용적 가상 에이전트가 일대일 방식으로 개개의 사용자와 대화하도록 설계되어 있음을 인지 및 인식하였다. 이러한 패러다임은 단일 사용자가 가상 에이전트를 인보크하고 그에 입력을 제공할 것임과, 가상 에이전트가 그 동일 사용자와 대화하고 그를 위한 태스크를 수행할 것임을 가정한다. 실로, 관용적 가상 에이전트는 때로는, 가상 에이전트와 사용자 간 대화의 일대일 본질을 강조하는, 가상 "개인" 도우미라고 지칭된다.The inventor perceived and recognized that the idiosyncratic virtual agent was designed to talk to individual users in a one-to-one manner. This paradigm assumes that a single user will invoke the virtual agent and provide input to it, and that the virtual agent will talk to that same user and perform the task for it. Indeed, idiosyncratic agents are sometimes referred to as virtual "personal" assistants, which emphasize the one-to-one nature of dialog between the virtual agent and the user.

발명자는 일대일 패러다임이 소정 그룹 활동, 예컨대, 다수의 개인이 정보를 공유하고 그리고/또는 공동 결정을 하는 경우에는 이상적으로 맞지는 않을 수 있음을 더 인지 및 인식하였다. 일례의 시나리오에 있어서, 2인 이상의 친구 그룹은 단문 메시지 서비스(SMS) 또는 인스턴트 메시징(IM)을 사용하여 모임의 세부 사항(예컨대, 바, 레스토랑, 클럽 등에서 만나기)을 계획할 수 있다. 관용적 가상 에이전트를 사용하면, 하나의 사용자는 그룹의 다른 구성원들로부터 선호를 수집하고 그 수집된 선호를 그룹 담화의 맥락 밖의 가상 에이전트에 중계할 필요가 있을 것이다. 가상 에이전트가 (예컨대, 레스토랑에 대한) 추천을 반환할 때, 사용자는 그 추천을 그룹의 나머지 구성원에 중계할 필요가 있을 것이다. 그룹이 찬성하면, 사용자는 가상 에이전트가 (예컨대, 추천된 레스토랑에 예약을 하도록) 그 추천을 끝까지 하라고 요청하도록 그룹 담화의 맥락 밖의 가상 에이전트와 또다시 대화할 수 있다.The inventors have further recognized and recognized that one-to-one paradigms may not ideally fit in certain group activities, such as when multiple individuals share information and / or make joint decisions. In an exemplary scenario, a group of two or more buddies can plan the details of a meeting (e.g., meeting at a bar, restaurant, club, etc.) using a short message service (SMS) or instant messaging (IM). With the idiosyncratic virtual agent, one user would need to collect preferences from other members of the group and relay the collected preferences to the virtual agent outside the context of the group discourse. When the virtual agent returns a recommendation (e.g., for a restaurant), the user will need to relay the recommendation to the remaining members of the group. If the group approves, the user can again talk to the virtual agent outside the context of the group discourse to ask the virtual agent to end the recommendation (e.g., make a reservation at the recommended restaurant).

그리하여, 사용자는 가상 에이전트와의 대화와 (예컨대, SMS 또는 IM 애플리케이션을 사용하는) 그룹 담화 간 이리저리 그의 초점을 전환하여야 한다. 이것은, 특히, 사용자가 동일 디바이스(예컨대, 모바일 폰)를 사용하여 가상 에이전트와 대화하고 다자간 담화에 참여하고 있지만, 어느 주어진 시점에라도 하나의 애플리케이션만이 전경에서 실행될 수 있는 경우(많은 모바일 디바이스에서는 그러하다)에 불편하고 비효율적이다. 부가적으로, 사용자는 다른 그룹 구성원의 선호를 가상 에이전트에 중계하기 위해 그 선호를 암기하거나 어떻게든 기록하여야 하고, 그것은 비효율적이고 실수하기 쉽다.Thus, the user must switch his focus between conversation with the virtual agent and group talk (e.g., using an SMS or IM application). This is especially true when a user is interacting with a virtual agent using the same device (e.g., a mobile phone) and participating in a multilateral discourse, but only one application at a given time can be executed in the foreground It is uncomfortable and inefficient. In addition, the user must memorize or somehow record the preferences of the other group members to relay the preferences of the other group members to the virtual agent, which is inefficient and prone to error.

I. 다자간 담화에의 가상 에이전트 참가I. Participation of virtual agents in multilateral discourse

일부 실시예에 의하면, 가상 에이전트는, 어느 참가자도 가상 에이전트를 인보크하기 위해 담화를 떠날 필요 없이, 다자간 담화로부터 직접 인보크될 수 있고, 그로써 무결절성 사용자 체감 및 개선된 효율을 제공한다. 예컨대, 다자간 담화가 그룹 메시징 애플리케이션(그 비-한정적 예는 SMS, IM, 이메일 및 음성 채팅을 포함함)을 통하여 일어나는 일부 실시예에 있어서, 다자간 담화에의 참가자는 그룹 메시징 애플리케이션의 맥락 내에서 가상 에이전트를 인보크할 수 있다. 그렇지만, 아래에 더 상세히 논의되는 바와 같이, 다자간 담화로부터 가상 에이전트를 인보크하는 것과 관련된 본 발명의 태양이 다자간 담화가 수행되는 어떠한 특정 매체로도 한정되지 않으므로, 다자간 담화는 그룹 메시징 애플리케이션을 통하는 것 이외의 방식으로 일어날 수 있다.According to some embodiments, the virtual agent may be invoked directly from the multilateral discourse, without requiring any participants to leave the discourse to invoke the virtual agent, thereby providing a seamless user experience and improved efficiency. For example, in some embodiments where the multilateral discourse occurs through a group messaging application (the non-limiting examples include SMS, IM, email and voice chat), the participant in the multilayered discourse The agent can be invoked. However, as discussed in greater detail below, since aspects of the present invention involving invoking a virtual agent from a multilayered discourse are not limited to any particular medium on which multilayered discourse is performed, the multilayered discourse is likely to be through a group messaging application It can happen in other ways.

일부 실시예에서는, 다자간 담화에의 참가자 중 누구라도 가상 에이전트를 인보크할 수 있다. 다른 실시예에서는, 참가자 중, 전부는 아니지만, 일부만이 그렇게 할 수 있다. 하나의 비-한정적 예로서, 소정 적합한 방식으로 가상 에이전트와 연관된 참가자만이 가상 에이전트를 인보크할 수 있다. 참가자가 가상 에이전트와 연관될 수 있는 다양한 방식이 아래에 더 상세히 논의된다.In some embodiments, any of the participants in the multilayered discourse may invoke the virtual agent. In other embodiments, some, but not all, of the participants may do so. As one non-limiting example, only a participant associated with a virtual agent in a suitable manner may invoke the virtual agent. The various ways in which a participant can be associated with a virtual agent are discussed in more detail below.

일부 실시예에 있어서, 다자간 담화로부터 가상 에이전트의 인보크는 가상 에이전트가 부가적 참가자로서 담화에 주입되게 야기할 수 있다. 일부 그러한 실시예에 있어서, 그룹 내 다수의 사용자는, 예를 들면, 가상 에이전트에 의해 수행될 태스크를 특정하도록 가상 에이전트에 입력을 제공함으로써 다자간 담화의 맥락 내에서 가상 에이전트와 대화할 수 있다. 예컨대, 가상 에이전트는 (예컨대, 레스토랑, 가게, 영화 등에 대하여) 그룹을 위한 추천을 하도록 요청받을 수 있고 그룹 내 다수의 사용자는 그들 선호를 가상 에이전트에 알려줄 수 있다. 이러한 방식으로, 사용자 중 어느 누구도 그룹과 가상 에이전트 간 배타적 전달자로서 역할하도록 요구되지 않는다.In some embodiments, the invoke of the virtual agent from the multilateral discourse may cause the virtual agent to be injected into the discourse as an additional participant. In some such embodiments, a plurality of users in the group may interact with the virtual agent within the context of the multilateral discourse, for example, by providing an input to the virtual agent to specify a task to be performed by the virtual agent. For example, a virtual agent may be asked to make a recommendation for a group (e.g., for a restaurant, shop, movie, etc.), and multiple users in the group may notify their preferences to the virtual agent. In this way, none of the users is required to act as an exclusive messenger between the group and the virtual agent.

다른 실시예에 있어서, 가상 에이전트는, 태스크를 수행하라는 요청이 담화의 맥락 밖에서 발행되었더라도, 가상 에이전트에 의해 수행된 태스크의 결과를 제시하도록 다자간 담화에 주입될 수 있다. 예컨대, 사용자(담화에의 참가자일 수도 있고 아닐 수도 있음)는 정보를 모으고 그리고/또는 담화에의 다수의 참가자를 위한 추천을 하도록 가상 에이전트를 인보크할 수 있다. 인보크되고 나면, 가상 에이전트는 요청된 정보 및/또는 추천을 참가자에 제시하기 위해 자신을 담화에 주입할 수 있다.In another embodiment, the virtual agent may be injected into the multilayer discourse to present the results of the task performed by the virtual agent, even though the request to perform the task was issued outside the context of the discourse. For example, a user (which may or may not be a participant in a discourse) may invoke a virtual agent to gather information and / or make recommendations for multiple participants to a discourse. Once invoked, the virtual agent can inject itself into the discourse to present the requested information and / or recommendation to the participant.

다양한 예시적 실시예에 있어서 가상 에이전트는 인보크시 다자간 담화에 주입될 수 있지만, 가상 에이전트의 인보크와 관련된 본 발명의 태양이 그렇게 한정되지는 않음을 인식하여야 한다. 대안의 실시예에 있어서, 가상 에이전트는 다자간 담화로부터 인보크될 수 있지만 다자간 담화의 맥락 밖에서 요청된 태스크를 수행하고 그리고/또는 다자간 담화에의 참가자로서 주입되는 것 이외의 방식으로 태스크의 결과를 제시할 수 있다. 예컨대, 가상 에이전트는 레스토랑 예약을 하기 위해 다자간 담화로부터 인보크될 수 있고 다자간 담화를 통하는 것 이외의 방식으로 예약의 상세를 제공할 수 있다. 아래에 논의되는 일부 추가적 실시예에 있어서, 가상 에이전트는 또한 다수의 개인을 위한 추천을 하도록 다자간 담화의 맥락 밖에서 인보크될 수 있다.It should be appreciated that in various exemplary embodiments, the virtual agent may be injected into the inviscid multilanguage discourse, but the invention aspect associated with the invoke of the virtual agent is not so limited. In an alternative embodiment, the virtual agent may be invoked from the multilateral discourse but may perform the requested task outside the context of the multilateral discourse and / or present the results of the task in a manner other than injected as a participant in the multilateral discourse can do. For example, a virtual agent may be invoked from a multilateral discourse to make restaurant reservations and may provide details of the reservation in a manner other than via multilateral discourse. In some additional embodiments discussed below, the virtual agent may also be invoked outside the context of the multilateral discourse to make recommendations for multiple individuals.

IIII . 다수의 개인을 위한 가상 에이전트 추천. Virtual Agent Recommendation for Multiple Individuals

일부 실시예에 의하면, 가상 에이전트는, 개인이 다자간 담화에 참가하고 있는지에 무관하게, 다수의 개인에 관한 정보를 사용하여 추천을 알려주도록 프로그래밍될 수 있다. 예컨대, 사용자는 다수의 개인과 관련된 추천(예컨대, 친목회 또는 활동에 대한 추천)을 요청할 수 있고, 가상 에이전트는 추천을 선택함에 있어서 그들 개인의 선호 및/또는 제한을 고려하도록 프로그래밍될 수 있다. 그러한 선호 및/또는 제한은 추천의 장소, 스케줄링, 비용 및/또는 어느 다른 측면과 관련될 수 있다. 추천에 영향을 미칠 수 있는 연령, 성별, 직업, 위치 또는 어느 다른 정보와 같은, 개인에 관한 다른 유형의 정보가 또한 가상 에이전트에 의해 사용될 수 있다.According to some embodiments, the virtual agent may be programmed to use the information about a plurality of individuals to indicate recommendations, regardless of whether the individual is participating in the multilateral discourse. For example, a user may request a recommendation (e.g., a recommendation for a social gathering or an activity) related to multiple individuals, and the virtual agent may be programmed to take into account their preferences and / or restrictions in selecting recommendations. Such preferences and / or limitations may relate to the location of the recommendation, scheduling, cost, and / or any other aspect. Other types of information about the individual, such as age, gender, occupation, location or any other information that may affect the recommendation, may also be used by the virtual agent.

가상 에이전트가 다자간 담화에 주입되는 일부 실시예에 있어서, 가상 에이전트는 가상 에이전트의 인보크 전에 일어난 담화 부분 및/또는 인보크 후에 일어나는 부분으로부터 정보를 주워 모을 수 있다. 예를 들면, 레스토랑 검색 예에 있어서, 제1 사용자는 가상 에이전트를 인보크하기 이전에 특정 장소에 대한 선호를 표현할 수 있는 한편, 제2 사용자는 가상 에이전트가 담화에 주입된 후에 가상 에이전트에 레스토랑 검색을 특정 가격 범위로 한정하라고 요청할 수 있다. 부가적으로, 태스크를 수행함에 있어서, 가상 에이전트는 다수의 사용자로부터 추가적 정보를 간청하도록 프로그래밍될 수 있다.In some embodiments in which the virtual agent is injected into the multilayer discourse, the virtual agent may pick up information from the portion of the discourse that occurred prior to the invocation of the virtual agent and / or after the invocation. For example, in a restaurant search example, a first user may express preferences for a particular place prior to invoking a virtual agent, while a second user may search for a restaurant after a virtual agent is injected into a discourse To a specific price range. Additionally, in performing a task, the virtual agent may be programmed to entice additional information from multiple users.

일부 실시예에 있어서, 가상 에이전트는 추천을 함에 있어서 담화로부터 주워 모은 정보의 사용과 하나 이상의 사용자에 대한 선호 정보의 사용을 조합할 수 있지만, 이들 기술이 일부 실시예에서는 별개로 사용될 수 있으므로, 모든 실시예가 이에 관하여 한정되지는 않는다. 이들 및 다른 실시예가 아래에 상세히 설명된다.In some embodiments, the virtual agent may combine the use of information gathered from the discourse with the use of preference information for one or more users in making recommendations, but since these techniques may be used separately in some embodiments, The embodiment is not limited thereto. These and other embodiments are described in detail below.

IIIIII . 가상 에이전트를 . Virtual agent 인보크하기Invoke 위한 기술 Technology for

가상 에이전트는 일인 이상의 개인을 위한 태스크를 수행하는데 적합한 어떠한 방식으로라도 인보크될 수 있다. 일부 실시예에 의하면, 프로세스는 메시징 애플리케이션을 통하여 일어나는 담화를 모니터링하고, 가상 에이전트를 인보크하도록 지정된 단어 또는 구절일 수 있는 "트리거"를 청취할 수 있다. 트리거 검출 시, 프로세스는, 예컨대, 담화에 가상 에이전트를 주입함으로써 가상 에이전트를 인보크할 수 있다.A virtual agent may be invoked in any manner suitable for performing tasks for more than one person. According to some embodiments, the process may monitor a discourse occurring through the messaging application and listen to a "trigger" that may be a word or phrase designated to invoke the virtual agent. Upon trigger detection, the process may invoke the virtual agent, for example, by injecting a virtual agent into the discourse.

담화를 모니터링하는 프로세스는 메시징 애플리케이션 그 자체일 수도 있고, 어떤 적합한 방식으로 담화 내용의 하나 이상의 부분으로의 액세스를 부여받은 어떤 다른 프로세스일 수도 있다. 일부 실시예에 있어서, 프로세스는 참가자가 통하여 담화에 참가하는 사용자 디바이스 상에서 실행될 수 있다. 대안의 실시예에 있어서, 프로세스는 메시징 애플리케이션과 연관된 통신 트래픽을 취급하는 서버, 또는 담화 내용의 하나 이상의 부분이 포워딩되는 별개의 서버와 같은 서버 상에서 실행될 수 있다.The process of monitoring the discourse may be the messaging application itself or any other process that has been granted access to one or more portions of the discourse content in any suitable manner. In some embodiments, the process may be performed on a user device participating in a discourse by a participant. In an alternate embodiment, the process may be performed on a server that handles communication traffic associated with the messaging application, or on a server, such as a separate server to which one or more portions of the content of the discourse are forwarded.

일부 추가적 실시예에 있어서, 프로세스는 메시징 애플리케이션으로의 사용자 입력을 가로채고 그 사용자 입력이 가상 에이전트를 인보크하도록 지정되어 있는 트리거를 포함하는지 결정할 수 있다. 예컨대, 프로세스는 지정된 트리거를 검출하기 위해 담화 참가자에 의해 사용되는 디바이스 상의 다양한 유형의 입력 디바이스(예컨대, 키보드, 마우스, 터치스크린, 하드웨어 버튼 등)로부터의 입력을 가로채도록 프로그래밍될 수 있다. 일부 실시예에 있어서, 프로세스는 또한 캡처링된 사용자 음성을 전사하는 결과로서 ASR 엔진에 의해 출력된 문자를 가로챔으로써 음성 입력에 액세스하도록 프로그래밍될 수 있다. 지정된 트리거(키스트로크, 마우스 클릭, 터치스크린 제스처, 버튼 누르기, 말하기 또는 트리거 단어 또는 구절을 타이핑하기 등 또는 그 어느 적합한 조합일 수 있음)를 검출 시, 프로세스는, 예컨대, 메시징 애플리케이션을 통하여 일어나는 담화에 가상 에이전트를 주입함으로써 가상 에이전트를 인보크할 수 있다.In some additional embodiments, the process may intercept user input to the messaging application and determine if the user input includes a trigger that is specified to invoke the virtual agent. For example, the process may be programmed to intercept input from various types of input devices (e.g., keyboard, mouse, touch screen, hardware buttons, etc.) on a device used by a discourse participant to detect a specified trigger. In some embodiments, the process may also be programmed to access the speech input by intercepting the characters output by the ASR engine as a result of transcribing the captured user speech. Upon detecting a specified trigger (which may be keystrokes, mouse clicks, touch screen gestures, button presses, typing a speech or trigger word or phrase, or any other suitable combination), the process may, for example, The virtual agent can be invoked by injecting a virtual agent into the virtual agent.

일부 추가적 실시예에 있어서, 가상 에이전트는 다른 디바이스로부터 수신된 입력에 응답하여 디바이스 상에 인보크될 수 있다. 예컨대, 가상 에이전트 능력을 갖는 제1 디바이스는 제2 디바이스로부터 통신을 수신하고 통신 내 지정된 트리거를 검출시 가상 에이전트를 인보크할 수 있다. 통신은 메시징 애플리케이션(예컨대, SMS, IM, 이메일, 음성 채팅 등)을 통하여, 전화를 통하여, 또는 어느 다른 적합한 방식으로라도 수신될 수 있다. 이러한 방식으로, 제2 디바이스가 가상 에이전트 능력을 갖고 있지 않더라도, 제2 디바이스의 사용자는 제1 디바이스의 가상 에이전트 능력을 이용할 수 있을 수 있다.In some additional embodiments, the virtual agent may be invoked on the device in response to an input received from another device. For example, a first device having a virtual agent capability may receive communications from a second device and invoke a virtual agent upon detecting a specified trigger in the communication. The communication may be received via a messaging application (e.g., SMS, IM, email, voice chat, etc.), over the telephone, or in any other suitable manner. In this way, even if the second device does not have the virtual agent capability, the user of the second device may be able to use the virtual agent capability of the first device.

IVIV . 가상 에이전트의 사용자 인터페이스 제시 . Presenting user interface of virtual agent

일부 실시예에 의하면, 가상 에이전트는 다자간 담화에의 참가자로서 제시될 수 있다. 가상 에이전트는, 예컨대, 정보에 대해 프롬프트하고 그리고/또는 그것을 제공함으로써 담화의 맥락 내에서 하나 이상의 다른 참가자와 대화할 수 있다. 일부 실시예에 있어서, 가상 에이전트의 투고(예컨대, 프롬프트, 정보 등)는 다른 참가자로부터의 투고와 동일한 방식으로 제시될 수 있다. 예컨대, 가상 에이전트는 사용자 이름과 연관될 수 있고, 가상 에이전트의 투고에는 그 사용자 이름으로 라벨이 붙여질 수 있다. 대안의 실시예에 있어서, 가상 에이전트의 투고는 다른 참가자와 가상 에이전트를 구별하는 방식으로 제시될 수 있다. 예컨대, 가상 에이전트의 투고는 시각적 디스플레이의 하나의 영역에 제시될 수 있는 반면, 다른 참가자는 디스플레이의 다른 영역에 제시될 수 있다. 가상 에이전트를 다른 참가자와 구별하는 다른 방식이 또한 가능하고, 일부 부가적 예시적 예가 아래에 더 상세히 논의된다.According to some embodiments, the virtual agent may be presented as a participant in the multilateral discourse. The virtual agent may talk to one or more other participants within the context of the discourse, for example, by prompting for information and / or providing it. In some embodiments, the posting (e.g., prompt, information, etc.) of the virtual agent may be presented in the same manner as posting from other participants. For example, a virtual agent can be associated with a user name, and a virtual agent's contribution can be labeled with that user name. In an alternative embodiment, the contribution of the virtual agent may be presented in a manner that distinguishes the other agent from the virtual agent. For example, a contribution of a virtual agent may be presented in one area of the visual display, while another participant may be presented in another area of the display. Other ways of distinguishing a virtual agent from other participants are also possible, and some additional illustrative examples are discussed in further detail below.

V. 가상 에이전트에 입력을 제공하기 위한 기술 V. Technologies for Providing Input to a Virtual Agent

일부 실시예에 의하면, 가상 에이전트는 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 다자간 담화의 레코드를 사용하도록 프로그래밍될 수 있다. 예를 들면, 일부 실시예에 있어서, 가상 에이전트는 가상 에이전트가 참가자를 위해 무엇을 하도록 요청받는지 결정하거나 해석하도록 가상 에이전트가 인보크되기 이전에 (예컨대, IM 세션 동안) 담화에의 참가자에 의해 무엇이 통신되었는지 분석하도록 프로그래밍될 수 있다. 비-한정적 일례로서, 4명의 친구 그룹은 금요일 만찬 모임을 어디서 할지 논의하고 있었을 수 있고, 가상 에이전트는 그 논의로부터 4명을 위한 테이블이 금요일 저녁에 이용가능한 레스토랑을 추천하는 태스크를 추론하도록 프로그래밍될 수 있다. 일부 추가적 실시예에 있어서, 가상 에이전트는 요청된 태스크에 대해 관련 있을 수 있는 이력 정보를 담화로부터 주워 모으도록 프로그래밍될 수 있다. 예를 들면, 위 레스토랑 추천 예에 있어서, 가상 에이전트는 참가자가 장소, 시간, 요리 유형, 가격 범위 등에 대한 어떠한 선호라도, 또는 가상 에이전트의 추천을 알려줄 수 있는 그 밖의 어떤 것이라도 나타내었는지 결정하기 위해 담화 이력을 분석하도록 프로그래밍될 수 있다. 위에서 논의된 바와 같이, 일부 실시예에 있어서, 가상 에이전트는 추천을 공식화함에 있어서 참가자 중 하나 이상에 대한 선호 정보를 더 사용할 수 있다.According to some embodiments, the virtual agent may be programmed to use a record of the multilateral discourse in formulating a task to be performed and / or performing a task. For example, in some embodiments, a virtual agent may be identified by a participant in a discourse (e.g., during an IM session) before the virtual agent is invoked to determine or interpret what the virtual agent is asked to do for the participant Lt; RTI ID = 0.0 > communicated < / RTI > As a non-limiting example, a group of four friends might have been discussing where to have a Friday dinner meeting and a virtual agent would be programmed to deduce a task for four from the discussion recommending a restaurant available on Friday evening . In some additional embodiments, the virtual agent can be programmed to pick up from the discourse history information that may be relevant for the requested task. For example, in the above restaurant recommendation example, the virtual agent may determine that the participant has indicated any preference for the place, time, type of cuisine, price range, etc., or anything else that can inform the recommendation of the virtual agent Can be programmed to analyze the discourse history. As discussed above, in some embodiments, the virtual agent may further use preference information for one or more of the participants in formulating the recommendation.

가상 에이전트는 가상 에이전트가 담화에 주입되는지에 무관하게 다자간 담화의 레코드를 사용할 수 있다. 일부 실시예에 있어서, 가상 에이전트는, 예컨대, 부가적 정보에 대해 프롬프트하여 요청된 태스크를 더 정의하고 그리고/또는 태스크의 결과 또는 추천을 담화에의 참가자에 제공하기 위해 하나 이상의 참가자와 대화하도록 담화에 주입될 수 있다. 대안의 실시예에 있어서, 가상 에이전트는 요청된 태스크를 전적으로 담화의 맥락 밖에서 (예컨대, 담화가 종결된 후에) 수행할 수 있다.The virtual agent can use a record of the multilateral discourse regardless of whether the virtual agent is injected into the discourse. In some embodiments, the virtual agent may be instructed to talk to one or more participants, for example, to prompt for additional information to further define the requested task and / or to provide the result or recommendation of the task to the participant in the discourse Lt; / RTI > In an alternate embodiment, the virtual agent may perform the requested task entirely outside the context of the discourse (e.g., after the discourse is terminated).

더욱, 가상 에이전트는 가상 에이전트가 담화의 참가자에 의해 인보크되었는지에 무관하게 다자간 담화의 레코드를 사용할 수 있다. 일부 실시예에 있어서, 가상 에이전트는 담화에의 하나 이상의 참가자를 위한 추천을 하도록 담화에 참가하지 않았던 사용자에 의해 인보크될 수 있다. 비-한정적 일례로서, 사용자는 사용자에게 포워딩되었던 2인 이상의 다른 사람들 간 이메일 스트링을 가상 에이전트에 제공할 수 있다. 본 발명이 어떠한 특정 유형의 담화 레코드와의 사용으로도 한정되지 않으므로, 다른 유형의 담화 레코드(예컨대, SMS 스트림, IM 로그, 음성 통화 전사 등)가 또한 사용될 수 있다.Furthermore, the virtual agent can use a record of the multilateral discourse regardless of whether the virtual agent has been invoked by the participant of the discourse. In some embodiments, the virtual agent may be invoked by a user who has not participated in the discourse to make a recommendation for one or more participants to the discourse. As a non-limiting example, a user may provide an email string between two or more other people that have been forwarded to the user to a virtual agent. Other types of discourse records (e.g., SMS streams, IM logs, voice conversations, etc.) may also be used, since the invention is not limited to use with any particular type of discourse record.

일부 실시예에 의하면, 가상 에이전트는 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 사용자의 활동 이력을 사용하도록 프로그래밍될 수 있다. 가상 에이전트를 인보크하기 이전 사용자의 활동은 맥락 정보를 가상 에이전트에 제공할 수 있다. 예컨대, 일부 실시예에 있어서, 가상 에이전트는 가상 에이전트가 사용자에게 어떻게 도움을 줄 수 있는지 결정 또는 해석하기 위해 (예컨대, 가상 에이전트를 인보크하기 이전 5분, 10분, 15분, 30분, 1시간 등 내에) 사용자에 의해 최근 액세스된 컨텐트를 분석하도록 프로그래밍될 수 있다. 비-한정적 일례로서, 레스토랑 추천을 하도록 사용자에 의해 인보크될 때, 가상 에이전트는 사용자가 어떤 유형의 음식에 관심이 있을 수 있는지 추론하려는 시도로 사용자에 의해 최근 액세스된 레스토랑 후기를 분석할 수 있다. 사용자가 특정 캘린더 약속을 잡거나, 특정 지인과 통화하거나, 특정 구입을 하는 등과 같은 다른 유형의 사용자 활동이 또한 가상 에이전트에 의해 고려될 수 있다.According to some embodiments, the virtual agent may be programmed to use the user's activity history in formulating a task to be performed and / or performing a task. The activity of the user prior to invoking the virtual agent may provide contextual information to the virtual agent. For example, in some embodiments, a virtual agent may be used to determine or interpret how a virtual agent can assist a user (e.g., 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 minute Time, etc.) to analyze the content recently accessed by the user. As a non-limiting example, when invoked by a user to make a restaurant recommendation, the virtual agent can analyze recently accessed restaurant reviews by the user in an attempt to infer what type of food the user may be interested in . Other types of user activity may also be considered by the virtual agent, such as a user making a specific calendar appointment, talking to a specific acquaintance, making a particular purchase, and so on.

일부 실시예에 의하면, 가상 에이전트는 수행될 태스크를 공식화하는 것 및/또는 태스크를 수행하는 것의 편의를 도모하기 위해 이전 가상 에이전트 대화의 레코드를 사용하도록 프로그래밍될 수 있다. 일례의 시나리오에 있어서, 사용자는 앞서 수행된 태스크의 하나 이상의 측면을 수정하도록 가상 에이전트를 인보크하기를 바랄 수 있다. 예를 들면, 사용자는 특정 근린 내 레스토랑을 추천하도록 동일 가상 에이전트 또는 다른 가상 에이전트를 앞서 인보크하였을 수 있고, 추후, 모든 다른 상세(예컨대, 일자, 시간, 음식 유형, 참석자 목록 등)가 동일하게 남아있으면서, 다른 근린으로 변경하기를 바랄 수 있다. 따라서, 일부 실시예에 있어서, 사용자는, 장소를 변경하라는 부가적 명령과, 이전 대화의 레코드를 가상 에이전트에 제공할 수 있다. 이러한 방식으로, 사용자는 가상 에이전트와의 이전 대화를 레버리징(leverage)할 수 있을 수 있고 가상 에이전트에 제공될 모든 정보를 재생성하거나 수동으로 입력할 필요가 없다.According to some embodiments, the virtual agent may be programmed to use the record of the previous virtual agent conversation to facilitate the formulation of the task to be performed and / or the performance of the task. In an exemplary scenario, a user may wish to invoke a virtual agent to modify one or more aspects of a previously performed task. For example, a user may have previously invited the same virtual agent or other virtual agent to recommend a particular neighborhood restaurant, and later all other details (e.g., date, time, type of food, attendee list, etc.) You may wish to remain and change to another neighborhood. Thus, in some embodiments, the user can provide the virtual agent with a record of the previous conversation and an additional command to change the location. In this way, the user can leverage previous conversations with the virtual agent and does not need to regenerate or manually enter all the information to be provided to the virtual agent.

가상 에이전트는 가상 에이전트와 하나 이상의 사용자 간 전 논의 스레드, 또는 가상 에이전트의 이전 추천 및/또는 한 가지 이상의 핵심 정보가 들어있는 초본과 같은, 이전 대화의 어떠한 적합한 유형의 레코드라도 분석하도록 프로그래밍될 수 있음을 인식하여야 한다. 저장되고 가상 에이전트를 "재시작"하도록 사용될 수 있는 레코드 유형의 예는 아래에 더 상세히 논의된다.The virtual agent can be programmed to analyze any suitable type of record of the previous conversation, such as a previous discussion between the virtual agent and one or more users, or a previous recommendation of the virtual agent and / or an extract containing one or more key information . Examples of record types that can be stored and used to "restart" a virtual agent are discussed in further detail below.

VIVI . 가상 에이전트 추천을 알려주기 위한 기술. Technology to inform virtual agent recommendation

일부 실시예에 의하면, 가상 에이전트는 적어도 2인의 개인 간 관계를 사용하여 추천을 알려주도록 프로그래밍될 수 있다. 예를 들면, 다수의 개인을 위한 추천을 하라는 요청에 응답하여, 가상 에이전트는 개인들이 친구인지, 친척인지, 사업상 지인인지 등을 결정하고 결정된 관계를 사용하여 추천의 하나 이상의 측면을 알려주도록 프로그래밍될 수 있다. 예를 들면, 위에서 논의된 레스토랑 검색 예에 있어서, 가상 에이전트는 사업상 만찬을 위한 품격 있는 레스토랑, 부부 만찬을 위한 낭만적 레스토랑, 모자 만찬을 위해 유행 타지 않거나 시끌벅적한 레스토랑 등과 같이, 결정된 관계에 기반하여 적합한 유형의 레스토랑을 선택하도록 프로그래밍될 수 있다.According to some embodiments, the virtual agent may be programmed to inform the recommendation using at least two interpersonal relationships. For example, in response to a request to make a recommendation for multiple individuals, the virtual agent may be programmed to determine whether individuals are friends, relatives, business partners, etc., and to use one or more aspects of the recommendation . For example, in the restaurant search example discussed above, the virtual agent may be based on a determined relationship, such as a classy restaurant for a business dinner, a romantic restaurant for a couple dinner, a non-trendy or loud restaurant for a hat dinner And may be programmed to select a suitable type of restaurant.

일부 실시예에 있어서, 가상 에이전트는 일인 이상의 개인의 위치 정보를 사용하여 추천을 알려주도록 프로그래밍될 수 있다. 비-한정적 일례로서, 가상 에이전트는 그룹 내 다수의 개인에 대한 위치 정보(예컨대, 전역 측위 시스템 또는 GPS, 좌표)를 획득하고 그 정보를 사용하여 모임 장소를 어느 적합한 방식으로, 예컨대, 중심에 위치하는 곳, (예컨대, 모임 장소가 그룹 내 각각의 개인으로부터 임계 거리에 불과한지에 기반하여 결정되는 바와 같이) 가능한 많은 개인들에 편리하게 위치하는 곳 등을 선택하도록 프로그래밍될 수 있다.In some embodiments, the virtual agent may be programmed to use the location information of one or more individuals to inform the recommendation. As a non-limiting example, a virtual agent obtains location information (e.g., global positioning system or GPS, coordinates) for multiple individuals in a group and uses the information to locate the meeting place in any suitable manner, Where it is conveniently located in as many individuals as possible (e.g., as determined based on whether the meeting location is only a critical distance from each individual in the group), and the like.

일부 실시예에 의하면, 가상 에이전트는 가상 에이전트를 인보크하였던 사용자(들) 이외의 개인에 관한 정보를 사용하여 추천을 알려주도록 프로그래밍될 수 있다. 그러한 개인에 관한 어떠한 정보라도 사용될 수 있으며, 그 예는 좋아함, 싫어함, 신체적 특성, 성격, 학력, 직업 등 또는 그 어느 적합한 조합을 포함한다. 예컨대, 사용자는 그의 어머니를 위한 생일 선물을 추천하도록 가상 에이전트를 인보크할 수 있고, 연령, 선호, 취미 등과 같은, 그의 어머니에 관한 한 가지 이상의 정보를 가상 에이전트에 입력으로서 제공할 수 있다.According to some embodiments, the virtual agent may be programmed to use the information about the individual other than the user (s) that invoked the virtual agent to inform the recommendation. Any information about such an individual can be used, examples of which include likes, dislikes, physical characteristics, personality, educational background, occupation, or any suitable combination thereof. For example, a user may invoke a virtual agent to recommend a birthday present for his mother, and may provide one or more pieces of information about his mother as input to the virtual agent, such as age, preferences, hobbies, and the like.

일부 실시예에 의하면, 가상 에이전트는 가상 에이전트를 인보크하였던 사용자(들) 이외의 개인의 위치 정보를 사용하여 추천을 알려주도록 프로그래밍될 수 있다. 비-한정적 일례로서, 사용자는 친구의 집에서의 만찬 파티에 가고 있는 중일 수 있고 그의 현재 위치(예컨대, 현재 GPS 좌표에 기반함)와 목적지(예컨대, 친구의 집 주소에 기반함) 사이 와인 가게를 찾도록 가상 에이전트에 요청할 수 있다. According to some embodiments, the virtual agent may be programmed to use the location information of an individual other than the user (s) that invoked the virtual agent to inform the recommendation. As a non-limiting example, a user may be going to a dinner party at a friend's home, and a wine shop between his current location (e.g., based on current GPS coordinates) and a destination (e.g., based on a friend's home address) To the virtual agent.

가상 에이전트는 어떠한 적합한 방식으로라도 하나 이상의 관련 개인에 관한 정보에 액세스할 수 있다. 예컨대, 일부 실시예에 있어서, 그러한 정보는 가상 에이전트를 인보크하였던 사용자(들)에 의해 가상 에이전트에 제공될 수 있다. 대안으로, 가상 에이전트는 하나 이상의 다른 소스로부터 그러한 정보를 획득하도록 프로그래밍될 수 있다. 예컨대, 일부 실시예에 있어서, 가상 에이전트는, 캘린더 애플리케이션에 의해 저장된 스케줄링 및 연락처 정보, 가상 에이전트 또는 어떤 다른 애플리케이션에 의해 저장된 사용자 선호 정보, 웹 브라우징 이력 등과 같은, 사용자의 디바이스 상에 로컬 저장된 정보에 액세스하도록 프로그래밍될 수 있다. 일부 실시예에 있어서, 가상 에이전트는 하나 이상의 네트워크를 통하여 원격 디바이스로부터의 정보에 액세스하도록 더 프로그래밍될 수 있다. 예컨대, 일부 실시예에 있어서, 선호 정보는 제3자 서비스 제공자(예컨대, 사용자가 제품 및/또는 서비스의 후기를 남길 수 있게 하는 소셜 네트워크 사이트)로부터 수집될 수 있다.The virtual agent can access information about one or more related individuals in any suitable manner. For example, in some embodiments, such information may be provided to the virtual agent by the user (s) who invoked the virtual agent. Alternatively, the virtual agent may be programmed to obtain such information from one or more other sources. For example, in some embodiments, the virtual agent may store information stored locally on the user's device, such as scheduling and contact information stored by the calendar application, user preference information stored by a virtual agent or some other application, web browsing history, Lt; / RTI > In some embodiments, the virtual agent may be further programmed to access information from a remote device via one or more networks. For example, in some embodiments, the preference information may be collected from a third party service provider (e.g., a social network site that allows a user to leave a product and / or a service later).

일부 실시예에 의하면, 가상 에이전트는 사용자에 대한 프로파일을 유지하고 있도록 프로그래밍될 수 있다. 프로파일은 사용자와의 대화에서 가상 에이전트에 의해 사용될 수 있는 정보를 저장하고 있을 수 있다. 사용자와 가상 에이전트의 이전 대화로부터 유도된 정보(예컨대, 사용자에 의해 표현된 선호, 사용자에 의해 이루어진 결정, 특정 유형의 결정을 하도록 사용자에 의해 요청된 정보 등), 제3자 서비스 제공자로부터 수집된 정보, 또는 사용자를 위해 수행될 태스크를 공식화함에 있어서 또는 태스크를 수행함에 있어서 가상 에이전트에 유용할 수 있는 어느 다른 정보와 같은, 어떠한 적합한 유형의 정보라도 저장될 수 있다. 비-한정적 일례로서, 사용자는 제3자 서비스 제공자(예컨대, Facebook(등록상표), Yelp(등록상표), OpenTable(등록상표), Rotten Tomatoes(등록상표) 등)에 대한 사용자 계정으로부터 정보를 풀링하도록 (예컨대, 사용자 이름 및 비밀번호와 같은 필요한 크리덴셜을 제공함으로써) 가상 에이전트에 권한을 부여할 수 있다. 가상 에이전트는 그러한 계정으로부터 검색된 정보(예컨대, 레스토랑, 제품, 영화 등에 관하여 사용자에 의해 작성된 후기)에 기반하여 사용자의 선호를 학습하고 그에 따라 사용자의 프로파일을 업데이트할 수 있다. 프로파일 내 정보의 정확성을 보장하기 위하여, 일부 실시예에 있어서, 사용자는 가상 에이전트에 의해 입력된 업데이트를 검토하고 어떠한 소망의 조절이라도 하도록 허용될 수 있다.According to some embodiments, the virtual agent may be programmed to maintain a profile for the user. A profile may be storing information that can be used by a virtual agent in a conversation with a user. Information derived from previous conversations of the user and the virtual agent (e.g., preferences expressed by the user, decisions made by the user, information requested by the user to make a particular type of decision, etc.) Any suitable type of information may be stored, such as information, or any other information that may be useful to the virtual agent in formulating a task to be performed for a user or in performing a task. As a non-limiting example, a user may pool information from a user account for a third party service provider (e.g., Facebook, Yelp, OpenTable, Rotten Tomatoes, etc.) (E.g., by providing the necessary credentials, such as a user name and password). The virtual agent can learn the user's preferences based on information retrieved from such accounts (e.g., reviews written by the user regarding restaurants, products, movies, etc.) and update the user's profile accordingly. To ensure the accuracy of the information in the profile, in some embodiments, the user may be allowed to review the update entered by the virtual agent and make any desired adjustments.

VIIVII . 가상 에이전트 대화의 레코드를 저장하기 위한 기술. Techniques for storing records of virtual agent conversations

발명자는 더욱 관용적 시스템이 가상 에이전트와 사용자 간 대화의 어떠한 레코드도 유지하고 있지 않음을 인지 및 인식하였다. 태스크의 완료시, 사용자는 단순히 가상 에이전트로부터 빠져나가거나 유예한다. 태스크를 가상 에이전트를 관여시키는 것으로서 식별하는 어떠한 레코드도 남겨두지 않는다. 예를 들면, 가상 에이전트가 특정 추천을 하였음을 나타내는 어떠한 레코드도 남겨두지 않고, 태스크를 공식화하고 그리고/또는 수행함에 있어서 가상 에이전트와 사용자 간 교환된 정보에 대한 어떠한 레코드도 남겨두지 않는다.The inventor perceived and recognized that a more tolerant system did not maintain any record of the conversation between the virtual agent and the user. Upon completion of the task, the user simply escapes or deferred from the virtual agent. It does not leave any records identifying the task as involving the virtual agent. For example, it does not leave any records indicating that the virtual agent has made a recommendation, nor does it leave any records of information exchanged between the virtual agent and the user in formulating and / or performing the task.

일부 실시예에 의하면, 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 레코드가 저장될 수 있다. 결과로서, 어떤 장래 시간에서의 사용자가 가상 에이전트와의 대화의 소정 측면을 다시 불러오기를 바라면, 그 대화에 대한 레코드가 식별 및 검색될 수 있다. 일례의 시나리오에 있어서, 사용자는 가상 에이전트의 추천을 친구에게 포워딩하기를 바랄 수 있다. 다른 일례의 시나리오에 있어서, 사용자는 유사하지만 하나 이상의 변형이 있는 태스크를 수행하기를 바랄 수 있다. 예컨대, 사용자는, 그룹이 다른 유형의 요리를 먹어보고 싶어하는 것을 제외하고는 이전 모임과 유사한 시간 및 장소에서 동일 친구 그룹을 위한 레스토랑을 찾기를 바랄 수 있다. 이전 대화의 레코드를 갖는 것은 가상 에이전트가 추천을 하는 것의 편의를 도모할 수 있다. 예컨대, 일부 실시예에 있어서, 사용자는, 대화를 재생성하거나 그렇지 않으면 가상 에이전트에 제공되기를 소망하는 모든 정보를 수동으로 입력할 필요 없이, (예컨대, 정보를 부가, 수정 및/또는 제거함으로써) 이전 대화의 레코드를 수정하고 수정된 레코드를 가상 에이전트에 제공하여 새로운 추천을 요청할 수 있다. 비-한정적 일례로서, 사용자는 어느 소망 시점에서 가상 에이전트와의 대화를 "재시작"하도록 레코드의 종단 부분을 제거할 수 있다.According to some embodiments, a record for a conversation between a virtual agent and one or more users may be stored. As a result, if the user at some future time wishes to recall certain aspects of the conversation with the virtual agent, a record for that conversation can be identified and retrieved. In an exemplary scenario, a user may wish to forward a recommendation of a virtual agent to a friend. In another exemplary scenario, a user may wish to perform a task that is similar but has more than one variant. For example, a user may wish to find a restaurant for the same group of friends at a time and place similar to the previous meeting, except that the group would like to eat another type of dish. Having a record of the previous conversation can facilitate the recommendation of the virtual agent. For example, in some embodiments, a user may create a previous conversation (e.g., by adding, modifying, and / or removing information) without recreating the conversation or having to manually enter all of the information that would otherwise be provided to the virtual agent And provide a modified record to the virtual agent to request a new recommendation. As a non-limiting example, a user may remove an end portion of a record to "restart " a conversation with a virtual agent at any desired point in time.

이전 대화의 레코드는 어떠한 적합한 형태라도 될 수 있다. 가상 에이전트가 담화에 주입되는 일부 실시예에 의하면, 모든 사람 참가자와 더불어 가상 에이전트에 의해 투고된 모든 것을 포함하는 전 논의 스레드(예컨대, SMS 스트링, IM 로그, 이메일 스트링, 음성 채팅 전사 등)가 저장될 수 있다. 그러한 이력은 담화가 통하여 일어난 메시징 애플리케이션에 의해, 가상 에이전트에 의해 별개로, 또는 어떤 다른 적합한 프로세스를 통하여 저장될 수 있다.The record of the previous conversation can be any suitable form. According to some embodiments where the virtual agent is injected into the discourse, all the discussion threads (e.g., SMS strings, IM logs, email strings, voice chat transcriptions, etc.) containing everything contributed by the virtual agent . Such history may be stored by the messaging application through the discourse, separately by the virtual agent, or via some other suitable process.

가상 에이전트와의 대화의 레코드 및/또는 가상 에이전트 액션의 레코드를 저장하는 것과 관련된 실시예는 다자간 담화, 또한 다자간 가상 에이전트 액션과의 사용으로 한정되지 않음을 인식하여야 한다. 일부 실시예에서는, 단일 사용자와 가상 에이전트 간 대화의 레코드 및/또는 단일 사용자에 대한 가상 에이전트 액션의 레코드가 저장될 수 있다.It should be appreciated that embodiments relating to storing records of conversations with a virtual agent and / or records of a virtual agent action are not limited to use with multilaterals and also with multi-party virtual agent actions. In some embodiments, a record of a conversation between a single user and a virtual agent and / or a record of a virtual agent action for a single user may be stored.

일부 실시예에 의하면, 가상 에이전트와의 전 대화 이력에 부가하여 또는 그 대신에 영수증이 저장될 수 있다. 영수증은 가상 에이전트와 하나 이상의 사용자 간 대화와 관련된 어떠한 적합한 정보라도 포함할 수 있다. 일례에 있어서, 영수증은 대화를 가상 에이전트를 관여시키는 것으로 식별할 수 있다. 부가적으로, 영수증은 다른 식별 정보(예컨대, 대화의 일자 및 시간, 대화에 참가하였던 적어도 하나의 사용자에 대한 사용자 이름 또는 식별자 등) 및 대화의 결과의 표시(예컨대, 가상 에이전트에 의해 이루어진 추천)를 포함할 수 있다. 일부 추가적 실시예에 있어서, 영수증은, 가상 에이전트에 의해 이루어진 추천의 후기와 같은, 적어도 일인의 개인에 의해 제공된 정보를 포함할 수 있다. 후기는 추천의 결과를 초래한 대화에 참가하였을 수도 있고 그렇지 않았을 수도 있는 개인에 의해 제공될 수 있다. 본 발명이 이에 관하여 한정되지는 않으므로, 다른 유형의 정보가 또한 영수증에 저장될 수 있다.According to some embodiments, the receipt may be stored in addition to or in place of the entire conversation history with the virtual agent. The receipt may include any suitable information related to the conversation between the virtual agent and one or more users. In one example, the receipt can identify the conversation as involving a virtual agent. Additionally, the receipt may include other identifying information (e.g., date and time of the conversation, user name or identifier for at least one user who has participated in the conversation, etc.) and an indication of the outcome of the conversation (e.g., . ≪ / RTI > In some additional embodiments, the receipt may include information provided by at least one person, such as the end of the recommendation made by the virtual agent. The latter can be provided by individuals who may or may not have participated in a dialogue that resulted in the recommendation. As the present invention is not limited in this regard, other types of information may also be stored on the receipt.

가상 에이전트 대화에 대한 영수증이 전 대화 이력과는 별개로 저장되는 일부 실시예에 의하면, 영수증 및 전 이력 양자가 가상 에이전트와의 동일 대화와 관련됨을 나타내도록 영수증과 전 대화 이력 간 링크가 생성될 수 있다. 비-한정적 일례로서, 가상 에이전트는 대화가 통하여 일어난 메시징 애플리케이션에 의해 별개로 저장된 담화 이력으로의 링크를 갖는 대화에 대한 영수증을 저장할 수 있다. 이것은 사용자가 가상 에이전트와의 과거 대화와 관련된 정보를 검색하는 것의 편의를 도모할 수 있다. 예를 들면, 일부 실시예에 있어서, 사용자는 특정 대화를 식별하도록 영수증을 검색하고 식별된 영수증과 저장된 링크를 사용하여 대응하는 전 담화 이력을 검색할 수 있다. 전 담화 이력이 영수증보다 더 많은 잡음(즉, 관련 없는 정보)을 포함하고 있을 수 있기 때문에, 영수증을 검색하는 것이 더 효율적이고 그리고/또는 정확할 수 있다. 그렇지만, 모든 실시예가 이에 관하여 한정되지는 않고, 일부는 영수증에 부가하여 또는 그 대신에 전 담화 이력을 검색 가능하게 할 수 있다.In some embodiments where the receipt for the virtual agent conversation is stored separately from the entire conversation history, a link may be created between the receipt and the conversation history so that both the receipt and the history are associated with the same conversation with the virtual agent have. As a non-limiting example, a virtual agent may store receipts for conversations that have links to conversation histories stored separately by the messaging application that occurred through the conversation. This may facilitate the user in retrieving information related to past conversations with the virtual agent. For example, in some embodiments, the user may search the receipt to identify a particular conversation and retrieve the corresponding conversation history using the identified receipt and stored link. Since the entire conversation history may contain more noise (i.e., irrelevant information) than the receipt, it may be more efficient and / or accurate to retrieve the receipt. However, not all embodiments are limited in this respect, and some may make the history of the conversation searchable in addition to or instead of the receipt.

일부 실시예에 의하면, 가상 에이전트 대화에 대한 영수증은 관련 있는 개인에 정보를 통신하도록 사용될 수 있다. 예컨대, 사용자는 (예컨대, 친목회에 대해) 일인 이상의 개인을 위한 추천을 요청하도록 가상 에이전트와 대화할 수 있고, 추천의 세부 사항(예컨대, 장소, 시간, 드레스 코드, 참석자 목록 등)을 그에게 알려주도록 대화의 영수증으로의 액세스를 각각의 관련 있는 개인에게 부여할 수 있다. 이것은 어떠한 적합한 방식으로라도, 예컨대, 영수증의 사본을 개인에 보냄으로써, 영수증으로의 링크를 개인에 보냄으로써, 또는 어느 다른 적합한 방식으로 행해질 수 있다.According to some embodiments, a receipt for a virtual agent conversation can be used to communicate information to an associated individual. For example, a user may interact with a virtual agent to request a recommendation for one or more individuals (e.g., for a social gathering) and notify him of details of the recommendation (e.g., location, time, dress code, attendee list, etc.) Access to the receipt of the conversation may be given to each relevant individual. This can be done in any suitable manner, for example by sending a copy of the receipt to the individual, by sending a link to the receipt to the individual, or in any other suitable manner.

일부 추가적 실시예에 있어서, 영수증에 저장된 정보는 하나 이상의 진행중 활동의 상태에 대해 일인 이상의 사람들이 알림을 받게 유지하도록 실시간으로 업데이트될 수 있다. 예를 들면, 위에서 논의된 레스토랑 검색 예에서는, 도착 추정 시간(ETA)이 하나 이상의 참석자에 대해 유지되고 또한 참석자일 수도 있는 (그럴 필요는 없더라도) 개인에 이용가능하게 될 수 있다. 어느 참석자에 대한 ETA라도 참석자의 현재 위치 및 가상 에이전트에 의해 추천된 레스토랑의 위치에 적어도 일부 기반하여 계산될 수 있다. 이러한 방식으로, 어느 참석자라도 영수증의 가장 최신 사본을 불러냄으로써 다른 참석자가 언제로 예상되는지 알아낼 수 있다.In some additional embodiments, the information stored in the receipt may be updated in real time to keep one or more people informed about the status of one or more in-progress activities. For example, in the restaurant retrieval example discussed above, an arrival estimate time (ETA) may be made available to an individual that is maintained (and need not be) for one or more attendees and may also be an attendee. An ETA for an attendee can be calculated based at least in part on the current location of the attendee and the location of the restaurant recommended by the virtual agent. In this way, any participant can find out when other attendees are expected by calling the most recent copy of the receipt.

ETA는 어떠한 적합한 맥락(예컨대, 사업상 미팅, 수업, 파티 등)에서라도 사용될 수 있으므로, 위에서 논의된 레스토랑 예는 단지 예시일 뿐이다. 더욱, ETA는 영수증에서 업데이트될 수 있는 유용한 정보의 일례일 뿐이다. ETA에 부가하여 또는 그 대신에 다른 유형의 정보가 저장 및 업데이트될 수 있다. 그러한 정보의 비-한정적 예는 위치 정보(예컨대, 미팅을 위한 회의실 번호), (예컨대, 미팅에 참석하라는 초대를 수락하거나 거절한) 참석자 상황 정보, 날씨 정보 등을 포함한다.Since the ETA can be used in any appropriate context (e.g., business meeting, class, party, etc.), the restaurant example discussed above is merely an example. Moreover, the ETA is only one example of useful information that can be updated on receipts. Other types of information may be stored and updated in addition to or instead of the ETA. Non-limiting examples of such information include location information (e.g., meeting room number for the meeting), attendee status information (e.g., accepting or rejecting an invitation to attend the meeting), weather information, and the like.

더더욱, 정보를 업데이트하는 것과 관련된 본 발명의 태양이 그렇게 한정되지는 않으므로, 가상 에이전트 대화와 관련된 ETA 및/또는 다른 유용한 정보는 영수증을 통하는 것 이외의 방식으로 저장 및 업데이트될 수 있다.Furthermore, since the aspects of the present invention relating to updating information are not so limited, the ETA and / or other useful information associated with the virtual agent conversation may be stored and updated in a manner other than via a receipt.

VIIIVIII . 다수의 가상 에이전트 간 협업. Collaboration between multiple virtual agents

일부 실시예에 의하면, 다수의 가상 에이전트는 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 서로 대화할 수 있다. 예를 들면, 일부 실시예에 있어서, 각각의 가상 에이전트는 그룹 내 서로 다른 사용자와 연관될 수 있고 각각의 사용자와 연관된 서로 다른 디바이스 상에서 실행될 수 있다. 이러한 방식으로, 각각의 가상 에이전트는, 연락처 정보(예컨대, 물리적 주소, 전화 번호, 이메일 및/또는 다른 가상 주소 등), 위치 정보(예컨대, 현재 위치, 예컨대 임계 시간 길이에 기반하여 결정되는 바와 같은, 최근에 방문한 장소, 예컨대 특정 시간 간격 동안 임계 방문 수에 의해 결정되는 바와 같은, 자주 방문한 장소 등), (예컨대, 활동 이력, 후기 등으로부터 주워 모은) 선호 정보, 및/또는 어느 다른 적합한 정보와 같은, 각각의 사용자에 관한 다양한 유형의 정보로의 액세스를 가질 수 있다.According to some embodiments, multiple virtual agents may communicate with each other in formulating a task to be performed and / or in performing a task. For example, in some embodiments, each virtual agent may be associated with a different user in the group and executed on different devices associated with each user. In this manner, each virtual agent can be configured to communicate with another virtual agent, such as, for example, based on contact information (e.g., physical address, telephone number, email and / or other virtual address, etc.), location information , Frequently visited places (e.g., as determined by the number of critical visits during a particular time interval), preference information (e.g., collected from activity history, reviews, etc.), and / May have access to various types of information about the same user.

일부 실시예에 있어서, 가상 에이전트는 각각의 사용자에 의해 설정된 제약 내에서 서로 정보를 공유하도록 프로그래밍될 수 있다. 그러한 제약은 프라이버시 이유 또는 어느 다른 이유로 확립될 수 있다. 예컨대, 사용자는 여러 다른 사람들 그룹과 여러 다른 유형의 정보를 공유하기를 바랄 수 있다. 일부 실시예에 있어서, 사용자는 특정 정보(예컨대, 선호 및/또는 위치 정보)가, 그룹의 모든 구성원이 신뢰된 친구 서클에 속하는 경우에만, 또는 어느 다른 소망의 제약을 적용함으로써, 그룹에 이용가능하게 할 수 있다.In some embodiments, the virtual agent can be programmed to share information with one another within the constraints set by each user. Such constraints may be established for privacy reasons or some other reason. For example, a user may wish to share several different types of information with different groups of people. In some embodiments, the user may be able to use the group information only if the particular information (e.g., preference and / or location information) belongs to a trusted circle of friends or to all other members of the group, .

일부 추가적 실시예에 있어서, 가상 에이전트는, 가상 에이전트가 서로 얼마나 많은 정보를 공유하는지에 무관하게, 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 서로 협업하도록 프로그래밍될 수 있다. 예를 들면, 추천을 함에 있어서, 가상 에이전트는 각각의 사용자의 선호 및/또는 제약에 기반하여 타협에 도달하게 서로 교섭하도록 프로그래밍될 수 있다. 그러한 교섭을 수행함에 있어서, 가상 에이전트는, 제안을 하거나, 수락하거나 또는 거절하도록 가상 에이전트에 의해 사용된 기저 정보를 다른 가상 에이전트에 누설하거나 또는 하지 않고, 다른 가상 에이전트에 제안을 하거나, 또는 다른 가상 에이전트에 의해 이루어진 제안을 수락 또는 거절할 수 있다.In some additional embodiments, the virtual agent can be programmed to collaborate with each other in formulating tasks to be performed and / or performing tasks, regardless of how much information the virtual agents share with each other. For example, in making a recommendation, the virtual agent may be programmed to negotiate with each other to arrive at a compromise based on the preferences and / or constraints of each user. In performing such negotiations, the virtual agent may make suggestions to other virtual agents, with or without leaking the base information used by the virtual agent to the other virtual agent to make, accept, or reject the offer, You can accept or decline a proposal made by an agent.

일부 추가적 실시예에 있어서, 가상 에이전트는, 태스크가 다자간 담화로부터 생겼는지에 무관하게, 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 서로 협업하도록 프로그래밍될 수 있다. 예를 들면, 일부 실시예에 있어서, 제1 사용자와 연관된 가상 에이전트는 (예컨대, 제1 사용자의 요청시) 제2 사용자와 연관된 가상 에이전트로부터 제2 사용자에 관한 정보를 획득한다. 어떠한 적합한 유형의 정보라도 이러한 방식으로 획득될 수 있다. 비-한정적 일례로서, 제1 사용자와 연관된 가상 에이전트는 제2 사용자와 연관된 가상 에이전트로부터, 어느 가상 에이전트도 제1 사용자와 제2 사용자 간 미팅을 주선함에 있어서 도움을 주지 않았더라도, 제2 사용자에 관한 위치 및/또는 ETA 정보를 요청할 수 있다.In some additional embodiments, the virtual agent can be programmed to collaborate with each other in formulating tasks to be performed and / or performing tasks, regardless of whether the tasks originate from multilateral discourse. For example, in some embodiments, a virtual agent associated with a first user obtains information about a second user from a virtual agent associated with the second user (e.g., at the request of the first user). Any suitable type of information can be obtained in this manner. As a non-limiting example, a virtual agent associated with a first user may be associated with a second user, even though no virtual agent has assisted in organizing a meeting between the first user and the second user And / or ETA information.

일부 실시예에 의하면, 여러 다른 디바이스 상에서 실행 중인 다수의 가상 에이전트는, 태스크가 단일 사용자를 위해 수행되는지 또는 다수의 사용자를 위해 수행되는지에 무관하게, 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 서로 대화할 수 있다. 비-한정적 일례로서, 사용자 디바이스 상에서 실행 중인 가상 에이전트는, 예컨대, 서버-측 가상 에이전트에 정보를 포워딩하고 그로부터 추천을 수신함으로써 (예컨대, 클라우드 내) 서버 상에서 실행 중인 가상 에이전트와 대화할 수 있다. 서로 협업하는 다수의 가상 에이전트와 관련된 본 발명의 태양이 가상 에이전트 간 어느 특정 배열로도 한정되지 않으므로, 서버-측 가상 에이전트는 단일 클라이언트-측 가상 에이전트(예컨대, 단일 사용자를 위한 추천을 할 때) 또는 다수의 클라이언트-측 가상 에이전트(예컨대, 다수의 사용자를 위한 추천을 할 때)와 대화할 수 있다.According to some embodiments, a plurality of virtual agents running on different devices may be used in formulating a task to be performed and / or performing a task, regardless of whether the task is performed for a single user or multiple users. You can communicate with each other in performing. As a non-limiting example, a virtual agent running on a user device may talk to a virtual agent running on the server, for example, by forwarding information to and receiving recommendations from the server-side virtual agent (e.g., in the cloud). As the aspect of the present invention relating to a plurality of virtual agents collaborating with each other is not limited to any particular arrangement between virtual agents, the server-side virtual agent can be a single client-side virtual agent (e.g., when making a recommendation for a single user) Or a plurality of client-side virtual agents (e.g., when making recommendations for multiple users).

IXIX . 예시적 . Illustrative 실시예의Example 상세한 논의 A detailed discussion

개시된 개념이 어느 특정 구현 방식으로도 한정되지 않으므로, 위에서 도입되고 아래에 더 상세히 논의되는 개념은 수많은 방식 중 어느 것으로도 구현될 수 있음을 인식하여야 한다. 일부 예시적 구현이 아래에 설명된다. 그렇지만, 본 명세서에 개시된 당해 사항은, 다른 구현도 가능하므로, 다양한 도면에서 도시되고 아래에 설명되는 특정 구현으로 한정되지는 않는다. 특정 구현 및 애플리케이션의 아래 예는 오로지 예시적 목적으로만 제공된다.It is to be appreciated that the concepts disclosed above are not limited to any particular implementation, so that the concepts introduced above and discussed in greater detail below can be implemented in any of a number of ways. Some exemplary implementations are described below. However, the subject matter disclosed herein is not limited to the particular implementations illustrated in the various figures and described below, as other implementations are possible. The following examples of specific implementations and applications are provided for illustrative purposes only.

도 1은 본 명세서에 개시된 개념이 구현될 수 있는 일례의 시스템(100)을 도시하고 있다. 본 명세서에 개시된 개념은 시스템(100) 상에서 구현되는 것으로 한정되지 않고 어떠한 적합한 컴퓨터 시스템 상에서라도 구현될 수 있으므로, 시스템(100)은 단지 예시일 뿐이다. 시스템(100)은 모바일 폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터 또는 어떠한 다른 컴퓨팅 디바이스라도 될 수 있는 전자 디바이스(110)를 포함한다. 시스템(100)은 또한 디바이스(110)가 통신할 수 있는 어떠한 수의 부가적 전자 디바이스라도 포함할 수 있다. 도 1에 도시된 예에 있어서, 시스템(100)은 모바일 폰(130) 및 태블릿 컴퓨터(140)를 포함하지만, 이들 디바이스는 단지 예시일 뿐이다.FIG. 1 illustrates an exemplary system 100 in which the concepts disclosed herein may be implemented. The concepts disclosed herein are not limited to being implemented on the system 100 and may be implemented on any suitable computer system so that the system 100 is merely exemplary. The system 100 includes an electronic device 110 that may be a mobile phone, tablet computer, laptop computer, desktop computer, or any other computing device. The system 100 may also include any number of additional electronic devices with which the device 110 may communicate. In the example shown in FIG. 1, the system 100 includes a mobile phone 130 and a tablet computer 140, but these devices are merely illustrative.

전자 디바이스(110), 모바일 폰(130) 및 태블릿 컴퓨터(140)는 하나 이상의 네트워크(들)(150)를 통하여 서로 통신하도록 구성될 수 있다. 예컨대, 전자 디바이스(110)는 네트워크(들)(150)를 통하여 데이터를 송신 및/또는 수신하도록 구성된 하나 이상의 통신 인터페이스(들)(112)를 포함할 수 있다. 본 발명의 태양이 어떠한 특정 네트워크 구현으로도 한정되지 않고 어떠한 유형의 네트워크(들)와도 사용될 수 있으므로, 어떠한 적합한 통신 프로토콜 또는 통신 프로토콜 조합이라도 사용될 수 있다.Electronic device 110, mobile phone 130 and tablet computer 140 may be configured to communicate with one another via one or more network (s) For example, the electronic device 110 may include one or more communication interface (s) 112 configured to transmit and / or receive data via the network (s) Any suitable communication protocol or combination of communication protocols may be used as the aspects of the present invention are not limited to any particular network implementation and may be used with any type of network (s).

도 1에 도시된 예에 있어서, 전자 디바이스(110)는 하나 이상의 사용자 인터페이스(들)(114)를 통하여 사용자(102)로부터 입력을 수신하고 그리고/또는 그에 출력을 제공하도록 구성될 수 있다. 사용자 인터페이스(들)(114)는 키보드 인터페이스, 터치스크린 인터페이스, 음성 인터페이스, 그 어떠한 조합(예컨대, 다중 모드 인터페이스), 및/또는 어떠한 다른 사용자 인터페이스라도 포함할 수 있다. 예컨대, 터치스크린 인터페이스는 버튼, 메뉴, 스크롤바 등과 같은 다양한 사용자 인터페이스 엘리먼트를 제시하도록 사용될 수 있고, 다양한 터치스크린 제스처를 인식하도록 구성될 수 있다. 터치스크린 인터페이스는 또한 키보드 인터페이스를 에뮬레이팅하도록 사용될 수 있다. 다른 일례로서, 사용자 인터페이스(들)(114)는 사용자 음성을 캡처링하기 위한 마이크로폰을 포함할 수 있고, 캡처링된 음성은 입력 음성을 문자로 변환하도록 구성된 자동 음성 인식(ASR) 엔진(도시하지 않음)에 의해 프로세싱될 수 있다. 다른 일례로서, 사용자 인터페이스(들)(114)는 녹음되거나 합성된 음성과 같은 오디오를 재생하기 위한 스피커를 포함할 수 있다.1, electronic device 110 may be configured to receive input from user 102 via one or more user interface (s) 114 and / or provide an output thereto. The user interface (s) 114 may include a keyboard interface, a touch screen interface, a voice interface, any combination thereof (e.g., a multimode interface), and / or any other user interface. For example, the touch screen interface can be used to present various user interface elements such as buttons, menus, scrollbars, etc., and can be configured to recognize various touch screen gestures. The touch screen interface may also be used to emulate the keyboard interface. As another example, the user interface (s) 114 may include a microphone for capturing user voice, and the captured voice may include an automatic speech recognition (ASR) engine (not shown) configured to convert the input voice to text ). ≪ / RTI > As another example, the user interface (s) 114 may include a speaker for reproducing audio, such as recorded or synthesized voice.

음성 인터페이스를 포함하는 일부 실시예에 있어서, ASR 엔진은 음성 인식 프로세싱이 로컬 수행될 수 있도록 전자 디바이스(110) 상에 상주할 수 있다. 다른 실시예에 있어서, ASR 엔진은 전자 디바이스(110)로부터 원격에 위치하고 있을 수 있다. 예컨대, ASR 엔진은 네트워크(들)(150) 또는 어떤 다른 적합한 통신 매체를 통하여 전자 디바이스(110)로부터 입력 음성을 수신할 수 있고, 동일하거나 다른 통신 매체로 전자 디바이스(110)에 인식 결과를 송신할 수 있다. 일부 추가적 실시예에 있어서, 전자 디바이스(110)는 하나 이상의 로컬 ASR 엔진 및 하나 이상의 원격-위치 ASR 엔진과 연관될 수 있고, 이 경우 음성 입력의 어떤 부분(들)은 하나 이상의 로컬 ASR 엔진에 의해 프로세싱되고 음성 입력의 어떤 다른 부분(들)은 하나 이상의 원격-위치 ASR 엔진에 의해 프로세싱된다. 그러한 분산형 ASR 시스템의 예는 당업자에 의해 알려져 있다.In some embodiments including a voice interface, the ASR engine may reside on the electronic device 110 such that speech recognition processing can be performed locally. In another embodiment, the ASR engine may be remotely located from the electronic device 110. For example, the ASR engine may receive the input voice from the electronic device 110 via the network (s) 150 or any other suitable communication medium and send the recognition results to the electronic device 110 via the same or other communication medium can do. In some additional embodiments, the electronic device 110 may be associated with one or more local ASR engines and one or more remote-location ASR engines, wherein some portion (s) of the voice input may be associated with one or more local ASR engines Some other portion (s) of the speech input are processed by one or more remote-location ASR engines. Examples of such distributed ASR systems are known to those skilled in the art.

일부 실시예에 있어서, ASR 엔진은 하나 이상의 고정된 또는 동적으로 발생된 문법 및/또는 어휘를 사용하여 음성 입력을 인식하도록 구성될 수 있다. 문법 및/또는 어휘는 일반적이거나 맥락-의존적(예컨대, 음성 입력이 향하는 애플리케이션에 특정적)일 수 있다. 대안의 실시예에 있어서, ASR 엔진은 사용자가 애플리케이션과 자연스럽게 대화 가능하게 하기 위해 자유-형식 음성 입력을 인식하도록 구성될 수 있다. 예컨대, ASR 엔진은 자연 언어 이해(NLU) 기술을 사용하여(예컨대, 통계적 NLU 모델을 사용하여) 사용자가 말하는 어떠한 것이라도 인식하도록 구성될 수 있다. 다양한 자연 언어 프로세싱 및 ASR 기술이 본 명세서에서 설명되고 있지만, 어떠한 적합한 자연 언어 프로세싱 및 ASR 기술 및 그 조합이라도 본 발명의 다양한 실시예와 연관하여 사용될 수 있으므로, 이들 기술은 단지 예시일 뿐임을 인식하여야 한다.In some embodiments, the ASR engine may be configured to recognize speech input using one or more fixed or dynamically generated grammar and / or vocabulary. The grammar and / or vocabulary may be general or context-dependent (e.g., application-specific for voice input). In an alternate embodiment, the ASR engine may be configured to recognize a free-form speech input in order to allow the user to interact naturally with the application. For example, the ASR engine may be configured to recognize anything that the user speaks using natural language understanding (NLU) techniques (e.g., using a statistical NLU model). While various natural language processing and ASR techniques are described herein, it should be appreciated that any suitable natural language processing and ASR techniques and combinations thereof may be used in connection with various embodiments of the present invention, do.

사용자 인터페이스(들)(114)는 시각, 청각 및/또는 촉각과 같은 하나 이상의 다른 모드로 사용자에게 출력을 제공할 수 있다. 예컨대, 사용자 인터페이스(들)(114)는 문자 및/또는 그래픽 이미지를 사용자에게 디스플레이할 수 있을 수 있다. 다른 일례로서, 사용자 인터페이스(들)(114)는 가청 신호(예컨대, 합성 및/또는 녹음된 음성) 및/또는 촉각 신호를 렌더링할 수 있을 수 있다. 본 발명의 태양이 사용자와의 어떠한 특정 대화 모드로도 한정되지 않으므로, 어떠한 적합한 입력 및/또는 출력 모드 조합이라도 사용될 수 있다.The user interface (s) 114 may provide output to the user in one or more other modes, such as visual, auditory and / or tactile. For example, the user interface (s) 114 may be capable of displaying text and / or graphical images to a user. As another example, the user interface (s) 114 may be capable of rendering audible signals (e.g., synthesized and / or recorded audio) and / or tactile signals. Any aspect of the present invention is not limited to any particular mode of interaction with a user, so any suitable input and / or output mode combination may be used.

도 1에 도시된 예에 있어서, 전자 디바이스(110)는 운영 체제(116) 및 하나 이상의 애플리케이션(들)(118)을 포함한다. 애플리케이션(들)(118) 중 일부는 전자 디바이스(110) 상에 로컬 설치될 수 있다. 비-한정적 일례로서, 캘린더 애플리케이션은 전자 디바이스(110) 상에서 로컬 실행될 수 있고 사용자가 이벤트 및/또는 약속에 대한 스케줄링 정보를 저장 가능하게 할 수 있다. 로컬 실행되는 애플리케이션과 연관된 데이터는, 예컨대, 사용자 데이터(120)의 일부분으로서 전자 디바이스(110) 상에 로컬 저장될 수 있다. 대안으로, 애플리케이션에 의해 취급되는 데이터의 일부 또는 전부는, 예컨대, 네트워크(들)(150)를 통하여 액세스 가능한 네트워크 저장소(160)에 원격 저장될 수 있다.1, the electronic device 110 includes an operating system 116 and one or more application (s) Some of the application (s) 118 may be locally installed on the electronic device 110. As a non-limiting example, a calendar application may be run locally on the electronic device 110 and may enable a user to store scheduling information for events and / or appointments. The data associated with the locally executed application may be stored locally on the electronic device 110, for example, as part of the user data 120. Alternatively, some or all of the data handled by the application may be remotely stored, for example, in the network storage 160 accessible via the network (s)

일부 실시예에 있어서, 애플리케이션(들)(118)은 하나 이상의 원격 컴퓨터에 의해 호스팅되지만 전자 디바이스(110)를 통하여 사용자에 의해 액세스될 수 있는 애플리케이션을 포함할 수 있다. 예컨대, 사용자는 하나 이상의 원격 서버(들)(170)에 의해 호스팅되는 웹-기반 애플리케이션(예컨대, 웹-기반 이메일 애플리케이션 또는 다른 유형의 웹-기반 애플리케이션)에 액세스하도록 전자 디바이스(110) 상에서 실행 중인 웹 브라우저를 사용할 수 있다. 다른 일례로서, 원격 액세스 프로토콜은 사용자가 전자 디바이스(110) 상에서 로컬 렌더링되는 사용자 인터페이스를 통하여 원격 서버(들)(170) 상에서 실행 중인 애플리케이션과 대화 가능하게 할 수 있다.In some embodiments, application (s) 118 may include applications that are hosted by one or more remote computers, but which may be accessed by a user via electronic device (s) For example, a user may be running on the electronic device 110 to access a web-based application (e.g., a web-based email application or other type of web-based application) hosted by one or more remote server (s) You can use a web browser. As another example, the remote access protocol may enable a user to interact with an application running on the remote server (s) 170 via a user interface that is locally rendered on the electronic device 110.

일부 추가적 실시예에 있어서, 전자 디바이스(110)는 전자 디바이스(110)의 현재 위치를 결정하도록 구성된 위치 센서(122)를 포함할 수 있다. 그러한 위치 정보는 여러 다른 방식으로 사용될 수 있다. 예컨대, 그것은 현재 위치의 근처 내 레스토랑, 가게, 명소 등에 대해 추천을 하기 위해 또는 어느 다른 적합한 목적으로 전자 디바이스(110)의 현재 위치를 지도 상에 디스플레이하도록 프로그래밍된 지도 애플리케이션에 의해 사용될 수 있다. 위치 센서(122)는 전자 디바이스(110)의 현재 위치에 대한 GPS 좌표를 결정하도록 구성된 GPS 센서일 수도 있고, 어떠한 다른 유형의 위치 센서일 수도 있다. 다른 유형의 센서 및/또는 그 사용도 가능하므로, 위치 센서 및 그 가능한 사용에 대한 언급은 단지 예시일 뿐이다.In some additional embodiments, the electronic device 110 may include a position sensor 122 configured to determine the current position of the electronic device 110. Such location information may be used in several different ways. For example, it may be used by a map application programmed to display on the map the current location of the electronic device 110 for recommendation for restaurants, shops, attractions, etc. in the vicinity of the current location or for any other suitable purpose. The position sensor 122 may be a GPS sensor configured to determine GPS coordinates for the current position of the electronic device 110, or may be any other type of position sensor. Other types of sensors and / or their use are also possible, so the reference to the position sensor and its possible use is merely exemplary.

일부 실시예에 있어서, 전자 디바이스(110)는 사용자 데이터(120)를 저장할 수 있다. 어떠한 사용자 데이터라도 저장될 수 있으며, 그 예는 연락처 정보(예컨대, 전화 번호, 물리적 주소, 이메일 주소 등), 캘린더 정보(예컨대, 약속 정보, 이벤트 정보, 생일 등), 사용자 선호 정보(예컨대, 음식, 영화, 음악 등에 대한 선호), 미디어 컨텐트 정보(예컨대, 음악, 영화, 사진 등), 거동 이력 정보(예컨대, 웹 브라우징 이력, 과거 구입 등), 위치 정보(예컨대, 현재 위치, 집 위치, 근무 위치 등) 또는 다른 적합한 정보를 포함한다. 일부 실시예에 있어서, 사용자 데이터(120)는 전자 디바이스(110)의 특정 사용자와 연관될 수 있다. 예컨대, 전자 디바이스(110)는 단지 하나의 사용자 데이터 세트만이 유지되고 있을 수 있도록 단일 사용자(예컨대, 사용자(102))에 의해 주로 사용될 수 있다. 대안으로, 전자 디바이스(110)는 다수의 사용자에 의해 공유될 수 있고, 별개의 사용자 데이터 세트가 각각의 사용자에 대해 유지되고 있을 수 있다.In some embodiments, the electronic device 110 may store user data 120. Any user data may be stored, such as contact information (e.g., phone number, physical address, email address, etc.), calendar information (e.g., appointment information, event information, birthday, etc.), user preference information (Such as music, movies, photos, etc.), behavior history information (e.g., web browsing history, past purchases, etc.), location information (e.g., current location, home location, Location, etc.) or other suitable information. In some embodiments, user data 120 may be associated with a particular user of electronic device 110. For example, electronic device 110 may be used primarily by a single user (e.g., user 102) so that only a single user data set may be maintained. Alternatively, the electronic device 110 may be shared by multiple users, and a separate set of user data may be maintained for each user.

일부 실시예에 있어서, 사용자 데이터(120)의 적어도 일부는 네트워크(들)(150)를 통하여 액세스가능한 장소에 전자 디바이스(110)로부터 원격에 저장될 수 있다. 예컨대, 사용자 데이터(120)의 적어도 일부는 전자 디바이스(110)로부터 또는 어느 다른 적합한 디바이스 상에서 액세스 가능한 네트워크 저장소(160)에(예컨대, 클라우드에) 저장될 수 있다. 그렇지만, 본 발명의 태양이 어떠한 특정 방식의 데이터 저장에도 한정되지 않으므로, 사용자 데이터(120)는 어떠한 하나 이상의 적합한 장소에라도 저장될 수 있음을 인식하여야 한다.In some embodiments, at least a portion of the user data 120 may be remotely stored from the electronic device 110 at a location accessible through the network (s) For example, at least a portion of the user data 120 may be stored (e.g., in the cloud) in the network storage 160 accessible from the electronic device 110 or on any other suitable device. However, it should be appreciated that since the aspects of the invention are not limited to any particular type of data storage, user data 120 may be stored at any one or more suitable locations.

도 1에 예시된 예에 있어서, 전자 디바이스(110)는 또한 가상 에이전트(124)를 포함한다. 가상 에이전트(124)는 본 명세서에 설명되는 기능성 중 어느 것이라도 수행하도록 프로그래밍될 수 있다. 예컨대, 가상 에이전트는 수많은 태스크(예컨대, 메시지 보내기, 전화 걸기, 애플리케이션 론칭하기, 웹으로부터의 정보에 액세스하기 등) 중 어느 하나를 수행함에 있어서 사용자에게 도움을 주도록 프로그래밍될 수 있다. 태스크를 수행함에 있어서, 가상 에이전트(124)는 사용자 인터페이스(들)(114)를 통하여 사용자(102)와 대화할 수 있다. 가상 에이전트(124)는 또한 운영 체제(116) 및/또는 애플리케이션(들)(118) 중 하나 이상과 대화하고, 사용자 데이터(120)에 액세스하고, 그리고/또는 위치 센서(122)와 같은 센서로부터 정보를 획득할 수 있다.In the example illustrated in FIG. 1, the electronic device 110 also includes a virtual agent 124. The virtual agent 124 may be programmed to perform any of the functionality described herein. For example, a virtual agent may be programmed to assist a user in performing any of a number of tasks (e.g., sending a message, dialing, launching an application, accessing information from the web, etc.). In performing a task, the virtual agent 124 may interact with the user 102 via the user interface (s) The virtual agent 124 may also interact with one or more of the operating system 116 and / or the application (s) 118, access the user data 120, and / Information can be obtained.

일부 실시예에 있어서, 가상 에이전트(124)는 전자 디바이스(110) 상에 로컬 상주하는 애플리케이션으로서 구현될 수 있다. 그러한 실시예에 있어서, 가상 에이전트(124)는 네트워크(들)(150)를 통하여 하나 이상의 다른 디바이스(예컨대, 모바일 폰(130), 태블릿 컴퓨터(140) 등)와 통신하고, 네트워크 저장소(160)로부터의 정보에 액세스하고, 그리고/또는 서버(들)(170) 중 하나 이상과 통신하도록 통신 인터페이스(들)(112)를 사용할 수 있다. 다른 실시예에 있어서, 가상 에이전트(124)는 하나 이상의 원격 컴퓨터(예컨대, 서버(들)(170)) 상에서 실행될 수 있고, 웹 인터페이스, 원격 액세스 프로토콜 또는 어떤 다른 적합한 기술을 통하여 전자 디바이스(110)로부터 액세스 가능할 수 있다. 일부 추가적 실시예에 있어서, 가상 에이전트는 분산될 수 있고 부분적으로는 디바이스(110) 상에서 그리고 부분적으로는 하나 이상의 원격 컴퓨터 상에서 실행될 수 있다.In some embodiments, the virtual agent 124 may be implemented as an application that resides locally on the electronic device 110. In such an embodiment, the virtual agent 124 communicates with one or more other devices (e.g., mobile phone 130, tablet computer 140, etc.) via the network (s) (S) 112 to access information from the server (s) 170 and / or to communicate with one or more of the server (s) 170. The virtual agent 124 may be executed on one or more remote computers (e.g., server (s) 170) and may be connected to the electronic device 110 via a web interface, a remote access protocol, Lt; / RTI > In some additional embodiments, the virtual agent may be distributed and partially executed on the device 110 and, in part, on one or more remote computers.

시스템(100) 내 모든 디바이스마다 가상 에이전트를 포함하지는 않을 수 있음을 인식하여야 한다. 일부 실시예에 있어서, 가상 에이전트는 가상 에이전트 능력을 갖고 있지 않은 디바이스의 사용자로부터 입력을 수신하거나 그에 출력을 제공할 수 있다. 예를 들면, 디바이스가 가상 에이전트 능력을 갖고 있지 않은 제1 사용자는 단문 메시지 서비스(SMS), 인스턴트 메시징(IM), 이메일, 전화 통화 등과 같은 관용적 통신 기술을 사용하여 제2 사용자와 통신할 수 있다. 제2 사용자의 디바이스 상에서 실행 중인 가상 에이전트는, 예컨대, 사용자 간 교환되는 메시지에 액세스함으로써 그리고/또는 가상 에이전트의 자신의 메시지를 담화에 주입함으로써 제1 사용자와 제2 사용자 간 담화에 액세스할 수 있다. 이러한 방식으로, 제1 사용자의 디바이스가 가상 에이전트 능력을 갖고 있지 않더라도, 제1 사용자는 가상 에이전트와 대화할 수 있고 가상 에이전트의 "사용자"라고 생각될 수 있다.It should be appreciated that not all devices in the system 100 may include a virtual agent. In some embodiments, a virtual agent may receive input from or provide output to a user of a device that does not have a virtual agent capability. For example, a first user whose device does not have a virtual agent capability may communicate with a second user using a conventional communication technique such as short message service (SMS), instant messaging (IM), e-mail, . The virtual agent running on the device of the second user may access the first user and second user discourse, for example, by accessing a message exchanged between users and / or by injecting the virtual agent's own message into the discourse . In this way, even if the device of the first user does not have the virtual agent capability, the first user can talk with the virtual agent and can be thought of as the "user" of the virtual agent.

일부 실시예에 있어서, 가상 에이전트(124)는 주로 단일 사용자를 갖는다고 가정되는 디바이스(예컨대, 모바일 폰)와 연관될 수 있다. 예컨대, 전자 디바이스(110)는 단일 사용자(예컨대, 사용자(102))에 의해 배타적으로 사용될 것이라고 가정될 수 있고, 가상 에이전트(124)는 전자 디바이스(110)와 연관(예컨대, 전자 디바이스(110) 상에 설치 또는 전자 디바이스(110)를 식별하는 식별자와 연관)되는 것에 의하여 그 특정 사용자와 연관될 수 있다.In some embodiments, the virtual agent 124 may be associated with a device (e.g., a mobile phone) that is primarily assumed to have a single user. For example, the electronic device 110 may be assumed to be exclusively used by a single user (e.g., the user 102), and the virtual agent 124 may be associated with the electronic device 110 (e.g., Or associated with an identifier that identifies the electronic device 110).

대안으로, 전자 디바이스(110)는 다수의 사용자에 의해 공유될 것이라고 가정될 수 있다. 그러한 실시예에 있어서, 가상 에이전트(124)는 여러 다른 방식으로 디바이스의 다수의 사용자를 지원할 수 있다. 예컨대, 일부 실시예에 있어서, 가상 에이전트(124)는 통칭적으로(예컨대, 사용자의 신원에 관계 없이) 여러 다른 사용자를 지원할 수 있다. 다른 실시예에 있어서, 가상 에이전트(124)는 로그인하는 사용자를 식별하고 그 사용자에 속하는 정보(예컨대, 대응하는 사용자 프로파일로부터의 정보)를 사용하도록 프로그래밍될 수 있다. 이러한 방식으로, 가상 에이전트(124)는 그 액션을 다른 시간에 다른 사용자에게 맞출 수 있고, 어느 주어진 시간에 (예컨대, 전자 디바이스(110) 상에서 특정 사용자 계정 또는 프로파일에 의해 식별되는 바와 같은) 특정 사용자와 연관될 수 있다. 또 다른 실시예에 있어서, 각각의 사용자는, 동일 한 가지 소프트웨어의 다른 인스턴스이거나 다른 한 가지 소프트웨어일 수 있는, 다른 가상 에이전트에 의해 지원될 수 있다.Alternatively, the electronic device 110 may be assumed to be shared by multiple users. In such an embodiment, the virtual agent 124 may support multiple users of the device in several different ways. For example, in some embodiments, the virtual agent 124 may globally support several different users (e.g., regardless of the identity of the user). In another embodiment, the virtual agent 124 may be programmed to identify the user logging in and to use information pertaining to that user (e.g., information from a corresponding user profile). In this manner, the virtual agent 124 can tailor the action to another user at another time, and at a given time (e.g., as identified by a particular user account or profile on the electronic device 110) Lt; / RTI > In yet another embodiment, each user may be supported by another virtual agent, which may be another instance of the same piece of software or another piece of software.

일부 추가적 실시예에 있어서, 가상 에이전트(124)는, 사용자가 가상 에이전트(124)를 인보크하는 특정 디바이스에 무관하게, 사용자와 직접 연관될 수 있다. 예컨대, 가상 에이전트(124)는 특정 사용자를 식별하는 식별자와 연관될 수 있다. 본 발명이 이에 관하여 어떠한 특정 기술의 사용으로도 한정되지 않으므로, 가상 에이전트(124)를 디바이스 및/또는 사용자와 연관시키는 다른 방식이 또한 사용될 수 있다.In some additional embodiments, the virtual agent 124 may be directly associated with the user, regardless of the particular device from which the user invokes the virtual agent 124. For example, the virtual agent 124 may be associated with an identifier that identifies a particular user. Other ways of associating the virtual agent 124 with the device and / or user may also be used, as the invention is not limited to the use of any particular technique in this regard.

시스템(100)의 다양한 컴포넌트는 위에서 오로지 예시의 목적으로만 설명되었다. 본 명세서에 개시된 개념은 어떠한 적합한 디바이스 또는 디바이스 조합이라도 사용하여 어떠한 적합한 방식으로라도 구현될 수 있고, 어떠한 특정 컴포넌트 또는 컴포넌트 배열도 요구하지 않는다.The various components of the system 100 have been described above for illustrative purposes only. The concepts disclosed herein may be implemented in any suitable manner using any suitable device or combination of devices, and do not require any particular component or component arrangement.

도 2는, 본 발명의 일부 실시예에 따라, 가상 에이전트가 인보크될 수 있는 다자간 담화의 일례를 도시하고 있다. 이러한 예에 있어서, 2인의 사용자(A, B)는 만찬을 어디서 할지 논의하기 위해 메시징 애플리케이션(예컨대, SMS 또는 IM)을 통하여 담화에 참여한다. 담화로의 사용자(A)의 투고에는 라벨(A1-4)이 붙여지고, 사용자(B)의 투고에는 라벨(B1-4)이 붙여져 있다. 가상 에이전트는 레스토랑을 찾는데 도움을 주도록 사용자(A)에 의해 인보크되고, 가상 에이전트의 투고에는 라벨(V1-5)이 붙여져 있다.Figure 2 illustrates an example of a multilayered discourse in which a virtual agent may be invoked, according to some embodiments of the present invention. In this example, the two users A and B participate in a discourse through a messaging application (e.g., SMS or IM) to discuss where to take the dinner. A label A1-4 is attached to the contribution of the user A to the discourse and a label B1-4 is attached to the contribution of the user B. [ The virtual agent is invoked by the user A to assist in finding a restaurant, and the label V1-5 is attached to the contribution of the virtual agent.

도 2에 도시된 예에 있어서, 담화는 (A1)에서 사용자(A)가 사용자(B)에 인사함으로써 개시되고, (B1)에서는 사용자(B)가 "우리 오늘 저녁에 어디서 먹을까?"라고 묻는다. 사용자(A)는 특정 레스토랑을 마음에 두고 있지 않고 가상 에이전트에 추천을 요청하기를 바라고 있다. 관용적 시스템에 있어서, 사용자(A)는 가상 에이전트를 인보크하기 위해 사용자(B)와의 담화로부터 떨어져 초점을 전환할 필요가 있었을 것이다. 대조적으로, 본 발명의 일부 실시예에 의하면, 사용자(A)는 동일 담화 내에서 가상 에이전트를 인보크할 수 있다. 도 2에 도시된 예에 있어서, 사용자(A)는, "브레인에게 물어보자"와 같은, 지정된 단어 또는 구절을 말하거나 타이핑함으로써 (A3)에서 가상 에이전트를 인보크한다. 결과로서, 가상 에이전트는 사용자(A, B)와 대화하도록 담화에 주입된다.In the example shown in Fig. 2, the discourse is initiated by user A in (A1) by greeting user B, and at B1, user B asks "Where do we eat this evening?" . User A desires to request a recommendation to a virtual agent without having a particular restaurant in mind. In the idiosyncratic system, the user A would have needed to switch focus away from the discourse with the user B in order to invoke the virtual agent. In contrast, according to some embodiments of the present invention, user A may invoke a virtual agent within the same discourse. In the example shown in Fig. 2, user A invokes the virtual agent at (A3) by saying or typing a designated word or phrase, such as "Ask Brain ". As a result, the virtual agent is injected into the discourse to talk with the users (A, B).

본 명세서에 설명되는 기술이 이에 관하여 한정되지 않으므로, 어떠한 적합한 단어 또는 구절이라도 담화 내에서 가상 에이전트를 인보크하는데 사용될 수 있다. 예컨대, 사용자가 단어 또는 구절을 말하거나 타이핑하는 것이 쉽도록 비교적 짧은 단어 또는 구절을 사용하는 것이 바람직할 수 있다. 더욱, 사용자가 기억하기 쉬운 독특한 단어 또는 구절을 사용하는 것이 바람직할 수 있다. 더더욱, 사용자가 담화 동안 다른 이유로 동일 단어 또는 구절을 사용할 가능성을 줄이도록 흔하지 않은 단어 또는 구절을 사용하는 것이 바람직할 수 있다.As the techniques described herein are not limited in this respect, any suitable word or phrase may be used to invoke the virtual agent within the discourse. For example, it may be desirable to use relatively short words or phrases to make it easier for the user to speak or type words or phrases. Moreover, it may be desirable to use unique words or phrases that are easy for the user to remember. Furthermore, it may be desirable to use uncommon words or phrases to reduce the likelihood that the user will use the same word or phrase for other reasons during the discourse.

대안의 실시예에 있어서, 사용자는 지정된 단어 또는 구절을 말하거나 타이핑하는 것 이외의 어떤 방식으로 가상 에이전트를 인보크할 수 있다. 가능한 트리거링 액션의 예는, 국한되는 것은 아니지만, 지정된 키스트로크 또는 키스트로크 조합, 그래픽 사용자 인터페이스의 지정된 부분에서의 마우스 클릭, 지정된 터치스크린 제스처, 지정된 버튼 누르기 등을 포함한다.In an alternative embodiment, the user may invoke the virtual agent in some manner other than by saying or typing the specified word or phrase. Examples of possible triggering actions include, but are not limited to, specified keystroke or keystroke combinations, mouse clicks at specified portions of the graphical user interface, designated touch screen gestures, designated button presses, and the like.

일부 추가적 실시예에 있어서, 가상 에이전트는 배경에서 실행되고, 특정 정보를 획득하고 그리고/또는 결정을 함에 있어서 가상 에이전트가 참가자에게 도움을 줄 수 있을 수 있는지 결정하도록 다자간 담화를 모니터링할 수 있다. 가상 에이전트가 참가자에게 도움을 줄 수 있을 수 있다고 결정할 때, 가상 에이전트는 참가자 중 하나 이상에게 사전에 프롬프트할 수 있다. 예컨대, 사용자(B)가 "우리 오늘 저녁에 어디서 먹을까?"라고 말하는 것을 "들을 때", 가상 에이전트는 레스토랑에 관한 정보로 참가자에게 도움을 줄 수 있을 수 있다고 결정할 수 있고, 그것이 명시적으로 인보크되었지는 않더라도, "레스토랑 찾습니까?"라는 짧은 질문으로 그 자신을 담화에 주입할 수 있다. 대안으로서, 가상 에이전트는, 다자간 담화에 직접 들어가기보다는, 사용자의 스크린 상에 별개로 팝업할 수 있다. 이들 실시예 유형 중 어느 것에서든, 사용자는 특정 담화에 대해 (예컨대, "방해하지 마시오" 옵션을 선택함으로써) 가상 에이전트를 불능으로 할 수 있을 수 있다.In some additional embodiments, the virtual agent may be running in the background and monitor the multilayer discourse to determine if the virtual agent may be able to assist the participant in obtaining certain information and / or making a decision. When a virtual agent determines that it can be of help to a participant, the virtual agent may prompt one or more of the participants in advance. For example, when user B "hears " saying" we will eat it tonight? &Quot;, the virtual agent can determine that it can help the participant with information about the restaurant, Even if it is not big, you can inject yourself into a discourse with a short question, "Do you find a restaurant?" Alternatively, the virtual agent may pop up separately on the user's screen, rather than entering directly into the multilayered discourse. In either of these embodiments types, the user may be able to disable the virtual agent for a particular discourse (e.g., by selecting the "Do Not Disturb" option).

가상 에이전트가 그것이 참가자에게 도움을 줄 수 있을 수 있는지 결정하도록 다자간 담화를 모니터링하는 일 실시예에 있어서, 가상 에이전트는 다자간 담화의 적어도 일부를 분석하도록 어떠한 적합한 기술이라도 사용할 수 있다. 자연 언어 프로세싱 기술을 사용하는 일부 비-한정적 예가 아래에 더 상세히 논의된다.In one embodiment, in which the virtual agent monitors the multilateral discourse to determine if it can be of help to the participant, the virtual agent may use any suitable technique to analyze at least a portion of the multilayer discourse. Some non-limiting examples of using natural language processing techniques are discussed in more detail below.

일부 실시예에 의하면, 가상 에이전트는 원격 디바이스가 가상 에이전트 능력을 갖고 있지 않고 가상 에이전트와 직접 연관되어 있지 않더라도 그 원격 디바이스의 사용자에 의해 인보크될 수 있다. 예를 들면, 도 2에 도시된 예에 있어서, 가상 에이전트는 사용자(A)의 디바이스로부터 "브레인에게 물어보자"라는 메시지를 수신하는 결과로서 사용자(B)의 디바이스 상에서 인보크될 수 있다. 이러한 방식으로, 사용자(B)가 통신하는 어느 사용자라도, 그러한 사용자가 가상 에이전트 능력을 갖는 디바이스를 갖고 있지 않고 달리 가상 에이전트와 연관되어 있지 않더라도, 가상 에이전트를 인보크할 수 있을 수 있다.According to some embodiments, a virtual agent may be invoked by a user of the remote device, even if the remote device does not have a virtual agent capability and is not directly associated with a virtual agent. For example, in the example shown in FIG. 2, the virtual agent may be invoked on the device of user B as a result of receiving the message "Ask Brain" from user A's device. In this way, any user with whom the user B communicates may be able to invoke the virtual agent, even if such user does not have a device with virtual agent capability and is not otherwise associated with the virtual agent.

일부 실시예에 있어서, 가상 에이전트는 양 사용자로부터 원격에 있는 서버(예컨대, 도 1에 도시된 서버(들)(170) 중 하나 이상) 상에서 인보크될 수 있다. 예컨대, 다수의 개인이 메시징 애플리케이션(예컨대, SMS, IM, 이메일, 음성 채팅 등)을 통하여 서로 대화하는 일 실시예에 있어서, 가상 에이전트는, 가상 에이전트가 담화 동안 교환되는 통신(예컨대, 메시지) 중 일부 또는 전부로의 액세스를 갖도록, 담화와 연관된 통신 트래픽을 취급하는 하나 이상의 서버 상에서 인보크될 수 있다. 일부 추가적 실시예에 있어서, 가상 에이전트는 메시징 클라이언트, 메시징 서버 및/또는 어떠한 다른 적합한 소스로부터 담화 내용의 일부 또는 전부를 수신하는 별개 서버 상에서 인보크될 수 있다. 이들 실시예 중 어느 하나에 있어서, 가상 에이전트는 담화 내 단일 사용자(예컨대, 사용자(B))와 연관될 수 있지만, 담화에의 어느 다른 참가자라도 가상 에이전트와 직접 연관되지 않고도 가상 에이전트를 인보크할 수 있다. 본 발명의 태양에 이에 관하여 한정되지 않으므로, 사용자는 메시징 애플리케이션과 연관하여 또는 그와 별개로 가상 에이전트 서비스에 가입함으로써, 또는 어떠한 다른 적합한 방식으로라도 가상 에이전트와 연관될 수 있다.In some embodiments, the virtual agent may be invoked on a server (e.g., one or more of server (s) 170 shown in Figure 1) remotely from both users. For example, in one embodiment where a number of individuals communicate with each other through a messaging application (e.g., SMS, IM, email, voice chat, etc.), the virtual agent may determine that the virtual agent is in a communication May be invoked on one or more servers handling the communication traffic associated with the discourse to have some or all of the access. In some additional embodiments, the virtual agent may be invoked on a separate server that receives some or all of the discourse content from a messaging client, messaging server, and / or any other suitable source. In any of these embodiments, the virtual agent may be associated with a single user in the discourse (e.g., user B), but any other participant in the discourse may invoke the virtual agent without being directly associated with the virtual agent . As an aspect of the present invention is not limited in this respect, a user may be associated with a virtual agent either by subscribing to the virtual agent service in association with or separate from the messaging application, or in any other suitable manner.

도 2에 도시된 예로 되돌아가면, 가상 에이전트는, 일단 인보크되고 나면, 다자간 담화에의 참가자로서 사용자에게 제시될 수 있다. 예를 들면, 가상 에이전트는, 예컨대, (V1)에서 "레스토랑 찾습니까?", (V2)에서 "무슨 종류의 음식?", (V4)에서 "그들 정보를 원합니까?", 및 (V5)에서 "그 밖에 다른 것은?"과 같은 질문을 물음으로써 정보에 대해 사용자에게 프롬프트할 수 있다. 부가적으로, 가상 에이전트는 정보로 사용자에 응답할 수 있다. 도 2에 도시된 예에 있어서, 정보는 (V3)에서의 "제임스가 시내에 멋지고 새로운 장소"와 같은 추천, 및 (V5)에서의 추천된 레스토랑의 명칭, 주소 및 전화 번호와 같은, 추천과 관련된 추가적 정보를 포함한다.Returning to the example shown in Fig. 2, once the virtual agent has been invoked, it can be presented to the user as a participant in the multilateral discourse. For example, a virtual agent may be a virtual agent, for example, in (V1), "Do you want a restaurant?", (V2) in "What kind of food?", (V4) You can be prompted for information by asking questions such as "What else?". Additionally, the virtual agent may respond to the user with information. In the example shown in FIG. 2, the information includes recommendations, such as "James is a nice new place in town" at (V3), and the name, address and phone number of the recommended restaurant at (V5) Include additional relevant information.

일부 실시예에 있어서, 담화에서 가상 에이전트의 투고(예컨대, 프롬프트, 정보 등)는 사람 참가자로부터의 투고와 동일한 방식으로 제시될 수 있다. 예를 들면, 가상 에이전트는 사용자 이름(예컨대, "브레인")과 연관될 수 있고, 가상 에이전트가 "말하는" 어느 것에라도 그 사용자 이름으로 라벨이 붙여질 수 있다. 그리하여, 가상 에이전트와 하나 이상의 사용자 간 예시적 대화는 다음과 같이 제시될 수 있다:In some embodiments, the posting (e.g., prompt, information, etc.) of the virtual agent in the discourse may be presented in the same manner as posting from a human participant. For example, a virtual agent can be associated with a user name (e.g., a "brain") and labeled with that user name, whichever the virtual agent "talks" to. Thus, an exemplary dialog between a virtual agent and one or more users may be presented as follows:

Figure pct00001
사용자(A): 안녕.
Figure pct00001
User (A): Hi.

Figure pct00002
사용자(B): 우리 오늘 저녁에 어디서 먹을까?
Figure pct00002
User (B): Where do we get to eat this evening?

Figure pct00003
사용자(A): 브레인에게 물어보자.
Figure pct00003
User (A): Let's ask Brain.

Figure pct00004
브레인: 레스토랑 찾습니까?
Figure pct00004
Brain: Are you looking for a restaurant?

Figure pct00005
사용자(A): 응.
Figure pct00005
User (A): Yes.

Figure pct00006
브레인: 무슨 종류의 음식?
Figure pct00006
Brain: What kind of food?

Figure pct00007
사용자(B): 초밥.
Figure pct00007
User (B): Sushi.

Figure pct00008
브레인: 제임스가 시내에 멋지고 새로운 장소.
Figure pct00008
Brain: James is a wonderful new place in downtown.

Figure pct00009
사용자(B): 우리 예약이 필요할까?
Figure pct00009
User (B): Do we need a reservation?

Figure pct00010
브레인: 아닙니다. 그들 정보를 원합니까?
Figure pct00010
Brain: No. Do you want them information?

Figure pct00011
사용자(A): 물론.
Figure pct00011
User (A): Of course.

Figure pct00012
브레인: 매사추세츠 55555 보스턴 제임스가 5 스시 월드, 617-555-1212.
Figure pct00012
Brain: Massachusetts 55555 Boston James 5 Sushi World, 617-555-1212.

여기 있습니다. 그 밖에 다른 것은? Here it is. What else?

Figure pct00013
사용자(B): 없어, 고마워 브레인!
Figure pct00013
User (B): No thanks, Brain!

가상 에이전트가 담화에의 참가자로서 제시되는 실시예에 있어서, 가상 에이전트의 투고는 가상 에이전트를 다른 참가자와 구별하는 방식으로 제시될 수 있다. 본 명세서에 개시되는 기술이 이에 관하여 한정되지 않으므로, 이것은 어떠한 적합한 방식으로라도 행해질 수 있다. 예를 들면, 도 2에 도시된 예에 있어서, 사람 참가자는 스크린의 일부분(예컨대, 좌측)에 제시되고, 가상 에이전트는 스크린의 다른 부분(예컨대, 우측)에 제시된다. 부가적으로 또는 대안으로, 가상 에이전트는 그것을 다른 참가자와 시각적으로 구별하는 다른 방식으로 제시될 수 있다. 예컨대, 가상 에이전트는, 사람 참가자에 사용되는 것(예컨대, 청색, 녹색 등)과는 다른 색상(예컨대, 적색)을 사용하여, 다른 형상의 말 풍선을 사용하여, 다른 폰트, 다른 사이즈, 또는 다른 문자 강조(예컨대, 이탤릭체, 굵게, 밑줄 등)를 사용하여, 또는 어떠한 다른 적합한 방식으로라도 제시될 수 있다. 이러한 방식으로, 사용자는 담화의 어느 부분이 가상 에이전트로부터 유래하고 어느 부분이 사람으로부터 유래하는지 신속히 파악할 수 있다.In embodiments where the virtual agent is presented as a participant in the discourse, the posting of the virtual agent may be presented in a manner that distinguishes the virtual agent from the other participants. As the techniques disclosed herein are not limited in this respect, this can be done in any suitable manner. For example, in the example shown in FIG. 2, a human participant is presented at a portion of the screen (e.g., left) and a virtual agent is presented at another portion of the screen (e.g., right). Additionally or alternatively, the virtual agent may be presented in other ways that visually distinguish it from other participants. For example, a virtual agent may use a different form of horse balloon to create a different font, different size, or different color (e.g., red) using what is used for a human participant (e.g., blue, green, (E.g., italics, bold, underline, etc.), or in any other suitable manner. In this way, the user can quickly know which part of the discourse comes from the virtual agent and which part comes from the person.

일부 실시예에서는, 다수의 가상 에이전트(예컨대, 각각의 사람 참가자에 대해 서로 다른 가상 에이전트)가 담화에 참가할 수 있다. 그러한 일 실시예에 있어서, 담화는 모든 가상 에이전트를 사람 참가자와 구별하는 방식으로 제시될 수 있다. 예컨대, 모든 사람 참가자는 디스플레이 스크린의 일부분에 제시될 수 있고, 모든 가상 에이전트는 스크린의 다른 부분에 제시될 수 있다. 여러 다른 가상 에이전트가 그들이 사람 참가자에게는 단일 참가자처럼 보이도록 동일 방식으로 제시될 수도 있고, 그것들이 서로 다른 색상, 폰트, 말 풍선 형상 등을 사용하여 또는 어떠한 다른 적합한 방식으로라도 서로 구별될 수 있다.In some embodiments, multiple virtual agents (e.g., different virtual agents for each person participant) may participate in the discourse. In one such embodiment, the discourse may be presented in a manner that distinguishes all virtual agents from human participants. For example, an all-person participant may be presented at a portion of the display screen, and all of the virtual agents may be presented at another portion of the screen. Several different virtual agents may be presented in the same manner so that they appear to a person participant as a single participant and may be distinguished from each other using different colors, fonts, horse balloon shapes, or the like, or in any other suitable manner.

또다시 도 2의 예로 되돌아가면, 가상 에이전트는, 일부 실시예에 있어서, 가상 에이전트의 인보크 이전에 일어난 다자간 담화의 일부 또는 전부를 분석하도록 프로그래밍될 수 있다. 예를 들면, 가상 에이전트는 가상 에이전트가 어떻게 담화 참가자에게 도움을 줄 수 있는지 결정 또는 해석하기 위해 담화 이력의 일부 또는 전부를 분석하도록 프로그래밍될 수 있다. 도 2의 예에 있어서, 가상 에이전트는 매직 구절 "브레인에게 물어보자" 직전에 말해졌던 것, 즉, "우리 오늘 저녁에 어디서 먹을까?"만을 분석하도록 프로그래밍될 수 있다. 다른 실시예에 있어서, 가상 에이전트는 담화 이력의 부가적 또는 다른 부분을 분석하도록 프로그래밍될 수 있다. 그러한 실시예의 예는 도 4와 연관하여 아래에 더 상세히 논의된다.Returning again to the example of FIG. 2, the virtual agent may, in some embodiments, be programmed to analyze some or all of the multilateral discourse that occurred prior to the invocation of the virtual agent. For example, the virtual agent may be programmed to analyze some or all of the discourse to determine or interpret how the virtual agent can assist the discourse participant. In the example of FIG. 2, the virtual agent can be programmed to analyze only what was said immediately before the magic phrase "Let's Ask the Brain", ie, "Where do we eat this evening?". In another embodiment, the virtual agent may be programmed to analyze additional or different parts of the discourse history. An example of such an embodiment is discussed in more detail below in connection with FIG.

가상 에이전트는 그것이 참가자에게 어떻게 도움을 줄 수 있는지 담화 이력의 일부 또는 전부로부터 결정하도록 어떠한 적합한 기술이라도 사용할 수 있다. 일부 실시예에서는, 담화 참가자가 특정 커맨드를 나열함으로써 명시적으로 가상 에이전트에 의한 액션을 요청하여야 하도록 고정 커맨드 문법이 채용될 수 있다. 다른 실시예에 있어서, 사용자는 가상 에이전트가 참가자에게 도움을 주기 위해 무슨 액션을 취할 수 있는지 가상 에이전트에 알려주는데 어떠한 특정 커맨드도 사용할 필요가 없도록 자연 언어 이해(NLU) 기술이 채용될 수 있고, 가상 에이전트가 그것이 가상 에이전트에 정보를 제공하도록 특별히 의도될 필요가 없는 담화의 하나 이상의 부분을 분석함으로써 어떻게 도움을 줄 수 있는지 결정 가능하게 할 수 있다.The virtual agent can use any suitable technique to determine from some or all of the conversation history how it can help the participant. In some embodiments, a fixed command grammar may be employed so that the discourse participant must explicitly request action by the virtual agent by listing certain commands. In another embodiment, a user may employ a natural language understanding (NLU) technique to inform the virtual agent of what action a virtual agent can take to assist a participant and not need to use any particular command, The agent may be able to determine how it can help by analyzing one or more portions of the discourse that need not be specifically intended to provide information to the virtual agent.

본 명세서에 개시된 개념이 어떠한 특정 NLU 기술과의 사용으로도 한정되지 않으므로, 어떠한 NLU 기술이라도 사용자 의도를 결정하도록 가상 에이전트에 의해 채용될 수 있다. 비-한정적 일례로서, 가상 에이전트는 문자 내 멘션(예컨대, "펜웨이")을 엔티티(예컨대, "펜웨이"라는 명칭의 야구장 또는 "펜웨이"라는 명칭의 근린)에 매핑하도록 하나 이상의 멘션 검출 기술을 적용할 수 있다. 다른 일례로서, 가상 에이전트는 문자(예컨대, "나는 배고프다")의 하나 이상의 부분을 적합한 시맨틱 라벨 또는 카테고리(예컨대, "음식" 또는 "레스토랑")로 태깅하는 것을 관여시키는 시맨틱 문자 분석을 수행할 수 있다. 또 다른 일례로서, 가상 에이전트는 그들 각각의 저자에 기반하여 문자의 여러 다른 부분을 태깅할 수 있다. 저작 정보는, 예컨대, 이메일 주소, (예컨대, 전화 통화 또는 SMS를 위한) 전화 번호, (예컨대, IM 또는 음성 채팅을 위한) 사용자 이름, 음성 인식(예컨대, 다수의 개인이 동일 음성 채널을 통해 말하는 경우) 등에 기반하여 담화가 어떻게 수행되는지에 따라 다양한 방식으로 획득될 수 있다.As the concepts described herein are not limited to use with any particular NLU technology, any NLU description may be employed by the virtual agent to determine the user intent. As a non-limiting example, a virtual agent may be configured to map one or more mentions (e.g., a " ball game " Technology can be applied. As another example, a virtual agent may perform semantic character analysis involving tagging one or more portions of a character (e.g., "I am hungry") with an appropriate semantic label or category (eg, "food" or "restaurant" have. As another example, a virtual agent can tag different portions of a character based on their respective authors. The authoring information may include, for example, an email address, a telephone number (e.g., for a phone call or SMS), a user name (e.g., for IM or voice chat), voice recognition (e.g., And the like), and so on.

일부 실시예에 있어서, 가상 에이전트에 의해 사용되는 하나 이상의 NLU 기술은, 분석이 다양한 신뢰 레벨로 사용자 의도에 대한 다수의 후보를 반환할 수 있도록, 통계적일 수 있다(예컨대, 통계적 모델을 사용함). 가상 에이전트는 최고 신뢰 레벨로 후보 사용자 의도를 선택할 수 있다. 가상 에이전트가 충분히 확신하지 못하면(예컨대, 최고 신뢰 레벨이 선택된 임계치 아래에 있으면), 가상 에이전트는 (모호함을 없애기 위해) 부가적 정보에 대해 사용자(들)에게 프롬프트할 수 있다. 이러한 프롬프트는 어떠한 적합한 방식으로라도 행해질 수 있다. 비-한정적 일례로서, 도 2는 가상 에이전트가 사용자에게 그들이 레스토랑을 찾고 있는지 확인해 달라고 ((V1)에서) 요청하고 있는 것을 도시하고 있다.In some embodiments, the one or more NLU techniques used by the virtual agent may be statistical (e.g., using a statistical model) such that the analysis may return multiple candidates for user intent at various trust levels. The virtual agent can select the candidate user intention at the highest confidence level. If the virtual agent is not sufficiently confident (e.g., the highest trust level is below the selected threshold), the virtual agent may prompt the user (s) for additional information (to eliminate ambiguity). This prompt can be done in any suitable manner. As a non-limiting example, FIG. 2 shows that the virtual agent is asking the user to confirm (at (V1)) that they are looking for a restaurant.

가상 에이전트가 사용자에 의해 명시적으로 요청받지 않고도 담화에 그 자신을 주입할지 결정하도록 담화를 모니터링하는 일 실시예에 있어서, 가상 에이전트는 그것이 올바른 사용자 의도를 식별하였음을 그것이 충분히 확신할 때에만 그렇게 행할 수 있다. 일부 실시예에 있어서, 가상 에이전트를 인보크하기 위한 임계 신뢰 레벨은 가상 에이전트에 의한 원치 않는 인터럽션을 줄이면서도 사용자가 그 체감을 커스터마이징하고 가상 에이전트의 도움을 이용 가능하게 하도록 사용자에 의해 설정될 수 있다.In one embodiment, in which the virtual agent monitors the discourse to determine whether to inject itself into the discourse without explicitly being requested by the user, the virtual agent does so only if it is sufficiently convinced that it has identified the correct user intent . In some embodiments, the threshold trust level for invoking a virtual agent may be set by the user to reduce unwanted interruptions by the virtual agent, while allowing the user to customize the experience and make the help of the virtual agent available have.

일부 실시예에 있어서, 가상 에이전트는 수행될 태스크를 (확인하는 것이 아니라) 더 정의하기 위해 사용자로부터 정보를 획득하도록 프로그래밍될 수 있다. 이것은 어떠한 적합한 방식으로라도 행해질 수 있다. 예컨대, 가상 에이전트는 태스크를 수행하는 것과 관련 있는 어떠한 정보라도 획득하도록 하나 이상의 질문을 할 수 있다. 도 2의 예에 있어서, 가상 에이전트는 (V2)에서 "무슨 종류의 음식?"이라고 사용자에게 묻고, 사용자(B)는 (B2)에서 "초밥"이라고 응답한다. 이러한 부가적 가지의 정보는 가상 에이전트가 레스토랑에 대한 그 검색을 좁히고 사용자에 의해 더 수락될 것 같은 추천을 반환 가능하게 할 수 있다. 레스토랑 추천을 하는 예에 대하여, 가상 에이전트는 참석할 것으로 예상되는 당사자 수, 선호되는 시간 및/또는 위치, 가격 범위 등과 같은 부가적 질문을 할 수 있다. 물론, 본 명세서에 개시되는 기술은 단지 레스토랑 추천을 하는 가상 에이전트와의 사용만으로 한정되지 않고, 가상 에이전트는 다른 유형의 태스크를 수행할 때 다른 유형의 정보를 모으도록 프로그래밍될 수 있다.In some embodiments, the virtual agent may be programmed to obtain information from the user to further define (rather than confirm) the task to be performed. This can be done in any suitable manner. For example, a virtual agent may ask one or more questions to obtain any information related to performing a task. In the example of Fig. 2, the virtual agent asks the user "what kind of food?" At (V2), and the user B answers "sushi" at (B2). This additional branch information may allow the virtual agent to refine its search for restaurants and return recommendations that are more likely to be accepted by the user. For an example of restaurant recommendations, the virtual agent may ask additional questions such as the number of parties expected to attend, the preferred time and / or location, the price range, and so on. Of course, the techniques described herein are not limited solely to use with virtual agents that make restaurant recommendations, and virtual agents can be programmed to collect other types of information when performing other types of tasks.

가상 에이전트가 (예컨대, 담화 이력으로부터 그리고/또는 사용자 중 하나 이상과 가상 에이전트의 대화로부터) 충분한 정보를 수집하고 나면, 가상 에이전트는 담화 참가자에게 도움을 줄 태스크를 수행할 수 있다. 도 2의 예에 있어서, 가상 에이전트는 참가자들을 위한 레스토랑을 선택하고 (V3)에서 그들에게 부분적 추천 "제임스가 시내에 멋지고 새로운 장소"을 제공한다. 어느 시점에서라도, 참가자는 가상 에이전트와의 대화를 종료하거나 추가적 정보를 요청할 수 있다. 예컨대, (B3)에서, 사용자(B)는 추천된 레스토랑이 예약을 요구하는지 묻는다. (V4)에서, 가상 에이전트는 부정으로 대답하고 참가자에게 그들이 추천된 레스토랑에 대한 특정 정보를 갖고 싶어하는지 묻는다. (V5)에서, 가상 에이전트는 레스토랑 명칭, 주소 및 전화 번호를 제공하고 그 밖에 다른 것이 소망되는지 묻는다. 그 후 사용자(B)는 그 밖에 아무것도 필요하지 않다고 가상 에이전트에 알려줌으로써 (B4)에서 대화를 종료한다.Once the virtual agent has gathered sufficient information (e.g., from the discourse history and / or from the conversation of the virtual agent with one or more of the users), the virtual agent may perform a task to assist the discourse participant. In the example of FIG. 2, the virtual agent selects a restaurant for participants (V3) and provides them with a partial recommendation "James is a nice and new place in town". At any point, the participant may terminate the conversation with the virtual agent or request additional information. For example, at (B3), the user B asks if the recommended restaurant requires a reservation. (V4), the virtual agent answers negatively and asks the participant if they would like to have specific information about the recommended restaurant. (V5), the virtual agent provides the restaurant name, address and telephone number and asks if anything else is desired. The user B then terminates the conversation at (B4) by informing the virtual agent that nothing else is needed.

본 발명이 이 예와 연관된 구현의 상세 중 어느 것에도 한정되지 않으므로, 도 2에 도시되고 위에서 설명된 다자간 담화의 특정 예는 단지 예시로 제공될 뿐이다. 본 명세서에 개시된 개념은 어떠한 적합한 방식으로라도 구현할 수 있다.As the present invention is not limited to any of the details of the implementation associated with this example, the specific example of the multilateral discourse shown in Figure 2 and described above is provided by way of example only. The concepts disclosed herein may be implemented in any suitable manner.

도 2의 예에서의 가상 에이전트는 동일 사람들 그룹(즉, 사용자(A, B))으로부터 입력을 수신하고 그에 출력을 제공하고 있지만, 본 발명의 태양이 그렇게 한정되지는 않는다. 다자간 담화에의 참가자 중 어느 하나 이상이라도 가상 에이전트의 인보크 이전에, 동시에, 또는 다음에 담화를 떠날 수 있다. 하나의 예시적 시나리오에 있어서, 가상 에이전트를 인보크한 후에, 사용자(A)는 담화로부터 빠질 수 있는 한편, 사용자(B)는 레스토랑 추천을 획득하거나 어느 다른 태스크를 수행하도록 가상 에이전트와 계속 대화할 수 있다. 다른 일례로서, 하나 이상의 다른 참가자는 가상 에이전트가 인보크된 후에 그러나 가상 에이전트가 담화 참가자에 정보를 제공하기 전에 담화에 합류할 수 있다. 또 다른 일례에 있어서, 다자간 담화는 가상 에이전트가 요청된 태스크를 완료하기 전에 종결될 수 있고, 가상 에이전트는 담화 참가자 중 단 일인에 또는 가상 에이전트가 인보크되었던 담화에의 참가자 중일 수도 있고 아닐 수도 있는 일인 이상의 다른 사람들에 출력을 제공하도록 프로그래밍될 수 있다.The virtual agent in the example of FIG. 2 receives input from and provides output to the same group of people (i.e., users A and B), but the embodiment of the invention is not so limited. One or more of the participants in the multilateral discourse may leave the talk at the same time, at the same time, or the next, before invoking the virtual agent. In one exemplary scenario, after invoking the virtual agent, user A may escape from the discourse, while user B continues conversation with the virtual agent to obtain a restaurant recommendation or perform another task . As another example, one or more other participants may join the discourse after the virtual agent has been invoked but before the virtual agent provides information to the discourse participant. In another example, the multilateral discourse may be terminated before the virtual agent completes the requested task, and the virtual agent may or may not be a single participant of the discourse participant or a participant in the discourse in which the virtual agent was invoked And may be programmed to provide output to more than one person.

더욱, 도 2의 예에서는 다자간 담화가 SMS를 통하여 일어나기는 하지만, 본 발명의 태양이 그렇게 한정되지는 않는다. 다른 실시예에 있어서, 가상 에이전트는 이메일을 통하여 일어나는 다자간 담화로부터 인보크될 수 있다. 이것은 어떠한 적합한 방식으로라도 구현될 수 있다. 예컨대, 가상 에이전트는 지정된 이메일 주소와 연관될 수 있고, 가상 에이전트를 인보크하는 것은 지정된 주소에 이메일 요청을 보내는 것을 포함할 수 있다. 일부 실시예에 있어서, 그러한 이메일 요청은 가상 에이전트를 인보크하기를 바라는 사용자에 의해 보내질 수 있다. 다른 실시예에 있어서, 프로세스(예컨대, 배경 프로세스)는 다자간 담화를 모니터링할 수 있고 예컨대, 위에서 논의된 방식 중 어느 하나로) 트리거를 검출하는 것에 응답하여 이메일 요청을 보낼 수 있다. 가상 에이전트가 인보크되고 나면, 지정된 주소는, 가상 에이전트가 그룹에 보내진 모든 후속 이메일을 수신할 수 있도록, 이메일 그룹에 부가될 수 있다.Furthermore, although in the example of FIG. 2, the multilateral discourse occurs via SMS, the embodiment of the present invention is not so limited. In another embodiment, the virtual agent may be invoked from a multilayered discourse that occurs via e-mail. This can be implemented in any suitable manner. For example, a virtual agent may be associated with a specified email address, and invoking a virtual agent may include sending an email request to a specified address. In some embodiments, such an email request may be sent by a user who wishes to invoke the virtual agent. In another embodiment, a process (e.g., a background process) may monitor the multilateral discourse and send an email request in response to detecting the trigger, e.g., in any of the ways discussed above. Once the virtual agent has been invoked, the address specified can be added to the email group so that the virtual agent can receive all subsequent emails sent to the group.

일부 추가적 실시예에 있어서, 가상 에이전트는 (예컨대, 인터넷 전화 프로토콜, VoIP를 사용하여) 음성 또는 비디오 회의를 통하여 일어나는 다자간 담화로부터 인보크될 수 있다. 이것은 어떠한 적합한 방식으로라도 구현될 수 있다. 예컨대, 사람 참가자로부터의 투고는 하나 이상의 ASR 엔진에 의해 실시간으로 전사될 수 있고, 가상 에이전트의 투고는 합성된 음성을 사용하여 참가자에 전해질 수 있다. 다수의 사용자가 동일 음성 채널을 통해 말하는 일부 실시예에 있어서, 여러 다른 사용자를 구별하기 위한 어떠한 적합한 음성 인식 또는 다른 기술이라도 다자간 담화 동안 어느 사용자가 무엇을 말했는지 결정하도록 가상 에이전트에 의해 사용될 수 있다.In some additional embodiments, the virtual agent may be invoked from a multilayered discourse that occurs via voice or video conferencing (e.g., using the Internet telephony protocol, VoIP). This can be implemented in any suitable manner. For example, a contribution from a human participant can be transferred in real time by one or more ASR engines, and the contribution of a virtual agent can be delivered to a participant using synthesized speech. In some embodiments where multiple users speak on the same voice channel, any suitable speech recognition or other technique for distinguishing different users may be used by the virtual agent to determine which user has said what during the multilanguage conversation .

일부 추가적 실시예에 있어서, 가상 에이전트는 (예컨대, 데이터 채널이 아니라, 스마트폰 상의 음성 채널을 통하여) 관용적 전화 통화를 통하여 일어나는 다자간 담화로부터 인보크될 수 있다. 그러한 일 실시예에 있어서, 담화와 연관된 음성 데이터는 여러 다른 방식으로 액세스될 수 있다. 비-한정적 일례로서, 음성 데이터는 전화 네트워크로부터 액세스되고 (예컨대, 클라우드 내) 서버 상에서 실행 중인 ASR 엔진에 의해 문자로 전사될 수 있다. 그 후 전사는, 동일 서버 상에서 ASR 엔진으로서 또는 다른 디바이스 상에서 실행될 수 있는, 가상 에이전트에 입력으로서 제공될 수 있다. 대안의 실시예에 있어서, 담화 참가자에 의해 사용되는 디바이스 중 하나 이상은 디바이스의 마이크로폰에 의해 캡처링된 음성을 직접 프로세싱하도록 로컬 ASR 엔진을 갖고 있을 수 있다. 그 후 전사된 문자는 어떠한 적합한 방식으로라도 가상 에이전트에 제공될 수 있다.In some additional embodiments, the virtual agent may be invoked from a multilayered discourse that occurs over a conventional telephone call (e.g., via a voice channel on a smartphone, but not over a data channel). In one such embodiment, the speech data associated with the discourse may be accessed in a number of different ways. As a non-limiting example, voice data may be accessed from the telephone network (e.g., in the cloud) and transferred literally by the ASR engine running on the server. The transcription can then be provided as an input to a virtual agent, which may be executed as an ASR engine on the same server or on another device. In an alternate embodiment, one or more of the devices used by the discourse participant may have a local ASR engine to directly process the voice captured by the microphone of the device. The transcribed characters can then be provided to the virtual agent in any suitable manner.

도 3은, 일부 실시예에 따라, 가상 에이전트를 인보크하기 위한 예시적 프로세스(300)를 도시하고 있다. 일례에 있어서, 프로세스(300)는 도 2의 예와 연관하여 설명된 바와 같이 메시징 애플리케이션(예컨대, SMS, IM, 이메일, 음성 채팅 등)을 통하여 일어나는 담화에 가상 에이전트를 주입할 수 있다. 일부 실시예에 있어서, 프로세스(300)는 메시징 애플리케이션과는 다른 프로세스(예컨대, 배경 프로세스)일 수 있다. 대안으로, 프로세스(300)는 메시징 애플리케이션에 의해 수행될 수 있다. 일부 추가적 실시예에 있어서, 프로세스(300)는 가상 에이전트에 의해 그 자신을 담화에 주입할지를 결정하도록 수행될 수 있다. 본 발명이 이에 관하여 한정되지는 않으므로, 가상 에이전트는 메시징 애플리케이션에 통합될 수도 있고 별개 프로세스로서 실행될 수도 있다. 더욱, 가상 에이전트가 메시징 애플리케이션과는 별개의 소프트웨어 컴포넌트로서 구현되는 일 실시예에 있어서, 가상 에이전트는, 어떠한 적합한 방식으로라도(예컨대, 가상 에이전트와 동일한 소프트웨어 패키지로, 제3자 소프트웨어 벤더에 의해 별개로 등) 제공될 수 있는, 어떤 적합한 인터페이스 소프트웨어를 통해 메시징 애플리케이션과 대화할 수 있다.FIG. 3 illustrates an exemplary process 300 for invoking a virtual agent, according to some embodiments. In one example, the process 300 may inject a virtual agent into a discourse that occurs through a messaging application (e.g., SMS, IM, email, voice chat, etc.) as described in connection with the example of FIG. In some embodiments, the process 300 may be a different process than the messaging application (e.g., a background process). Alternatively, the process 300 may be performed by a messaging application. In some additional embodiments, the process 300 may be performed by the virtual agent to determine whether to inject itself into the discourse. As the present invention is not limited in this regard, a virtual agent may be integrated into a messaging application or may be executed as a separate process. Further, in one embodiment, in which the virtual agent is implemented as a separate software component from the messaging application, the virtual agent may be in any suitable manner (e.g., in the same software package as the virtual agent, Etc.), any suitable interface software may be provided.

단계(305)에서, 프로세스(300)는 메시징 애플리케이션으로의 사용자 입력을 가로챈다. 이것은 어떠한 적합한 방식으로라도 행해질 수 있다. 예컨대, 프로세스(300)는, 국한되는 것은 아니지만, 키보드, 마우스, 및/또는 터치스크린을 포함하는 다양한 유형의 입력 디바이스로부터의 입력을 가로채도록 프로그래밍될 수 있다. 일부 실시예에 있어서, 프로세스(300)는 또한 캡처링된 사용자 음성을 전사하는 결과로서 ASR 엔진에 의해 출력된 문자를 가로챔으로써 음성 입력에 액세스하도록 프로그래밍될 수 있다.At step 305, the process 300 intercepts user input to the messaging application. This can be done in any suitable manner. For example, the process 300 may be programmed to intercept inputs from various types of input devices, including, but not limited to, a keyboard, a mouse, and / or a touch screen. In some embodiments, the process 300 may also be programmed to access the speech input by intercepting the characters output by the ASR engine as a result of transcribing the captured user speech.

프로세스(300)는 사용자 입력이 가상 에이전트를 인보크할 트리거를 포함하는지 결정하기 위해 단계(305)에서 가로챈 사용자 입력을 분석하도록 프로그래밍될 수 있다. 트리거는, 지정된 구절(예컨대, "브레인에게 물어보자"), 지정된 키 스트로크 또는 키 스트로크 조합, 지정된 터치스크린 제스처, 또는 어느 다른 적합한 트리거와 같은, 어떠한 적합한 형태라도 될 수 있다. 예컨대, 일부 추가적 실시예에 있어서, 트리거는, 특정된 시간 창(예컨대, 10초, 30초, 1분, 10분, 15분 등)에 걸쳐 담화에 나타나는 특정 카테고리(예컨대, 레스토랑, 영화, 음악 등)와 관련된 단어의 임계 수와 같은, 이벤트 패턴일 수 있다. 가상 에이전트 인보크와 관련된 본 발명의 태양이 어떠한 특정 유형의 트리거의 사용에도 한정되지 않으므로, 다른 유형의 트리거가 또한 사용될 수 있다.Process 300 may be programmed to analyze the user input intercepted at step 305 to determine if the user input includes a trigger to invoke the virtual agent. The trigger may be in any suitable form, such as a specified phrase (e.g., "Ask Brain"), a specified keystroke or keystroke combination, a specified touch screen gesture, or any other suitable trigger. For example, in some additional embodiments, the trigger may be triggered by a particular category (e.g., restaurant, movie, music, etc.) appearing in the discourse over a specified time window (e.g., 10 seconds, 30 seconds, 1 minute, 10 minutes, 15 minutes, Such as the number of words associated with a word, e.g. Other types of triggers may also be used, since aspects of the present invention involving virtual agent invocations are not limited to the use of any particular type of trigger.

일부 실시예에 있어서, 단계(305)는 진행중 단위로 프로세스(300)에 의해 수행될 수 있다. 즉, 프로세스(300)는 메시징 애플리케이션으로의 사용자 입력을 계속적으로 가로채고 분석할 수 있다. 단계(310)에서 트리거가 검출되면, 프로세스(300)는 가상 에이전트를 인보크하는 단계(315)로 진행할 수 있다. 예를 들면, 일부 실시예에 있어서, 프로세스(300)는 가상 에이전트가 메시징 애플리케이션을 통하여 일어나는 담화에 주입되게 야기할 수 있고, 그래서 담화에의 참가자는, 가상 에이전트가 마치 담화에의 다른 하나의 참가자인 것처럼, 자연스러운 방식으로 가상 에이전트와 대화할 수 있다.In some embodiments, step 305 may be performed by process 300 on an ongoing basis. That is, the process 300 may continue to intercept and analyze user input to the messaging application. If a trigger is detected in step 310, the process 300 may proceed to step 315 to invoke the virtual agent. For example, in some embodiments, the process 300 may cause the virtual agent to be injected into the discourse that occurs through the messaging application, so that the participant in the discourse is notified that the virtual agent You can talk to a virtual agent in a natural way, just as it is.

담화에 가상 에이전트를 주입하는 것은 어떠한 적합한 방식으로라도 행해질 수 있다. 예를 들면, 가상 에이전트가 메시징 애플리케이션에 통합되어 있는 일 실시예에 있어서, 메시징 애플리케이션은 메시징 애플리케이션이 다른 참가자로부터의 메시지를 렌더링하는 방법과 유사한 방식으로 각각의 참가자로의 가상 에이전트의 투고를 렌더링할 수 있다. 가상 에이전트가 별개의 소프트웨어 컴포넌트인 대안의 실시예에 있어서, 가상 에이전트는 (예컨대, 어떠한 적합한 방식으로라도 메시징 애플리케이션의 서버와 대화하는 메시징 애플리케이션의 클라이언트를 에뮬레이팅함으로써) 메시징 애플리케이션에 의해 제공된 기존 인터페이스를 통해 메시징 애플리케이션에 그 투고를 제공할 수 있다. 예컨대, 일부 실시예에 있어서, 가상 에이전트는 사람 참가자에 의해 사용되는 클라이언트와 동일한 인터페이스를 통해 그 투고를 제공할 수 있다. 다른 실시예에 있어서, 메시징 애플리케이션(예컨대, 메시징 애플리케이션의 서버 및/또는 클라이언트)은 가상 에이전트의 투고를 수신하기 위한 새로운 인터페이스를 제공하도록 적응될 수 있다.Injecting a virtual agent into a discourse can be done in any suitable manner. For example, in one embodiment where the virtual agent is integrated into the messaging application, the messaging application may render the contribution of the virtual agent to each participant in a manner similar to how messaging applications render messages from other participants . In an alternate embodiment where the virtual agent is a separate software component, the virtual agent may communicate via the existing interface provided by the messaging application (e.g., by emulating a client of the messaging application that is interacting with the server of the messaging application in any suitable manner) And can provide that contribution to the messaging application. For example, in some embodiments, the virtual agent may provide its contribution via the same interface as the client used by the human participant. In another embodiment, a messaging application (e.g., a server and / or client of a messaging application) may be adapted to provide a new interface for receiving contributions of a virtual agent.

가상 에이전트는 대안의 실시예에서는 다른 방식으로 제시될 수 있으므로, 가상 에이전트를 인보크하는 것과 관련된 본 발명의 태양은 메시징 애플리케이션을 통하여 일어나는 담화에 가상 에이전트를 주입하는 것으로 한정되지 않음을 인식하여야 한다. 예컨대, 가상 에이전트는 사용자의 스크린 상에 팝업하거나, 합성된 음성을 사용하여 가청 인사를 렌더링하거나, 또는 그 자신을 어떠한 다른 적합한 방식으로라도 제시할 수 있다.It should be appreciated that an aspect of the present invention relating to invoking a virtual agent is not limited to injecting a virtual agent into a discourse occurring through a messaging application, as the virtual agent may be presented in an alternative manner in alternative embodiments. For example, the virtual agent may pop up on the user's screen, render the audible greeting using the synthesized voice, or present itself in any other suitable manner.

도 4는, 일부 실시예에 따라, 수행될 태스크를 공식화하고 그리고/또는 태스크를 수행하도록 가상 에이전트에 의해 사용될 수 있는 예시적 프로세스(400)를 도시하고 있다. 예컨대, 프로세스(400)는 가상 에이전트가 무엇을 하도록 요청받을 가능성이 있는지 결정 또는 해석하도록 인보크시 가상 에이전트에 의해 사용될 수 있다. 그렇지만, 프로세스(400)는, 가상 에이전트가 하나 이상의 사용자와의 동일 대화 동안 다수의 태스크를 수행하도록 요청받을 수 있으므로, 소정 추후 시간에 사용될 수도 있다.Figure 4 illustrates an exemplary process 400 that may be used by a virtual agent to formulate a task to be performed and / or perform a task, in accordance with some embodiments. For example, the process 400 may be used by an invoking virtual agent to determine or interpret what the virtual agent is likely to be asked to do. However, the process 400 may be used at a later time, as the virtual agent may be requested to perform multiple tasks during the same conversation with one or more users.

단계(405)에서, 가상 에이전트는 사용자 의도를 결정하도록 잠재적으로 관련 있는 정보를 모을 수 있다. 일부 실시예에 있어서, 그러한 정보는 가상 에이전트가 가상 에이전트를 "시드"(즉, 초기화)하도록 인보크되었던 때에 제공되었을 수 있다. 예를 들면, (예컨대, 도 3과 연관하여 위에서 논의된 바와 같이 트리거를 검출하는 것에 응답하여) 가상 에이전트를 인보크하는 프로세스는 어떠한 적합한 정보라도 가상 에이전트에 넘겨줄 수 있다. 대안으로, 잠재적으로 관련 있는 정보는 가상 에이전트가 인보크된 후에, 예컨대, 사용자가 가상 에이전트에 새로운 태스크를 수행하라고 요청할 때 사용자에 의해 제공될 수 있다. 또 다른 일례로서, 가상 에이전트는 잠재적으로 관련 있는 정보를 사전에 찾도록 프로그래밍될 수 있다.At step 405, the virtual agent may gather potentially relevant information to determine the user's intent. In some embodiments, such information may have been provided when the virtual agent was invoked to "seed" (i.e., initialize) the virtual agent. For example, the process of invoking a virtual agent (e.g., in response to detecting a trigger as discussed above in connection with FIG. 3) may pass any suitable information to the virtual agent. Alternatively, potentially relevant information may be provided by the user after the virtual agent has been invoked, e.g., when the user requests the virtual agent to perform a new task. As another example, a virtual agent can be programmed to look up potentially relevant information in advance.

일부 실시예에 있어서, 단계(405)에서 가상 에이전트에 의해 식별되고 그리고/또는 액세스되는 정보는 다자간 담화의 레코드를 포함할 수 있다. 예를 들면, (예컨대, 도 2와 연관하여 위에서 논의된 바와 같이) 가상 에이전트가 다자간 담화로부터 인보크되는 일 실시예에 있어서, 가상 에이전트는 사용자 의도를 결정하도록 담화 이력 전체 또는 그 하나 이상의 부분을 사용할 수 있다. 그렇지만, 대안의 실시예에 있어서, 가상 에이전트는 다자간 담화 밖에서 인보크되고 그리고 그럼에도 불구하고 사용자 의도를 결정하도록 담화의 레코드를 사용할 수 있다. 예컨대, 가상 에이전트는 담화가 종결된 후에 또는 담화가 일시정지된 동안 사용자에 의해 인보크될 수 있다. 더욱, 위에서 논의된 바와 같이, 가상 에이전트는 담화에의 하나 이상의 참가자를 위한 태스크를 수행하도록 제3자에 의해 인보크될 수 있으므로, 가상 에이전트를 인보크하는 사용자는 담화에의 참가자일 필요는 없다.In some embodiments, the information identified and / or accessed by the virtual agent in step 405 may include a record of the multilateral discourse. For example, in one embodiment in which a virtual agent is invoked from a multilayered discourse (as discussed above in connection with FIG. 2, for example), the virtual agent may include all or part of the discourse history to determine user intent Can be used. However, in an alternative embodiment, the virtual agent may be invoked outside of the multilanguage and may nevertheless use the record of the discourse to determine the user intent. For example, the virtual agent may be invoked by the user after the discourse is terminated or while the discourse is paused. Moreover, as discussed above, a virtual agent may be invoked by a third party to perform a task for one or more participants to a discourse, so that the user invoking the virtual agent need not be a participant in the discourse .

일부 추가적 실시예에 있어서, 가상 에이전트는 다자간 담화의 레코드에 부가하여 또는 그 대신에 다른 유형의 정보를 분석할 수 있다. 예를 들면, 가상 에이전트가 가상 에이전트 자체와는 다른 프로세스에 의해 인보크되는 일 실시예에 있어서, 그 프로세스는 가상 에이전트가 인보크되는 맥락을 가상 에이전트가 "이해"하는 것을 도울 수 있는 어떠한 적합한 정보라도 회람할 수 있다. 비-한정적 일례로서, (예컨대, 도 3과 연관하여 위에서 논의된 바와 같이) 트리거를 검출하는 것에 응답하여 가상 에이전트를 인보크하는 프로세스는 검출된 트리거(예컨대, 가상 에이전트가 음식, 쇼핑, 엔터테인먼트 등과 같은 특정 카테고리에서 도움을 줄 수 있을 수 있음을 나타내는 특정 단어 또는 구절 패턴)를 기술하는 정보를 가상 에이전트에 제공할 수 있다. 다른 일례로서, 인보크하는 프로세스는 검출된 트리거를 발행하였던 사용자의 신원 및/또는 다자간 담화에의 하나 이상의 참가자의 신원을 가상 에이전트에 제공할 수 있다.In some additional embodiments, the virtual agent may analyze other types of information in addition to or instead of the record of the multilateral discourse. For example, in one embodiment, in which a virtual agent is invoked by a different process than the virtual agent itself, the process may include any suitable information that may help the " understand " Can also be circulated. As a non-limiting example, the process of invoking a virtual agent in response to detecting a trigger (e.g., as discussed above in connection with FIG. 3) may include detecting a trigger (e.g., A particular word or phrase pattern that indicates that it may be helpful in the same specific category). As another example, the invoked process may provide the virtual agent with the identity of the user who issued the detected trigger and / or the identity of one or more participants to the multilateral discourse.

일부 추가적 실시예에 있어서, 가상 에이전트는 사용자 의도를 결정하기 위해 가상 에이전트를 인보크하였던 사용자의 활동 이력을 분석할 수 있다. 예를 들면, 가상 에이전트는 가상 에이전트가 사용자에게 어떻게 도움을 줄 수 있는지 결정 또는 해석하기 위해 (예컨대, 가상 에이전트를 인보크하기 이전 1분, 2분, 3분, 5분, 10분, 15분 등 내에) 사용자에 의해 최근 액세스된 컨텐트를 분석하도록 프로그래밍될 수 있다. 비-한정적 일례로서, 레스토랑 추천을 하도록 사용자에 의해 인보크될 때, 가상 에이전트는 사용자가 어떤 유형의 음식에 관심이 있을 수 있는지에 관하여 가상 에이전트에 알려주도록 사용자에 의해 최근 액세스된 레스토랑 후기를 분석할 수 있다. 다른 유형의 사용자 활동이 또한 가상 에이전트에 의해 고려될 수 있으며, 그 비-한정적 예는 사용자가 특정 캘린더 약속을 잡는 것, 특정 지인과 통화하는 것, 특정 구입을 하는 것 등을 포함한다.In some additional embodiments, the virtual agent may analyze the activity history of the user that invoked the virtual agent to determine the user's intent. For example, a virtual agent may be used to determine or interpret how a virtual agent can assist a user (e.g., 1 minute, 2 minutes, 3 minutes, 5 minutes, 10 minutes, 15 minutes Etc.) to analyze the content recently accessed by the user. As a non-limiting example, when invoked by a user to make a restaurant recommendation, the virtual agent analyzes the restaurant history recently accessed by the user to inform the virtual agent about what type of food the user may be interested in. can do. Other types of user activity may also be considered by the virtual agent, which includes capturing a specific calendar appointment, talking to a specific acquaintance, making a particular purchase, and the like.

도 4로 되돌아가면, 단계(410)에서는, 가상 에이전트가 단계(405)에서 모은 잠재적으로 관련 있는 정보를 분석할 수 있다. 이것은 어떠한 적합한 방식으로라도 행해질 수 있다. 비-한정적 일례로서, 가상 에이전트는 단계(405)에서 획득된 담화 이력을 여러 다른 부분으로 분할하고 그것들을 사용자 의도를 결정할 목적으로 다르게 분석하도록 프로그래밍될 수 있다. 예를 들면, 담화 이력은 문자를 여러 다른 시간 창에 대응하는 다수의 세그먼트로 분할하도록 사용될 수 있는 타임스탬프를 포함할 수 있다. 창은 균일 길이(예컨대, 5초, 10초, 15초, 20초, 30초, 1분, 2분, 3분, 5분, 10분, 15분 등) 또는 가변 길이(예컨대, 가장 최근으로부터 덜 최근으로 연속하여 증가하는 길이)를 가질 수 있다.Returning to Fig. 4, at step 410, the virtual agent may analyze the potentially relevant information it has collected at step 405. [ This can be done in any suitable manner. As a non-limiting example, the virtual agent may be programmed to divide the speech history obtained in step 405 into different parts and analyze them differently for the purpose of determining user intent. For example, the discourse history may include a timestamp that can be used to divide a character into multiple segments corresponding to different time windows. The window may be of a uniform length (e.g., 5 seconds, 10 seconds, 15 seconds, 20 seconds, 30 seconds, 1 minute, 2 minutes, 3 minutes, 5 minutes, 10 minutes, 15 minutes, ≪ / RTI > less recent, continuously increasing length).

대안의 실시예에 있어서, 담화 이력은 다른 방식으로, 예컨대, 시간보다는 문자의 양에 기반하여 세그먼트 분할될 수 있다. 예를 들면, 세그먼트는 균일 길이의 어떤 적합한 단어 수(예컨대, 10, 25, 50, 100, 150, 200, 300, 500 등) 또는 어떤 적합한 패턴을 갖는 가변 길이(예컨대, 가장 최근으로부터 덜 최근으로 연속하여 증가하는 길이)를 가질 수 있다.In an alternative embodiment, the discourse history may be segmented in other ways, e.g., based on the amount of characters rather than time. For example, the segment may be of any suitable number of words (e.g., 10, 25, 50, 100, 150, 200, 300, 500, etc.) of a uniform length, or a variable length A length continuously increasing).

위에서 논의된 어느 유형의 세그먼트 분할로든, 또는 어느 다른 유형의 세그먼트 분할로든, 특정 파라미터(예컨대, 시간의 길이 또는 문자의 양)는, 디폴트로 또는 사용자에 의해 특정된 바와 같이 등 어떠한 적합한 방식으로라도 결정될 수 있다. 일부 실시예에 있어서, 이들 파라미터는 또한 담화가 어떻게 수행되었는지에 기반하여 선택될 수 있다(예컨대, 음성-기반 담화에 대해서는 더 짧은 세그먼트 그리고 문자-기반 담화에 대해서는 더 긴 세그먼트).The specific parameters (e.g., the length of time or the amount of characters) may be determined by any suitable means, such as by default or as specified by the user, whichever type of segmentation discussed above, or any other type of segmentation . In some embodiments, these parameters may also be selected based on how the discourse was performed (e.g., a shorter segment for voice-based discourse and a longer segment for character-based discourse).

일부 실시예에 있어서, 담화 이력으로부터 문자의 더 최근 세그먼트는 그들이 사용자 의도의 더 신뢰할만한 표시를 제공할 수 있기 때문에 단계(410)의 분석에서 더 높은 가중치를 받을 수 있다. 예컨대, 일례의 시나리오에 있어서, 참가자는 영화 후에 어느 레스토랑에 갈지로 담화가 전환되기 전에 금요일 저녁에 어떤 영화를 시청할지를 상당한 시간 동안 논의하고 있었을 수 있고, 가상 에이전트는 이후에 바로 인보크되어 레스토랑을 추천할 수 있다. 그리하여, 이러한 시나리오에서는, 담화 이력의 가장 최근 세그먼트(예컨대, 가장 최근 5초 또는 10 단어)만이 가상 에이전트가 수행하도록 요청받는 태스크에 관련 있을 수 있고, 그 세그먼트에 더 높은 가중치를 할당하는 것은 가상 에이전트가 태스크를 올바르게 공식화하는 것(즉, 영화를 추천하는 것이 아니라, 레스토랑을 추천하는 것)을 도울 수 있다.In some embodiments, the more recent segments of characters from the discourse history may receive higher weights in the analysis of step 410 because they may provide a more reliable indication of user intent. For example, in an exemplary scenario, a participant may have been discussing for a considerable time what movie to watch on Friday evening before the conversation is switched to which restaurant to go to after the movie, and the virtual agent is then invoked Recommended. Thus, in such a scenario, only the most recent segment of the discourse history (e.g., the most recent 5 seconds or 10 words) may be related to the task being requested to be performed by the virtual agent, and assigning a higher weight to that segment may result in the virtual agent Can help in formulating tasks correctly (that is, recommending restaurants, not recommending movies).

담화 이력의 다양한 세그먼트에 할당된 가중치는 어떠한 적합한 방식으로라도 결정될 수 있다. 비-한정적 일례로서, 가중치에 대한 초기 값은 수동으로 선택될 수 있고 실제 사용에서의 성능(예컨대, 사용자 의도를 올바르게 식별함에 있어서의 성공률)에 기반하여 조절될 수 있다. 다른 일례로서, 가중치는 수동으로 태깅된 사용자 의도 및 담화 이력 말뭉치의 통계적 분석에 의해 확립될 수 있다. 또 다른 일례로서, 가장 최근의 하나 이상의 세그먼트만이 영-아닌 가중치를 받을 수 있어서, 모든 다른 세그먼트는 (예컨대, 가상 에이전트의 응답 시간을 줄이기 위해) 무시된다.The weights assigned to the various segments of the discourse history can be determined in any suitable manner. As a non-limiting example, the initial value for the weight can be manually selected and adjusted based on performance in actual use (e.g., the success rate in correctly identifying user intent). As another example, the weights can be established by statistical analysis of manually intuitively tagged user intent and discourse history corpus. As another example, only the most recent one or more segments may receive zero-non-weighting, so that all other segments are ignored (e.g., to reduce the response time of the virtual agent).

일부 추가적 실시예에 있어서, 가상 에이전트는 참가자 신원에 기반하여 담화 이력의 여러 다른 부분에 여러 다른 가중치를 할당할 수 있다. 예를 들면, 가상 에이전트는 하나 이상의 특정된 참가자(예컨대, 가상 에이전트를 인보크한 사용자)로부터의 투고에 (예컨대, 더 높은 가중치를 할당함으로써) 더 높은 우선권을 주도록 프로그래밍될 수 있다. 마찬가지로, 예를 들면, 가상 에이전트는 하나 이상의 특정된 참가자(예컨대, 가상 에이전트를 인보크한 사용자)로부터의 투고에 (예컨대, 더 높은 가중치를 할당함으로써) 더 높은 우선권을 주도록 프로그래밍될 수 있다. 비-한정적 일례로서, 가상 에이전트는 모든 다른 참가자에 영 가중치를 할당함으로써 하나의 참가자만을 "청취"하도록 프로그래밍될 수 있다.In some additional embodiments, the virtual agent may assign different weightings to different portions of the discourse history based on the participant identity. For example, a virtual agent can be programmed to give higher priority to contributions from one or more specified participants (e.g., users who invoke virtual agents) (e.g., by assigning higher weights). Likewise, for example, a virtual agent can be programmed to give higher priority to contributions from one or more specified participants (e.g., users who invoke virtual agents) (e.g., by assigning higher weights). As a non-limiting example, a virtual agent may be programmed to "listen" only one participant by assigning a zero weight to all other participants.

일부 실시예에 있어서, 가상 에이전트를 인보크한 사용자의 활동 이력은 (예컨대, 위에서 논의된 바와 같은 담화 이력의 세그먼트 분할과 유사한 방식으로) 세그먼트 분할될 수 있고, 유사하게, 여러 다른 세그먼트에는 그들이 사용자 의도의 신뢰할만한 표시자인지에 기반하여 여러 다른 가중치가 할당될 수 있다.In some embodiments, the user ' s activity history of invoking the virtual agent may be segmented (e.g., in a manner similar to segmentation of the discourse history as discussed above), and similarly, Different weights may be assigned based on whether the intent is a reliable indicator.

도 4에서 단계(415)로 진행하면, 가상 에이전트는 그것이 수행하라고 요청받은 태스크를 그것이 명료하게 식별하였는지 평가할 수 있다. 일부 실시예에 있어서, 단계(410)에서 잠재적으로 관련 있는 정보를 분석하도록 가상 에이전트에 의해 사용되는 하나 이상의 기술(예컨대, NLU 또는 다른 인공 지능 기술)은, 분석이 다양한 신뢰 레벨로 가능한 사용자 의도에 대한 다수의 후보를 반환할 수 있도록, 통계적일 수 있다(예컨대, 통계적 모델을 사용함). 가상 에이전트가 충분히 확신하지 못하면(예컨대, 어느 후보와 연관된 최고 신뢰 레벨이 선택된 임계치 아래에 있으면, 또는 다수의 후보가 유사하게 높은 신뢰 레벨과 연관되어 있으면), 가상 에이전트는 부가적 정보를 모으도록 단계(405)로 복귀할 수 있다.Proceeding to step 415 in FIG. 4, the virtual agent may evaluate whether it has clearly identified the task it was asked to perform. In some embodiments, one or more of the techniques (e.g., NLU or other artificial intelligence techniques) used by the virtual agent to analyze potentially relevant information in step 410 may be based on an analysis of the user's intention (E.g., using a statistical model) to be able to return a large number of candidates. If the virtual agent is not sufficiently convinced (e.g., if the highest confidence level associated with a candidate is below a selected threshold, or if multiple candidates are similarly associated with a high confidence level) (405). ≪ / RTI >

단계(405)로 복귀 시, 가상 에이전트는 여러 다른 방식으로 부가적 정보를 모을 수 있다. 일부 실시예에 있어서, 가상 에이전트는 부가적 정보에 대해 하나 이상의 사용자에게 프롬프트할 수 있다. 예컨대, 가상 에이전트가 담화에 주입되는 일 실시예에 있어서, 가상 에이전트는 최고 신뢰 레벨을 갖는 후보가 실로 가상 에이전트가 수행하라고 요청받는 태스크인지 (예컨대, 도 2에 도시된 예에서 "레스토랑 찾습니까"라고 물음으로써) 확인해 달라고, 또는 유사하게 높은 신뢰 레벨을 갖는 2개 이상의 후보 중 선택하라고 참가자에게 요청할 수 있다. 다른 일례로서, 가상 에이전트는, "당신을 어떻게 도울 수 있을까요?" 또는 "당신을 위해 무엇을 할 수 있을까요?"와 같은, 개방형 질문을 참가자에게 할 수 있다.Upon returning to step 405, the virtual agent may collect additional information in several different ways. In some embodiments, the virtual agent may prompt one or more users for additional information. For example, in one embodiment in which a virtual agent is injected into a discourse, the virtual agent determines whether the candidate with the highest trust level is indeed a task that the virtual agent is asked to perform (e.g., in the example shown in FIG. 2, ), Or similarly, to ask the participant to choose between two or more candidates with a high confidence level. As another example, a virtual agent might say, "How can I help you?" Or open questions such as "What can I do for you?".

다른 실시예에 있어서, 단계(405, 410)로 복귀 시, 가상 에이전트는 이전에 식별되었지만 (예컨대, 성능 이유로) 분석되지 않은 정보를 분석할 수 있다. 예를 들면, 가상 에이전트가 초기 단계에서 담화 또는 활동 이력의 가장 최근 부분만을 분석하는 일 실시예에 있어서, 가상 에이전트는, 단계(405, 410)로 복귀 시, 더 앞서 일어난 이력의 하나 이상의 부가적 부분에 액세스하여 분석할 수 있다.In another embodiment, upon returning to steps 405 and 410, the virtual agent may analyze information that was previously identified (e.g., for performance reasons) but has not been analyzed. For example, in one embodiment in which the virtual agent analyzes only the most recent portion of the discourse or activity history at an early stage, the virtual agent, upon returning to steps 405 and 410, Parts can be accessed and analyzed.

단계(405, 410)에서 부가적 정보가 모이고 분석되고 나면, 가상 에이전트는 또다시 그것이 무엇을 하라고 인보크되었는지 그것이 명료하게 식별하였는지 단계(415)에서 평가할 수 있다. 이러한 프로세스는 사용자 의도가 명료하게 식별될 때까지, 또는 어떤 다른 중단 조건에 도달될 때까지 반복될 수 있다. 중단 조건의 비-한정적 예는 가상 에이전트에 이용가능한 정보가 고갈되었을 때, 가상 에이전트가 어떤 최대량(예컨대, 가상 에이전트가 인보크되기 이전 5분, 10분, 15분, 30분, 1시간, 2시간 등까지)의 이력을 조사하였을 때, 이력에서 충분히 긴 기간의 비활동(예컨대, 30분, 1시간, 2시간 등)이 발견될 때, 또는 가상 에이전트가 단계(405, 410)를 반복함으로써 유용한 정보를 찾을 수 있을 것 같지 않음을 나타낼 수 있는 어떠한 다른 적합한 조건을 포함한다.Once additional information has been collected and analyzed at steps 405 and 410, the virtual agent can again evaluate at step 415 whether it has been explicitly identified what it was invited to do. This process can be repeated until the user intent is clearly identified or until some other break condition is reached. A non-limiting example of an abort condition is that when the information available to the virtual agent is depleted, the virtual agent is notified of any maximal amount (e.g., 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 (E.g., 30 minutes, 1 hour, 2 hours, etc.) is found in the history, or when the virtual agent repeats steps 405 and 410 And any other suitable conditions that may indicate that useful information is unlikely to be found.

단계(415)에서 가상 에이전트가 그것이 수행하도록 인보크되었던 태스크를 그것이 명료하게 식별하였다고 결정하면, 그것은 단계(420)로 진행하여 그 식별된 태스크를 수행할 수 있다. 태스크는 정보를 검색하는 것, 추천을 하는 것, 또는 어느 다른 유형의 액션을 취하는 것을 포함할 수 있다. 일부 실시예에 있어서, 가상 에이전트는 요청된 태스크 수행의 편의를 도모하도록 부가적 정보에 대해 하나 이상의 사용자에게 프롬프트할 수 있다. 예컨대, 가상 에이전트가 담화에 주입되는 일 실시예에 있어서, 가상 에이전트는 (예컨대, 초기 검색 히트 수가 특정 임계치를 초과하면 검색을 좁히기 위해) 태스크를 더 정의하도록 참가자에게 질문을 할 수 있다. 예를 들면, 위에서 논의된 레스토랑 검색 예에 있어서, 가상 에이전트는 레스토랑 검색을 정제하기 위해 참가자에게 특정 유형의 요리가 선호되는지 또는 어느 다른 적합한 질문을 할 수 있다. If at step 415 the virtual agent determines that it has unambiguously identified the task that was invoked to perform it, it may proceed to step 420 to perform the identified task. Tasks may include retrieving information, making recommendations, or taking any other type of action. In some embodiments, the virtual agent may prompt one or more users for additional information to facilitate the performance of the requested task. For example, in one embodiment where the virtual agent is injected into the discourse, the virtual agent may ask the participant to further define the task (e.g., to narrow the search if the initial number of hit hits exceeds a certain threshold). For example, in the restaurant search example discussed above, the virtual agent may ask the participant for a particular type of dish to refine the restaurant search or any other suitable question.

일부 실시예에 있어서, 가상 에이전트는 요청된 태스크를 단계(420)에서 수행함에 있어서 여러 다른 사용자로부터의 입력의 우선순위를 결정할 수 있다. 예컨대, 가상 에이전트는 하나 이상의 지정된 사용자(예컨대, 가상 에이전트를 인보크한 사용자, 그 디바이스 상에 가상 에이전트가 실행 중인 사용자, 달리 가상 에이전트와 연관된 사용자 등)으로부터의 입력에 더 높은 우선권을 주도록 프로그래밍될 수 있다. 부가적으로 또는 대안으로, 가상 에이전트는 하나 이상의 지정된 사용자로부터의 입력에 더 낮은 우선권을 주도록 프로그래밍될 수 있다. 비-한정적 일례로서, 가상 에이전트는 특정 사용자가 타인들보다 더 공손함을, 그들 입력에 더 낮은 우선권을 줄 수 있도록, 과거 대화로부터 "학습"하도록 프로그래밍될 수 있다.In some embodiments, the virtual agent may determine the priority of inputs from different users in performing the requested task at step 420. [ For example, a virtual agent may be programmed to give a higher priority to input from one or more designated users (e.g., a user invoked a virtual agent, a user running a virtual agent on the device, or otherwise associated with a virtual agent) . Additionally or alternatively, the virtual agent can be programmed to give a lower priority to input from one or more designated users. As a non-limiting example, a virtual agent can be programmed to "learn" from past conversations so that certain users are more polite than others, giving lower input to their input.

일부 추가적 실시예에 있어서, 가상 에이전트는 선호와 관련된 입력과 사실 입력 간 등 여러 다른 유형의 입력 간을 구별할 수 있다. 예를 들면, 일부 실시예에 있어서, 가상 에이전트는 어느 사용자에 의해서라도 제공된 사실 정보를 수용할 수 있지만, 하나 이상의 지정된 사용자에 의해 표현된 선호만을 고려하거나 우선권을 줄 수 있다. 가상 에이전트는 또한, 사용자에 의해 표현된 여러 다른 강조 레벨과 같은, 다른 유형의 구별에 기반하여 여러 다른 우선권을 할당할 수 있다(예컨대, "해야 한다"에 대해서는 더 높은 우선권 그리고 "할 수도 있다"에 대해서는 더 낮은 우선권).In some additional embodiments, the virtual agent can distinguish between different types of inputs, such as input related to preferences and fact inputs. For example, in some embodiments, a virtual agent may accept fact information provided by any user, but may only consider or prioritize preferences expressed by one or more designated users. The virtual agent may also assign different priorities based on different types of distinctions, such as different levels of emphasis expressed by the user (e.g., higher priority and "may" For lower priority).

단계(425)에서, 가상 에이전트는 요청된 태스크의 결과를 (가상 에이전트를 인보크하였던 하나 이상의 사용자와 동일할 수도 있고 그렇지 않을 수도 있는) 하나 이상의 사용자에게 제시할 수 있다. 결과는 어떠한 적합한 형태라도 될 수 있으며, 그 예는 요청과 가장 가깝게 매칭하는 단일 추천, 상위 후보의 목록, 및 한 가지 이상의 요청된 정보를 포함한다. 결과는 또한, 가상 에이전트가 어떻게 인보크되었는지에 무관하게, 이메일, SMS, IM, 음성 메시지 등을 통하여서와 같이, 어떠한 적합한 방식으로라도 전해질 수 있다.At step 425, the virtual agent may present the results of the requested task to one or more users (which may or may not be the same as the one or more users that invoked the virtual agent). The result can be in any suitable form, the example including a single recommendation, a list of top candidates, and one or more requested information that most closely match the request. The results can also be conveyed in any suitable manner, such as via email, SMS, IM, voice messages, etc., regardless of how the virtual agent was invoked.

일부 실시예에 있어서, 가상 에이전트는 결과가 제시되었던 하나 이상의 사용자로부터 또는 어느 다른 사용자로부터라도 피드백을 수신할 수 있다. 이러한 피드백은 어떠한 적합한 형태(예컨대, 찬성, 반대, 추가적 제안 등)라도 될 수 있고 어떠한 적합한 방식으로라도 수신될 수 있다. 예컨대, 가상 에이전트가 담화에 주입되었던 일 실시예에 있어서, 가상 에이전트는 동일 담화 내에서 결과를 제시하고 피드백을 수신할 수 있다. 그렇지만, 사용자 피드백과 관련된 본 발명의 태양이 가상 에이전트에 피드백을 통신하는 어떠한 특정 방식에도 한정되지 않으므로, 피드백은 또한 담화의 맥락 밖에서 수신될 수 있다.In some embodiments, the virtual agent may receive feedback from one or more users from which the results were presented, or from any other user. This feedback may be in any suitable form (e.g., yes, no, contingent proposal, etc.) and may be received in any suitable manner. For example, in one embodiment where a virtual agent has been injected into the discourse, the virtual agent may present results and receive feedback within the same discourse. However, since aspects of the present invention associated with user feedback are not limited to any particular way of communicating feedback to a virtual agent, feedback can also be received outside the context of the discourse.

단계(430)에서, 가상 에이전트는, 수신된 피드백에 기반하여, 사용자가 요청된 태스크의 결과를 보고 만족하는지 결정할 수 있다. 하나 이상의 사용자가 반대를 나타내면, 가상 에이전트는, 예컨대, 다른 추천을 함으로써, 부가적 정보를 검색함으로써 등 업데이트를 수행하도록 단계(420)로 복귀할 수 있다. 그렇게 함에 있어서, 가상 에이전트는, 업데이트가 만족할만한 결과를 산출할 가능성이 더 있도록, 사용자로부터 수신된 피드백을 고려할 수 있다.In step 430, based on the received feedback, the virtual agent may determine whether the user is satisfied with the result of the requested task. If more than one user indicates an inverse, the virtual agent may return to step 420 to perform an update, such as by retrieving additional information, e.g., by making another recommendation. In doing so, the virtual agent may consider the feedback received from the user such that the update is more likely to produce a satisfactory result.

일부 실시예에 있어서, 가상 에이전트는 일인 이상의 개인 간 의견 차이를 인지하도록 프로그래밍될 수 있다. 예컨대, 가상 에이전트는, 결과가 만족할만하지 않다고 가상 에이전트가 단계(430)에서 결론짓게 할 수 있는, 여러 다른 사용자로부터 수신된 상충하는 입력을 단계(420) 및/또는 단계(425)에서 식별하도록 프로그래밍될 수 있다. 단계(420)로 복귀 시, 가상 에이전트는 상충을 해결하라고 사용자들에게 요청할 수 있다. 대안으로, 가상 에이전트는 사용자들을 합의로 향하여 나아가게 하려고 시도하도록 프로그래밍될 수 있다.In some embodiments, the virtual agent can be programmed to recognize a disagreement between one or more individuals. For example, the virtual agent may be configured to identify conflicting inputs received from different users at step 420 and / or step 425, which may cause the virtual agent to conclude at step 430 that the results are unsatisfactory Can be programmed. Upon returning to step 420, the virtual agent may ask users to resolve the conflict. Alternatively, the virtual agent may be programmed to attempt to direct users towards consensus.

가상 에이전트는 어떠한 적합한 방식으로라도 사용자들을 합의로 향하여 나아가게 하려고 시도할 수 있다. 일부 실시예에 있어서, 가상 에이전트는 상충을 해결하도록 사용자들 간 투표를 실시할 수 있다. 다른 실시예에 있어서, 가상 에이전트는 하나 이상의 적합한 책략을 적용함으로써 합의에 도달하도록 사용자 간 교섭의 편의를 도모할 수 있다. 비-한정적 일례로서, 사용자들이 결정의 일 측면(예컨대, 모임 장소)에 관하여 합의하지 못하면, 가상 에이전트는 서로로부터 대략 동일 레벨의 타협을 표현하는 대안(예컨대, 모든 사용자에 관하여 중심에 위치하는 새로운 장소)을 제안할 수 있다. 다른 일례로서, 가상 에이전트는 사용자가 그들 각자의 선호가 채택되게 하도록 교대로 하는 것을 제안할 수 있다(예컨대, 이번주에는 프렌치 레스토랑 그리고 다음주에는 이탈리안 레스토랑). 또 다른 일례로서, 가상 에이전트는 각각의 사용자가 결정의 서로 다른 측면을 제어하게 할 수 있다. 다수의 사용자 간 합의를 교섭하는 것과 관련된 본 발명의 태양이 어떠한 특정 교섭 책략의 사용에도 한정되지 않으므로, 다른 교섭 책략이 또한 사용될 수 있다.The virtual agent may attempt to advance users towards consensus in any suitable manner. In some embodiments, the virtual agent may conduct a vote between users to resolve the conflict. In another embodiment, the virtual agent can facilitate negotiation between users to arrive at an agreement by applying one or more appropriate strategies. As a non-limiting example, if users can not agree on one aspect of a decision (e.g., a meeting place), the virtual agent may choose an alternative that represents roughly the same level of compromise from each other (e.g., Place). As another example, a virtual agent may suggest that a user alternate to allow their respective preferences to be adopted (e.g., a French restaurant this week and an Italian restaurant next week). As another example, a virtual agent may allow each user to control different aspects of the decision. Other aspects of negotiation strategies may also be used, since aspects of the present invention relating to negotiating agreements between multiple users are not limited to the use of any particular negotiation strategy.

요청된 태스크가 만족할만하게 수행되었다고 가상 에이전트가 단계(430)에서 결정하면, 가상 에이전트는 단계(435)로 진행하여 태스크와 연관된 어떠한 후속 액션(들)이라도 수행할 수 있다. 일부 실시예에 있어서, 그러한 후속 액션은 간청되지 않을 수 있지만, 어떤 다른 이유로 사용자 체감을 개선하도록 수행될 수 있다. 비-한정적 일례로서, 가상 에이전트의 추천이 수용된 후에, 가상 에이전트는, 캘린더 엔트리를 생성하는 것, 초대를 보내는 것, 예약을 하는 것, 티켓을 구입하는 것, 교통 수단을 마련하는 것 등과 같은, 어느 필요한 또는 바람직한 다음 단계에 대해 사용자 중 하나 이상에게 상기시킬 수 있다. 가상 에이전트는 또한 사용자를 대신하여 이들 액션 중 하나 이상을 수행하도록 사용자로부터의 허가를 요청할 수 있다.If the virtual agent determines in step 430 that the requested task has been performed satisfactorily, the virtual agent may proceed to step 435 to perform any subsequent action (s) associated with the task. In some embodiments, such subsequent actions may not be solicited, but may be performed to improve the user experience for some other reason. As a non-limiting example, after a recommendation of a virtual agent has been accepted, the virtual agent may be able to create a calendar entry, such as creating a calendar entry, sending an invitation, making a reservation, purchasing a ticket, One or more of the users may be prompted for any necessary or desired next steps. The virtual agent may also request permission from the user to perform one or more of these actions on behalf of the user.

단계(435)에서 어느 후속 액션(들)을 완료한 후에, 가상 에이전트는 단계(440)로 진행하여 가상 에이전트가 부가적 태스크를 수행하는데 도움을 줄 수 있는지 물을 수 있다. 가상 에이전트가 단계(440)에서 긍정 응답을 수신하면, 가상 에이전트는 단계(405)로 복귀하여 새로운 태스크를 식별하려고 시도할 수 있다. 가상 에이전트가 단계(440)에서 부정 응답을 수신하면, 가상 에이전트는 대화를 종료할 수 있다.After completing any subsequent action (s) in step 435, the virtual agent may proceed to step 440 and ask if the virtual agent can help perform additional tasks. If the virtual agent receives an acknowledgment in step 440, the virtual agent may return to step 405 and attempt to identify the new task. If the virtual agent receives a negative response at step 440, the virtual agent may terminate the conversation.

프로세스(400)의 다양한 단계가 위에서 상세히 설명되고 있지만, 그러한 설명은 오로지 예시의 목적으로만 제공됨을 인식하여야 한다. 본 명세서에 개시된 개념은 위에서 설명된 방식으로 구현되는 것으로 한정되지도 않고, 어떠한 다른 특정 구현으로 한정되지도 않는다.While various steps of process 400 are described in detail above, it should be appreciated that such description is provided for illustrative purposes only. The concepts disclosed herein are not limited to being implemented in the manner described above, and are not limited to any particular specific implementation.

위에서 논의된 바와 같이, 발명자는 가상 에이전트와 하나 이상의 사용자 간 대화의 레코드를 남겨두는 소정 이점을 인지 및 인식하였다. 그러한 레코드(예컨대, 영수증)는 어떠한 적합한 정보라도 저장할 수 있다. 일부 실시예에 있어서, 영수증은, 가상 에이전트에 의해 수행된 태스크의 결과(예컨대, 가상 에이전트에 의해 이루어진 추천)와 같은, 사용자가 장래에 다시 불러오기를 바랄 수 있는 정보를 저장할 수 있다. 비-한정적 일례로서, 사용자는 특정 시간 프레임 동안 특정 친구와 만찬을 하였던 곳을 다시 불러오기를 바랄 수 있다. 레스토랑이 가상 에이전트에 의해 추천되었으면, 사용자는 친구의 이름 및/또는 관련 있는 시간 프레임에 기반하여 영수증을 검색할 수 있을 수 있다. 그러한 정보를 검색하는 것은 레코드가 보관되지 않았으면 가능하지 않았을 것이거나, 또는 이러한 유형의 검색의 편의를 도모하였을 방식으로 색인이 작성되지 않은 다량의 정보(예컨대, 관용적으로 저장된 이메일)를 쭉 사용자가 검색해야 하였으면 더 시간 소비적이었을 것이다.As discussed above, the inventor has recognized and recognized certain advantages of leaving a record of the conversation between the virtual agent and one or more users. Such records (e.g., receipts) may store any suitable information. In some embodiments, the receipt may store information that the user may wish to recall in the future, such as the result of a task performed by a virtual agent (e.g., a recommendation made by a virtual agent). As a non-limiting example, a user may wish to recall a place where he had dinner with a particular friend for a certain time frame. If the restaurant has been recommended by the virtual agent, the user may be able to retrieve the receipt based on the friend's name and / or the associated time frame. Retrieving such information would not be possible if the record was not archived, or it would be possible for the user to have a large amount of information (e.g., an idly stored email) that was not indexed in a manner that facilitated this type of search If it had to be searched, it would have been more time consuming.

다른 실시예에 있어서, 영수증은, 일인 이상의 개인에 대한 선호 정보, 개인, 제품, 업체 등에 관한 사실 정보, 또는 하나 이상의 사용자에 의해 제공되거나 달리 대화와 연관하여 가상 에이전트에 의해 획득된 어느 다른 정보와 같이, 장래 대화의 편의를 도모하도록 가상 에이전트에 의해 사용될 수 있는 정보를 저장할 수 있다. 그리하여, 레코드는 그 성능을 계속적으로 개선하도록 가상 에이전트에 의해 축적된 많은 지식의 일부분일 수 있다.In another embodiment, the receipt may include preference information for one or more individuals, factual information about an individual, product, business, or the like, or any other information provided by one or more users or otherwise obtained by a virtual agent in connection with a conversation Likewise, information that can be used by the virtual agent to facilitate the future conversation can be stored. Thus, a record can be part of a great deal of knowledge accumulated by a virtual agent to continuously improve its performance.

가상 에이전트가 담화에 주입되는 일부 실시예에서는, 모든 사람 참가자와 더불어 가상 에이전트에 의해 투고된 모든 것을 포함하는 전 담화 이력이 저장될 수 있다. 그러한 이력은 담화가 통하여 일어난 메시징 애플리케이션에 의해 저장될 수 있다(예컨대, SMS 스트링, IM 로그, 이메일 스트링, 음성 채팅 전사 등). 대안으로, 이력은 가상 에이전트 또는 어떤 다른 적합한 프로세스에 의해 별개로 저장될 수 있다.In some embodiments where the virtual agent is injected into the discourse, a full conversation history may be stored that includes everything contributed by the virtual agent along with all the person participants. Such history may be stored by a messaging application (e.g., an SMS string, an IM log, an email string, a voice chat transcription, etc.) that occurs through the discourse. Alternatively, the history may be stored separately by a virtual agent or some other suitable process.

다른 실시예에서는, 대신에 (예컨대, 저장 공간을 절약하기 위해 또는 어떤 다른 이유로) 부분적 담화 이력이 저장될 수 있다. 예컨대, 레코드는 하나 이상의 특정된 시간 기간으로부터(예컨대, 가상 에이전트의 인보크 다음에) 이력 부분(들)만, 가상 에이전트 및/또는 하나 이상의 특정된 사용자에 의해 투고된 부분(들)만, 하나 이상의 특정된 토픽과 관련된 부분(들)만, 또는 어떤 다른 적합한 방식으로 기술된 부분(들)만 포함할 수 있다.In other embodiments, a partial discourse history may be stored instead (e.g., to save storage space or for some other reason). For example, the record may include only the history portion (s), the virtual agent and / or only the portion (s) contributed by one or more specified users from one or more specified time periods (e.g., after the invocation of the virtual agent) Only the portion (s) associated with the specified topic above, or the portion (s) described in any other suitable manner.

일부 추가적 실시예에 의하면, 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증이 저장될 수 있다. 담화 동안 통신되는 정보로 한정되는 담화 이력과는 달리, 영수증은, 태스크를 공식화하고 그리고/또는 태스크를 수행하도록 가상 에이전트에 의해 획득되었지만 하나 이상의 사용자에게 명시적으로 통신되지는 않은 정보와 같은, 부가적 정보를 포함할 수 있다. 더욱, 영수증은 하나 이상의 측면에 있어서 담화 이력보다 더 간결할 수 있고, 핵심적이거나 관련 있다고 여겨지는 정보만을 포함할 수 있다. 더더욱, 아래에 더 상세히 논의되는 바와 같이, 영수증은 과거와 관련된 정보로 한정되지 않고, 하나 이상의 진행중 활동과 관련된 정보를 포함할 수 있다.According to some additional embodiments, a receipt for a conversation between the virtual agent and one or more users may be stored. Unlike the discourse history, which is limited to the information communicated during the discourse, the receipt can be used to identify the content of the disc, such as information that has been obtained by the virtual agent to formulate the task and / And may include information about the enemy. Moreover, the receipt may be more concise than the narrative history in one or more aspects, and may only contain information that is considered to be essential or relevant. Moreover, as discussed in greater detail below, the receipt is not limited to information related to the past, but may include information relating to one or more ongoing activities.

도 5는, 본 발명의 일부 실시예에 따라, 가상 에이전트 대화에 대한 영수증을 저장하기 위한 일례의 데이터 스토어(500)(예컨대, 데이터베이스 또는 어떤 다른 적합한 데이터 스토어)를 도시하고 있다. 이 예에 있어서, 영수증은, "영수증 ID" 필드(505), "일자/시간" 필드(510), "사람" 필드(515), "카테고리" 필드(520), "결과" 필드(525), "상황" 필드(530), "후기" 필드(535) 등과 같은, 다수의 데이터 필드를 포함한다. 영수증을 저장하는 것과 관련된 본 발명의 태양이 예시적 영수증 데이터 스토어(500)에 저장되는 특정 유형의 정보에 한정되지 않으므로, 도 5에 도시된 것들에 부가하여 또는 그 대신에 다른 데이터 필드가 또한 저장될 수 있다.FIG. 5 illustrates an example data store 500 (e.g., a database or any other suitable data store) for storing receipts for a virtual agent conversation, in accordance with some embodiments of the present invention. In this example, the receipt includes a "receipt ID" field 505, a "date / time" field 510, a "person" field 515, , "Situation" field 530, "late" field 535, and the like. Since the aspects of the present invention relating to storing receipts are not limited to the specific type of information stored in the exemplary receipt data store 500, other data fields in addition to or instead of those shown in FIG. 5 may also be stored .

"영수증 ID" 필드(505)는 영수증을 저장하는 가상 에이전트 또는 어떤 다른 프로세스에 의해 선택된 영숫자 식별자, 사용자에 의해 선택된 유의미한 명칭, 또는 어떠한 다른 적합한 식별자라도 저장할 수 있다. "일자/시간" 필드(510)는 영수증이 생성되었을 때, 가상 에이전트가 인보크되었을 때, 또는 어떤 다른 관련 있는 시점을 나타낼 수 있다. "사람" 필드(515)는 가상 에이전트를 인보크하였던, 가상 에이전트가 통신하였던, 그 입력이 가상 에이전트에 의해 고려되었던, 가상 에이전트가 추천을 하였던 개인(들), 그리고/또는 어떠한 다른 관련 있는 개인(들)의 목록을 나타낼 수 있다. "카테고리" 필드(520)는, 만찬, 선물, 스포츠, 여행 등과 같은, 특정 가상 에이전트 대화가 관련된 하나 이상의 토픽 또는 도메인을 나타낼 수 있다. "결과" 필드(525)는, 가상 에이전트에 의해 검색된 정보, 가상 에이전트에 의해 이루어진 추천 등과 같은, 가상 에이전트에 의해 수행된 태스크의 결과를 기록할 수 있다.The "receipt ID" field 505 may store an alphanumeric identifier selected by a virtual agent or some other process that stores the receipt, a meaningful name selected by the user, or any other suitable identifier. The "date / time" field 510 may indicate when the receipt was created, when the virtual agent was invoked, or some other relevant time. The "person" field 515 indicates the person (s) who invoked the virtual agent, the virtual agent communicated, whose input was considered by the virtual agent, the virtual agent recommended the virtual agent, and / (S). ≪ / RTI > The "category" field 520 may indicate one or more topics or domains to which a particular virtual agent conversation is associated, such as a dinner, gift, sport, The "result" field 525 may record the results of the tasks performed by the virtual agent, such as information retrieved by the virtual agent, recommendations made by the virtual agent, and so on.

"상황" 필드(530)는 하나 이상의 진행중 활동과 관련된 정보를 포함할 수 있다. 예컨대, 가상 에이전트가 (예컨대, 정보를 검색하거나 추천을 함으로써) 장래 이벤트와 관련된 태스크를 수행한 일 실시예에 있어서, "상황" 필드는 이벤트에 대한 어떠한 관련 있는 업데이트라도 저장할 수 있다. 예를 들면, 도 5에 도시된 예에 있어서, 이벤트는 "완료됨", "취소됨", "진행 중", 또는 어떠한 다른 적합한 상황 표시자로 마크될 수 있다. 도시되지는 않았지만, "상황" 필드는 일부 실시예에서는 또한, 스케줄 또는 장소 업데이트, 확인 정보(예컨대, 수락됨, 거절됨, 잠정 수락됨, 변경 제안됨 등)를 갖는 초청객의 목록, 이벤트를 위한 준비에서 할 일 목록 등과 같은, 더 상세한 정보를 포함한다.The "situation" field 530 may include information associated with one or more ongoing activities. For example, in one embodiment where a virtual agent has performed tasks related to future events (e.g., by retrieving information or making recommendations), the "status" field may store any relevant updates to the event. For example, in the example shown in FIG. 5, the event may be marked as "Completed", "Canceled", "In Progress", or any other suitable status indicator. Although not shown, the "Situation" field also includes, in some embodiments, a list of invites with schedule or place updates, confirmation information (e.g., accepted, rejected, provisionally accepted, And more detailed information, such as a to-do list in preparation.

일부 추가적 실시예에 있어서, 영수증 내 "상황" 필드 또는 어느 다른 필드에 저장된 정보는 관련 있는 개인이 가장 최근 발전에 대해 알림을 받게 유지하도록 실시간으로 업데이트될 수 있다. 비-한정적 일례로서, 친목회(예컨대, 본 명세서 곳곳에서 논의된 바와 같은 만찬 파티)에 대하여, 도착 추정 시간(ETA)이 하나 이상의 참석자에 대해 유지되고 또한 참석자일 수도 있는 (그럴 필요는 없더라도) 관련 있는 개인에 이용가능하게 될 수 있다. ETA는 각각의 참석자의 현재 위치 및 모임 장소(예컨대, 가상 에이전트에 의해 추천된 레스토랑)에 적어도 일부 기반하여 계산될 수 있다. 이러한 방식으로, 어느 참석자라도 영수증의 가장 최신 사본을 불러냄으로써 다른 참석자가 언제로 예상되는지 알아낼 수 있다. 다른 일례로서, 영수증은 관심 있는 (예컨대, 모임 장소 근처) 지역의 날씨 또는 교통 지도를 포함할 수 있고, 주기적으로 업데이트될 수 있다.In some additional embodiments, the information stored in the "Situation" field or any other field in the receipt may be updated in real time to keep the associated individual informed of the most recent development. As a non-limiting example, for a social gathering (e.g., a dinner party as discussed elsewhere herein), the ETA is maintained for one or more attendees and may be (but need not be) And can be made available to an individual. The ETA may be calculated based at least in part on the current location of each attendee and the meeting location (e.g., restaurant recommended by the virtual agent). In this way, any participant can find out when other attendees are expected by calling the most recent copy of the receipt. As another example, the receipt may include a weather or traffic map of the area of interest (e.g., near a meeting location) and may be periodically updated.

영수증에 대한 업데이트는 어떠한 적합한 시간에라도 그리고 어떠한 적합한 방식으로라도 수행될 수 있다. 일부 실시예에 있어서, 정보는 하나 이상의 소스(참석자의 모바일 디바이스로부터의 위치 정보, 웹 사이트로부터의 이벤트 스케줄링 정보, 서버로부터의 날씨 또는 교통 정보 등)로부터 주기적으로 (예컨대, 디폴트 또는 사용자-특정 빈도로) 풀링될 수 있다. 다른 실시예에 있어서, 정보는 사용자에 의해 요청될 때에만 풀링될 수 있다. 일부 추가적 실시예에 있어서, 업데이트는 새로운 정보가 이용가능하게 되었다는 통지시 트리거링될 수 있다. 더욱, 영수증이 (예컨대, 클라우드 내) 원격 서버 상에 저장되는 일 실시예에 있어서, 영수증에 대한 업데이트는 사용자의 디바이스에 자동으로 푸싱될 수도 있고, 사용자에 의해 요청될 때 사용자의 디바이스에 의해 서버로부터 풀링될 수도 있다.The update to the receipt can be performed at any suitable time and in any suitable manner. In some embodiments, the information may be periodically (e.g., a default or user-specific frequency) from one or more sources (location information from the attendee's mobile device, event scheduling information from the web site, weather or traffic information from the server, ). ≪ / RTI > In another embodiment, the information may be pooled only when requested by the user. In some additional embodiments, the update may be triggered upon notification that new information is available. Further, in one embodiment where the receipt is stored on a remote server (e. G., In the cloud), the update to the receipt may be automatically pushed to the user ' s device, Lt; / RTI >

일부 실시예에 있어서, 영수증은 코멘트 또는 피드백의 방식으로 적어도 일인의 개인에 의해 제공된 정보를 포함할 수 있다. 도 5에 도시된 예에 있어서, "후기" 필드(535)는 가상 에이전트에 의해 이루어진 추천의 후기를 저장한다. 그러한 후기는 그 추천의 결과를 초래한 대화에 참가하였을 수도 그렇지 않았을 수도 있는 개인에 의해 제공될 수 있다. 비-한정적 일례로서, 영수증 제1호는 가상 에이전트가 레스토랑을 추천한 가상 에이전트와 사용자(A, B) 간 대화에 참가하지는 않았지만 그 추천된 레스토랑에서 사용자(B)와의 만찬에 참석하였던 개인(C)으로부터의 후기를 포함한다. 다른 한편으로, 사용자(A)는 가상 에이전트와의 대화에 참가하였지만, 만찬에 참석하지 않았거나 또는 후기를 남기지 않기로 선택하였다. 다른 일례로서, 영수증 제2호는 (A)로부터 (D)로의 생일 선물에 대해 개인(D)에 의한 후기를 포함하며, 이 경우 개인(D)은 가상 에이전트가 선물로서 스노보드를 추천한 가상 에이전트와 사용자(A) 간 대화에는 참가하지 않았다.In some embodiments, the receipt may include information provided by at least one person in the form of comments or feedback. In the example shown in Fig. 5, the "latter" field 535 stores the last of the recommendations made by the virtual agent. Such a review may be provided by an individual who may or may not have participated in a dialogue that resulted in the recommendation. As a non-limiting example, a receipt number 1 indicates that a virtual agent has not participated in a conversation between a virtual agent recommending a restaurant and a user (A, B), but an individual who has attended a dinner with a user (B) ). ≪ / RTI > On the other hand, user A participated in a conversation with the virtual agent, but did not attend the dinner or choose not to leave a comment. As another example, the receipt number 2 includes a later date by a person (D) for a birthday present from (A) to (D), in which case the person (D) We did not participate in the conversation between agent and user (A).

영수증 데이터 스토어(500)는 오로지 예시의 목적으로 도 5에 도시되고 위에서 설명되었음을 인식하여야 한다. 영수증을 저장하는 것과 관련된 본 발명의 태양은 도 5에 도시된 정보의 특정 배열로 한정되지 않는다. 예컨대, 데이터베이스에 영수증을 저장하는 것이 정보의 후속 검색의 편의를 도모할 수 있기는 하지만, 데이터베이스가 요건은 아니다. 영수증은 다른 유형의 데이터 스토어에 저장될 수 있다.It should be appreciated that the receipt data store 500 is shown in Figure 5 for illustrative purposes only and has been described above. An aspect of the present invention relating to storing receipts is not limited to a specific arrangement of information shown in Fig. For example, storing a receipt in a database may facilitate the subsequent retrieval of information, but a database is not a requirement. Receipts can be stored in other types of data stores.

가상 에이전트에 대한 영수증이 전 담화 이력과는 별개로 저장되는 일부 실시예에 있어서, 양자가 가상 에이전트와의 동일 대화와 관련됨을 나타내도록 영수증과 전 이력 간 링크가 생성될 수 있다. 비-한정적 일례로서, 가상 에이전트는 대화가 통하여 일어난 메시징 애플리케이션에 의해 별개로 저장된 담화 이력으로의 링크를 갖는 대화에 대한 영수증을 저장할 수 있다. 이것은 사용자가 가상 에이전트와의 과거 대화와 관련된 정보를 검색하는 것의 편의를 도모할 수 있다. 예를 들면, 일부 실시예에 있어서, 사용자는 특정 대화를 식별하도록 영수증을 검색하고 식별된 영수증과 저장된 링크를 사용하여 대응하는 전 담화 이력을 검색할 수 있을 수 있다. 전 담화 이력이 영수증보다 더 많은 잡음(즉, 관련 없는 정보)을 포함하고 있을 수 있기 때문에, 전 담화 이력이 아니라 영수증을 검색하는 것이 더 효율적이고 그리고/또는 정확할 수 있다. 일부 추가적 실시예에 있어서, 가상 에이전트는 하나 이상의 사용자와 수회 동일 태스크에 관하여 대화할 수 있고, 태스크와 관련된 이전 담화 이력에 액세스하도록 태스크에 대한 영수증으로부터의 링크를 사용할 수 있다.In some embodiments where the receipt for the virtual agent is stored separately from the previous conversation history, a link between the receipt and the history may be generated to indicate that both are related to the same conversation with the virtual agent. As a non-limiting example, a virtual agent may store receipts for conversations that have links to conversation histories stored separately by the messaging application that occurred through the conversation. This may facilitate the user in retrieving information related to past conversations with the virtual agent. For example, in some embodiments, the user may be able to retrieve the receipt to identify a particular conversation and retrieve the corresponding conversation history using the identified receipt and stored link. It may be more efficient and / or accurate to retrieve the receipt, rather than the full conversation history, because the entire conversation history may contain more noise (ie, irrelevant information) than the receipt. In some additional embodiments, the virtual agent may talk to the one or more users about the same task several times, and may use a link from the receipt for the task to access the previous conversation history associated with the task.

일부 추가적 실시예에 있어서, 가상 에이전트 대화에 대한 영수증은 관련 있는 개인에 정보를 통신하도록 사용될 수 있다. 예컨대, 사용자는 (예컨대, 친목회에 대해) 일인 이상의 개인을 위한 추천을 요청하도록 가상 에이전트와 대화할 수 있고, 추천의 세부 사항(예컨대, 장소, 시간, 드레스 코드, 참석자 목록 등)을 그에게 알려주도록 대화의 영수증으로의 액세스를 각각의 관련 있는 개인에게 부여할 수 있다. 이것은 어떠한 적합한 방식으로라도, 예컨대, 개인이 어느 때라도 영수증을 볼 수 있게 하도록 영수증의 사본, 또는 영수증으로의 링크를 개인에 보냄으로써 행해질 수 있다. 더욱, 일부 실시예에서는 권한 있는 사용자만이 영수증을 볼 수 있음을 보장하도록 하나 이상의 적합한 액세스 제어 메커니즘(예컨대, 액세스 제어 목록)이 구현될 수 있다.In some additional embodiments, the receipt for the virtual agent conversation may be used to communicate information to an associated individual. For example, a user may interact with a virtual agent to request a recommendation for one or more individuals (e.g., for a social gathering) and notify him of details of the recommendation (e.g., location, time, dress code, attendee list, etc.) Access to the receipt of the conversation may be given to each relevant individual. This can be done in any suitable manner, for example by sending a copy of the receipt, or a link to the receipt to the individual, so that the individual can see the receipt at any time. Moreover, in some embodiments, one or more suitable access control mechanisms (e.g., access control lists) may be implemented to ensure that only authorized users can view receipts.

일부 추가적 실시예에서는, 특정 개인들만이 영수증을 편집할 수 있게 하도록 하나 이상의 액세스 제어 메커니즘이 또한 구현될 수 있다. 도 5에서 영수증 제1호와 연관하여 위에서 논의된 만찬 예에 있어서, 가상 에이전트는, 사용자(A)가 영수증 내 어느 데이터 필드라도 편집할 수 있도록, 사용자(A)와 연관될 수 있다(예컨대, 사용자(A)의 디바이스 상에 설치됨, 서비스 가입을 통해 사용자(A)에게는 액세스 가능함 등). 부가적으로, 일부 실시예에 있어서, 권한 있는 사용자는 영수증 내 하나 이상의 필드를 편집하도록 일인 이상의 다른 개인에게 허가를 부여할 수 있다. 예컨대, 권한 있는 사용자(예컨대, 도 5에 도시된 예에서는 사용자(A))는 가상 에이전트에 의해 이루어진 추천(예컨대, (D)를 위한 생일 선물)에 대해 후기를 남기도록 하나 이상의 관련 있는 개인(예컨대, 개인(D))에 허가를 부여할 수 있다. 일부 추가적 실시예에 있어서, 권한 있는 사용자 및/또는 영수증을 편집하도록 허가를 받은 개인은 특정 가지의 정보가 공유될 수 있는지 그리고 누구와인지 나타낼 수 있다. 예를 들면, 도 5에 도시된 예에서의 영수증 제1호에 대하여, 개인(C)은 레스토랑에 대한 후기가 비밀이고 사용자(A) 및/또는 어떤 특정된 세트의 개인들만에 의해 보여질 수 있다고 나타낼 수 있다.In some additional embodiments, one or more access control mechanisms may also be implemented to allow only certain individuals to edit the receipt. 5, the virtual agent can be associated with user A (e.g., to allow user A to edit any data field in the receipt) (e.g., Installed on the device of the user A, accessible to the user A through service subscription, etc.). Additionally, in some embodiments, the authorized user may grant permission to one or more other individuals to edit one or more fields in the receipt. For example, a privileged user (e.g., user A in the example shown in FIG. 5) may be associated with one or more related individuals (e. G. For example, the person D). In some additional embodiments, an authorized user and / or an individual authorized to edit the receipt may indicate that certain kinds of information can be shared and who it is with. For example, for receipt # 1 in the example shown in Figure 5, the individual C can be viewed by the user A and / or by a specific set of individuals only, .

본 명세서에 개시되는 기술은 영수증에 대한 어떠한 특정 사용으로도 한정되지 않으므로, 가상 에이전트 대화에 대한 영수증은 어떠한 다른 적합한 방식으로라도 사용될 수 있다. 일례의 시나리오에 있어서, 사용자는 원래 대화에의 참가자도 아니었고 가상 에이전트에 의해 이루어진 추천에 어떠한 식으로도 관련되지 않은 친구에게 가상 에이전트의 추천을 포워딩하기를 바랄 수 있다. 사용자는 단순히 영수증의 사본 또는 그 하나 이상의 관련 있는 부분을 친구에게 보냄으로써 그렇게 행할 수 있다. 다른 일례의 시나리오에 있어서, 사용자는 과거에 수행된 태스크와 유사하지만 하나 이상의 변형을 갖는 태스크를 수행하기를 바랄 수 있다. 전 담화 레코드에 대해서와 같이, 사용자는 일부 실시예에서는, 대화를 재생성하거나 또는 그렇지 않으면 가상 에이전트에 제공되기를 바라는 모든 정보를 수동으로 입력할 필요 없이, 이전 대화의 영수증을 (예컨대, 정보를 부가, 수정 및/또는 제거함으로써) 수정하고 그 수정된 영수증을 가상 에이전트에 제공하여 새로운 태스크를 요청할 수 있다.Since the techniques disclosed herein are not limited to any particular use for a receipt, the receipt for the virtual agent conversation can be used in any other suitable manner. In an exemplary scenario, the user may wish to forward the recommendation of the virtual agent to a friend that was not originally a participant in the conversation and is not related to the recommendation made by the virtual agent in any way. The user can do so simply by sending a copy of the receipt or one or more relevant portions of it to a friend. In another example scenario, a user may wish to perform a task similar to a task performed in the past, but with one or more variations. As with prior conversation records, the user may, in some embodiments, re-create the conversation or add the receipt of the previous conversation (e. G., Add, delete, or delete the conversation) without having to manually enter all the information that he / Modify, and / or remove) the received receipt and provide the modified receipt to the virtual agent to request a new task.

일부 추가적 실시예에 있어서, 정보는 가상 에이전트 대화에 대한 영수증으로부터 주워 모으고 개인의 프로파일을 업데이트하도록 사용될 수 있다. 그러한 정보의 비-한정적 예는 담화 이력에서 개인에 의해 표현되었고 수행될 태스크를 공식화하거나 태스크를 수행하도록 가상 에이전트에 의해 사용되는 선호, 개인에 의해 가상 에이전트에 통신된 선호 또는 결정, (예컨대, 특정 결정을 하는 것의 편의를 도모하도록) 개인에 의해 요청된 어느 정보, 개인에 대한 그러나 일인 이상의 다른 사람들에 의해 제공된 어느 정보, 개인에 의해 제공된 어느 유형의 피드백 또는 코멘트(예컨대, 가상 에이전트에 의해 이루어진 추천의 후기), 또는 개인에 관한 어느 다른 적합한 정보라도 포함한다. 프로파일이 확립 및 업데이트되는 개인은 가상 에이전트의 사용자(예컨대, 그 디바이스 상에 가상 에이전트가 설치되는 사용자, 가상 에이전트가 가입 서비스를 통해 제공되는 사용자, 달리 가상 에이전트와 연관된 사용자 등)일 수도 있고, 어떠한 다른 개인(예컨대, 연관된 사용자의 친구, 친척, 공동-작업자 등)일 수도 있다.In some additional embodiments, the information can be used to collect from a receipt for a virtual agent conversation and update an individual's profile. Non-limiting examples of such information include, but are not limited to, preferences used by virtual agents to formulate tasks or perform tasks that are represented by individuals in the discourse history, preferences or decisions communicated to the virtual agent by individuals, Any information requested by the individual, information provided by one or more persons over the individual, or any type of feedback or comments provided by the individual (e.g., recommendations made by the virtual agent) , Or any other suitable information about the individual. The person for whom the profile is established and updated may be a user of the virtual agent (e.g., a user with a virtual agent installed on the device, a user provided with a virtual agent via a subscription service, a user associated with a virtual agent, etc.) (E.g., a friend, relative, co-worker, etc. of the associated user).

도 6은, 일부 실시예에 따라, 수행될 태스크를 공식화함에 있어서 그리고/또는 하나 이상의 사용자 그룹을 위해 태스크를 수행함에 있어서 다수의 가상 에이전트가 서로 대화하는 예시적 시스템(600)을 도시하고 있다. 이러한 예에 있어서, 가상 에이전트(124A, 124B)는, 각각, 사용자(102A, 102B)와 연관되어 있다. 이들 가상 에이전트는 각각의 사용자와 연관된 서로 다른 디바이스(예컨대, 각각, 전자 디바이스(110A, 110B)) 상에서 실행될 수 있다. 그렇지만, 가상 에이전트는 대안의 실시예에서는 동일 디바이스(예컨대, 클라우드 내 서버) 상에서 실행될 수 있고 (예컨대, 사용자의 계정, 프로파일, 식별자 등에 기반하여) 어떤 다른 적합한 방식으로 각각의 사용자와 연관될 수 있으므로, 서로 다른 디바이스가 요건은 아니다. 그러한 원격 실행되는 가상 에이전트의 일례가 또한 도 6에 도시되어 있으며, 이 경우 사용자(102C)는 서버(들)(170) 상에서 실행되는 가상 에이전트(124C)와 (예컨대, 서비스 가입을 통하여) 연관되어 있다. 이러한 방식으로, 사용자(102C)는, 전자 디바이스(110C)와 같이, 서버(들)(170)와 통신할 수 있는 어떠한 적합한 디바이스로부터라도 가상 에이전트에 액세스할 수 있다.FIG. 6 illustrates an exemplary system 600 in which a plurality of virtual agents interact with each other in formulating a task to be performed and / or performing tasks for one or more user groups, in accordance with some embodiments. In this example, virtual agents 124A and 124B are associated with users 102A and 102B, respectively. These virtual agents may be executed on different devices (e.g., electronic devices 110A, 110B, respectively) associated with each user. However, the virtual agent may be run on the same device (e.g., a server in the cloud) in an alternative embodiment and may be associated with each user in some other suitable manner (e.g., based on the user's account, profile, , Different devices are not required. An example of such a remotely executed virtual agent is also shown in Figure 6 where user 102C is associated with (e.g., through a service subscription) a virtual agent 124C running on server (s) 170 have. In this manner, the user 102C may access the virtual agent from any suitable device capable of communicating with the server (s) 170, such as the electronic device 110C.

일부 실시예에 있어서, 가상 에이전트(예컨대, 도 6의 예에서 가상 에이전트(124A))는, 연락처 정보(예컨대, 물리적 주소, 전화 번호, 이메일 및/또는 다른 가상 주소 등), 위치 정보(예컨대, 현재 위치, 최근에 방문한 장소, 자주 방문한 장소 등), (예컨대, 활동 이력, 후기 등으로부터 주워 모은) 선호 정보, 및/또는 어느 다른 적합한 정보와 같은, 연관된 사용자(예컨대, 사용자(102A))에 관한 다양한 유형의 정보로의 액세스를 가질 수 있다. 일부 실시예에 있어서, 이러한 정보의 일부 또는 전부는 연관된 사용자의 디바이스 상에 로컬 저장될 수 있다(예컨대, 도 6의 예에서는 전자 디바이스(110A) 상에 저장된 사용자 데이터(120A)). 일부 추가적 실시예에 있어서, 정보의 일부 또는 전부는 (예컨대, 클라우드 내) 원격 서버 상에 저장될 수 있고, 가상 에이전트는 하나 이상의 네트워크(예컨대, 도 6에 도시된 네트워크(들)(150))를 통하여 정보에 액세스하도록 (예컨대, 정보의 저장 위치, 사용자 식별자, 액세스 크리덴셜 등에 기반하여) 적합한 권한 부여를 받을 수 있다. In some embodiments, a virtual agent (e.g., virtual agent 124A in the example of FIG. 6) may include contact information (e.g., physical address, telephone number, email and / or other virtual address, (E.g., user 102A), such as a current location, a recently visited location, a frequently visited location, etc., preference information (e.g., collected from activity history, reviews, etc.), and / Lt; RTI ID = 0.0 > information. ≪ / RTI > In some embodiments, some or all of this information may be stored locally on the associated user's device (e.g., user data 120A stored on electronic device 110A in the example of FIG. 6). In some additional embodiments, some or all of the information may be stored on a remote server (e.g., in the cloud) and the virtual agent may be stored in one or more networks (e.g., network (s) 150 shown in Figure 6) (E. G., Based on the storage location of the information, the user identifier, the access credential, etc.) to access the information.

일부 추가적 실시예에 있어서, 여러 다른 사용자와 연관된 가상 에이전트는 서로 정보를 공유하도록 프로그래밍될 수 있다. 정보의 공유는 제약이 없을 수 있다. 그렇지만, 일부 실시예에 있어서, 공유는 각각의 사용자에 의해 설정된 제약 내에서 행해질 수 있다. 그러한 제약은 프라이버시 이유 또는 어느 다른 이유로 확립될 수 있다. 예를 들면, 도 6에 도시된 예에 있어서, 사용자(102A)는, 다른 가상 에이전트(예컨대, 가상 에이전트(124B))와 그러한 정보를 공유하기 전에 다른 가상 에이전트와 연관된 사용자(예컨대, 사용자(102B))가 특정된 그룹에 속함을 가상 에이전트(124A)가 검증하여야 하도록, 특정 정보(예컨대, 연락처 정보, 위치 정보, 선호 정보 등)가 특정된 사람들 그룹(예컨대, 신뢰된 친구 서클) 내 사용자와 연관된 가상 에이전트와만 공유될 수 있다고 가상 에이전트(124A)에 지시할 수 있다. 더욱, 여러 다른 유형의 정보 및/또는 여러 다른 사람들 그룹에 대하여 여러 다른 유형의 액세스 정책이 특정될 수 있다. 예컨대, "공개"로서 지정된 정보는 누구나 액세스 가능할 수 있는 한편, 특정 조직(예컨대, 스포츠 팀, 교회, 학교 등)과 관련되는 것으로 지정된 정보는 그 조직과 연계된 사람들만이 액세스 가능할 수 있다.In some additional embodiments, the virtual agents associated with different users may be programmed to share information with one another. The sharing of information may be unrestricted. However, in some embodiments, sharing may be done within the constraints set by each user. Such constraints may be established for privacy reasons or some other reason. For example, in the example shown in FIG. 6, the user 102A may be a user (e.g., user 102B (e.g., user 102B) associated with another virtual agent before sharing such information with another virtual agent (E.g., the contact information, the location information, the preference information, and the like) are identified so that the virtual agent 124A should verify that the virtual agent 124A belongs to the specified group The virtual agent 124A can be instructed that it can be shared only with the associated virtual agent. Furthermore, different types of access policies may be specified for different types of information and / or groups of different people. For example, information designated as "public" may be accessible to anyone, while information designated to be associated with a particular organization (e.g., sports team, church, school, etc.) may only be accessible to those associated with that organization.

일부 추가적 실시예에 있어서, 다수의 가상 에이전트는, 가상 에이전트가 서로 얼마나 많은 정보를 공유하는지에 무관하게, 추천을 함에 있어서 서로 협업하도록 프로그래밍될 수 있다. 예를 들면, 가상 에이전트는 각각의 사용자의 선호 및/또는 제약에 기반하여 타협에 도달하게 서로 교섭하도록 프로그래밍될 수 있다. 그러한 교섭을 수행함에 있어서, 가상 에이전트는, 제안을 하거나, 수락하거나 또는 거절하도록 가상 에이전트에 의해 사용된 기저 정보를 다른 가상 에이전트에 누설하거나 또는 하지 않고, 다른 가상 에이전트에 제안을 하거나, 또는 다른 가상 에이전트에 의해 이루어진 제안을 수락 또는 거절할 수 있다.In some additional embodiments, multiple virtual agents can be programmed to collaborate with each other in making recommendations, regardless of how much information the virtual agents share with each other. For example, the virtual agent can be programmed to negotiate with each other to arrive at a compromise based on the preferences and / or constraints of each user. In performing such negotiations, the virtual agent may make suggestions to other virtual agents, with or without leaking the base information used by the virtual agent to the other virtual agent to make, accept, or reject the offer, You can accept or decline a proposal made by an agent.

비-한정적 일례로서, 도 6에 도시된 사용자(102A 내지 124C)는 전화 회의를 개최하기에 상호 편리한 시간을 찾기를 바라고 각각의 가상 에이전트(124A 내지 124C)에 약속을 잡으라고 지시할 수 있다. 각각의 사용자의 캘린더에 관한 상세한 정보를 서로 드러내기보다는, 가상 에이전트(124A 내지 124C)는 교섭에 참여할 수 있다. 예컨대, 가상 에이전트(124A)는 하나 이상의 제안 시간을 가상 에이전트(124B 내지 124C)에 보낼 수 있으며, 그것은 그들 각각의 사용자를 대신하여 수락, 거절 또는 대안의 제안을 할 수 있다. 일부 실시예에 있어서, 그러한 교섭은 (예컨대, 배경에서) 사용자에게 투과적인 방식으로 일어날 수 있다. 예를 들면, 도 6에 도시된 예에 있어서, 사용자(102A)는 사용자(102B 내지 124C)가 가상 에이전트에 의해 도움을 받고 있음을 알고 있을 필요가 없다. 그리하여, 사용자(102A)의 관점으로부터, 하나의 가상 에이전트(예컨대, 가상 에이전트(124A))만이 있는 것처럼 보일 수 있다.As a non-limiting example, the users 102A-124C shown in FIG. 6 may instruct each virtual agent 124A-124C to make an appointment in hopes of finding a mutually convenient time to hold a conference call. Rather than revealing detailed information about each user's calendar to each other, the virtual agents 124A-124C can participate in negotiation. For example, virtual agent 124A may send one or more proposed times to virtual agents 124B-124C, which may accept, reject or suggest alternatives on behalf of their respective users. In some embodiments, such negotiation may occur in a transparent manner to the user (e.g., in the background). For example, in the example shown in FIG. 6, the user 102A need not be aware that the users 102B through 124C are being assisted by the virtual agent. Thus, from the perspective of user 102A, it may appear that there is only one virtual agent (e.g., virtual agent 124A).

일부 실시예에 있어서, 다수의 가상 에이전트는 다른 유형의 액션을 수행함에 있어서 그들 각각의 사용자에게 도움을 줄 수 있다. 비-한정적 일례로서, 가상 에이전트는 대화와 연관된 영수증에 대한 업데이트를 조정할 수 있다. 예컨대, 각각의 사용자는 각각의 가상 에이전트를 통해 영수증에 후기를 입력할 수 있다.In some embodiments, multiple virtual agents may be able to assist each of their users in performing other types of actions. As a non-limiting example, a virtual agent can coordinate updates to receipts associated with a conversation. For example, each user may enter a review on a receipt via each virtual agent.

도 6과 연관하여 위에서 설명된 사용자 및 가상 에이전트의 특정 배열은 단지 예시일 뿐임을 인식하여야 한다. 본 명세서에 개시된 개념은 위에서 설명된 방식으로 구현되는 것으로 한정되지도 않고, 어떠한 다른 특정 구현으로 한정되지도 않는다. 예를 들면, 일부 실시예에 있어서, 여러 다른 디바이스 상에서 실행 중인 다수의 가상 에이전트는, 태스크가 단일 사용자를 위해 수행되는지 또는 다수의 사용자를 위해 수행되는지에 무관하게, 수행될 태스크를 공식화함에 있어서 그리고/또는 태스크를 수행함에 있어서 서로 대화할 수 있다. 비-한정적 일례로서, 사용자 디바이스 상에서 실행 중인 가상 에이전트는 (예컨대, 클라우드 내) 서버 상에서 실행 중인 가상 에이전트와 대화할 수 있다. 이것은, 서버-측 가상 에이전트에 정보를 포워딩하고 그로부터 추천을 수신함으로써 등, 어떠한 적합한 방식으로라도 행해질 수 있다. 서로 협업하는 다수의 가상 에이전트와 관련된 본 발명의 태양이 가상 에이전트 간 어느 특정 배열로도 한정되지 않으므로, 서버-측 가상 에이전트는 단일 클라이언트-측 가상 에이전트(예컨대, 단일 사용자를 위한 추천을 할 때) 또는 다수의 클라이언트-측 가상 에이전트(예컨대, 다수의 사용자를 위한 추천을 할 때)와 대화할 수 있다.It should be appreciated that the specific arrangement of the user and virtual agent described above in connection with FIG. 6 is only exemplary. The concepts disclosed herein are not limited to being implemented in the manner described above, and are not limited to any particular specific implementation. For example, in some embodiments, a plurality of virtual agents running on different devices may be used in formulating a task to be performed, regardless of whether the task is performed for a single user or multiple users, and / You can talk to each other in performing tasks. As a non-limiting example, a virtual agent running on a user device may talk to a virtual agent running on the server (e.g., in the cloud). This can be done in any suitable manner, such as by forwarding information to and receiving recommendations from a server-side virtual agent. As the aspect of the present invention relating to a plurality of virtual agents collaborating with each other is not limited to any particular arrangement between virtual agents, the server-side virtual agent can be a single client-side virtual agent (e.g., when making a recommendation for a single user) Or a plurality of client-side virtual agents (e.g., when making recommendations for multiple users).

도 7은 본 발명의 어떠한 태양이라도 구현될 수 있는 예시적 컴퓨터(1000)를 도식적으로 도시하고 있다. 예컨대, 컴퓨터(1000)는 도 1에 도시된 예시적 디바이스(110)와 연관하여 설명된 특징 중 어느 것이라도 구현될 수 있는 모바일 디바이스일 수 있다. 컴퓨터(1000)는 또한 본 명세서에 설명된 개념 중 어느 것이라도 구현될 수 있는 시스템의 서버(예컨대, 도 1에 도시된 예시적 서버(들)(170)) 또는 어떤 다른 컴포넌트를 구현하는데 사용될 수 있다.FIG. 7 schematically illustrates an exemplary computer 1000 that may be implemented in any aspect of the present invention. For example, the computer 1000 may be a mobile device that may be implemented with any of the features described in connection with the exemplary device 110 shown in FIG. The computer 1000 may also be used to implement a server of the system (e.g., the exemplary server (s) 170 shown in FIG. 1) or any other component that may be implemented in any of the concepts described herein have.

본 명세서에서 사용될 때, "모바일 디바이스"는 그것이 (예컨대, 사용자의 손에 쥐어져) 사용자에 의해 휴대될 수 있도록 충분히 작은 어떠한 컴퓨팅 디바이스라도 될 수 있다. 모바일 디바이스의 예는, 국한되는 것은 아니지만, 모바일 폰, 페이저, 포터블 미디어 플레이어, 전자책 리더, 핸드헬드 게임 콘솔, 퍼스널 디지털 어시스턴트(PDA) 및 태블릿 컴퓨터를 포함한다. 일부 사례에 있어서, 모바일 디바이스의 중량은 1파운드, 1.5파운드 또는 2파운드에 불과할 수 있고, 그리고/또는 모바일 디바이스의 최대 치수는 6인치, 9인치 또는 1피트에 불과할 수 있다. 부가적으로, 모바일 디바이스는 사용자가 다양한 장소에서 디바이스를 사용 가능하게 하는 특징을 포함할 수 있다. 예컨대, 모바일 디바이스는 그것이 콘센트에 플러그를 꽂지 않고도 소정 지속 시간 동안 사용될 수 있도록 전력 저장소(예컨대, 배터리)를 포함할 수 있다. 다른 일례로서, 모바일 디바이스는 네트워크 접속 포인트에 물리적으로 접속되지 않고도 네트워크 접속을 제공하도록 구성된 무선 네트워크 인터페이스를 포함할 수 있다.As used herein, a "mobile device" may be any computing device that is small enough to be carried by a user (e. G., Held in the user's hand). Examples of mobile devices include, but are not limited to, mobile phones, pagers, portable media players, electronic book readers, handheld game consoles, personal digital assistants (PDAs), and tablet computers. In some instances, the weight of the mobile device may be only one pound, 1.5 pounds, or two pounds, and / or the maximum dimension of the mobile device may be only 6 inches, 9 inches, or 1 foot. Additionally, the mobile device may include features that enable the user to use the device at various locations. For example, a mobile device may include a power store (e.g., a battery) so that it can be used for a predetermined duration without plugging the outlet into the outlet. As another example, a mobile device may include a wireless network interface configured to provide network connectivity without being physically connected to a network access point.

도 7에 도시된 실시예에 있어서, 컴퓨터(1000)는 하나 이상의 프로세서를 갖는 프로세싱 유닛(1001) 및, 예컨대, 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있는 비-일시적 컴퓨터-판독가능한 저장 매체(1002)를 포함한다. 메모리(1002)는 본 명세서에 설명된 기능 중 어느 것이라도 수행하도록 프로세싱 유닛(1001)을 프로그래밍하는 하나 이상의 명령어를 저장할 수 있다. 컴퓨터(1000)는 또한, 시스템 메모리(1002)에 부가하여 저장소(1005)(예컨대, 하나 이상의 디스크 드라이브)와 같은, 다른 유형의 비-일시적 컴퓨터-판독가능한 매체를 포함할 수 있다. 저장소(1005)는 또한, 메모리(1002) 내로 로딩될 수 있는, 하나 이상의 애플리케이션 프로그램 및/또는 애플리케이션 프로그램에 의해 사용되는 자원(예컨대, 소프트웨어 라이브러리)을 저장할 수 있다.7, the computer 1000 includes a processing unit 1001 having one or more processors and a non-transitory computer-readable storage (e.g., read-only memory) that may include, for example, volatile and / And a medium 1002. The memory 1002 may store one or more instructions that program the processing unit 1001 to perform any of the functions described herein. The computer 1000 may also include other types of non-transitory computer-readable media, such as storage 1005 (e.g., one or more disk drives) in addition to the system memory 1002. Storage 1005 may also store one or more application programs and / or resources (e.g., software libraries) used by application programs that may be loaded into memory 1002.

컴퓨터(1000)는, 도 7에 예시된 디바이스(1006, 1007)와 같은, 하나 이상의 입력 디바이스 및/또는 출력 디바이스를 가질 수 있다. 이들 디바이스는, 여러 다른 것들 중에서도, 사용자 인터페이스를 제시하도록 사용될 수 있다. 사용자 인터페이스를 제공하도록 사용될 수 있는 출력 디바이스의 예는 출력의 시각적 제시를 위한 프린터 또는 디스플레이 스크린, 및 출력의 가청 제시를 위한 스피커 또는 다른 음향 발생 디바이스를 포함한다. 사용자 인터페이스에 사용될 수 있는 입력 디바이스의 예는, 마우스, 터치 패드 및 이산화 태블릿과 같은, 포인팅 디바이스 및 키보드를 포함한다. 다른 일례로서, 입력 디바이스(1007)는 오디오 신호를 캡처링하기 위한 마이크로폰을 포함할 수 있고, 출력 디바이스(1006)는, 인식된 문자를, 시각적으로 렌더링하기 위한 디스플레이 스크린 및/또는 가청 렌더링하기 위한 스피커를 포함할 수 있다.The computer 1000 may have one or more input devices and / or output devices, such as the devices 1006 and 1007 illustrated in FIG. These devices, among other things, can be used to present a user interface. Examples of output devices that can be used to provide a user interface include a printer or display screen for visual presentation of the output and a speaker or other sound generating device for audible presentation of the output. Examples of input devices that may be used in the user interface include pointing devices and keyboards, such as mice, touch pads, and dioxide tablets. As another example, input device 1007 may include a microphone for capturing an audio signal, and output device 1006 may include a display screen for visually rendering recognized characters and / Speakers.

도 7에 도시된 바와 같이, 컴퓨터(1000)는 또한 다양한 네트워크(예컨대, 네트워크(1020))를 통하여 통신을 가능하게 하는 하나 이상의 네트워크 인터페이스(예컨대, 네트워크 인터페이스(1010))를 포함할 수 있다. 네트워크의 예는, 전사적 네트워크 또는 인터넷과 같은, 근거리 통신망 또는 광역 통신망을 포함한다. 그러한 네트워크는 어떠한 적합한 기술에라도 기반할 수 있고 어떠한 적합한 프로토콜에라도 따라 동작할 수 있고 무선 네트워크, 유선 네트워크 또는 광섬유 네트워크를 포함할 수 있다.7, the computer 1000 may also include one or more network interfaces (e.g., network interface 1010) that enable communication via various networks (e.g., network 1020). Examples of networks include a local area network or a wide area network, such as an enterprise network or the Internet. Such a network may be based on any suitable technology and may operate on any suitable protocol and may include a wireless network, a wired network or a fiber optic network.

적어도 하나의 실시예의 수개의 태양을 그렇게 설명하였지만, 다양한 개조, 수정 및 개선이 당업자에게는 쉽게 떠오를 것이라고 인식되는 것이다. 그러한 개조, 수정 및 개선은 본 발명의 취지 및 범위 내에 있는 것으로 의도된다. 따라서, 상기 설명 및 도면은 단지 예에 의한 것일 뿐이다.Having thus described several aspects of at least one embodiment, it is to be appreciated that various adaptations, modifications, and improvements will readily occur to those skilled in the art. Such adaptations, modifications, and improvements are intended to be within the spirit and scope of the present invention. Accordingly, the above description and drawings are by way of example only.

본 발명의 위에 설명된 실시예는 수많은 방식 중 어느 하나로 구현될 수 있다. 예컨대, 실시예는 하드웨어, 소프트웨어 또는 그 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는, 단일 컴퓨터에 제공되든 다수의 컴퓨터 간 분산되든, 어떠한 적합한 프로세서 또는 프로세서 집합 상에서라도 실행될 수 있다.The above-described embodiments of the present invention may be implemented in any one of a number of ways. For example, embodiments may be implemented using hardware, software, or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or set of processors whether distributed on a single computer or distributed across multiple computers.

또한, 본 명세서에서 개괄된 다양한 방법 또는 프로세스는 각종 운영 체제 또는 플랫폼 중 어느 하나를 채용하는 하나 이상의 프로세서 상에서 실행가능한 소프트웨어로서 코딩될 수 있다. 부가적으로, 그러한 소프트웨어는 여러 적합한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 툴 중 어느 것이라도 사용하여 작성될 수 있고, 또한 프레임워크 또는 가상 기계 상에서 실행되는 실행가능한 기계 언어 코드 또는 중간 코드로서 컴파일링될 수 있다.Further, the various methods or processes outlined herein may be coded as software executable on one or more processors employing any of the various operating systems or platforms. Additionally, such software may be written using any suitable programming language and / or programming or scripting tool, and may also be compiled as executable machine language code or intermediate code that runs on a framework or virtual machine .

이에 관하여, 본 명세서에서 개시된 개념은, 하나 이상의 컴퓨터 또는 다른 프로세서 상에서 실행될 때, 위에서 논의된 본 발명의 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램으로 인코딩된 비-일시적 컴퓨터 판독가능한 매체(또는 다수의 컴퓨터 판독가능한 매체)(예컨대, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 콤팩트 디스크, 광학 디스크, 자기 테이프, 플래시 메모리, 필드 프로그래밍 가능한 게이트 어레이 또는 다른 반도체 디바이스 내 회로 구성, 또는 다른 비-일시적, 유형적 컴퓨터 저장 매체)로서 구체화될 수 있다. 컴퓨터 판독가능한 매체는 거기에 저장된 프로그램 또는 프로그램들이 위에서 논의된 바와 같은 본 발명의 다양한 태양을 구현하도록 하나 이상의 다른 컴퓨터 또는 다른 프로세서 상으로 로딩될 수 있게 되도록 이동식일 수 있다.In this regard, the concepts disclosed herein may be embodied in one or more computer-readable media encoded with one or more programs that, when executed on one or more computers or other processors, perform the methods of implementing the various embodiments of the invention discussed above Or other non-volatile, non-volatile, or non-volatile memory), such as a computer memory, one or more floppy disks, a compact disk, an optical disk, a magnetic tape, a flash memory, Tangible computer storage media). The computer readable medium may be removable such that the programs or programs stored thereon may be loaded onto one or more other computers or other processors to implement the various aspects of the invention as discussed above.

용어 "프로그램" 또는 "소프트웨어"는 본 명세서에서는 위에서 논의된 바와 같은 본 발명의 다양한 태양을 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그래밍하도록 채용될 수 있는 어떠한 유형의 컴퓨터 코드 또는 컴퓨터-실행가능한 명령어 세트라도 가리키도록 통칭적 의미로 사용된다. 부가적으로, 이러한 실시예의 일 태양에 따라, 실행될 때 본 발명의 방법을 수행하는 하나 이상의 컴퓨터 프로그램은 단일 컴퓨터 또는 프로세서 상에 상주할 필요는 없고, 본 발명의 다양한 태양을 구현하도록 여러 다른 컴퓨터 또는 프로세서 간에 모듈 방식으로 분산될 수 있음을 이해해야 한다.The term "program" or "software" refers to any type of computer code or computer-executable instruction set that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed hereinabove Is used in a generic sense to refer to. Additionally, in accordance with one aspect of this embodiment, one or more computer programs that, when executed, perform the methods of the present invention need not reside on a single computer or processor, It should be understood that they may be distributed modularly between processors.

컴퓨터-실행가능한 명령어는 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는, 프로그램 모듈과 같은, 여러 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능성은 다양한 실시예에서 소망에 따라 조합 또는 분산될 수 있다.Computer-executable instructions may be in various forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.

또한, 데이터 구조는 어떠한 적합한 형태로라도 컴퓨터-판독가능한 매체에 저장될 수 있다. 예시의 단순화를 위하여, 데이터 구조는 데이터 구조 내 위치를 통하여 관련되는 필드를 갖는 것으로 나타낼 수 있다. 마찬가지로 그러한 관계는 필드 간 관계를 전하는 컴퓨터-판독가능한 매체 내 위치로 필드에 대한 저장을 할당함으로써 달성될 수 있다. 그렇지만, 데이터 엘리먼트 간 관계를 확립하는 포인터, 태그 또는 다른 메커니즘의 사용을 통하는 것을 포함하는 어떠한 적합한 메커니즘이라도 데이터 구조의 필드 내 정보 간 관계를 확립하도록 사용될 수 있다.Further, the data structure may be stored in a computer-readable medium in any suitable form. For simplicity of illustration, the data structure may be represented as having a field associated therewith through a location in the data structure. Likewise, such a relationship can be achieved by assigning storage for the field to a location in a computer-readable medium conveying the relationship between the fields. However, any suitable mechanism, including through the use of pointers, tags, or other mechanisms to establish relationships between data elements, can be used to establish relationships between fields within data structures.

본 발명의 다양한 특징 및 태양은 단독으로, 2 이상의 어느 조합으로, 또는 상기에서 설명된 실시예에서는 구체적으로 논의되지 않은 각종 배열로 사용될 수 있고, 그래서 그 애플리케이션에서 상기 설명에 제시되거나 도면에 예시된 컴포넌트의 상세 및 배열로 한정되지 않는다. 예컨대, 일 실시예에서 설명된 태양은 다른 실시예에서 설명된 태양과 어떠한 방식으로라도 조합될 수 있다.The various features and aspects of the present invention may be used alone, in any combination of two or more, or in various arrangements not specifically discussed in the embodiments described above, so that in that application, But is not limited to the details and arrangement of components. For example, the embodiment described in one embodiment may be combined in any manner with the embodiment described in the other embodiments.

또한, 본 명세서에 개시된 개념은 방법으로서 구체화될 수 있고, 그 일례가 제공되었다. 방법의 일부분으로서 수행되는 단계는 어떠한 적합한 방식으로라도 순서가 정해질 수 있다. 따라서, 예시적 실시예에서는 순차적 단계로 도시되어 있더라도, 일부 단계들을 동시에 수행하는 것을 포함할 수 있는, 예시된 것과는 다른 순서로 단계가 수행되는 실시예가 구축될 수 있다.Furthermore, the concepts disclosed herein may be embodied as a method, and an example thereof has been provided. The steps performed as part of the method may be ordered in any suitable manner. Thus, although illustrated in a sequential step in an exemplary embodiment, an embodiment may be constructed in which steps are performed in a different order than the illustrated one, which may include performing some steps simultaneously.

청구항 구성요소를 수식하도록 청구범위에서 "제1", "제2", "제3" 등과 같은 서수 용어의 사용은 그 자체로는 방법의 단계가 수행되는 시간적 순서 또는 다른 구성요소 대비 하나의 청구항 구성요소의 어떠한 우선순위, 선행 또는 순서도 내포하지 않으며, 단지 청구항 구성요소들을 구별하기 위해 소정 명칭을 갖는 하나의 청구항 구성요소를 (서수 용어의 사용이 아니었다면) 동일한 명칭을 갖는 다른 구성요소와 구별하는 라벨로서 사용될 뿐이다.The use of ordinal terms such as "first", "second", "third", etc. in the claims to modify the claim elements is not, in itself, a temporal order in which the steps of the method are performed, To distinguish one claim element from another, having the same name (unless the use of an ordinal term is used), with a predefined nomenclature to encompass any priority, precedence, or sequence of elements, As a label.

또한, 본 명세서에서 사용되는 어구 및 술어는 설명의 목적을 위한 것이며 한정으로 간주되어서는 안 된다. 본 명세서에서 "포함하는", "포함하고 있는", "갖는", "들어있는", "관여시키는" 및 그 변형의 사용은 이후에 열거된 항목 및 그 균등물과 더불어 부가적 항목을 망라하려는 의미이다.Also, the phrases and predicates used herein are for the purpose of description and should not be regarded as limiting. The use of "including", "including", "having", "containing", "engaging", and variations thereof in this specification is intended to cover additional items It means.

Claims (41)

적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서,
상기 적어도 하나의 가상 에이전트는,
제1 개인에 관한 제1 정보를 분석하고;
상기 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하고; 그리고
상기 제1 정보 및 상기 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하도록 프로그래밍되되, 상기 복수의 개인은 상기 제1 개인 및 상기 제2 개인을 포함하는 것인 장치.
25. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Wherein the at least one virtual agent comprises:
Analyzing first information about a first person;
Analyze second information about a second individual that is different from the first individual; And
Wherein the plurality of individuals is programmed to make a joint recommendation for a plurality of individuals based at least in part on the first information and the second information, wherein the plurality of individuals includes the first person and the second person.
제1항에 있어서, 상기 제1 정보는 상기 제1 개인의 적어도 하나의 선호를 포함하는 것인 장치.2. The apparatus of claim 1, wherein the first information comprises at least one preference of the first individual. 제1항에 있어서, 상기 제1 정보는 상기 제1 개인에 의해 부과된 적어도 하나의 제한을 포함하는 것인 장치.2. The apparatus of claim 1, wherein the first information comprises at least one restriction imposed by the first individual. 제1항에 있어서, 상기 제1 정보는 상기 제1 개인의 하나 이상의 과거 활동에 관한 이력 정보를 포함하는 것인 장치.2. The apparatus of claim 1, wherein the first information comprises history information about one or more past activities of the first individual. 제1항에 있어서, 상기 적어도 하나의 가상 에이전트는,
상기 제1 개인을 선순위 개인으로서 식별하고; 그리고
상기 추천을 함에 있어서, 상기 제2 개인에 관한 상기 제2 정보보다 상기 제1 개인에 관한 상기 제1 정보에 우선권을 주도록 더 프로그래밍되는 것인 장치.
2. The method of claim 1, wherein the at least one virtual agent comprises:
Identify the first individual as a senior person; And
Wherein the recommendation is further programmed to give preference to the first information about the first individual over the second information about the second individual.
제1항에 있어서, 상기 적어도 하나의 가상 에이전트는,
상기 적어도 하나의 가상 에이전트를 인보크(invoke)한 개인을 식별하고; 그리고
상기 추천을 함에 있어서, 상기 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 상기 개인에 관한 정보에 우선권을 주도록 더 프로그래밍되는 것인 장치.
2. The method of claim 1, wherein the at least one virtual agent comprises:
Identify an individual who invoked the at least one virtual agent; And
Wherein the recommendation is further programmed to give preference to information about the individual identified as having invoked the at least one virtual agent.
제1항에 있어서, 상기 적어도 하나의 가상 에이전트는 상기 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 상기 추천으로서, 선택하도록 프로그래밍되고, 상기 제1 정보는 상기 제1 개인의 투표를 포함하고 상기 제2 정보는 상기 제2 개인의 투표를 포함하는 것인 장치.2. The method of claim 1, wherein the at least one virtual agent is programmed to select, from the plurality of candidates, the candidate receiving the highest number of votes from the plurality of individuals as the recommendation, Wherein the second information includes a vote of the second individual. 제7항에 있어서, 상기 적어도 하나의 가상 에이전트는 상기 제1 개인과 연관된 제1 가상 에이전트 및 상기 제2 개인과 연관된 제2 가상 에이전트를 포함하고, 상기 제1 가상 에이전트 및 상기 제2 가상 에이전트는 상기 추천을 함에 있어서 서로 교섭하도록 프로그래밍되는 것인 장치.8. The method of claim 7, wherein the at least one virtual agent comprises a first virtual agent associated with the first person and a second virtual agent associated with the second person, the first virtual agent and the second virtual agent Wherein the program is programmed to negotiate with each other in making the recommendation. 적어도 하나의 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
제1 개인에 관한 제1 정보를 분석하는 단계;
상기 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하는 단계; 및
상기 제1 정보 및 상기 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하는 단계를 포함하되, 상기 복수의 개인은 상기 제1 개인 및 상기 제2 개인을 포함하는 것인 방법.
A method performed by at least one processor implementing at least one virtual agent, the method comprising:
Analyzing first information about a first person;
Analyzing second information about a second individual other than the first individual; And
And making a joint recommendation for a plurality of individuals based at least in part on the first information and the second information, wherein the plurality of individuals includes the first person and the second person.
제9항에 있어서, 상기 제1 정보는 상기 제1 개인의 적어도 하나의 선호를 포함하는 것인 방법.10. The method of claim 9, wherein the first information comprises at least one preference of the first individual. 제9항에 있어서, 상기 제1 정보는 상기 제1 개인에 의해 부과된 적어도 하나의 제한을 포함하는 것인 방법.10. The method of claim 9, wherein the first information comprises at least one restriction imposed by the first individual. 제9항에 있어서, 상기 제1 정보는 상기 제1 개인의 하나 이상의 과거 활동에 관한 이력 정보를 포함하는 것인 방법.10. The method of claim 9, wherein the first information includes history information about one or more past activities of the first individual. 제9항에 있어서,
상기 제1 개인을 선순위 개인으로서 식별하는 단계; 및
상기 추천을 함에 있어서, 상기 제2 개인에 관한 상기 제2 정보보다 상기 제1 개인에 관한 상기 제1 정보에 우선권을 주는 단계를 더 포함하는 방법.
10. The method of claim 9,
Identifying the first person as a senior person; And
And in making the recommendation, prioritizing the first information about the first individual relative to the second information about the second individual.
제9항에 있어서,
상기 적어도 하나의 가상 에이전트를 인보크한 개인을 식별하는 단계; 및
상기 추천을 함에 있어서, 상기 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 상기 개인에 관한 정보에 우선권을 주는 단계를 더 포함하는 방법.
10. The method of claim 9,
Identifying an individual who has invoked the at least one virtual agent; And
Wherein the recommendation further comprises prioritizing information about the individual identified as having invoked the at least one virtual agent.
제9항에 있어서, 상기 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 상기 추천으로서, 선택하는 단계를 더 포함하되, 상기 제1 정보는 상기 제1 개인의 투표를 포함하고 상기 제2 정보는 상기 제2 개인의 투표를 포함하는 것인 방법.10. The method of claim 9, further comprising the step of selecting a candidate receiving the highest number of votes from the plurality of individuals as the recommendation from a plurality of candidates, wherein the first information includes a vote of the first person And the second information includes a vote of the second individual. 제15항에 있어서, 상기 적어도 하나의 가상 에이전트는 상기 제1 개인과 연관된 제1 가상 에이전트 및 상기 제2 개인과 연관된 제2 가상 에이전트를 포함하고, 상기 제1 가상 에이전트 및 상기 제2 가상 에이전트는 상기 추천을 함에 있어서 서로 교섭하도록 프로그래밍되는 것인 방법.16. The method of claim 15, wherein the at least one virtual agent comprises a first virtual agent associated with the first person and a second virtual agent associated with the second person, wherein the first virtual agent and the second virtual agent And are programmed to negotiate with each other in making the recommendation. 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서,
상기 방법은,
제1 개인에 관한 제1 정보를 분석하는 단계;
상기 제1 개인과는 다른 제2 개인에 관한 제2 정보를 분석하는 단계; 및
상기 제1 정보 및 상기 제2 정보에 적어도 일부 기반하여 복수의 개인을 위한 공동 추천을 하는 단계를 포함하되, 상기 복수의 개인은 상기 제1 개인 및 상기 제2 개인을 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium having encoded thereon instructions that, when executed by at least one processor, perform a method for implementing at least one virtual agent,
The method comprises:
Analyzing first information about a first person;
Analyzing second information about a second individual other than the first individual; And
Performing a joint recommendation for a plurality of individuals based at least in part on the first information and the second information, wherein the plurality of individuals includes the first person and the second person, Readable medium.
제17항에 있어서, 상기 방법은,
상기 제1 개인을 선순위 개인으로서 식별하는 단계; 및
상기 추천을 함에 있어서, 상기 제2 개인에 관한 상기 제2 정보보다 상기 제1 개인에 관한 상기 제1 정보에 우선권을 주는 단계를 더 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
18. The method of claim 17,
Identifying the first person as a senior person; And
And in making the recommendation, prioritizing the first information about the first individual relative to the second information about the second individual.
제17항에 있어서, 상기 방법은,
상기 적어도 하나의 가상 에이전트를 인보크한 개인을 식별하는 단계; 및
상기 추천을 함에 있어서, 상기 적어도 하나의 가상 에이전트를 인보크한 것으로 식별된 상기 개인에 관한 정보에 우선권을 주는 단계를 더 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
18. The method of claim 17,
Identifying an individual who has invoked the at least one virtual agent; And
Wherein the recommendation further comprises prioritizing information about the individual identified as having invoked the at least one virtual agent.
제17항에 있어서, 상기 방법은,
상기 복수의 개인으로부터 가장 높은 투표 수를 받는 후보를, 복수의 후보로부터, 상기 추천으로서, 선택하는 단계를 더 포함하고, 상기 제1 정보는 상기 제1 개인의 투표를 포함하고 상기 제2 정보는 상기 제2 개인의 투표를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
18. The method of claim 17,
Further comprising the step of selecting a candidate receiving the highest number of votes from the plurality of individuals as a recommendation from a plurality of candidates, wherein the first information includes a vote of the first person and the second information And a vote of the second individual.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서, 상기 적어도 하나의 가상 에이전트는,
다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하고;
상기 다자간 담화 동안, 상기 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하고; 그리고
상기 제1 입력 및 상기 제2 입력을 사용하여 상기 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하도록 프로그래밍되는 것인 장치.
25. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Analyze the first input provided by the first user during the multilanguage conversation;
Analyzing a second input provided by a second user different from the first user during the confidential conversation; And
Wherein the first input and the second input are used to formulate at least one task to be performed by the virtual agent.
적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하는 단계;
상기 다자간 담화 동안, 상기 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하는 단계; 및
상기 제1 입력 및 상기 제2 입력을 사용하여 상기 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하는 단계를 포함하는 것인 방법.
A method performed by at least one processor in association with at least one virtual agent,
Analyzing a first input provided by a first user during the multilateral conversation;
Analyzing a second input provided by a second user different from the first user during the confidential conversation; And
And formulating at least one task to be performed by the virtual agent using the first input and the second input.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서, 상기 방법은,
다자간 담화 동안 제1 사용자에 의해 제공된 제1 입력을 분석하는 단계;
상기 다자간 담화 동안, 상기 제1 사용자와는 다른 제2 사용자에 의해 제공된 제2 입력을 분석하는 단계; 및
상기 제1 입력 및 상기 제2 입력을 사용하여 상기 가상 에이전트에 의해 수행될 적어도 하나의 태스크를 공식화하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium encoded with instructions that, when executed by at least one processor, performs a method for use in association with at least one virtual agent,
Analyzing a first input provided by a first user during the multilateral conversation;
Analyzing a second input provided by a second user different from the first user during the confidential conversation; And
And formulating at least one task to be performed by the virtual agent using the first input and the second input.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서, 상기 적어도 하나의 프로세서는,
상기 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채고; 그리고
상기 사용자 입력 내 트리거를 검출하는 것에 응답하여, 상기 메시징 애플리케이션에 의해 편의가 도모된 상기 다자간 담화에 상기 적어도 하나의 가상 에이전트를 주입하도록 더 프로그래밍되는 것인 장치.
15. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Intercepting user input to a messaging application running on the at least one processor and facilitating multi-party conversation; And
And in response to detecting a trigger in the user input, further programming to inject the at least one virtual agent into the confidentiality facilitated by the messaging application.
적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 수행되는 방법으로서, 상기 방법은,
상기 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채는 단계; 및
상기 사용자 입력 내 트리거를 검출하는 것에 응답하여, 상기 메시징 애플리케이션에 의해 편의가 도모된 상기 다자간 담화에 상기 적어도 하나의 가상 에이전트를 주입하는 단계를 포함하는 것인 방법.
A method performed by at least one processor in association with at least one virtual agent,
Intercepting user input to a messaging application running on the at least one processor and facilitating multi-party conversation; And
In response to detecting a trigger in the user input, injecting the at least one virtual agent into the multilateral conversation facilitated by the messaging application.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서, 상기 방법은,
상기 적어도 하나의 프로세서 상에서 실행되고 다자간 담화의 편의를 도모하는 메시징 애플리케이션으로의 사용자 입력을 가로채는 단계; 및
상기 사용자 입력 내 트리거를 검출하는 것에 응답하여, 상기 메시징 애플리케이션에 의해 편의가 도모된 상기 다자간 담화에 상기 적어도 하나의 가상 에이전트를 주입하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium encoded with instructions that, when executed by at least one processor, performs a method for use in association with at least one virtual agent,
Intercepting user input to a messaging application running on the at least one processor and facilitating multi-party conversation; And
In response to detecting a trigger in the user input, injecting the at least one virtual agent into the confidentiality facilitated by the messaging application.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서, 상기 적어도 하나의 프로세서는,
메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 상기 적어도 하나의 가상 에이전트를 제시하도록 더 프로그래밍되는 것인 장치.
15. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Wherein the at least one virtual agent is further programmed to present the at least one virtual agent as a participant in a multilayered discourse occurring through a messaging application.
적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 상기 적어도 하나의 가상 에이전트를 제시하는 단계를 포함하는 것인 방법.
A method performed by at least one processor in association with at least one virtual agent,
And presenting the at least one virtual agent as a participant in a multilayered discourse occurring through a messaging application.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서, 상기 방법은,
메시징 애플리케이션을 통하여 일어나는 다자간 담화에의 참가자로서 상기 적어도 하나의 가상 에이전트를 제시하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium encoded with instructions that, when executed by at least one processor, performs a method for use in association with at least one virtual agent,
And presenting the at least one virtual agent as a participant in a multilayered discourse that occurs through a messaging application.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서, 상기 적어도 하나의 프로세서는,
다자간 담화의 레코드를 사용하여 상기 적어도 하나의 가상 에이전트에 입력을 제공하도록 더 프로그래밍되는 것인 장치.
15. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
And to provide an input to the at least one virtual agent using a record of the multi-party discourse.
적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
다자간 담화의 레코드를 사용하여 상기 적어도 하나의 가상 에이전트에 입력을 제공하는 단계를 포함하는 것인 방법.
A method performed by at least one processor in association with at least one virtual agent,
And providing input to the at least one virtual agent using a record of the multilateral discourse.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서, 상기 방법은,
다자간 담화의 레코드를 사용하여 상기 적어도 하나의 가상 에이전트에 입력을 제공하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium encoded with instructions that, when executed by at least one processor, performs a method for use in association with at least one virtual agent,
And providing input to the at least one virtual agent using a record of the multilateral discourse.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서,
상기 적어도 하나의 가상 에이전트는,
적어도 2인의 개인 간 관계를 식별하고; 그리고
상기 적어도 2인의 개인 간 상기 관계에 적어도 일부 기반하여 상기 적어도 2인의 개인을 위한 추천을 하도록 프로그래밍되는 것인 장치.
25. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Wherein the at least one virtual agent comprises:
Identify at least two interpersonal relationships; And
And to make a recommendation for the at least two individuals based at least in part on the relationship between the at least two individuals.
적어도 하나의 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
적어도 2인의 개인 간 관계를 식별하는 단계; 및
상기 적어도 2인의 개인 간 상기 관계에 적어도 일부 기반하여 상기 적어도 2인의 개인을 위한 추천을 하는 단계를 포함하는 것인 방법.
A method performed by at least one processor implementing at least one virtual agent,
Identifying at least two interpersonal relationships; And
And making a recommendation for the at least two individuals based at least in part on the relationship between the at least two individuals.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서,
상기 방법은,
적어도 2인의 개인 간 관계를 식별하는 단계; 및
상기 적어도 2인의 개인 간 상기 관계에 적어도 일부 기반하여 상기 적어도 2인의 개인을 위한 추천을 하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium having encoded thereon instructions that, when executed by at least one processor, perform a method for implementing at least one virtual agent,
The method comprises:
Identifying at least two interpersonal relationships; And
And making a recommendation for the at least two individuals based at least in part on the relationship between the at least two individuals.
적어도 하나의 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 장치로서,
상기 적어도 하나의 프로세서는,
상기 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하도록 더 프로그래밍되되, 상기 영수증은 상기 대화 동안 상기 하나 이상의 사용자에 의해 상기 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함하는 것인 장치.
25. An apparatus comprising at least one processor programmed by one or more executable instructions to implement at least one virtual agent,
Wherein the at least one processor comprises:
Further programmed to store receipts for conversations between said at least one virtual agent and one or more users, said receipts comprising at least some information provided to said at least one virtual agent by said one or more users during said conversation / RTI >
적어도 하나의 가상 에이전트와 연관하여 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
상기 방법은, 상기 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하는 단계를 포함하되, 상기 영수증은 상기 대화 동안 상기 하나 이상의 사용자에 의해 상기 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함하는 것인 방법.
A method performed by at least one processor in association with at least one virtual agent,
The method includes storing a receipt for a conversation between the at least one virtual agent and one or more users, wherein the receipt includes at least a portion of the at least one virtual agent provided to the at least one virtual agent by the one or more users during the conversation. Lt; / RTI > information.
적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 가상 에이전트와 연관하여 사용하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서,
상기 방법은, 상기 적어도 하나의 가상 에이전트와 하나 이상의 사용자 간 대화에 대한 영수증을 저장하는 단계를 포함하되, 상기 영수증은 상기 대화 동안 상기 하나 이상의 사용자에 의해 상기 적어도 하나의 가상 에이전트에 제공된 적어도 일부의 정보를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium having encoded thereon instructions that, when executed by at least one processor, perform a method for use in association with at least one virtual agent,
The method includes storing a receipt for a conversation between the at least one virtual agent and one or more users, wherein the receipt includes at least a portion of the at least one virtual agent provided to the at least one virtual agent by the one or more users during the conversation. At least one computer-readable medium.
적어도 하나의 제1 가상 에이전트를 구현하도록 하나 이상의 실행가능한 명령어에 의해 프로그래밍되는 적어도 하나의 프로세서를 포함하는 디바이스로서,
상기 디바이스는 제1 디바이스이고,
상기 적어도 하나의 제1 가상 에이전트는,
상기 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하되, 상기 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 상기 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되고; 그리고
상기 적어도 하나의 제1 가상 에이전트와 상기 적어도 하나의 제2 가상 에이전트 간 공유된 상기 정보를 사용하여 상기 제1 사용자 및 상기 제2 사용자를 위한 공동 추천을 하도록 프로그래밍되는 것인 디바이스.
A device comprising at least one processor programmed by one or more executable instructions to implement at least one first virtual agent,
The device is a first device,
Wherein the at least one first virtual agent comprises:
Wherein the at least one first virtual agent shares information with at least one second virtual agent running on at least one second device different from the first device, wherein the at least one first virtual agent is associated with a first user, The virtual agent is associated with a second user; And
And to jointly recommend for the first user and the second user using the information shared between the at least one first virtual agent and the at least one second virtual agent.
제1 디바이스 상에서 적어도 하나의 제1 가상 에이전트를 구현하는 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
상기 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계로서, 상기 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 상기 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되는 것인, 상기 공유하는 단계; 및
상기 적어도 하나의 제1 가상 에이전트와 상기 적어도 하나의 제2 가상 에이전트 간 공유된 상기 정보를 사용하여 상기 제1 사용자 및 상기 제2 사용자를 위한 공동 추천을 하는 단계를 포함하는 것인 방법.
A method performed by at least one processor implementing at least one first virtual agent on a first device,
Sharing information with at least one second virtual agent running on at least one second device different from the first device, wherein the at least one first virtual agent is associated with a first user and the at least one The second virtual agent being associated with a second user; And
Using the information shared between the at least one first virtual agent and the at least one second virtual agent to make a joint recommendation for the first user and the second user.
제1 디바이스 상에서 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 제1 가상 에이전트를 구현하기 위한 방법을 수행하는 명령어를 인코딩해 놓은 적어도 하나의 컴퓨터-판독가능한 매체로서,
상기 방법은,
상기 제1 디바이스와는 다른 적어도 하나의 제2 디바이스 상에서 실행되는 적어도 하나의 제2 가상 에이전트와 정보를 공유하는 단계로서, 상기 적어도 하나의 제1 가상 에이전트는 제1 사용자와 연관되고 상기 적어도 하나의 제2 가상 에이전트는 제2 사용자와 연관되는 것인, 상기 공유하는 단계; 및
상기 적어도 하나의 제1 가상 에이전트와 상기 적어도 하나의 제2 가상 에이전트 간 공유된 상기 정보를 사용하여 상기 제1 사용자 및 상기 제2 사용자를 위한 공동 추천을 하는 단계를 포함하는 것인, 적어도 하나의 컴퓨터-판독가능한 매체.
At least one computer-readable medium having encoded thereon instructions for performing a method for implementing at least one first virtual agent, when executed by at least one processor on a first device,
The method comprises:
Sharing information with at least one second virtual agent running on at least one second device different from the first device, wherein the at least one first virtual agent is associated with a first user and the at least one The second virtual agent being associated with a second user; And
And using the information shared between the at least one first virtual agent and the at least one second virtual agent to make a joint recommendation for the first user and the second user. Computer-readable medium.
KR1020157011902A 2012-12-11 2013-12-10 System and methods for virtual agent recommendation for multiple persons KR20150095624A (en)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US13/710,721 2012-12-11
US13/710,971 2012-12-11
US13/710,678 US9659298B2 (en) 2012-12-11 2012-12-11 Systems and methods for informing virtual agent recommendation
US13/711,036 2012-12-11
US13/710,897 US20140164532A1 (en) 2012-12-11 2012-12-11 Systems and methods for virtual agent participation in multiparty conversation
US13/711,069 US9148394B2 (en) 2012-12-11 2012-12-11 Systems and methods for user interface presentation of virtual agent
US13/710,649 US9276802B2 (en) 2012-12-11 2012-12-11 Systems and methods for sharing information between virtual agents
US13/710,971 US20140164953A1 (en) 2012-12-11 2012-12-11 Systems and methods for invoking virtual agent
US13/710,678 2012-12-11
US13/710,701 2012-12-11
US13/711,036 US9679300B2 (en) 2012-12-11 2012-12-11 Systems and methods for virtual agent recommendation for multiple persons
US13/710,721 US9560089B2 (en) 2012-12-11 2012-12-11 Systems and methods for providing input to virtual agent
US13/711,069 2012-12-11
US13/710,897 2012-12-11
US13/710,701 US9262175B2 (en) 2012-12-11 2012-12-11 Systems and methods for storing record of virtual agent interaction
US13/710,649 2012-12-11
PCT/US2013/074121 WO2014093339A1 (en) 2012-12-11 2013-12-10 System and methods for virtual agent recommendation for multiple persons

Publications (1)

Publication Number Publication Date
KR20150095624A true KR20150095624A (en) 2015-08-21

Family

ID=50934891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011902A KR20150095624A (en) 2012-12-11 2013-12-10 System and methods for virtual agent recommendation for multiple persons

Country Status (4)

Country Link
EP (1) EP2912567A4 (en)
KR (1) KR20150095624A (en)
CN (1) CN104813311B (en)
WO (1) WO2014093339A1 (en)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190006403A (en) * 2017-07-10 2019-01-18 삼성전자주식회사 Voice processing method and system supporting the same
KR20190018061A (en) * 2016-06-10 2019-02-20 애플 인크. Intelligent digital assistant in a multi-tasking environment
JP2019511775A (en) * 2016-02-25 2019-04-25 フェイスブック,インク. Techniques for messaging bot rich communication
KR20190117856A (en) * 2018-03-28 2019-10-17 삼성전자주식회사 System and mehtod for generating information for conversation with user
KR20200023518A (en) * 2016-09-23 2020-03-04 애플 인크. Intelligent automated assistant
US10878809B2 (en) 2014-05-30 2020-12-29 Apple Inc. Multi-command single utterance input method
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11009970B2 (en) 2018-06-01 2021-05-18 Apple Inc. Attention aware virtual assistant dismissal
US11070949B2 (en) 2015-05-27 2021-07-20 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US11169616B2 (en) 2018-05-07 2021-11-09 Apple Inc. Raise to speak
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US11321116B2 (en) 2012-05-15 2022-05-03 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US11431642B2 (en) 2018-06-01 2022-08-30 Apple Inc. Variable latency device coordination
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US11467802B2 (en) 2017-05-11 2022-10-11 Apple Inc. Maintaining privacy of personal information
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11516537B2 (en) 2014-06-30 2022-11-29 Apple Inc. Intelligent automated assistant for TV user interactions
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US11532306B2 (en) 2017-05-16 2022-12-20 Apple Inc. Detecting a trigger of a digital assistant
US11538469B2 (en) 2022-04-27 2022-12-27 Apple Inc. Low-latency intelligent automated assistant

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10992625B2 (en) 2015-09-28 2021-04-27 Microsoft Technology Licensing, Llc Unified messaging platform
CN113093917A (en) * 2015-09-28 2021-07-09 微软技术许可有限责任公司 Unified virtual reality platform
EP3367249A4 (en) * 2015-10-20 2018-12-05 Sony Corporation Information processing system and information processing method
CN114037467A (en) * 2015-10-20 2022-02-11 索尼公司 Information processing system, information processing method, and computer-readable storage medium
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system
US10757048B2 (en) * 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10824932B2 (en) 2016-04-29 2020-11-03 Microsoft Technology Licensing, Llc Context-aware digital personal assistant supporting multiple accounts
US10945129B2 (en) 2016-04-29 2021-03-09 Microsoft Technology Licensing, Llc Facilitating interaction among digital personal assistants
US20170337284A1 (en) * 2016-05-17 2017-11-23 Google Inc. Determining and using attributes of message exchange thread participants
US10880378B2 (en) 2016-11-18 2020-12-29 Lenovo (Singapore) Pte. Ltd. Contextual conversation mode for digital assistant
TWI631471B (en) 2016-11-24 2018-08-01 正文科技股份有限公司 A communication system with smart agent robots
US10679192B2 (en) * 2017-05-25 2020-06-09 Microsoft Technology Licensing, Llc Assigning tasks and monitoring task performance based on context extracted from a shared contextual graph
CN108171610B (en) * 2017-12-28 2020-10-30 中国平安人寿保险股份有限公司 Page generation method, page generation equipment, storage medium and device
US20200364806A1 (en) 2019-05-15 2020-11-19 Facebook, Inc. Systems and methods for initiating conversations within an online dating service
CN110297702B (en) * 2019-05-27 2021-06-18 北京蓦然认知科技有限公司 Multitask parallel processing method and device
CN110569352B (en) * 2019-09-17 2022-03-04 尹浩 Design system and method of virtual assistant capable of customizing appearance and character
CN110995936B (en) * 2019-12-19 2021-03-19 大众问问(北京)信息科技有限公司 Voice interaction method, device and equipment
CN111355715B (en) * 2020-02-21 2021-06-04 腾讯科技(深圳)有限公司 Processing method, system, device, medium and electronic equipment of event to be resolved

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006129968A1 (en) * 2005-05-30 2006-12-07 Daumsoft, Inc. System and method of analysing a conversation using conversational agent
WO2007101263A2 (en) * 2006-02-28 2007-09-07 Buzzlogic, Inc. Social analytics system and method for analyzing conversations in social media
US20080240379A1 (en) * 2006-08-03 2008-10-02 Pudding Ltd. Automatic retrieval and presentation of information relevant to the context of a user's conversation
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
JP2008191748A (en) * 2007-02-01 2008-08-21 Oki Electric Ind Co Ltd Inter-user communication method, inter-user communication program and inter-user communication device
WO2009130605A2 (en) * 2008-04-21 2009-10-29 Vaka Corporation Methods and systems for customizing and embedding widgets in instant messages
US9858925B2 (en) * 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8279779B2 (en) * 2009-12-10 2012-10-02 Verizon Patent And Licensing Inc. Method and system for virtual agent session monitoring and barge-in
US9747604B2 (en) * 2010-01-22 2017-08-29 Google Inc. Automated agent for social media systems
EP2537272A4 (en) * 2010-02-19 2013-07-03 Osumus Recommendations Oy Method for providing a recommendation to a user
CN110889667B (en) * 2011-05-26 2021-09-17 谷歌有限责任公司 Providing contextual information of conversation participants and enabling group communications

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11321116B2 (en) 2012-05-15 2022-05-03 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US10878809B2 (en) 2014-05-30 2020-12-29 Apple Inc. Multi-command single utterance input method
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11516537B2 (en) 2014-06-30 2022-11-29 Apple Inc. Intelligent automated assistant for TV user interactions
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US11468282B2 (en) 2015-05-15 2022-10-11 Apple Inc. Virtual assistant in a communication session
US11070949B2 (en) 2015-05-27 2021-07-20 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
JP2019511775A (en) * 2016-02-25 2019-04-25 フェイスブック,インク. Techniques for messaging bot rich communication
JP2021043983A (en) * 2016-02-25 2021-03-18 フェイスブック,インク. Techniques for Messaging Bot Rich Communication
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
KR20190018061A (en) * 2016-06-10 2019-02-20 애플 인크. Intelligent digital assistant in a multi-tasking environment
US10839804B2 (en) 2016-06-10 2020-11-17 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
KR20200023518A (en) * 2016-09-23 2020-03-04 애플 인크. Intelligent automated assistant
US11467802B2 (en) 2017-05-11 2022-10-11 Apple Inc. Maintaining privacy of personal information
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
US11532306B2 (en) 2017-05-16 2022-12-20 Apple Inc. Detecting a trigger of a digital assistant
KR20190006403A (en) * 2017-07-10 2019-01-18 삼성전자주식회사 Voice processing method and system supporting the same
KR20190117856A (en) * 2018-03-28 2019-10-17 삼성전자주식회사 System and mehtod for generating information for conversation with user
US11169616B2 (en) 2018-05-07 2021-11-09 Apple Inc. Raise to speak
US11487364B2 (en) 2018-05-07 2022-11-01 Apple Inc. Raise to speak
US11431642B2 (en) 2018-06-01 2022-08-30 Apple Inc. Variable latency device coordination
US11360577B2 (en) 2018-06-01 2022-06-14 Apple Inc. Attention aware virtual assistant dismissal
US11009970B2 (en) 2018-06-01 2021-05-18 Apple Inc. Attention aware virtual assistant dismissal
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11360739B2 (en) 2019-05-31 2022-06-14 Apple Inc. User activity shortcut suggestions
US11237797B2 (en) 2019-05-31 2022-02-01 Apple Inc. User activity shortcut suggestions
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11550542B2 (en) 2021-08-16 2023-01-10 Apple Inc. Zero latency digital assistant
US11538469B2 (en) 2022-04-27 2022-12-27 Apple Inc. Low-latency intelligent automated assistant

Also Published As

Publication number Publication date
EP2912567A4 (en) 2016-05-18
EP2912567A1 (en) 2015-09-02
CN104813311A (en) 2015-07-29
CN104813311B (en) 2018-06-05
WO2014093339A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
US9276802B2 (en) Systems and methods for sharing information between virtual agents
US9148394B2 (en) Systems and methods for user interface presentation of virtual agent
KR20150095624A (en) System and methods for virtual agent recommendation for multiple persons
US9659298B2 (en) Systems and methods for informing virtual agent recommendation
US9262175B2 (en) Systems and methods for storing record of virtual agent interaction
US9679300B2 (en) Systems and methods for virtual agent recommendation for multiple persons
US9560089B2 (en) Systems and methods for providing input to virtual agent
US20140164532A1 (en) Systems and methods for virtual agent participation in multiparty conversation
US20140164953A1 (en) Systems and methods for invoking virtual agent
CN112136175B (en) Voice interaction for accessing calling functionality of companion device at primary device
US11494502B2 (en) Privacy awareness for personal assistant communications
EP3126978B1 (en) Hybrid client/server architecture for parallel processing
US20170277993A1 (en) Virtual assistant escalation
US11232792B2 (en) Proactive incorporation of unsolicited content into human-to-computer dialogs
US11509616B2 (en) Assistance during audio and video calls
JP2021170362A (en) Virtual assistant configured to recommend actions to facilitate existing conversation
CN106133767B (en) Providing a shared user experience to support communications
WO2021050131A1 (en) Composing rich content messages assisted by digital conversational assistant
KR102136962B1 (en) Voice interaction at a primary device to access call functionality of a companion device
US11539845B1 (en) Variable-volume audio streams
US20220308828A1 (en) Voice assistant-enabled client application with user view context
US20220417192A1 (en) Processing electronic communications according to recipient points of view
US20220308718A1 (en) Voice assistant-enabled client application with user view context and multi-modal input support
US20220415327A1 (en) Spatial audio conversational analysis for enhanced conversation discovery
US20220417365A1 (en) Variable-volume audio streams

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid