KR20190045092A - 봇 상호작용 - Google Patents

봇 상호작용 Download PDF

Info

Publication number
KR20190045092A
KR20190045092A KR1020187036133A KR20187036133A KR20190045092A KR 20190045092 A KR20190045092 A KR 20190045092A KR 1020187036133 A KR1020187036133 A KR 1020187036133A KR 20187036133 A KR20187036133 A KR 20187036133A KR 20190045092 A KR20190045092 A KR 20190045092A
Authority
KR
South Korea
Prior art keywords
user
messaging application
bot
computing device
computer
Prior art date
Application number
KR1020187036133A
Other languages
English (en)
Other versions
KR102197448B1 (ko
Inventor
셀비안 풍
에리카 팔머
아미트 푸레이
안톤 볼코브
오리 저쇼니
제레미 뉴튼-스미스
라이언 팔머
마크 창
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20190045092A publication Critical patent/KR20190045092A/ko
Application granted granted Critical
Publication of KR102197448B1 publication Critical patent/KR102197448B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • H04L51/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • H04L51/32
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Abstract

봇 상호작용을 위한 시스템들, 방법들 및 컴퓨터 판독가능 매체가 설명된다. 예컨대, 일부 구현들은 컴퓨터로 실행되는 방법을 포함할 수 있으며, 컴퓨터 실행되는 방법은, 제1 사용자와 연관된 제1 컴퓨팅 디바이스 상에, 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하기 위한 메시징 애플리케이션을 제공하는 단계를 포함한다. 방법은 또한, 메시징 애플리케이션에서, 사용자 요청을 검출하는 단계, 및 사용자 요청에 응답하는 동작이 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로 결정하는 단계를 포함할 수 있다. 방법은, 허가 인터페이스가 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 단계 ―허가 인터페이스는, 제1 사용자가 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―, 및 제1 사용자로부터 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 제1 사용자와 연관된 데이터에 액세스하고, 사용자 요청에 대한 응답으로 메시징 애플리케이션 내에서 제1 사용자와 연관된 데이터를 공유하는 단계를 더 포함할 수 있다.

Description

봇 상호작용 {BOT INTERACTION}
[0001] 본 출원은 "BOT INTERACTION"란 명칭으로 2016년 9월 20일자로 출원된 미국 출원번호 제62/397,318호를 우선권으로 청구하며, 이 미국 출원은 전체가 인용에 의해 본원에 포함된다.
[0002] 사용자들은, 메시징 서비스들을 사용하여, 메시징 대화들, 예컨대 채팅, 인스턴트 메시지 등을 실행한다. 메시징 대화들은 임의의 사용자 디바이스, 예컨대, 컴퓨터, 모바일 디바이스, 웨어러블 디바이스들 등을 사용하여 실행될 수 있다. 사용자들이 메시징 애플리케이션들을 사용하여 더 많은 대화들을 실행하고 더 많은 태스크들을 수행함에 따라, (예컨대, 봇(bot) 또는 다른 자동화된 보조자 애플리케이션(automated assistant application)을 통한) 메시징 대화들 또는 태스크들에 대한 자동화된 보조가 효율성을 개선시키는 데 유용할 수 있다. 자동화는 사용자들이 보다 효율적인 메시징 통신들을 수행하는데 도움이 될 수 있지만, 메시징 봇이 사용자 정보에 액세스하는 시기 및 방법 그리고 어떤 사용자 정보를 메시징 봇이 액세스하고 그리고/또는 다른 사용자들과 공유하도록 허가되는지에 관련하여 허가들 및 프라이버시를 관리할 필요가 있을 수 있다.
[0003] 본원에서 제공되는 배경기술 설명은 일반적으로, 본 개시내용의 맥락을 제시하기 위한 것이다. 어느 정도까지는 이 배경기술 섹션에서 설명되는, 본 발명의 발명자들의 연구뿐만 아니라, 출원 시에 종래 기술로서 달리 자격이 부여될 수 없을 수 있는 설명의 양상들은 본 개시내용에 대해 명시적으로 또는 암시적으로 종래 기술로서 인정되지 않는다.
[0004] 일부 구현들은 컴퓨터로 실행되는(computer-executed) 방법을 포함할 수 있다. 방법은, 제1 사용자와 연관된 제1 컴퓨팅 디바이스 상에, 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하기 위한 메시징 애플리케이션을 제공하는 단계를 포함할 수 있다. 방법은 또한, 메시징 애플리케이션에서, 사용자 요청을 검출하는 단계, 및 사용자 요청에 응답하는 동작이 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로(programmatically) 결정하는 단계를 포함할 수 있다. 방법은, 허가 인터페이스가 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 단계 ―허가 인터페이스는, 제1 사용자가 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―, 및 제1 사용자로부터 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 제1 사용자와 연관된 데이터에 액세스하고, 사용자 요청에 대한 응답으로 메시징 애플리케이션 내에서 제1 사용자와 연관된 데이터를 공유하는 단계를 더 포함할 수 있다.
[0005] 일부 구현들에서, 제1 사용자는 인간 사용자이고, 적어도 하나의 다른 사용자는 보조 에이전트(assistive agent)이다. 사용자 요청을 검출하는 단계는, 보조 에이전트에 의해, 메시징 애플리케이션에서 수신된 하나 이상의 메시지들을 분석하는 단계를 포함할 수 있으며, 여기서 메시지들은 제1 사용자로부터 보조 에이전트로 전송된다. 하나 이상의 메시지들은 텍스트 메시지, 멀티미디어 메시지 및 보조 에이전트에 대한 커맨드 중 하나 이상을 포함할 수 있다.
[0006] 방법은 또한, 제1 사용자의 하나 이상의 액션들에 기반하여 보조 에이전트를 자동으로 불러오는(invoke) 단계를 포함할 수 있다. 보조 에이전트는 특수 문자 커맨드, 보조 에이전트와 연관된 사용자 인터페이스 콜아웃(callout) 엘리먼트의 사용자 선택, 보조 에이전트에 대응하는 아바타의 사용자 선택, 및 보조 에이전트에 의해 제공되는 자동 회신 제안의 사용자 선택 중 하나 이상에 대한 응답으로 불러와질 수 있다.
[0007] 일부 구현들에서, 제1 사용자는 인간 사용자를 포함할 수 있고 적어도 하나의 다른 사용자는 제2 컴퓨팅 디바이스와 연관된, 제1 사용자와 상이한 제2 인간 사용자를 포함할 수 있으며, 허가 인터페이스는 제1 사용자와 연관된 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링될 수 있고, 허가 인터페이스는 제2 인간 사용자와 연관된 제2 컴퓨팅 디바이스 상에 디스플레이되지 않는다.
[0008] 제1 사용자는 인간 사용자를 포함할 수 있고 적어도 하나의 다른 사용자는 제1 사용자와 상이한 제2 인간 사용자 및 보조 에이전트를 포함할 수 있으며, 사용자 요청은 제1 사용자와 연관된 제1 컴퓨팅 디바이스로부터 수신되며, 방법은, 사용자 요청에 대한 응답으로, 메시징 애플리케이션에서 별개의 대화를 개시하는 단계를 더 포함하며, 여기서 별개의 대화는 제1 사용자 및 보조 에이전트를 포함하며 제2 인간 사용자를 배제한다.
[0009] 방법은, 제1 사용자 및 적어도 하나의 다른 사용자 중 적어도 하나로부터의 입력에 기반하여 제1 메시징 애플리케이션에 하나 이상의 제안들을 제공하는 단계를 더 포함할 수 있다. 방법은, 하나 이상의 제안들이 메시징 애플리케이션에 디스플레이되게 하는 단계를 더 포함할 수 있다. 하나 이상의 제안들은, 제1 사용자에 의해 선택될 때, 대응하는 제안의 세부사항들이 디스플레이되게 하는 제안 엘리먼트들로서 렌더링될 수 있다.
[0010] 일부 구현들은 컴퓨터로 실행되는 방법을 포함할 수 있으며, 컴퓨터로 실행되는 방법은, 메시징 애플리케이션에서, 보조 에이전트로부터, 이전에 디스플레이된 확인응답(acknowledgement) 메시지의 선택에 대응하는 사용자 입력을 검출하는 단계를 포함하며, 여기서 이전에 디스플레이된 확인응답 메시지는 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들과 연관된다. 방법은 또한, 이전에 디스플레이된 제안된 자동 회신 응답들이 디스플레이되게 하는 단계, 및 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들 중 주어진 응답이 사용자에 의해 선택되었다는 표시를 수신하는 단계를 포함할 수 있다. 방법은, 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들 중 주어진 응답을 메시징 애플리케이션 내의 대화에 참여하는 제2 사용자 및 보조 에이전트에 전송하는 단계를 더 포함할 수 있다.
[0011] 방법은 또한, 사용자 입력에 대한 응답으로 보조 에이전트를 불러오는 단계를 포함할 수 있다. 일부 구현들에서, 대화는 사용자 및 적어도 하나의 다른 사용자를 포함할 수 있으며, 여기서 사용자는 제1 인간 사용자이며 적어도 하나의 다른 사용자는 제1 인간 사용자와 상이한 제2 인간 사용자를 포함하며, 제1 인간 사용자는 제1 컴퓨팅 디바이스와 연관되고 제2 인간 사용자는 제2 컴퓨팅 디바이스와 연관되며, 여기서 이전에 디스플레이된 메시지 및 하나 이상의 제안된 자동 회신 응답들은 초기에, 제1 인간 사용자와 연관된 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되며, 메시징 애플리케이션 내의 대화 및 보조 에이전트 중 하나 이상에 하나 이상의 제안된 자동 회신 응답들을 제공하는 것은 메시징 애플리케이션에 하나 이상의 제안된 자동 회신 응답들을 제공하는 것을 포함한다.
[0012] 일부 구현들은, 소프트웨어 명령들이 저장되어 있는 비-일시적 컴퓨터-판독가능 매체에 연결되는 하나 이상의 하드웨어 프로세서들을 포함하는 시스템을 포함할 수 있으며, 소프트웨어 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 동작들을 수행하게 한다. 동작들은, 제1 사용자와 연관된 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션으로부터 사용자 요청을 수신하는 것 ―메시징 애플리케이션은 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하도록 구성됨―, 및 사용자 요청에 응답하는 동작이 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로 결정하는 것을 포함할 수 있다. 동작들은 또한, 허가 인터페이스가 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 것 ―허가 인터페이스는 제1 사용자가 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―, 및 제1 사용자로부터 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 제1 사용자와 연관된 데이터에 액세스하고, 사용자 요청에 대한 응답으로 메시징 애플리케이션 내에서 제1 사용자와 연관된 데이터를 공유하는 것을 포함할 수 있다.
[0013] 일부 구현들에서, 제1 사용자는 인간 사용자를 포함할 수 있고 적어도 하나의 다른 사용자는 보조 에이전트를 포함할 수 있다. 사용자 요청을 검출하는 것은, 보조 에이전트에서, 제1 사용자로부터 보조 에이전트로 메시징 애플리케이션에서 수신된 하나 이상의 메시지들을 분석하는 것을 포함할 수 있다. 제1 사용자는 인간 사용자를 포함할 수 있고 적어도 하나의 다른 사용자는 제2 컴퓨팅 디바이스와 연관된, 제1 사용자와 상이한 제2 인간 사용자를 포함할 수 있으며, 여기서 허가 인터페이스는 제1 사용자와 연관된 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되고 허가 인터페이스는 제2 인간 사용자와 연관된 제2 컴퓨팅 디바이스 상에 디스플레이되지 않는다.
[0014] 일부 구현들에서, 제1 사용자는 인간 사용자를 포함할 수 있고 적어도 하나의 다른 사용자는 제1 사용자와 상이한 제2 인간 사용자 및 보조 에이전트를 포함할 수 있고, 여기서 사용자 요청은 제1 사용자와 연관된 제1 컴퓨팅 디바이스로부터 수신되며, 동작들은, 사용자 요청에 대한 응답으로, 메시징 애플리케이션에서 별개의 대화를 개시하는 것을 더 포함하며, 여기서 별개의 대화는 제1 사용자 및 보조 에이전트를 포함하며 제2 인간 사용자를 포함하지 않는다.
[0015] 동작들은, 제1 사용자 및 적어도 하나의 다른 사용자 중 적어도 하나로부터의 입력에 기반하여 제1 메시징 애플리케이션에 하나 이상의 제안들을 제공하는 것을 더 포함할 수 있다.
[0016] 도 1은, 일부 구현들에 따라, 메시지들이 사용자들과 봇들 간에 교환될 수 있는 예시적 환경의 블록 다이어그램을 도시한다.
[0017] 도 2는, 일부 구현들에 따른 예시적 봇 불러오기(bot invocation) 이벤트들의 다이어그램이다.
[0018] 도 3은, 일부 구현들에 따른 봇 불러오기의 예시적 방법을 도시하는 흐름도이다.
[0019] 도 4는, 일부 구현들에 따른, 예시적 봇 식별 및 불러오기 엘리먼트들을 도시하는 사용자 인터페이스의 다이어그램이다.
[0020] 도 5는, 일부 구현들에 따른, 봇 상호작용들 동안 사용자 프라이버시를 관리하기 위한 예시적 방법의 흐름도이다.
[0021] 도 6은, 일부 구현들에 따른, 봇 상호작용들 동안 사용자 프라이버시를 관리하기 위한 예시적 사용자 인터페이스의 다이어그램이다.
[0022] 도 7은, 일부 구현들에 따른, 이전의 봇 제안들을 리콜(recall)하기 위한 예시적 방법의 흐름도이다.
[0023] 도 8-도 12는, 일부 구현들에 따른, 예시적인 이전의 봇 제안 리콜 프로세스를 도시하는 예시적 사용자 인터페이스들의 다이어그램들이다.
[0024] 도 13은, 일부 구현들에 따른, 허가들을 관리하기 위한 예시적 프로세스를 도시하는 흐름도이다.
[0025] 도 14는, 일부 구현들에 따른, 정해진 봇 타입을 테마로 하는 예시적 사용자 인터페이스를 도시하는 다이어그램이다.
[0026] 도 15는, 일부 구현들에 따른, 정해진 봇 타입을 테마로 하는 예시적 사용자 인터페이스 테마를 도시하는 다이어그램이다.
[0027] 도 16은, 일부 구현들에 따른, 봇 상호작용을 위해 구성된 예시적 컴퓨팅 디바이스의 다이어그램이다.
[0028] 본원에 설명된 하나 이상의 구현들은 일반적으로 보조 에이전트들(또는 봇들)과의 사용자 상호작용에 관한 것이고, 특히 봇을 식별하는 것, 메시징 애플리케이션 봇들에 대한 사용자 프라이버시 관리 및/또는 이전의 봇 제안들을 리콜하는 것에 관한 것이다.
[0029] 도 1은, 자동적인 보조 에이전트들, 예컨대 봇들을 인에이블링 하고 일부 실시예들에서는 이를 제공하는 메시징 서비스들을 제공하기 위한 예시적인 환경(100)의 블록 다이어그램을 예시한다. 예시적인 환경(100)은 메시징 서버(101), 하나 이상의 클라이언트 디바이스들(115a, 115n), 서버(135) 및 네트워크(140)를 포함한다. 사용자들(125a-125n)은 개개의 클라이언트 디바이스들(115a, 115n)과 연관될 수 있다. 서버(135)는 예컨대, 메시징 서비스들을 제공하는 당사자와 상이한 당사자에 의해 제어되는 제3자 서버일 수 있다. 다양한 구현들에서, 서버(135)는 아래에서 추가로 상세히 설명되는 바와 같이 봇 서비스들을 구현할 수 있다. 일부 구현들에서, 환경(100)은 도 1에 도시된 하나 이상의 서버들 또는 디바이스들을 포함하지 않을 수 있거나 또는 도 1에 도시되지 않은 다른 서버들 또는 디바이스들을 포함할 수 있다. 도 1 및 나머지 도면들에서, 참조 번호 뒤의 문자, 예컨대 "115a"는 그 특정 참조 번호를 갖는 엘리먼트에 대한 레퍼런스를 나타낸다. 후속 문자 없는 텍스트의 참조 번호, 예컨대 "115"는 그 참조 번호를 갖는 엘리먼트의 구현들에 대한 일반적 참조를 나타낸다.
[0030] 예시된 구현에서, 메시징 서버(101), 클라이언트 디바이스들(115) 및 서버(135)는 네트워크(140)를 통해 통신가능하게 연결된다. 다양한 구현들에서, 네트워크(140)는 유선 또는 무선인 종래의 타입일 수 있고, 스타 구성, 토큰 링 구성 또는 다른 구성들을 포함하는 많은 상이한 구성들을 가질 수 있다. 또한, 네트워크(140)는 LAN(local area network), WAN(wide area network)(예컨대, 인터넷) 및/또는 다수의 디바이스들이 통신할 수 있게 하는 다른 상호접속된 데이터 경로들을 포함할 수 있다. 일부 구현들에서, 네트워크(140)는 피어-투-피어 네트워크일 수 있다. 네트워크(140)는 또한 여러 가지 다양한 통신 프로토콜들에서 데이터를 전송하기 위한 원격통신 네트워크의 부분들에 연결되거나 이를 포함할 수 있다. 일부 구현들에서, 네트워크(140)는 SMS(short messaging service), MMS(multimedia messaging service), HTTP(hypertext transfer protocol), 다이렉트 데이터 접속, 이메일 등을 통하는 것을 포함하여 데이터를 전송 및 수신하기 위해 Bluetooth® 통신 네트워크들, Wi-Fi® 또는 셀룰러 통신 네트워크를 포함한다. 비록 도 1이 클라이언트 디바이스들(115), 메시징 서버(101) 및 서버(135)에 연결된 하나의 네트워크(140)를 예시할지라도, 실제로 하나 이상의 네트워크들(140)이 이러한 엔티티들에 연결될 수 있다.
[0031] 메시징 서버(101)는 프로세서, 메모리 및 네트워크 통신 능력들을 포함할 수 있다. 일부 구현들에서, 메시징 서버(101)는 하드웨어 서버이다. 일부 구현에서, 메시징 서버(101)는 가상화된 환경에 삽입(implant)될 수 있는데, 예컨대, 메시징 서버(101)는 하나 이상의 다른 가상 기계들을 포함할 수 있는 하드웨어 서버 상에서 실행되는 가상 기계일 수 있다. 메시징 서버(101)는 신호 라인(102)을 통해 네트워크(140)에 통신가능하게 연결된다. 신호 라인(102)은 유선 접속, 이를테면, 이더넷, 동축 케이블, 광섬유 케이블 등 또는 무선 접속, 이를테면 Wi-Fi, 블루투스 또는 다른 무선 기술일 수 있다. 일부 구현들에서, 메시징 서버(101)는 네트워크(140)를 통해 클라이언트 디바이스들(115a-115n), 서버(135) 및 봇(113) 중 하나 이상에 그리고 그로부터 데이터를 전송 및 수신한다. 일부 구현들에서, 메시징 서버(101)는 사용자(예컨대, 사용자들(125) 중 임의의 사용자)가 다른 사용자들과 및/또는 봇과 메시지들을 교환하는 것을 가능하게 하는 클라이언트 기능을 제공하는 메시징 애플리케이션(103a)을 포함할 수 있다. 메시징 애플리케이션(103a)은 서버 애플리케이션, 클라이언트-서버 애플리케이션의 서버 모듈 또는 분산된 애플리케이션(예컨대, 하나 이상의 클라이언트 디바이스들(115) 상에 대응하는 클라이언트 메시징 애플리케이션(103b)이 있음)일 수 있다.
[0032] 메시징 서버(101)는 또한, 메시징 서버(101)를 통해 교환되는 메시지들, 하나 이상의 봇들의 데이터 및/또는 구성, 및 하나 이상의 사용자들(125)과 연관된 사용자 데이터 모두를, 이러한 데이터를 저장하기 위한 개개의 사용자로부터의 명시적 허가 시에 저장할 수 있는 데이터베이스(199)를 포함할 수 있다. 일부 실시예들에서, 메시징 서버(101)는 하나 이상의 보조 에이전트들, 예컨대, 봇들(107a 및 111)을 포함할 수 있다. 다른 실시예들에서, 보조 에이전트들은 메시징 서버(101) 상에서가 아니라 클라이언트 디바이스들(115a-n) 상에 구현될 수 있다.
[0033] 메시징 애플리케이션(103a)은 사용자들(125) 및 하나 이상의 봇들(105, 107a, 107b, 109a, 109b, 111 및 113) 사이에서 메시지들의 교환을 가능하게 하기 위해 프로세서에 의해 동작가능한 코드 및 루틴들일 수 있다. 일부 구현들에서, 메시징 애플리케이션(103a)은 FPGA(field-programmable gate array) 또는 ASIC(application-specific integrated circuit)를 포함하는 하드웨어를 사용하여 구현될 수 있다. 일부 구현들에서, 메시징 애플리케이션(103a)은 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다.
[0034] 다양한 구현들에서, 클라이언트 디바이스들(115)과 연관된 개개의 사용자들이 메시지들의 저장에 대한 동의를 제공할 때, 데이터베이스(199)는 하나 이상의 클라이언트 디바이스들(115) 간에 교환되는 메시지들을 저장할 수 있다. 일부 구현들에서, 클라이언트 디바이스들(115)과 연관된 개개의 사용자들이 메시지들의 저장에 대한 동의를 제공할 때, 데이터베이스(199)는 하나 이상의 클라이언트 디바이스들(115)과 상이한 디바이스, 예컨대, 다른 클라이언트 디바이스, 메시징 서버(101) 및 서버(135) 등 상에 구현되는 하나 이상의 봇들 간에 교환되는 메시지들을 저장할 수 있다. 하나 이상의 사용자들이 동의를 제공하지 않는 구현들에서, 그러한 사용자들에 의해 수신되고 전송되는 메시지들은 저장되지 않는다.
[0035] 일부 구현들에서, 메시지들은, 예컨대, 오직 메시지의 전송기 및 수신측만이 암호화된 메시지들을 볼 수 있도록 암호화될 수 있다. 일부 구현들에서, 메시지들은 저장된다. 일부 구현들에서, 데이터베이스(199)는 하나 이상의 봇들, 예컨대 봇(107a), 봇(111) 등의 데이터 및/또는 구성을 추가로 저장할 수 있다. 일부 구현들에서 사용자(125)가 사용자 데이터(이를테면, 소셜 네트워크 데이터, 연락처 정보, 이미지들 등)의 저장에 대한 동의를 제공할 때, 데이터베이스(199)는 또한 이러한 동의를 제공한 개개의 사용자(125)와 연관된 사용자 데이터를 저장할 수 있다.
[0036] 일부 구현들에서, 메시징 애플리케이션(103a/103b)은, 사용자(125)가 새로운 봇들을 생성하는 것을 가능하게 하는 사용자 인터페이스를 제공할 수 있다. 이러한 구현들에서, 메시징 애플리케이션(103a/103b)은, 사용자가 생성한 봇들이 메시징 애플리케이션(103a/103b)의 사용자들 간의 대화들에 포함되는 것을 가능하게 하는 기능성을 포함할 수 있다.
[0037] 클라이언트 디바이스(115)는, 메모리 및 하드웨어 프로세서, 예컨대, 카메라, 랩톱 컴퓨터, 태블릿 컴퓨터, 모바일 텔레폰, 웨어러블 디바이스, 모바일 이메일 디바이스, 휴대가능 게임 플레이어, 휴대가능 뮤직 플레이어, 판독기 디바이스, 헤드 장착형 디스플레이, 또는 네트워크(140)에 무선으로 액세스할 수 있는 다른 전자 디바이스를 포함하는 컴퓨팅 디바이스일 수 있다.
[0038] 예시된 구현에서, 클라이언트 디바이스(115a)는 신호 라인(108)을 통해 네트워크(140)에 연결되고, 클라이언트 디바이스(115n)는 신호 라인(110)을 통해 네트워크(140)에 연결된다. 신호 라인들(108 및 110)은, 유선 접속들(예컨대, 이더넷) 또는 무선 접속들(이를테면, Wi-Fi, 블루투스, 또는 다른 무선 기술)일 수 있다. 클라이언트 디바이스들(115a, 115n)은 각각 사용자들(125a, 125n)에 의해 액세스된다. 도 1의 클라이언트 디바이스들(115a, 115n)은 예로서 사용된다. 도 1이 2개의 클라이언트 디바이스들(115a 및 115n)을 예시하지만, 본 개시내용은 하나 이상의 클라이언트 디바이스들(115)을 갖는 시스템 아키텍처에 적용된다.
[0039] 일부 구현들에서, 클라이언트 디바이스(115)는, 사용자(125)에 의해 착용되는 웨어러블 디바이스일 수 있다. 예컨대, 클라이언트 디바이스(115)는, 클립(예컨대, 손목밴드)의 일부, 장신구의 일부, 또는 안경의 일부로서 포함될 수 있다. 다른 예에서, 클라이언트 디바이스(115)는 스마트워치일 수 있다. 다양한 구현들에서, 사용자(125)는 디바이스의 디스플레이를 통해 메시징 애플리케이션(103a/103b)으로부터의 메시지들을 볼 수 있고, 디바이스의 스피커 또는 다른 출력 디바이스를 통해 메시지들에 액세스할 수 있는 것 등을 할 수 있다. 예컨대, 사용자(125)는, 스마트워치 또는 스마트 손목밴드의 디스플레이를 통해 메시지들을 볼 수 있다. 다른 예에서, 사용자(125)는, 클라이언트 디바이스(115)에 연결되거나 그 일부인 헤드폰들(도시되지 않음), 클라이언트 디바이스(115)의 스피커, 클라이언트 디바이스(115)의 햅틱 피드백 엘리먼트 등을 통해 메시지들에 액세스할 수 있다.
[0040] 일부 구현들에서, 메시징 애플리케이션(103b)은 클라이언트 디바이스(115a) 상에 저장된다. 일부 구현들에서, 메시징 애플리케이션(103b)(예컨대, 씬-클라이언트(thin-client) 애플리케이션, 클라이언트 모듈 등)은 클라이언트 디바이스(115a) 상에 저장된 클라이언트 애플리케이션일 수 있으며, 대응하는 메시징 애플리케이션(103a)(예컨대, 서버 애플리케이션, 서버 모듈 등)은 메시징 서버(101)에 저장된다. 예컨대, 메시징 애플리케이션(103b)은, 클라이언트 디바이스(115a) 상에서 사용자(125a)에 의해 생성되는 메시지들을 메시징 서버(101) 상에 저장된 메시징 애플리케이션(103a)에 송신할 수 있다.
[0041] 일부 구현들에서, 메시징 애플리케이션(103a)은, 메시징 서버(101) 상에 저장된 독립형 애플리케이션일 수 있다. 사용자(125a)는, 클라이언트 디바이스(115a) 상의 브라우저 또는 다른 소프트웨어를 사용하여 웹 페이지를 통해 메시징 애플리케이션(103a)에 액세스할 수 있다. 일부 구현들에서, 클라이언트 디바이스(115a) 상에 구현되는 메시징 애플리케이션(103b)은, 메시징 서버(101) 상에 포함되는 것들과 동일하거나 유사한 모듈들을 포함할 수 있다. 일부 구현들에서, 메시징 애플리케이션(103b)은, 예컨대, 피어-투-피어, 또는 다른 클라이언트 디바이스들(115)과의 메시지들의 교환을 가능하게 하는 기능성을 하나 이상의 클라이언트 디바이스들(115)이 포함하는 다른 구성으로, 독립형 클라이언트 애플리케이션으로서 구현될 수 있다. 이러한 구현들에서, 메시징 서버(101)는, 제한된 메시징 기능성(예컨대, 클라이언트 인증, 백업 등)을 포함하거나 메시징 기능성을 포함하지 않을 수 있다. 일부 구현들에서, 메시징 서버(101)는, 하나 이상의 봇들(예컨대, 봇(107a) 및 봇(111))을 구현할 수 있다.
[0042] 서버(135)는, 프로세서, 메모리, 및 네트워크 통신 능력들을 포함할 수 있다. 일부 구현들에서, 서버(135)는 하드웨어 서버이다. 서버(135)는, 신호 라인(128)을 통해 네트워크(140)에 통신가능하게 연결된다. 신호 라인(128)은, 유선 접속(이를테면, 이더넷, 동축 케이블, 광섬유 케이블 등) 또는 무선 접속(이를테면, Wi-Fi, 블루투스, 또는 다른 무선 기술)일 수 있다. 일부 구현들에서, 서버(135)는, 네트워크(140)를 통해 클라이언트 디바이스들(115) 및 메시징 서버(101) 중 하나 이상에 데이터를 전송하고 그들로부터 데이터를 수신한다. 서버(135)가 하나의 서버인 것으로 예시되어 있지만, 다양한 구현들은 하나 이상의 서버들(135)을 포함할 수 있다. 서버(135)는, 서버 애플리케이션들 또는 서버 모듈들로서 하나 이상의 봇들(예컨대, 봇(109a) 및 봇(113))을 구현할 수 있다.
[0043] 다양한 구현들에서, 서버(135)는, 메시징 서버(101)를 관리하는 동일한 엔티티, 예컨대 메시징 서비스들의 제공자의 일부일 수 있다. 일부 구현들에서, 서버(135)는, 예컨대, 메시징 애플리케이션(103a/103b)을 제공하는 엔티티와 상이한 엔티티에 의해 제어되는 제3자 서버일 수 있다. 일부 구현들에서, 서버(135)는 봇들을 제공하거나 호스팅한다.
[0044] 봇은, 주로 텍스트를 통해(예컨대 메시징 애플리케이션(103a/103b)을 통해) 사용자들이 상호작용하는, 하나 이상의 컴퓨터들 상에 구현되는 자동화된 서비스이다. 봇은, 봇이 다양한 메시징 애플리케이션들의 사용자들과 상호작용할 수 있도록 봇 제공자에 의해 구현될 수 있다. 일부 구현들에서, 메시징 애플리케이션(103a/103b)의 제공자는 또한 하나 이상의 봇들을 제공할 수 있다. 일부 구현들에서, 메시징 애플리케이션(103a/103b)의 제공자에 의해 제공되는 봇들은, 예컨대 다른 제공자들에 의해 제공되는 다른 메시징 애플리케이션들에 그 봇들이 포함될 수 있도록 구성될 수 있다. 봇은, 다른 모드들에 비해 몇몇 장점들을 제공할 수 있다. 예컨대, 봇은, 클라이언트 디바이스 상에 애플리케이션을 설치할 필요 없이 또는 웹사이트에 액세스함이 없이 사용자가 새로운 서비스(예컨대, 택시 예약 서비스, 레스토랑 예약 서비스 등)를 시도하는 것을 허가할 수 있다. 추가로, 사용자는 텍스트를 통해 봇과 상호작용할 수 있는데, 이는, 웹사이트, 소프트웨어 애플리케이션, 텔레폰 콜(예컨대, IVR(interactive voice response) 서비스), 또는 서비스와 상호작용하는 다른 방식들을 사용하는 데 요구되는 것과 비교하여 최소의 학습을 요구하거나 학습을 요구하지 않는다. 메시징 서비스 또는 애플리케이션 내에 봇을 통합하는 것은 또한, 사용자들이 다른 사용자들과 협업하여 메시징 서비스 내에서 다양한 태크스들(이를테면, 여행 계획, 쇼핑, 이벤트들을 스케줄링하는 것, 정보를 획득하는 것 등)을 완수하는 것을 허가할 수 있고 그리고 그 태스크들을 완수하기 위해 다양한 애플리케이션들(예컨대, 택시 예약 애플리케이션, 레스토랑 예약 애플리케이션, 캘린더 애플리케이션 등) 또는 웹사이트들 간에 스위칭하는 것과 같은 번거로운 동작들을 제거할 수 있다.
[0045] 봇은 정보를 제공하거나 또는 메시징 애플리케이션(103) 내에서 특정 액션들을 수행하기 위해 메시징 애플리케이션(103a/103b)을 통해 하나 이상의 사용자들(예컨대, 사용자들(125a-n) 중 임의의 사용자)과 상호작용하도록 구성된 컴퓨터 프로그램 또는 애플리케이션(예컨대, 소프트웨어 애플리케이션)으로서 구현될 수 있다. 일 예로서, 정보 리트리벌 봇은 인터넷 상에서 정보를 검색하고 메시징 앱 내에서 가장 관련된 검색 결과를 제시할 수 있다. 다른 예로서, 여행 봇은, 예컨대, 메시징 앱 내에서 여행 및 호텔 티켓들의 구매를 가능하게 하고, 메시징 앱 내에서 호텔 예약들을 수행하고, 메시징 앱 내에서 렌트 카 예약들을 수행하는 등에 의해 메시징 애플리케이션(103)을 통해 여행 어레인지먼트들을 수행하기 위한 능력을 가질 수 있다. 다른 예로서, 택시 봇은, 예컨대, 별개의 택시 예약 앱을 불러오거나 호출하지 않으면서 (사용자(125)가 위치 정보로의 액세스를 허용할 때 클라이언트 디바이스(115)로부터 택시 봇에 의해 획득된) 사용자의 위치로 택시를 호출하기 위한 능력을 가질 수 있다. 다른 예로서, 코치/가정교사 봇은, 예컨대, 시험에 나올 가능성이 있는 질문들을 묻고 사용자의 응답들이 정확한지 또는 부정확한지에 대한 피드백을 제공함으로써 메시징 앱 내에서 몇몇 주제로 사용자를 가르치도록 사용자를 지도할 수 있다. 다른 예로서, 게임 봇은 메시징 앱 내에서 사용자와 반대편 또는 같은편 상에서 게임을 플레이할 수 있다. 다른 예로서, 상업 봇은, 예컨대, 상인의 카탈로그로부터 제품 정보를 리트리브하고 메시징 앱을 통한 구매를 가능하게 함으로써 특정 상인으로부터의 서비스들을 제공할 수 있다. 다른 예로서, 인터페이스 봇은, 메시징 앱의 사용자가 원격 디바이스 또는 운송수단과 채팅하고, 그들로부터 정보를 리트리브하고, 그리고/또는 명령들을 그들에게 제공하도록 원격 디바이스 또는 운송수단과 인터페이싱할 수 있다.
[0046] 봇의 능력들은 사용자의 의도를 이해하는 것 및 그 의도로 실행하는 것을 포함할 수 있다. 사용자의 의도는 사용자의 대화 및 그의 콘텍스트를 분석 및 이해함으로써 이해될 수 있다. 봇은 또한, 시간에 걸쳐 전개되는 대화에 기반하여 대화의 콘텍스트 변화 또는 사용자들의 감정들 및/또는 의도들의 변화를 이해할 수 있다. 예컨대, 만약 사용자 A가 커피 미팅을 제안하지만 사용자 B가 자신은 커피를 좋아하지 않는다고 언급한다면, 봇은 커피에 대한 네거티브 감정 스코어를 사용자 B에게 할당할 수 있고, 미팅을 위한 커피 숍을 제안하지 않을 수 있다.
[0047] 메시징 애플리케이션(103a/103b)의 사용자들과 통신할 수 있는 봇들을 구현하는 것은 많은 장점들을 제공할 수 있다. 통상적으로, 사용자는 활동들, 이를테면 요금들을 지불하는 것, 음식을 주문하는 것, 티켓들을 예약하는 것 등을 수행하기 위해 소프트웨어 애플리케이션 또는 웹사이트를 활용할 수 있다. 그러한 구현들에 대한 문제점은 다수의 활동들을 수행하기 위해 다수의 소프트웨어 애플리케이션들 및 웹사이트들을 설치 또는 사용하도록 사용자에게 요구된다는 것이다. 예컨대, 사용자는 (예컨대, 공공 기업으로부터의) 공과금 요금을 지불하고, 영화 티켓들을 구입하고(예컨대, 티켓팅 서비스 제공자로부터의 티켓 예약 애플리케이션), (예컨대, 개개의 레스토랑들로부터) 레스토랑 예약들을 수행하기 위해 상이한 소프트웨어 애플리케이션들을 설치해야 할 수 있거나, 또는 각각의 활동에 대해 개개의 웹사이트를 방문할 필요가 있을 수 있다. 그러한 구현들에 대한 다른 문제점은 사용자가 복잡한 사용자 인터페이스, 예컨대, 다수의 사용자 인터페이스 엘리먼트들, 이를테면 윈도우들, 버튼들, 체크박스들, 다이얼로그 박스들 등을 사용하여 구현된 사용자 인터페이스를 학습할 필요가 있을 수 있다는 것이다.
[0048] 결과적으로, 하나 이상의 설명된 구현들의 장점은 단일 애플리케이션이, 별개의 웹사이트에 액세스하거나 또는 소프트웨어 애플리케이션들을 설치 및 실행하도록 요구되지 않으면서 사용자가 임의의 수의 당사자들과의 상호작용을 수반하는 활동들을 수행하는 것을 가능하게 하는 것이며, 이는, 클라이언트 디바이스 상의 메모리, 저장소, 및 프로세싱 자원들의 소비를 감소시키는 기술적 효과를 갖는다. 설명된 구현들의 장점은 사용자가, 예컨대, 복잡한 사용자 인터페이스를 학습할 필요 없이 그러한 활동들을 완료하는 것을 대화식 인터페이스가 더 용이하고 더 신속하게 만드는 것이며, 이는, 컴퓨테이셔널 자원들의 소비를 감소시키는 기술적 효과를 갖는다. 설명된 구현들의 다른 장점은 봇들을 구현하는 것이 다양한 참여 엔티티들이 더 낮은 비용으로 사용자 상호작용을 제공하는 것을 가능하게 할 수 있다는 것이며, 이는, 사용자 상호작용을 가능하게 하기 위해 배치되는 컴퓨테이셔널 자원들, 이를테면, 통신 서버, 하나 이상의 웹 서버들 상에 호스팅된 웹사이트, 이메일 서버 상에 호스팅된 고객 지원 이메일 등 중 하나 이상을 사용하여 구현된 수신자-부담 번호에 대한 필요성을 감소시키는 기술적 효과를 갖는다. 설명된 특징들의 다른 기술적 효과는 통신 네트워크들에 걸쳐 사용자 태스크들을 완료하기 위해 요구되는 시스템 프로세싱 및 송신 자원들의 소비의 문제점의 감소이다.
[0049] 본원의 특정 예들이 봇과 하나 이상의 사용자들 간의 상호작용을 설명하지만, 다양한 타입들의 상호작용들, 이를테면 봇과 사용자(125) 간의 일대일 상호작용, 봇과 (예컨대, 그룹 메시징 대화 내의) 2 이상의 사용자들 간의 일대다 상호작용들, 다수의 봇들과 사용자 간의 다대일 상호작용들, 및 다수의 봇들과 다수의 사용자들 간의 다대다 상호작용들이 가능하다. 추가로, 일부 구현들에서, 봇은 또한, 메시징 애플리케이션(103)을 통해, 봇들 간의 직접 통신을 통해, 또는 조합을 통해 다른 봇(예컨대, 봇들(107a/107b, 109a/109b, 111, 113 등))과 상호작용하도록 구성될 수 있다. 예컨대, 레스토랑 예약 봇은 테이블을 예약하기 위해 특정 레스토랑에 대한 봇과 상호작용할 수 있다.
[0050] 특정 실시예들에서, 봇은 사용자와 대화식으로 상호작용하기 위해 자연 언어를 사용하도록 대화식 인터페이스를 사용할 수 있다. 특정 실시예들에서, 봇은, 예컨대, 레스토랑 주소에 대한 요청에 대한 응답으로 템블릿, 이를테면 "the location of restaurant R is L"를 사용하여 사용자와 상호작용할 문장들을 생성하기 위해 템블릿-기반 포맷을 사용할 수 있다. 특정 경우들에서, 예컨대, 봇이 사용자와 상호작용하기 위해 자연 언어를 사용할지 여부, 봇이 템블릿-기반 상호작용들을 사용할지 여부 등에 관계없이 사용자가 봇 상호작용 포맷을 선택하는 것이 가능할 수 있다.
[0051] 봇이 자연 언어를 사용하여 대화식으로 상호작용하는 경우들에, 봇의 상호작용들의 콘텐츠 및/또는 스타일은: 자연 언어 프로세싱을 사용하여 결정된 대화의 콘텐츠, 대화들에서 사용자들의 아이덴티티들, 및 하나 이상의 대화식 콘텍스트들(예컨대, 사용자의 상호작용들에 대한 이력 정보, 소셜 그래프에 기반한 대화의 사용자들 간의 접속들), 외부 조건들(예컨대, 날씨, 교통), 사용자의 스케줄들, 사용자들과 연관된 관련된 콘텍스트 등 중 하나 이상에 기반하여 동적으로 변할 수 있다. 이러한 경우들에, 봇의 상호작용들의 콘텐츠 및 스타일은 대화에 참여한 사용자들이 동의를 제공한 그러한 팩터들에만 기반하여 변하게 된다.
[0052] 일 예로서, 만약 대화의 사용자들이 (예컨대, 속어들 또는 이모지(emoji)들이 없거나 최소한인) 형식 언어를 사용하는 것으로 결정된다면, 봇은 또한 형식 언어를 사용하여 그 대화 내에서 상호작용할 수 있고, 그 반대도 가능하다. 다른 예로서, 만약 대화의 사용자가 (현재 및/또는 과거 대화들에 기반하여) 이모지들의 과중 사용자로 결정된다면, 봇은 또한 하나 이상의 이모지들을 사용하여 그 사용자와 상호작용할 수 있다. 다른 예로서, 대화의 두 사용자들이 (예컨대, 사용자들 사이에, 예컨대 이들이 친구들임을 나타내는 2 이상의 중간 노드들을 갖는) 소셜 그래프에 원격으로 접속되어 있다고 결정된다면, 봇은 그 대화에서 보다 형식적인 언어를 사용할 수 있다. 대화에 참여한 사용자들이 봇이 팩터들, 이를테면 사용자의 소셜 그래프, 스케줄들, 위치, 또는 사용자들과 연관된 다른 콘텍스트를 활용하는 것에 대한 동의를 제공하지 않은 경우들에, 봇의 상호작용의 콘텐츠 및 스타일은 그러한 팩터들의 활용을 요구하지 않는 디폴트 스타일, 예컨대 중립 스타일(neutral style)일 수 있다.
[0053] 추가로, 일부 구현들에서, 하나 이상의 봇들은 사용자와의 앞뒤 대화에 참여하는 기능성을 포함할 수 있다. 예컨대, 만약 사용자가 예컨대, "@moviebot Can you recommend a movie?"를 입력함으로써 영화들에 대한 정보를 요청한다면, "moviebot"인 봇이 "Are you in the mood for a comedy?"라고 응답할 수 있다. 그런 다음, 사용자는 예컨대, "nope"이라고 응답할 수 있고, 이에 대해 봇이 "OK. The sci-fi movie entitled Space and Stars has got great reviews. Should I book you a ticket?"으로 응답할 수 있다. 그런 다음, 사용자는 "Yeah, I can go after 6 pm. Please check if Steve can join"을 표시할 수 있다. 봇이 사용자들의 연락처들에 대한 정보에 액세스하는 것에 대한 사용자의 동의에 따라 그리고 봇으로부터 메시지들을 수신하는 것에 대한 친구인 Steve의 동의에 따라, 봇은 사용자의 친구인 Steve에게 메시지를 전송하고 적절한 시간에 영화 티켓들을 예약하기 위한 추가 액션들을 수행할 수 있다.
[0054] 특정 실시예들에서, 대화에 참여한 사용자는 예컨대, 봇 네임 또는 봇 핸들(bot handle)(예컨대, taxi, @taxibot, @movies 등)을 타이핑함으로써, 음성 커맨드(예컨대, "invoke bankbot" 등)를 사용함으로써, 사용자 인터페이스 엘리먼트(예컨대, 봇 네임 또는 핸들로 라벨링된 버튼 또는 다른 엘리먼트)의 활성화에 의한 식으로, 특정 봇 또는 특정 태스크들을 수행하는 봇을 불러오는 것이 가능해질 수 있다. 일단 봇이 불러와지면, 사용자(125)는 다른 사용자들(125)에게 메시지들을 전송하는 것과 유사한 방식으로 메시징 애플리케이션(103a/103b)을 통해 봇에 메시지를 전송할 수 있다. 예컨대, 택시를 주문하기 위해, 사용자는 "@taxibot get me a cab"을 타이핑할 수 있고; 호텔 예약들을 수행하기 위해, 사용자는 "@hotelbot book a table for 4 at a Chinese restaurant near me"를 타이핑할 수 있다.
[0055] 특정 실시예들에서, 봇은 특별히 불러와지지 않고 메시징 대화 내에서 정보 또는 액션들을 자동으로 제안할 수 있다. 즉, 사용자들은 봇을 특별히 불러올 필요가 없을 수 있다. 이들 실시예들에서, 봇은 대화의 분석 및 이해에 지속적으로 또는 개별 시점들에서 의존할 수 있다. 특정 사용자 요구들을 이해하고 언제 봇에 의해 보조가 제안되어야 하는지를 식별하는 데 대화의 분석이 사용될 수 있다. 일 예로서, 봇은 만약 (예컨대, 사용자가 다른 사용자에게 질문을 하는 것에 기반하여, 다수의 사용자들이 그들이 어떤 정보를 갖지 않음을 표시하는 것에 기반하여) 사용자가 정보를 필요로 한다고 결정된다면, 어떤 정보에 대해 검색하고 대답을 제안할 수 있다. 다른 예로서, 만약 다수의 사용자들이 중국 음식을 먹는 것에 관심을 표명했다고 결정된다면, 봇은 선택적인 정보, 이를테면 사용자들 근처의 중국 레스토랑들의 웹사이트들에 대한 링크들, 위치들 및 평점들을 포함하여, 이 중국 레스토랑들의 세트를 사용자들에게 자동으로 제안할 수 있다.
[0056] 특정 실시예들에서, 봇을 자동으로 불러오거나 사용자가 봇을 명시적으로 불러오기를 기다리기 보다는, 하나 이상의 봇들을 불러오기 위해 메시징 대화에서 하나 이상의 사용자들에게 자동적인 제안이 이루어질 수 있다. 이들 실시예들에서, 대화는 지속적으로 또는 개별 시점들에서 분석될 수 있으며, 특정 사용자 요구들을 이해하고 대화 내에서 언제 봇이 제안되어야 하는지를 식별하는 데 대화의 분석이 사용될 수 있다.
[0057] 봇이 특별히 불러와지지 않고 메시징 대화 내에서 정보 또는 액션들을 자동으로 제안할 수 있는 실시예들에서, 이러한 기능성은 예컨대, 만약 메시징 대화에 참여한 하나 이상의 사용자들이 봇이 사용자들의 대화의 분석을 수행하는 것에 대한 동의를 제공하지 않는다면, 디세이블링된다. 추가로, 이러한 기능성은 또한 사용자 입력에 기반하여 일시적으로 디세이블링될 수 있다. 예컨대, 대화가 개인적이거나 민감하다고 사용자들이 표시할 때, 사용자들이 봇이 활성화되도록 입력을 제공할 때까지 대화식 콘텍스트의 분석은 일시 중단된다. 추가로, 분석 기능성이 디세이블링되는 표시들이 대화의 참여자들에게, 예컨대 사용자 인터페이스 엘리먼트에 제공될 수 있다.
[0058] 다양한 구현들에서, 봇은 다양한 구성들로 구현될 수 있다. 예컨대, 도 1에 도시된 바와 같이, 봇(105)은 클라이언트 디바이스(115a) 상에서 구현된다. 이 예에서, 봇은 클라이언트 디바이스(115a)에 로컬인 소프트웨어 애플리케이션의 모듈일 수 있다. 예컨대, 만약 사용자가 클라이언트 디바이스(115a) 상에 택시 호출 애플리케이션을 설치했다면, 봇 기능성이 택시 호출 애플리케이션에 모듈로서 통합될 수 있다. 이 예에서, 사용자는 예컨대, "@taxibot get me a cab" 메시지를 전송함으로써 택시 봇을 불러올 수 있다. 메시징 애플리케이션(103b)은 자동으로 택시 호출 애플리케이션의 봇 모듈이 론칭되게 할 수 있다. 이런 식으로, 사용자가 메시징 애플리케이션(103)을 통해 봇과의 대화에 참여할 수 있도록 봇이 클라이언트 디바이스 상에서 로컬로 구현될 수 있다.
[0059] 도 1에 도시된 다른 예에서, 봇(107a)은 클라이언트 디바이스(115a) 상에서 구현되는 것으로 도시되고, 봇(107b)은 메시징 서버(101) 상에서 구현되는 것으로 도시된다. 이 예에서, 봇은, 예컨대, 클라이언트-서버 컴퓨터 프로그램으로서 구현될 수 있고, 봇 기능성의 부분들은 봇(107a)(서버 모듈) 및 봇(107b)(클라이언트 모듈) 각각에 의해 제공된다. 예컨대, 만약 봇이 핸들 @calendar를 갖는 스케줄링 봇이라면, 사용자(115a)는 "@calendar remind me to pick up laundry in the evening"을 타이핑함으로써 리마인더를 스케줄링할 수 있고, 이는 봇(107b)(클라이언트 모듈)에 의해 핸들링될 수 있다. 이 예를 계속하면, 만약 사용자(115a)가 봇에게 "check if Jim is free to meet at 4"라고 말한다면, 봇(107a)(서버 모듈)은 메시지들을 교환하기 위해 사용자 Jim(또는 Jim의 스케줄링 봇)과 연락할 수 있고, 사용자(115a)에게 응답을 제공할 수 있다.
[0060] 다른 예에서, 봇(109a)(서버 모듈)은 서버(135) 상에서 구현되고, 봇(109b)(클라이언트 모듈)은 클라이언트 디바이스들(115) 상에서 구현된다. 이 예에서, 봇 기능성은 메시징 서버(101)와 별개인 서버(135) 및 클라이언트 디바이스들(115) 상에서 구현되는 모듈들에 의해 제공된다. 일부 구현들에서, 봇은, 예컨대, 모듈들이 다수의 클라이언트 디바이스들 및 서버들(예컨대, 클라이언트 디바이스들(115), 서버(135), 메시징 서버(101) 등)에 걸쳐 분산되는 분산형 애플리케이션으로서 구현될 수 있다. 일부 구현들에서, 봇은 서버 애플리케이션, 예컨대, 메시징 서버(101) 상에서 구현되는 봇(111) 및 서버(135) 상에서 구현되는 봇(113)으로서 구현될 수 있다.
[0061] 상이한 구현들, 이를테면 클라이언트-전용, 서버-전용, 클라이언트-서버, 분산형 등은 상이한 장점들을 제공할 수 있다. 예컨대, 클라이언트-전용 구현들은 봇 기능성이 로컬로, 예컨대 네트워크 액세스를 이용하지 않으면서 제공되게 허가하며, 이는 특정 콘텍스트들에서, 예컨대, 사용자가 네트워크 커버리지 영역 외부에 있거나 또는 낮은 또는 제한된 네트워크 대역폭을 갖는 임의의 영역에 있을 때 유리할 수 있다. 하나 이상의 서버들, 이를테면 서버-전용, 클라이언트-서버, 또는 분산형 구성들을 포함하는 구현들은 클라이언트 디바이스 상에서 로컬로 제공하는 것이 가능하지 않을 수 있는 특정 기능성, 예컨대 금융 거래들, 티켓 예약들 등을 허가할 수 있다.
[0062] 봇들이 메시징 애플리케이션(103)과 별개인 것으로 도 1이 도시하고 있지만, 일부 구현들에서, 하나 이상의 봇들은 메시징 애플리케이션(103)의 일부로서 구현될 수 있다. 봇들이 메시징 애플리케이션(103)의 일부로서 구현되는 구현들에서, 봇들을 구현하기 전에 사용자 허가가 획득된다. 예컨대, 봇들이 메시징 애플리케이션(103a/103b)의 일부로서 구현되는 경우에, 메시징 애플리케이션(103a/103b)은 특정 활동들을 수행할 수 있는 봇들, 예컨대, 착신 및 발신 메시지들을 번역하는 번역 봇, 사용자의 캘린더 상의 이벤트들을 스케줄링하는 스케줄링 봇 등을 제공할 수 있다. 이 예에서, 사용자의 특정 허가 시에만 번역 봇이 활성화된다. 만약 사용자가 동의를 제공하지 않는다면, 메시징 애플리케이션(103a/103b) 내의 봇들은 구현되지 않는다(예컨대, 디세에이블링됨, 제거됨 등). 만약 사용자가 동의를 제공한다면, 봇 또는 메시징 애플리케이션(103a/103b)은 특정 기능성, 예컨대 번역, 스케줄링 등을 제공하기 위해, 메시징 애플리케이션(103a/103b)을 통해 사용자들 간에 교환되는 메시지들의 제한된 사용을 수행할 수 있다.
[0063] 일부 구현들에서, 사용자들(125) 및 메시징 애플리케이션(103a/103b)의 제공자와 별개인 제3자들이 특정 목적들을 위해 메시징 애플리케이션(103a/103b)을 통해 사용자들(125)과 통신할 수 있는 봇들을 제공할 수 있다. 예컨대, 택시 서비스 제공자는 택시 봇을 제공할 수 있고, 티케팅 서비스는 이벤트 티켓들을 예약할 수 있는 봇을 제공할 수 있고, 뱅크 봇은 금융 거래들을 수행하기 위한 성능을 제공할 수 있는 등이다.
[0064] 메시징 애플리케이션(103)을 통해 봇들을 구현할 시에, 봇들은 특정 사용자 인가 시에만 사용자들과 통신하도록 허가된다. 예컨대, 만약 사용자가 봇을 불러온다면, 봇은, 예컨대 봇을 불러오는 사용자의 액션에 기반하여, 회신할 수 있다. 다른 예에서, 사용자는 사용자와 연락할 수 있는 특정 봇들 또는 봇들의 타입들을 표시할 수 있다. 예컨대, 사용자는 여행 봇들이 그녀와 통신하게 허가할 수 있지만, 쇼핑 봇들에 대해서는 인가를 제공하지 않을 수 있다. 이 예에서, 메시징 애플리케이션(103a/103b)은 여행 봇들이 사용자와 메시지들을 교환하게 허가할 수 있지만, 쇼핑 봇들로부터의 메시지들은 필터링하거나 또는 거부할 수 있다.
[0065] 추가로, 일부 기능성(예컨대, 택시를 주문하는 것, 비행 예약을 수행하는 것, 친구와 연락하는 것 등)을 제공하기 위해, 봇들은 사용자에게 봇이 사용자 데이터, 이를테면 위치, 결제 정보, 연락처 리스트 등에 액세스하게 허가하도록 요청할 수 있다. 그러한 인스턴스들에서, 봇에게 액세스를 허가하거나 또는 거부하기 위한 옵션들이 사용자에게 제시된다. 만약 사용자가 액세스를 거부한다면, 봇은 메시지, 예컨대 "Sorry, I am not able to book a taxi for you"를 통해 응답할 수 있다. 추가로, 사용자는 정보에 대한 액세스를 제한적으로 제공할 수 있는데, 예컨대, 사용자는 택시 봇이 봇의 특정 불러오기 시에만 현재 위치에 액세스하게 허가할 수 있고 그렇지 않으면 이를 허가 하지 않을 수 있다. 상이한 구현들에서, 사용자는 봇이 액세스할 수 있는 정보의 타입, 양, 및 단위(granularity)를 제어할 수 있고, 그리고 언제든지 그러한 허가들을 변화시킬 수 있는 능력이 (예컨대, 사용자 인터페이스를 통해) 사용자에게 제공된다. 일부 구현들에서, 사용자 데이터는, 예컨대, 개인별로 식별가능한 정보를 제거하는 것, 특정 데이터 엘리먼트들로 정보를 제한하는 것 등을 위해, 봇이 그러한 데이터에 액세스할 수 있기 전에 프로세싱될 수 있다. 추가로, 사용자들은 메시징 애플리케이션(103a/103b) 및 하나 이상의 봇들에 의한 사용자 데이터의 사용을 제어할 수 있다. 예컨대, 사용자는 금융 거래들을 수행하는 성능을 제공하는 봇이 트랜잭션이 완료되기 전에 사용자 인가를 요구하도록 특정할 수 있는데, 예컨대, 봇은 메시지 "Tickets for the movie Space and Starts are $12 each. Shall I go ahead and book?" 또는 "The best price for this shirt is $125, including shipping. Shall I charge your credit card ending 1234?" 등을 전송할 수 있다.
[0066] 일부 구현들에서, 메시징 애플리케이션(103a/103b)은 또한, 사용자 인터페이스를 통해 사용자들(125)에게 하나 이상의 제안들, 예컨대 제안된 응답들을, 예컨대 버튼 또는 다른 사용자 인터페이스 엘리먼트로서 제공할 수 있다. 제안된 응답들은, 예컨대, 사용자가 응답을 타이핑할 필요성을 감소시키거나 또는 제거함으로써, 더 신속한 상호작용을 가능하게 할 수 있다. 제안된 응답들은, 예컨대, 클라이언트 디바이스가 텍스트 입력 기능성이 없을 때(예컨대, 키보드 또는 마이크로폰을 포함하지 않는 스마트워치), 사용자들이 신속히 그리고 쉽게 메시지에 응답하는 것을 가능하게 할 수 있다. 제안된 응답들은 또한, 예컨대, (예컨대, 터치스크린 상의 대응하는 사용자 인터페이스 엘리먼트를 선택함으로써) 사용자가 제안된 응답을 선택할 때, 사용자들이 메시지들에 신속히 응답하는 것을 가능하게 할 수 있다. 제안된 응답들은 응답들을 생성하기 위해 트레이닝된 예측 모델들, 예컨대 기계 학습 모델들을 사용하여 생성될 수 있다.
[0067] 예컨대, 메시징 애플리케이션(103a/103b)은, 메시징 애플리케이션(103)과의 사용자 상호작용을 향상시킬 수 있는 기계 학습, 예컨대, 심층 학습 모델을 구현할 수 있다. 기계-학습 모델들은 합성 데이터, 예컨대, 사용자 정보를 사용하지 않고서 컴퓨터에 의해 자동으로 생성된 데이터를 사용하여 트레이닝될 수 있다. 일부 구현들에서, 기계-학습 모델들은, 예컨대, 샘플 데이터에 기반하여 트레이닝될 수 있고, 이에 대해 트레이닝을 위해 사용자 데이터를 활용하기 위한 허가들은 사용자들로부터 명확히 획득되었다. 예컨대, 샘플 데이터는 수신된 메시지들 및 수신된 메시지들에 대해 전송되었던 응답들을 포함할 수 있다. 샘플 데이터에 기반하여, 기계-학습 모델은 수신된 메시지들에 대한 응답들을 예측할 수 있고, 그런 다음 응답들이 제안된 응답들로서 제공될 수 있다. 사용자 상호작용은, 예컨대, 수신된 메시지 및 사용자의 콘텍스트에 기반하여 커스터마이징된 응답들의 선정을 제공하여, 수신된 메시지에 대한 응답을 구성하기 위한 사용자에 대한 부담을 감소시킴으로써 향상된다. 예컨대, 사용자들이 동의를 제공할 때, 제안된 응답들은 사용자의 이전의 활동, 예컨대, 대화에서 조기 메시지들, 상이한 대화들에서 메시지들 등에 기반하여 커스터마이징될 수 있다. 예컨대, 이러한 활동은 사용자의 상호작용 스타일에 기반하여 사용자에 대한 적합한 제안된 응답, 예컨대, 재미있는 응답, 공식적인 응답 등을 결정하는 데 사용될 수 있다. 다른 예에서, 사용자가 하나 이상의 선호되는 언어들 및/또는 로케일(locale)들을 특정할 때, 메시징 애플리케이션(103a/103b)은 제안된 응답들을 사용자의 선호되는 언어로 생성할 수 있다. 다양한 예들에서, 제안된 응답들은 텍스트 응답들, 이미지들, 멀티미디어 등일 수 있다.
[0068] 일부 구현들에서, 기계 학습은 메시징 서버(101) 상에서, 클라이언트 디바이스들(115) 상에서 또는 메시징 서버(101) 및 클라이언트 디바이스들(115) 둘 모두 상에서 구현될 수 있다. 일부 구현들에서, 간단한 기계 학습 모델은 (예컨대, 메모리 내의 모델의 동작, 저장 및 클라이언트 디바이스들의 프로세싱 제약들을 허가하기 위해) 클라이언트 디바이스(115) 상에서 구현될 수 있고, 복잡한 기계 학습 모델은 메시징 서버(101) 상에서 구현될 수 있다. 만약 사용자가 기계 학습 기법들의 사용에 대한 동의를 제공하지 않는다면, 이러한 기법들은 구현되지 않는다. 일부 구현들에서, 사용자는, 기계 학습이 클라이언트 디바이스(115) 상에서만 구현되는 것에 대한 동의를 선택적으로 제공할 수 있다. 이러한 구현들에서, 기계 학습은 클라이언트 디바이스(115) 상에서 구현될 수 있어서, 기계 학습 모델 또는 기계 학습 모델에 의해 사용되는 사용자 정보에 대한 업데이트들이 로컬로 저장되거나 사용되고, 다른 디바이스들, 이를테면, 메시징 서버(101), 서버(135), 또는 다른 클라이언트 디바이스들(115)에 공유되지 않는다.
[0069] 예컨대, 기계-학습 기법들에 기반하여 제안들을 수신하는 것에 대한 동의를 제공하는 사용자들에 대해, 제안들은 메시징 애플리케이션(103)에 의해 제공될 수 있다. 예컨대, 제안들은 콘텐츠(예컨대, 영화들, 책들 등), 스케줄들(예컨대, 사용자의 캘린더 상에서 이용가능한 시간), 이벤트들/장소들(예컨대, 레스토랑들, 콘서트들 등) 등의 제안들을 포함할 수 있다. 일부 구현들에서, 만약 대화에 참여한 사용자들이 대화 데이터의 사용에 대한 동의를 제공하면, 제안들은 대화 콘텐츠에 기반한 착신 메시지들에 대한 제안된 응답들을 포함할 수 있다. 예컨대, 만약 대화 콘텐츠에 기반하여 제안들에 동의한 2명의 사용자들 중 제1 사용자가 "do you want to grab a bite? How about Italian?" 라는 메시지를 전송하면, 예컨대, "@assistant lunch, italian, table for 2"라는 응답이 제2 사용자에게 제안될 수 있다. 이 예에서, 제안된 응답은 봇(심볼 @ 및 봇 핸들 보조자에 의해 식별됨)을 포함한다. 만약 제2 사용자가 이러한 응답을 선택하면, 보조자 봇은 대화에 부가되고, 메시지는 봇으로 전송된다. 그런 다음, 봇으로부터의 응답이 대화에 디스플레이될 수 있고, 2명의 사용자들 중 어느 하나는 추가의 메시지들을 봇으로 전송할 수 있다. 이 예에서, 보조자 봇에는 대화의 콘텐츠에 대한 액세스가 제공되지 않고, 제안된 응답들은 메시징 애플리케이션(103)에 의해 생성된다.
[0070] 특정 구현들에서, 제안된 응답의 콘텐츠는, 봇이 대화에 이미 존재하는지 또는 대화에 통합될 수 있는지에 기반하여 커스터마이징될 수 있다. 예컨대, 만약 여행 봇이 메시징 앱에 통합될 수 있다는 것이 결정되면, 프랑스 행 비행 티켓들의 비용에 관한 질의에 대한 제안된 응답은 "Let's ask travel bot!"일 수 있다.
[0071] 상이한 구현들에서, 제안들, 예컨대, 제안된 응답들은 텍스트(예컨대, "Terrific!"), 이모지(예컨대, 웃는 얼굴, 졸린 얼굴 등), 이미지들(예컨대, 사용자의 사진 라이브러리로부터의 사진들), 템플릿의 필드에 삽입된 사용자 데이터를 갖는 템플릿들에 기반하여 생성된 텍스트(예컨대, "her number is <Phone Number>" 여기서 만약 사용자가 사용자 데이터에 대한 액세스를 제공하면, "Phone Number" 필드는 사용자 데이터에 기반하여 채워짐), 링크들(예컨대, URL들(Uniform Resource Locators)) 등 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 제안된 응답들은, 예컨대, 컬러들, 폰트들, 레이아웃 등을 사용하여 포맷되고 그리고/또는 스타일링될 수 있다. 예컨대, 영화 추천을 포함하는 제안된 응답은 영화에 관한 설명 텍스트, 영화로부터의 이미지, 및 티켓들을 구매하기 위한 링크를 포함할 수 있다. 상이한 구현들에서, 제안된 응답들은 상이한 타입들의 사용자 인터페이스 엘리먼트들, 예컨대, 텍스트 박스들, 정보 카드들 등으로서 제시될 수 있다.
[0072] 상이한 구현들에서, 사용자에게는, 자신들이 제안들을 수신하는지 여부, 자신들이 어떠한 타입들의 제안들을 수신하는지, 제안들의 빈도 등에 걸친 제어가 제공된다. 예컨대, 사용자들은 제안들을 전적으로 수신하기를 거절할 수 있거나, 특정 타입들의 제안들을 선정하거나, 하루 중 특정 시간들 동안에만 제안들을 수신하기로 선정할 수 있다. 다른 예에서, 사용자들은 개인화된 제안들을 수신하기로 선정할 수 있다. 이 예에서, 기계 학습은 기계 학습 기법들의 사용 및 제안들의 데이터의 사용에 관한 사용자의 선호도들에 기반하여 제안들을 제공하는 데 사용될 수 있다.
[0073] 도 2는 일부 구현들에 따른 예시적인 봇 불러오기 이벤트들의 다이어그램이다. 특히, 사용자 디바이스(202)는 봇(204)과 통신한다. 봇(204)은 사용자 디바이스(202) 상에서 하나 이상의 이벤트들을 통해 불러와질 수 있다. 이벤트들은 특수 문자 자동완성(autocomplete) 또는 수동 타이핑(206), 메시지에서 봇 콜아웃 탭핑(208), 봇 아바타 탭핑(210), 및 자동 회신 제안 선택(212)을 포함할 수 있다.
[0074] 특수 문자 자동완성 또는 커맨드는, 사용자로부터의, 특수 문자(예컨대, "@") 다음의 봇 네임 또는 핸들의 입력을 포함할 수 있다. 이 예시적인 이벤트에서, 봇은 봇 핸들, 예컨대, "@" 심볼 다음의 봇의 네임(예컨대, 예약봇, 보조자 등)에 의해 식별될 수 있다. 특수 문자 자동완성 또는 커맨드에 대한 예시적인 사용자 인터페이스 엘리먼트는 도 4의 402에 도시되고 아래에서 설명된다. 일단 사용자가 컴포즈 박스(compose box) 또는 다른 텍스트 입력 영역에 특수 문자(예컨대, "@")를 입력하면, 시스템은 후속 문자들을 모니터링할 수 있고, 그리고 사용자에 의해 타이핑되거나 또는 이와 다른식으로, 입력되는 문자들과 매칭하는 부분을 갖는 핸들(예컨대, "@bot") 또는 네임(예컨대, "호텔 봇(Hotel Bot)")을 갖는 봇들을 자동으로 식별하고 제안하도록 시도할 수 있다. 사용자는 전체 봇 네임 또는 핸들 네임을 타이핑할 필요 없이 자동완성 제안을 선택할 수 있다.
[0075] 봇 콜아웃(예컨대,도 4의 404)의 탭핑(또는 이와 다른식으로, 터치, 타이핑 또는 음성 입력을 통한 선택)은 콜아웃과 연관된 봇을 불러올 수 있다. 만약 콜아웃이 이전에 제안된 응답들과 연관되었다면, 이들 응답들은 도 8 내지 도 12에서 도시되고 아래에서 설명되는 바와 같이 리콜될 수 있다. 봇 아바타(예컨대, 도 4의 406)의 탭핑(또는 이와 다른식으로 터치, 타이핑 또는 음성 입력을 통한 선택). 자동 회신 제안(예컨대,도 4의 408)의 탭핑(또는 이와 다른식으로 터치, 타이핑 또는 음성 입력을 통한 선택).
[0076] 도 3은, 일부 구현들에 따른 봇 불러오기의 예시적인 방법을 도시하는 흐름도이다. 프로세싱은 302에서 시작하며, 여기서 봇을 불러오기 위한 액션의 표시가 수신된다. 표시는 봇 아바타 탭핑, 봇 콜아웃 탭핑, 특수 문자 자동완성 선택, 특수 문자 봇 커맨드의 표시 및/또는 자동 회신 제안의 선택의 표시를 포함할 수 있다. 일부 구현들에서, 봇은 (도 2에 도시된 액션들 중 하나를 이용하여 또는 이를 이용하지 않고) 자동으로 불러와질 수 있고, 시스템은 예컨대, @ 또는 다른 특수 문자 이후 사용자가 타이핑하는 것, 사용자 액션 또는 사용의 콘텍스트에 기반하여 사용자가 수행할 필요가 있거나 수행하고자 하는 태스크가 무슨 타입인지, 사용자가 정보를 찾는지 여부(사용자가 어떤 정보를 찾는지), 사용자 음성 커맨드 등과 같은 다양한 정보에 기반하여 어느 봇을 불러올지를 자동으로 결정할 수 있다. 프로세싱은 304로 계속된다.
[0077] 304에서, 봇을 불러오기 위한 액션의 표시에 대한 응답의 타입이 결정된다. 예컨대, 만약 표시가 자동 회신 제안의 선택이라면, 액션은 봇 또는 대화의 다른 참여자들에게 자동 회신을 제공하는 것일 수 있다. 다른 예에서, 만약 표시가 특수 문자 커맨드인 경우, 액션은 커맨드에 응답하는 액션인 것으로 결정될 수 있다. 프로세싱은 306으로 계속된다.
[0078] 306에서, 봇은 304에서 결정된 응답 타입에 기반하여 봇을 불러오기 위한 액션에 대한 수신된 표시에 대해 응답한다. 예컨대, 봇은 제안된 자동 회신을 대화에 제공할 수 있고, 봇은 수신된 커맨드에 따라 동작할 수 있는 것 등을 할 수 있다.
[0079] 도 4는, 일부 구현들에 따른, 예시적인 봇 식별 및 불러오기 엘리먼트들을 도시하는 사용자 인터페이스(400)의 다이어그램이다. 특히, 사용자 인터페이스(400)는 메시지 컴포즈 박스와 연관된 예시적인 특수 문자 자동완성 섹션(402)을 포함한다. 사용자 인터페이스는 또한 봇에 이전에 전송된 메시지 또는 커맨드를 나타낼 수 있는 예시적인 봇 콜아웃(404)을 포함한다. 사용자 인터페이스(400)는 예시적인 봇 아바타(406) 및 예시적인 자동 회신 제안(408)을 포함한다. 사용자 인터페이스에는 하나보다 많은 봇 콜아웃, 아바타 또는 자동 회신 제안이 있을 수 있다.
[0080] 도 5는, 일부 구현들에 따른, 봇 상호작용 동안 사용자 프라이버시를 관리하기 위한 예시적인 방법의 흐름도이다. 프로세싱은 502에서 시작되며, 여기서 사용자로부터의 요청이 봇에서 수신되고 그리고/또는 제안이 생성되며, 여기서 요청 또는 제안은 사용자 데이터가 공유될 것을 요구할 수 있다. 요청은 봇이 수행할 요청된 태스크(예컨대, "share my flight data", "share my puppy photos" 등)를 포함할 수 있다. 일부 구현들에서, 요청은 봇에 대한 커맨드일 수 있다. 예컨대, 예약 봇에 대한 커맨드를 포함하는 요청은 "@reservationbot find a hotel nearby"일 수 있고, 보조자 봇에 대한 커맨드를 포함하는 요청은 "@assistant send my flight details to Jim" 등일 수 있다. 이 예에서, 봇은 봇 핸들 예컨대, "@" 심볼 다음의 봇의 네임(예컨대, 예약봇, 보조자 등)에 의해 식별된다. 태스크를 수행하거나 요청에 대한 응답을 제공하기 위해, 봇은 사용자 데이터에 대한 액세스를 요구할 수 있다. 사용자 및 봇은 일대일 통신 어레인지먼트에 있을 수 있다. 예컨대, 사용자는 자동차 서비스 픽업을 요청할 수 있고, 자동차 서비스 봇은 사용자를 픽업하는데 어느 자동차들이 이용 가능할 수 있는지를 결정하기 위해 사용자의 위치를 알 필요가 있을 수 있다. 다른 예에서, 사용자는 인근 호텔에서 호텔 예약을 수행하기를 바랄 수 있고 호텔 예약 봇은 사용자의 위치를 알 필요가 있을 수 있다. 또 다른 예에서, 봇은 사용자 정보(예컨대, 사진들, 캘린더 엔트리들, 비행 스케줄들 등)를 공유하는 것을 포함하는 제안된 응답들을 사용자에게 제공할 수 있으며, 제안 봇은 제안된 응답에 대해 도움이 될 수 있는 데이터에 액세스하고 실제 응답으로서 이러한 데이터를 제공하도록 사용자의 허가를 획득할 필요가 있을 수 있다. 요청은 사용자로부터의 요청일 수 있거나 또는 (예컨대, 제안된 응답 봇 등으로부터) 자동으로 생성된 요청일 수 있다. 프로세싱은 504로 계속된다.
[0081] 504에서, 허가 사용자 인터페이스 엘리먼트는 요청 또는 제안된 응답과 연관된 사용자에게 디스플레이된다. 허가 요청 사용자 인터페이스 엘리먼트의 예가 도 6에 도시되고 아래에서 설명된다. 허가 사용자 인터페이스 엘리먼트는 또한 오디오 프롬프트로서 또는 다른 사용자 인터페이스 및/또는 출력 방법들을 사용하여 제시될 수 있다. 프로세싱은 506으로 계속된다.
[0082] 506에서, 일대일 대화 또는 그룹 대화일 수 있는 진행중인 대화 내에서 사용자의 데이터를 공유하도록 사용자가 봇 허가를 그랜트했는지 여부에 관한 표시가 수신된다. 표시는 사용자가 허가를 그랜트했는지 여부를 표시하는 사용자 인터페이스 엘리먼트 선택(예컨대, 터칭, 탭핑, 온 스크린 사용자 인터페이스 버튼 선택, 타이핑을 통해, 오디오 입력, 제스처 입력 등)의 형태로 수신될 수 있다. 예컨대, 사용자는 도 6의 허가 사용자 인터페이스 엘리먼트에 도시된 "NOT NOW" 또는 "ALLOW" 옵션들 중 하나를 선택할 수 있다. 프로세싱은 508로 계속된다.
[0083] 508에서, 봇 허가 시스템은, 허가가 그랜트되었는지 여부를 결정한다. 허가가 그랜트되었는지 여부를 결정하는 것은 단계(506)에서 수신된 표시를 평가함으로써 완수될 수 있다. 만약 허가가 그랜트되었다면, 프로세싱은 510으로 계속된다. 만약 허가가 그랜트되지 않았다면, 프로세싱은 512로 계속된다.
[0084] 510에서, 사용자 데이터의 표시는 사용자에 의해 그랜트된 허가에 따라, 봇에 의해 대화에 공유된다.
[0085] 512에서, 사용자 데이터는, 허가가 사용자에 의해 그랜트되지 않음에 따라, 봇에 의해 공유되지 않는다.
[0086] 도 6은, 일부 구현들에 따른, 봇 메시징을 갖는 예시적인 사용자 인터페이스(600)의 다이어그램이다. 특히, 사용자 인터페이스(600)는 사용자로부터 봇으로의 메시지(602)를 포함한다. 메시지(602)는 사용자의 개인 정보, 예컨대, 애완견 사진들의 사용을 요구할 수 있는 요청("Share my dog photos")을 포함한다. 사용자로부터의 요청에 대한 응답으로, 봇은 요청을 완료하기 위해 사용자의 데이터(606)를 공유하기 위한 허가를 찾고 있는 사용자에게 허가 허용/비허용 인터페이스 엘리먼트(604)를 디스플레이할 수 있다. 허가 엘리먼트(604)는, 어떤 타입의 사용자 데이터 공유 허가가 필요한지에 대한 설명 또는 샘플(606), 및 봇 허가가 사용자의 데이터를 공유하는 것을 허용하기 위한 또는 허용하지 않기 위한 입력 엘리먼트들(각각, 608 및 610)을 포함할 수 있다.
[0087] 도 7은, 일부 구현들에 따른, 이전의 봇 제안들을 리콜하기 위한 예시적인 방법의 흐름도이다. 도 8-도 12는, 도 7의 방법을 예시하는 것을 돕는 예시적인 사용자 인터페이스 다이어그램들을 제공하며, 도 7과 관련하여 설명된다. 프로세싱은 702에서 시작되며, 여기서 대화중인 사용자로부터의 요청이 봇에서 수신된다. 요청은 본원에서 설명된 바와 같이 텍스트 커맨드 또는 다른 방법으로부터 비롯될 수 있다. 예컨대, 사용자는 도 8의 802에서 도시된 바와 같이, 커맨드, 이를테면, "@bot Any tables for 4 at 7 tonight?"을 송출할 수 있다. 프로세싱은 704로 계속된다.
[0088] 704에서, 봇은 확인응답 인터페이스 엘리먼트(예컨대, 도 8의 804)가 디스플레이되게 할 수 있다. 확인응답 엘리먼트는, 봇이 요청 또는 커맨드에 대해 프로세싱하고 있거나 또는 작업하고 있다는 표시를 사용자에게 제공할 수 있다. 확인응답은 하나 이상의 제안된 자동 회신들(예컨대, 도 8의 806 및 808)을 포함할 수 있다. 프로세싱은 706으로 계속된다.
[0089] 706에서, 대화의 참여자에 의한 후속 메시지의 표시가 수신된다(예컨대, 도 9의 902). 프로세싱은 708로 계속된다.
[0090] 708에서, 제안된 응답들은 후속 메시지(예컨대, 902)의 결정에 기반하여 제거된다. 804와 902 간의 제안들의 부재(absence)에 의해, 제안된 응답들(806 및 808)의 제거가 도 9에 도시된다. 프로세싱은 710으로 계속된다.
[0091] 710에서, 사용자가, 이전에 디스플레이된 확인응답 메시지(예컨대, 804)와 연관된 하나 이상의 제안된 응답들을 갖는 이전에 디스플레이된 확인응답 메시지(예컨대, 804)를 탭핑하였다는(또는 이와 다른식으로 선택하였다는)(도 10의 1004) 표시가 수신된다. 후속 메시지(1002)가 도 10에 또한 도시된다. 이전에 디스플레이된 확인응답 메시지를 탭핑하거나 또는 선택함으로써, 사용자는 확인응답 메시지와 연관된 제안된 응답들을 리콜하는 것에 있어서의 관심을 표시할 수 있다. 프로세싱은 712로 계속된다.
[0092] 712에서, 대화는 선택적으로, 일시적으로 숨겨지거나 또는 페이딩 또는 다른 기법을 통해 눈에 덜 띄게 된다. 프로세싱은 714로 계속된다.
[0093] 714에서, 이전에 디스플레이된 확인응답 메시지(예컨대, 802) 및 그것의 연관된 제안된 응답들(806 및 808)은 도 11에 도시된 바와 같이 디스플레이된다. 대화를 숨기는 것에 대한 대안으로서, 시스템은 확인응답 메시지를 확대시키고 그리고 제안된 응답들을 디스플레이할 수 있다. 프로세싱은 716으로 계속된다.
[0094] 716에서, 제안된 응답들 중 하나의 응답의 선택의 표시가 수신된다. 예컨대, 도 11에서 1102에 의해 도시된 바와 같이, "Cancel" 제안된 응답(808)의 선택의 표시가 수신될 수 있다. 대안적으로, 어떤 제안된 자동 응답도 선택되지 않았고 사용자가 대화 스크린으로 리턴하기를 원한다는 것을 표시하기 위한 "뒤로(back)" 표시가 수신될 수 있으며, 제안된 응답들은 디스플레이로부터 다시 제거될 수 있다. 프로세싱은 718로 계속된다.
[0095] 718에서, 디스플레이는 대화로 리턴되고, 봇은 제안된 응답에 따라 동작한다. 예컨대, 봇은 도 12의 1202에서 도시된 바와 같이 "Cancel it" 메시지가 디스플레이되게 할 수 있다.
[0096] 도 13은, 일부 구현들에 따른, 그룹 메시징 콘텍스트 내의 (예컨대, "그룹 채팅" 내의) 봇 허가들을 관리하기 위한 예시적인 방법의 흐름도이다. 프로세싱은 1302에서 시작되며, 여기서 사용자로부터의 요청이 봇에서 수신된다. 요청된 태스크들을 수행하고 그리고/또는 요청에 대한 응답을 제공하기 위해, 봇은 사용자 데이터에 대한 액세스를 요구할 수 있다. 사용자와 봇은 다수의 사용자들 및/또는 봇과의 그룹 통신 어레인지먼트 내에 있을 수 있다. 예컨대, 다수의 사용자들과의 통신 세션에서, 사용자는 예컨대, 다수의 사용자들에 대해 자동차 서비스 픽업을 요청할 수 있다. 자동차 서비스 봇은 사용자들을 픽업하기 위해 이용가능할 수 자동차들을 결정하기 위해, 픽업에 포함될 각각의 사용자의 위치를 알 필요가 있을 수 있다. 다른 예에서, 사용자는 대화에 참여하는 사용자들의 그룹에 대해 인근 호텔에서 호텔 예약을 하기를 원할 수 있다. 이 예에서, 호텔 예약 봇은 사용자들의 그룹에 관한 정보, 예컨대, 이름들, 지불 정보 등을 알 필요가 있을 수 있다. 요청은 사용자로부터의 요청일 수 있거나 또는 (예컨대, 제안된 응답 봇 등으로부터) 자동으로 생성된 요청일 수 있다. 프로세싱은 1304로 계속된다.
[0097] 1304에서, 진행 표시가 봇에 의해 선택적으로 디스플레이되며, 이 진행 표시는 요청을 수행하는 개별 사용자 또는 그룹에 대한 그룹 대화에서 볼 수 있다. 예컨대, 자동차 서비스 봇이 그룹 대화에서 메시지, 이를테면 "I'm working on it"을 디스플레이할 수 있다. 프로세싱은 1306으로 계속된다.
[0098] 1306에서, 허가 사용자 인터페이스 엘리먼트는 요청과 연관된 사용자에게 디스플레이된다. 허가 요청 사용자 인터페이스 엘리먼트의 예가 도 6에서 도시되었고 위에서 설명되었다. 봇이 사용자 데이터를 공유하는 대신에 사용자 데이터에 액세스하는 것에 대한 허가를 요청하고 있을 때, 허가 요청 사용자 인터페이스 엘리먼트는, 만약 허가가 주어지면, 봇이 공유할 데이터의 예를 도시하는 대신에, 봇이 액세스할 필요가 있는 사용자 데이터를 설명할 수 있다. 허가 사용자 인터페이스 엘리먼트는 또한, 오디오 프롬프트로서 또는 다른 사용자 인터페이스 및/또는 출력 방법들을 사용하여 제시될 수 있다. 프로세싱은 1308로 계속된다.
[0099] 1308에서, 개개의 사용자 데이터에 액세스하거나 또는 이를 획득하도록 하나 이상의 사용자들이 봇 허가를 그랜트했는지 여부의 표시가 수신된다. 이 표시는, 사용자가 허가를 그랜트했는지 여부를 표시하는 사용자 인터페이스 엘리먼트 선택(예컨대, 터칭, 탭핑, 온 스크린 사용자 인터페이스 버튼 선택, 타이핑을 통해, 오디오 입력, 제스처 입력 등)의 형태로 수신될 수 있다. 예컨대, 사용자는 도 6의 허가 사용자 인터페이스 엘리먼트에 도시된 "NOT NOW" 또는 "ALLOW" 중 하나를 선택할 수 있다. 프로세싱은 1310으로 계속된다.
[00100] 1310에서, 봇 허가 시스템은 허가가 그랜트되었는지 여부를 결정한다. 허가가 그랜트되었는지 여부를 결정하는 것은, 단계(1308)에서 수신된 표시를 평가함으로써 완수될 수 있다. 만약 허가가 그랜트되었다면, 프로세싱은 1312로 계속된다. 만약 허가가 그랜트되지 않았다면, 프로세싱은 816으로 계속된다.
[00101] 1312에서, 봇은 사용자와의 일대일 채팅을 시작할 수 있다. 일대일 채팅 및 일대일 채팅에서 교환되는 메시지들은, 그룹 메시징 대화에서 사용자들의 그룹에 보이지 않는다. 개개의 봇들에 대응하는 상이한 시각적 테마들을 갖는 일대일 채팅 사용자 인터페이스들의 예들(예컨대, 상이한 개개의 회사들, 조직들 등에 대응하는 시각적 테마들을 가짐)이 도 14 및 도 15에서 도시된다. 프로세싱은 1314로 계속된다.
[00102] 1314에서, 봇은 일대일 사용자 메시징 대화 내에서 그랜트되었던 허가들과 연관된 태스크들을 완료하기 위해 추가적인 프로세싱을 수행할 수 있다. 예컨대, 자동차 서비스 봇은, 어느 자동차들이 사용자에게 자동차 서비스를 제공할 위치에 있는지를 계속해서 결정할 수 있다. 다른 예에서, 숙소 봇은, 비어 있으며 임대에 이용가능한 인근의 숙박시설들을 결정하기 위해, 공유된 사용자 위치를 사용할 수 있다.
[00103] 1316에서, 봇은 태스크를 거절하는 "정중한" 표시가 그룹 메시징 대화 내에서 사용자에 디스플레이되게 할 수 있다. 예컨대, 봇은 표시, 이를테면 "I wasn't able to get your location - I'm unable to schedule a car" 등을 제공할 수 있다. 표시는, 그래픽 사용자 인터페이스 상에 디스플레이되거나 또는 오디오 큐(audio cue) 또는 다른 출력 표시의 형태로 제공될 수 있다. 거절 메시지의 정중한 양상은, 사용자의 데이터를 사용하도록 사용자가 봇 허가를 그랜트하지 않았다는 것을 명시적으로 표시하지 않는 메시지를 포함할 수 있다. 상이한 구현들에서, 표시는, 예컨대, 요청 또는 다른 팩터들에 기반하는 상이한 텍스트 콘텐츠를 포함할 수 있다. 예컨대, 자동차를 주문하는 콘텍스트의 위치에 액세스하는 것을 사용자가 금지하는 것에 대해 응답하는 표시는, 텍스트 콘텐츠(textual content), 이를테면 "Sorry, unable to get location", "I'm unable to find cars near you", "Car service not available" 등을 포함할 수 있다. 일부 구현들에서, 상이한 표시들이 그룹 대화의 상이한 참여자들에 전송될 수 있다. 일부 구현들에서, 표시들은 상이한 포맷들, 예컨대, 텍스트 박스, 그래픽 표시, 애니메이션 표시(animated indication) 등을 사용할 수 있다. 일부 구현들에서, 표시들은 상이한 스타일들, 예컨대, 볼드체 텍스트, 이탤릭체 텍스트, 폰트들, 컬러들 등을 사용할 수 있다.
[00104] 도 14는, 일부 구현들에 따른, 정해진 봇 타입을 테마로 하는 예시적인 일대일 사용자 인터페이스(1400)를 도시하는 다이어그램이다. 도 14에 도시된 예는 예시적인 레스토랑 봇에 대한 것이다. 테마가 정해진 인터페이스(1400)는 특정 배경 컬러, 이미지, 텍스처 등을 포함할 수 있다(1402). 테마가 정해진 인터페이스(1400)는 또한, 봇에 대한 로고, 네임 및 핸들을 포함할 수 있다(1404). 테마가 정해진 인터페이스는 또한, 봇에 의해 제공되는 정보, 예컨대 레스토랑 정보를 포함할 수 있다(1406).
[00105] 도 15는, 일부 구현들에 따른, 정해진 봇 타입을 테마로 하는 예시적인 일대일 사용자 인터페이스(1500)를 도시하는 다이어그램이다. 도 15에 도시된 예는 예시적 호텔 봇에 대한 것이다. 테마가 정해진 인터페이스(1500)는 특정 배경 컬러, 이미지, 텍스처 등을 포함할 수 있다(1502). 테마가 정해진 인터페이스(1500)는 또한, 봇에 대한 로고, 네임 및 핸들을 포함할 수 있다(1504). 테마가 정해진 인터페이스는 또한, 봇에 의해 제공되는 정보, 예컨대 레스토랑 정보를 포함할 수 있다(1506-1508). 일대일 인터페이스(1500)는 또한, 제안 선택 버튼들(1510 및 1512) 그리고 봇에 대한 메시지들(예컨대, 커맨드들, 요청들 등)을 컴포징하기 위한 컴포즈 박스(1514)를 포함한다.
[00106] 도 16은 본원에서 설명된 하나 이상의 특징들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스(1600)의 블록 다이어그램이다. 일 예에서, 컴퓨팅 디바이스(1600)는 클라이언트(또는 사용자) 디바이스, 예컨대, 도 1에 도시된 클라이언트 디바이스들(115a-115n) 중 임의의 클라이언트 디바이스를 구현하기 위해 사용될 수 있다. 컴퓨팅 디바이스(1600)는 위에서 설명된 바와 같은 임의의 적절한 컴퓨터 시스템, 서버, 또는 다른 전자 또는 하드웨어 디바이스일 수 있다.
[00107] 본원에 설명된 하나 이상의 방법들은, 임의의 타입의 컴퓨팅 디바이스에서 실행될 수 있는 독립형 프로그램, 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 디바이스(예컨대, 셀 폰, 스마트 폰, 태블릿 컴퓨터, 웨어러블 디바이스(손목시계, 암밴드, 쥬얼리, 헤드웨어, 가상 현실 고글들 또는 안경, 증강 현실 고글들 또는 안경 등), 랩톱 컴퓨터 등)에서 실행되는 모바일 애플리케이션("앱")에서 실행될 수 있다. 일 예에서, 클라이언트/서버 아키텍처가 사용될 수 있고, 예컨대, (사용자 디바이스로서) 모바일 컴퓨팅 디바이스는 사용자 입력 데이터를 서버 디바이스에 전송하며, 출력하기 위해 (예컨대, 디스플레이를 위해) 서버로부터 최종 출력 데이터를 수신한다. 다른 예에서, 모든 컴퓨테이션들은 모바일 컴퓨팅 디바이스 상의 모바일 앱(및/또는 다른 앱들) 내에서 수행될 수 있다. 또 다른 예에서, 컴퓨테이션들은 모바일 컴퓨팅 디바이스와 하나 이상의 서버 디바이스들 간에 분리될 수 있다.
[00108] 일부 구현들에서, 컴퓨팅 디바이스(1600)는 프로세서(1602), 메모리(1604) 및 I/O(input/output) 인터페이스(1606)를 포함한다. 프로세서(1602)는, 프로그램 코드를 실행하고 컴퓨팅 디바이스(1600)의 기본 동작들을 제어하기 위한 하나 이상의 프로세서들 및/또는 프로세싱 회로들일 수 있다. "프로세서"는 데이터, 신호들 또는 다른 정보를 프로세싱하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 CPU(central processing unit), 다수의 프로세싱 유닛들, 기능성을 달성하기 위한 전용된 회로 또는 다른 시스템들을 가지는 시스템을 포함할 수 있다. 프로세싱은 특정 지리적 위치로 제한될 필요가 없거나, 또는 일시적 제한들을 가진다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드" 등에서 자신의 기능들을 수행할 수 있다. 프로세싱의 부분들은 상이한 (또는 동일한) 프로세싱 시스템들에 의해, 상이한 시간들에서 그리고 상이한 위치들에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다.
[00109] 메모리(1604)는, 통상적으로 프로세서(1602)에 의한 액세스를 위해 컴퓨팅 디바이스(1600)에 제공되며, 프로세서에 의한 실행을 위한 명령들을 저장하는 데 적절하고 프로세서(1602)와 별개로 로케이팅되며 그리고/또는 프로세서(1602)와 통합된 임의의 적절한 프로세서-판독가능 저장 매체, 이를테면, RAM(random access memory), ROM(read-only memory), EEPROM(Electrical Erasable Read-only Memory), 플래시 메모리 등일 수 있다. 메모리(1604)는, 운영 시스템(1608), 및 메시징 애플리케이션, 봇 상호작용 애플리케이션 등과 같은 하나 이상의 애플리케이션들(1610)을 포함하여, 프로세서(1602)에 의해 컴퓨팅 디바이스(1600) 상에서 동작하는 소프트웨어를 저장할 수 있다. 일부 구현들에서, 애플리케이션들(1610)은, 프로세서(1602)가, 본원에 설명된 기능들, 예컨대, 도 3, 도 5, 도 7 및/또는 도 13의 방법들 중 하나 이상의 방법을 수행하는 것을 가능하게 하는 명령들을 포함할 수 있다. 예컨대, 애플리케이션들(1610)은 본원에서 설명된 바와 같이, 봇 허가들, 사용자 프라이버시, 이전(old) 봇 제안들을 리콜하는 것 및/또는 봇들을 식별하는 것을 관리하기 위한 프로그램을 포함하는 메시징 및/또는 봇 애플리케이션들을 포함할 수 있다. 애플리케이션들 중 하나 이상의 애플리케이션은, 예컨대, 선택가능한 옵션들 또는 제어들을 디스플레이하기 위해 사용자 입력에 대한 응답으로 디스플레이된 사용자 인터페이스를 제공하고, 선택된 옵션들에 기반하여 데이터를 제공할 수 있다. 본원에서 개시된 하나 이상의 방법들은, 예컨대, 임의의 타입의 컴퓨팅 디바이스에서 실행될 수 있는 독립형 컴퓨터 프로그램으로서, 웹 페이지들을 가지는 웹 애플리케이션으로서, 모바일 컴퓨팅 디바이스에서 실행되는 모바일 애플리케이션("앱") 등으로서, 몇몇 환경들 및 플랫폼들에서 동작할 수 있다.
[00110] 메모리(1604) 내의 임의의 소프트웨어는 대안적으로, 임의의 다른 적절한 저장 위치 또는 컴퓨터-판독가능 매체 상에 저장될 수 있다. 게다가, 메모리(1604)(및/또는 다른 접속된 저장 디바이스(들))는 메시지들, 허가 세팅들, 사용자 선호도들 및 관련된 데이터 구조들, 파라미터들, 오디오 데이터, 사용자 선호도들 및/또는 본원에 설명된 특징들에서 사용되는 다른 명령들 및 데이터를 데이터베이스(1612)에 저장할 수 있다. 메모리(1604) 및 임의의 타입의 저장소(자기 디스크, 광학 디스크, 자기 테이프 또는 다른 유형적인 매체들)는 "저장소" 또는 "저장 디바이스들"로 고려될 수 있다.
[00111] I/O 인터페이스(1606)는 컴퓨팅 디바이스(1600)를 다른 시스템들 및 디바이스들과 인터페이싱하는 것을 가능하게 하기 위한 기능들을 제공할 수 있다. 인터페이싱된 디바이스들은 컴퓨팅 디바이스(1600)의 일부로서 포함될 수 있거나, 또는 컴퓨팅 디바이스(1600)와 별개이고 이와 통신할 수 있다. 예컨대, 네트워크 통신 디바이스들, 무선 통신 디바이스들, 저장 디바이스들 및 입력/출력 디바이스들은 I/O 인터페이스(1606)를 통해 통신할 수 있다. 일부 구현들에서, I/O 인터페이스(1606)는 디바이스들, 이를테면, 입력 디바이스들(키보드, 포인팅 디바이스, 터치 스크린, 마이크로폰, 카메라, 스캐너, 센서들 등) 및/또는 출력 디바이스들(디스플레이 디바이스, 스피커 디바이스들, 프린터, 모터 등)을 인터페이싱하도록 접속될 수 있다.
[00112] I/O 인터페이스(1606)에 접속될 수 있는 인터페이싱된 디바이스들의 일부 예들은, 본원에서 설명된 바와 같은 콘텐츠, 예컨대, 이미지들, 비디오 및/또는 출력 애플리케이션의 사용자 인터페이스를 디스플레이하는 데 사용될 수 있는 디스플레이 디바이스(1614)를 포함할 수 있다. 디스플레이 디바이스(1614)는 로컬 접속들(예컨대, 디스플레이 버스)을 통해 그리고/또는 네트워킹된 접속들을 통해 컴퓨팅 디바이스(1600)에 접속될 수 있으며, 임의의 적절한 디스플레이 디바이스일 수 있다. 디스플레이 디바이스(1614)는 임의의 적절한 디스플레이 디바이스, 이를테면, LCD(liquid crystal display), LED(light emitting diode) 또는 플라즈마 디스플레이 스크린, CRT(cathode ray tube), 텔레비전, 모니터, 터치 스크린, 3-D 디스플레이 스크린, 또는 다른 시각적 디스플레이 디바이스를 포함할 수 있다. 예컨대, 디스플레이 디바이스(1614)는 모바일 디바이스 상에 제공된 평면 디스플레이 스크린, 고글 디바이스에 제공된 다수의 디스플레이 스크린들, 또는 컴퓨터 디바이스용 모니터 스크린일 수 있다.
[00113] I/O 인터페이스(1606)는 다른 입력 및 출력 디바이스들과 인터페이싱할 수 있다. 일부 예들은 이미지 프레임들을 캡처할 수 있는 하나 이상의 카메라들을 포함한다. 배향 센서들, 예컨대, 자이로스코프들 및/또는 가속도계들은 디바이스 배향(일부 구현들에서는 뷰 배향에 대응할 수 있음) 및/또는 카메라 배향을 표시하는 센서 데이터를 제공할 수 있다. 일부 구현들은 사운드(예컨대, 음성 커맨드들 등)를 캡처하기 위한 마이크로폰, 사운드를 출력하기 위한 오디오 스피커 디바이스들, 또는 다른 입력 및 출력 디바이스들을 제공할 수 있다.
[00114] 예시를 용이하게 하기 위해, 도 16은 각각 프로세서(1602), 메모리(1604), I/O 인터페이스(1606), 운영 시스템(1608) 및 봇 상호작용 애플리케이션(1610)에 대한 하나의 블록을 도시한다. 이들 블록들은 하나 이상의 프로세서들 또는 프로세싱 회로들, 운영 시스템들, 메모리들, I/O 인터페이스들, 애플리케이션들 및/또는 소프트웨어 모듈들을 나타낼 수 있다. 다른 구현들에서, 컴퓨팅 디바이스(1600)는 도시된 모든 컴포넌트들을 가지지 않을 수 있고 그리고/또는 본원에서 도시된 것들 대신, 또는 이들 외에도 다른 타입들의 엘리먼트들을 포함하는 다른 엘리먼트들을 가질 수 있다. 사용자 디바이스들(예컨대, 115a-115n)이 본원의 일부 구현들에서 설명된 바와 같은 블록들 및 동작들을 수행하는 것으로 설명되었지만, 사용자 디바이스들(예컨대, 115a-115n) 또는 유사한 디바이스들, 또는 임의의 적절한 프로세서 또는 그런 시스템과 연관된 프로세서들의 임의의 적절한 컴포넌트 또는 컴포넌트들의 조합은 설명된 블록들 및 동작들을 수행할 수 있다.
[00115] 본원에 설명된 방법들은 컴퓨터 상에서 실행될 수 있는 컴퓨터 프로그램 명령들 또는 코드에 의해 구현될 수 있다. 예컨대, 코드는 하나 이상의 디지털 프로세서들(예컨대, 마이크로프로세서들 또는 다른 프로세싱 회로)에 의해 구현될 수 있고, 비-일시적 컴퓨터 판독가능 매체(예컨대, 저장 매체)를 포함하는 컴퓨터 프로그램 제품, 이를테면 반도체 또는 고체 상태 메모리, 자기 테이프, 제거가능 컴퓨터 디스켓, RAM(random access memory), ROM(read-only memory), 플래시 메모리, 자기 경화 디스크(rigid magnetic disk), 광학 디스크, 고체-상태 메모리 구동부 등을 포함하는 자기, 광학, 전자기, 또는 반도체 저장 매체 상에 저장될 수 있다. 프로그램 명령들은 또한 예컨대 서버(예컨대, 분산형 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달되는 SaaS(software as a service) 형태의 전자 신호에 포함되고, 그리고 그러한 전자 신호로서 제공될 수 있다. 대안적으로, 하나 이상의 방법들은 하드웨어(로직 게이트들 등)로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 하드웨어는 프로그램가능 프로세서들(예컨대, FPGA(Field-Programmable Gate Array), CPLD(Complex Programmable Logic Device) 등), 범용 프로세서들, 그래픽스 프로세서들, ASIC(Application Specific Integrated Circuit)들 등일 수 있다. 하나 이상의 방법들은 시스템상에서 실행하는 애플리케이션의 컴포넌트 또는 그의 일부로서, 또는 다른 애플리케이션들 및 운영 시스템과 함께 실행하는 애플리케이션 또는 소프트웨어로서 수행될 수 있다.
[00116] 비록 상세한 설명이 상세한 설명의 특정 구현들에 대해 설명되었지만, 이들 특정 구현들은 단지 예시적이고 제한이 아니다. 예들에 예시된 개념들은 다른 예들 및 구현들에 적용될 수 있다.
[00117] 본원에서 논의된 특정 구현들이 사용자들에 관한 개인 정보(예컨대, 사용자의 폰 번호 또는 부분 폰 번호, 사용자 데이터, 사용자 소셜 네트워크에 관한 정보, 사용자의 위치 및 시간, 사용자의 바이오메트릭 정보, 사용자의 활동들 및 인구학적 정보)를 수집하거나 사용할 수 있는 상황들에서, 사용자들에게는, 개인 정보가 수집되는지 여부, 개인 정보가 저장되는지 여부, 개인 정보가 사용되는지 여부, 및 사용자에 관한 정보가 어떻게 수집되고, 저장되고 사용되는지를 제어할 수 있는 하나 이상의 기회들이 제공된다. 즉, 본원에서 논의된 시스템들 및 방법들은 관련 사용자들로부터 그렇게 하도록 명시적 인가를 수신할 때 특히 사용자 개인 정보를 수집, 저장 및/또는 사용한다. 게다가, 특정 데이터는, 개인별로 식별가능한 정보가 제거되도록, 저장되거나 사용되기 전에 하나 이상의 방식들로 처리될 수 있다. 일 예로서, 사용자의 아이덴티티는, 개인별로 식별가능한 정보가 결정될 수 없도록 처리될 수 있다. 다른 예로서, 사용자의 지리적 위치는, 사용자의 특정 위치가 결정될 수 없도록 더 큰 지역으로 일반화될 수 있다.
[00118] 본 개시내용에 설명된 기능적 블록들, 동작들, 특징들, 방법들, 디바이스들, 및 시스템들이 당업자들에게 알려진 바와 같은 시스템들, 디바이스들, 및 기능적 블록들의 상이한 조합들에 통합되거나 이들로 분할될 수 있다는 것을 주목하라. 임의의 적절한 프로그래밍 언어 및 프로그래밍 기법들은 특정 구현들의 루틴들을 구현하는데 사용될 수 있다. 절차적 또는 객체 지향적과 같은 상이한 프로그래밍 기법들이 이용될 수 있다. 루틴들은 단일 프로세싱 디바이스 또는 다수의 프로세서들 상에서 실행될 수 있다. 비록 단계들, 동작들 또는 컴퓨테이션들이 특정 순서로 제시될 수 있지만, 순서는 상이한 특정 구현들로 변경될 수 있다. 일부 구현들에서, 이 명세서에서 순차적인 것으로 도시된 다수의 단계들 또는 동작들은 동시에 수행될 수 있다. 추가의 예시적인 구현들은 아래에 개시된다.
1. 컴퓨터로 실행되는 방법으로서,
제1 사용자와 연관된 제1 컴퓨팅 디바이스 상에, 상기 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하기 위한 메시징 애플리케이션을 제공하는 단계;
상기 메시징 애플리케이션에서, 사용자 요청을 검출하는 단계;
상기 사용자 요청에 응답하는 액션이 상기 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로(programmatically) 결정하는 단계;
허가 인터페이스가 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 단계 ―상기 허가 인터페이스는, 상기 제1 사용자가 상기 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―; 및
상기 제1 사용자로부터 상기 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 상기 제1 사용자와 연관된 데이터에 액세스하고, 상기 사용자 요청에 대한 응답으로 상기 메시징 애플리케이션 내에서 상기 제1 사용자와 연관된 데이터를 공유하는 단계를 포함하는, 컴퓨터로 실행되는 방법.
2. 구현 1에 있어서, 상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 보조 에이전트(assistive agent)인, 컴퓨터로 실행되는 방법.
3. 구현 1 또는 구현 2에 있어서, 상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 제2 컴퓨팅 디바이스와 연관된, 상기 제1 사용자와 상이한 제2 인간 사용자를 포함하며, 상기 허가 인터페이스는 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되고 상기 허가 인터페이스는 상기 제2 인간 사용자와 연관된 상기 제2 컴퓨팅 디바이스 상에 디스플레이되지 않는, 컴퓨터로 실행되는 방법.
4. 구현 1 내지 구현 3 중 어느 하나에 있어서, 상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 상기 제1 사용자와 상이한 제2 인간 사용자 및 보조 에이전트를 포함하며, 상기 사용자 요청은 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스로부터 수신되며, 상기 방법은, 상기 사용자 요청에 대한 응답으로, 상기 메시징 애플리케이션에서 별개의 대화를 개시하는 단계를 더 포함하며, 상기 별개의 대화는 상기 제1 사용자 및 상기 보조 에이전트를 포함하며 상기 제2 인간 사용자를 배제하는, 컴퓨터로 실행되는 방법.
5. 구현 1 내지 구현 4 중 어느 하나에 있어서, 상기 사용자 요청을 검출하는 단계는, 보조 에이전트에 의해, 상기 제1 사용자로부터 상기 보조 에이전트로 상기 메시징 애플리케이션에서 수신된 하나 이상의 메시지들을 분석하는 단계를 포함하는, 컴퓨터로 실행되는 방법.
6. 구현 5에 있어서, 상기 하나 이상의 메시지들은 텍스트 메시지, 멀티미디어 메시지 및 보조 에이전트에 대한 커맨드 중 하나 이상을 포함하는, 컴퓨터로 실행되는 방법.
7. 구현 1 내지 구현 6 중 어느 하나에 있어서, 상기 제1 사용자 및 상기 적어도 하나의 다른 사용자 중 적어도 하나로부터의 입력에 기반하여 제1 메시징 애플리케이션에 하나 이상의 제안들을 제공하는 단계를 더 포함하는, 컴퓨터로 실행되는 방법.
8. 구현 7에 있어서, 상기 하나 이상의 제안들이 상기 메시징 애플리케이션에 렌더링되게 하는 단계를 더 포함하는, 컴퓨터로 실행되는 방법.
9. 구현 8에 있어서, 상기 하나 이상의 제안들은, 상기 제1 사용자에 의해 선택될 때, 제안에 관한 세부사항들이 디스플레이되게 하는 제안 엘리먼트들로서 렌더링되는, 컴퓨터로 실행되는 방법.
10. 구현 1 내지 구현 9 중 어느 하나에 있어서, 상기 제1 사용자의 하나 이상의 액션들에 기반하여 상기 보조 에이전트를 자동으로 불러오는(invoke) 단계를 더 포함하는, 컴퓨터로 실행되는 방법.
11. 구현 1 내지 구현 10 중 어느 하나에 있어서,
상기 보조 에이전트는:
상기 보조 에이전트와 관련된 특수 문자 커맨드;
상기 보조 에이전트와 연관된 사용자 인터페이스 콜아웃 엘리먼트의 사용자 선택; 및
상기 보조 에이전트에 대응하는 아바타의 사용자 선택; 및
상기 보조 에이전트에 의해 제공된 자동 회신 제안의 사용자 선택
중 하나 이상에 대한 응답으로 불러와지는, 컴퓨터로 실행되는 방법.

Claims (20)

  1. 컴퓨터로 실행되는 방법으로서,
    제1 사용자와 연관된 제1 컴퓨팅 디바이스 상에, 상기 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하기 위한 메시징 애플리케이션을 제공하는 단계;
    상기 메시징 애플리케이션에서, 사용자 요청을 검출하는 단계;
    상기 사용자 요청에 응답하는 동작이 상기 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로(programmatically) 결정하는 단계;
    허가 인터페이스가 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 단계 ―상기 허가 인터페이스는, 상기 제1 사용자가 상기 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―; 및
    상기 제1 사용자로부터 상기 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 상기 제1 사용자와 연관된 데이터에 액세스하고, 상기 사용자 요청에 대한 응답으로 상기 메시징 애플리케이션 내에서 상기 제1 사용자와 연관된 데이터를 공유하는 단계
    를 포함하는,
    컴퓨터로 실행되는 방법.
  2. 제1항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 보조 에이전트(assistive agent)인,
    컴퓨터로 실행되는 방법.
  3. 제2항에 있어서,
    상기 사용자 요청을 검출하는 단계는, 보조 에이전트에 의해, 상기 메시징 애플리케이션에서 수신된 하나 이상의 메시지들을 분석하는 단계를 포함하며, 상기 메시지들은 상기 제1 사용자로부터 상기 보조 에이전트로 전송되는,
    컴퓨터로 실행되는 방법.
  4. 제3항에 있어서,
    상기 하나 이상의 메시지들은 텍스트 메시지, 멀티미디어 메시지 및 상기 보조 에이전트에 대한 커맨드 중 하나 이상을 포함하는,
    컴퓨터로 실행되는 방법.
  5. 제2항에 있어서,
    상기 제1 사용자의 하나 이상의 액션들에 기반하여 상기 보조 에이전트를 자동으로 불러오는(invoke) 단계를 더 포함하는,
    컴퓨터로 실행되는 방법.
  6. 제2항에 있어서,
    상기 보조 에이전트는:
    특수 문자 커맨드;
    상기 보조 에이전트와 연관된 사용자 인터페이스 콜아웃(callout) 엘리먼트의 사용자 선택; 및
    상기 보조 에이전트에 대응하는 아바타의 사용자 선택; 및
    상기 보조 에이전트에 의해 제공된 자동 회신 제안의 사용자 선택
    중 하나 이상에 대한 응답으로 불러와지는,
    컴퓨터로 실행되는 방법.
  7. 제1항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 제2 컴퓨팅 디바이스와 연관된, 상기 제1 사용자와 상이한 제2 인간 사용자를 포함하며, 상기 허가 인터페이스는 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되고, 상기 허가 인터페이스는 상기 제2 인간 사용자와 연관된 상기 제2 컴퓨팅 디바이스 상에 디스플레이되지 않는,
    컴퓨터로 실행되는 방법.
  8. 제1항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 상기 제1 사용자와 상이한 제2 인간 사용자 및 보조 에이전트를 포함하며, 상기 사용자 요청은 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스로부터 수신되며,
    상기 방법은, 상기 사용자 요청에 대한 응답으로, 상기 메시징 애플리케이션에서 별개의 대화를 개시하는 단계를 더 포함하며, 상기 별개의 대화는 상기 제1 사용자 및 상기 보조 에이전트를 포함하며 상기 제2 인간 사용자를 배제하는,
    컴퓨터로 실행되는 방법.
  9. 제1항에 있어서,
    상기 제1 사용자 및 상기 적어도 하나의 다른 사용자 중 적어도 하나로부터의 입력에 기반하여 제1 메시징 애플리케이션에 하나 이상의 제안들을 제공하는 단계를 더 포함하는,
    컴퓨터로 실행되는 방법.
  10. 제9항에 있어서,
    상기 메시징 애플리케이션에 상기 하나 이상의 제안들이 디스플레이되게 하는 단계를 더 포함하는,
    컴퓨터로 실행되는 방법.
  11. 제10항 있어서,
    상기 하나 이상의 제안들은, 상기 제1 사용자에 의해 선택될 때, 대응하는 제안의 세부사항들이 디스플레이되게 하는 제안 엘리먼트들로서 렌더링되는,
    컴퓨터로 실행되는 방법.
  12. 컴퓨터로 실행되는 방법으로서,
    메시징 애플리케이션에서, 보조 에이전트로부터, 이전에 디스플레이된 확인응답(acknowledgement) 메시지의 선택에 대응하는 사용자 입력을 검출하는 단계 ―상기 이전에 디스플레이된 확인응답 메시지는 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들과 연관됨―;
    상기 이전에 디스플레이된 제안된 자동 회신 응답들이 디스플레이되게 하는 단계;
    상기 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들 중 주어진 응답이 사용자에 의해 선택되었다는 표시를 수신하는 단계; 및
    상기 하나 이상의 이전에 디스플레이된 제안된 자동 회신 응답들 중 주어진 응답을 상기 메시징 애플리케이션 내의 대화에 참여하는 제2 사용자 및 상기 보조 에이전트에 전송하는 단계
    를 포함하는,
    컴퓨터로 실행되는 방법.
  13. 제12항에 있어서,
    상기 사용자 입력에 대한 응답으로 상기 보조 에이전트를 불러오는 단계를 더 포함하는,
    컴퓨터로 실행되는 방법.
  14. 제12항에 있어서,
    상기 대화는 상기 사용자 및 적어도 하나의 다른 사용자를 포함하며, 상기 사용자는 제1 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 상기 제1 인간 사용자와 상이한 제2 인간 사용자를 포함하며, 상기 제1 인간 사용자는 제1 컴퓨팅 디바이스와 연관되고 상기 제2 인간 사용자는 제2 컴퓨팅 디바이스와 연관되며, 상기 이전에 디스플레이된 메시지 및 상기 하나 이상의 제안된 자동 회신 응답들은 초기에, 상기 제1 인간 사용자와 연관된 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되며, 상기 메시징 애플리케이션 내의 대화 및 상기 보조 에이전트 중 하나 이상에 상기 하나 이상의 제안된 자동 회신 응답들을 제공하는 것은 상기 메시징 애플리케이션에 상기 하나 이상의 제안된 자동 회신 응답들을 제공하는 것을 포함하는,
    컴퓨터로 실행되는 방법.
  15. 시스템으로서,
    소프트웨어 명령들이 저장되어 있는 비-일시적 컴퓨터-판독가능 매체에 연결되는 하나 이상의 하드웨어 프로세서들을 포함하며,
    상기 소프트웨어 명령들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    제1 사용자와 연관된 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션으로부터 사용자 요청을 수신하는 것 ―상기 메시징 애플리케이션은 상기 제1 사용자와 적어도 하나의 다른 사용자 간의 통신을 가능하게 하도록 구성됨―;
    상기 사용자 요청에 응답하는 동작이 상기 제1 사용자와 연관된 데이터의 공유를 요구한다는 것을 프로그램적으로 결정하는 것;
    허가 인터페이스가 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되게 하는 것 ―상기 허가 인터페이스는, 상기 제1 사용자가 상기 제1 사용자와 연관된 데이터의 공유를 승인하거나 금지하는 것을 가능하게 함―; 및
    상기 제1 사용자로부터 상기 제1 사용자와 연관된 데이터의 공유에 대한 승인을 표시하는 사용자 입력의 수신 시에, 상기 제1 사용자와 연관된 데이터에 액세스하고, 상기 사용자 요청에 대한 응답으로 상기 메시징 애플리케이션 내에서 제1 사용자와 연관된 데이터를 공유하는 것
    을 포함하는 동작들을 수행하게 하는,
    시스템.
  16. 제15항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 보조 에이전트인,
    시스템.
  17. 제16항에 있어서,
    상기 사용자 요청을 검출하는 것은, 보조 에이전트에서, 상기 제1 사용자로부터 상기 보조 에이전트로 상기 메시징 애플리케이션에서 수신된 하나 이상의 메시지들을 분석하는 것을 포함하는,
    시스템.
  18. 제15항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 제2 컴퓨팅 디바이스와 연관된, 상기 제1 사용자와 상이한 제2 인간 사용자를 포함하며, 상기 허가 인터페이스는 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스 상의 메시징 애플리케이션에 렌더링되고, 상기 허가 인터페이스는 상기 제2 인간 사용자와 연관된 상기 제2 컴퓨팅 디바이스 상에 디스플레이되지 않는,
    시스템.
  19. 제15항에 있어서,
    상기 제1 사용자는 인간 사용자이고, 상기 적어도 하나의 다른 사용자는 상기 제1 사용자와 상이한 제2 인간 사용자 및 보조 에이전트를 포함하며, 상기 사용자 요청은 상기 제1 사용자와 연관된 상기 제1 컴퓨팅 디바이스로부터 수신되며,
    상기 동작들은, 상기 사용자 요청에 대한 응답으로, 상기 메시징 애플리케이션에서 별개의 대화를 개시하는 것을 더 포함하며, 상기 별개의 대화는 상기 제1 사용자 및 상기 보조 에이전트를 포함하며 상기 제2 인간 사용자를 포함하지 않는,
    시스템.
  20. 제15항에 있어서,
    상기 동작들은, 상기 제1 사용자 및 상기 적어도 하나의 다른 사용자 중 적어도 하나로부터의 입력에 기반하여 제1 메시징 애플리케이션에 하나 이상의 제안들을 제공하는 것을 더 포함하는,
    시스템.
KR1020187036133A 2016-09-20 2017-09-19 봇 상호작용 KR102197448B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662397318P 2016-09-20 2016-09-20
US62/397,318 2016-09-20
PCT/US2017/052336 WO2018057537A1 (en) 2016-09-20 2017-09-19 Bot interaction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017883A Division KR101961754B1 (ko) 2016-09-20 2017-09-19 봇 상호작용

Publications (2)

Publication Number Publication Date
KR20190045092A true KR20190045092A (ko) 2019-05-02
KR102197448B1 KR102197448B1 (ko) 2020-12-31

Family

ID=60022180

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187036133A KR102197448B1 (ko) 2016-09-20 2017-09-19 봇 상호작용
KR1020187017883A KR101961754B1 (ko) 2016-09-20 2017-09-19 봇 상호작용

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187017883A KR101961754B1 (ko) 2016-09-20 2017-09-19 봇 상호작용

Country Status (6)

Country Link
US (1) US10798028B2 (ko)
EP (1) EP3378204B1 (ko)
JP (1) JP6605151B2 (ko)
KR (2) KR102197448B1 (ko)
CN (1) CN109691034B (ko)
WO (1) WO2018057537A1 (ko)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10218651B2 (en) * 2015-04-20 2019-02-26 Oracle International Corporation Virtual assistance for chat agents
WO2017112796A1 (en) 2015-12-21 2017-06-29 Google Inc. Automatic suggestions and other content for messaging applications
US10530723B2 (en) 2015-12-21 2020-01-07 Google Llc Automatic suggestions for message exchange threads
US10382370B1 (en) 2016-08-11 2019-08-13 Amazon Technologies, Inc. Automated service agents
CN109716727B (zh) 2016-09-20 2021-10-15 谷歌有限责任公司 获取访问与用户相关联的数据的许可的方法及系统
CN109952572B (zh) 2016-09-20 2023-11-24 谷歌有限责任公司 基于消息贴纸的建议响应
US10015124B2 (en) * 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
US10361975B2 (en) * 2016-10-10 2019-07-23 Microsoft Technology Licensing, Llc Messaging bot selection in multi-bot chat sessions
US10649741B2 (en) * 2016-10-17 2020-05-12 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US10484313B1 (en) * 2016-10-28 2019-11-19 Amazon Technologies, Inc. Decision tree navigation through text messages
US10469665B1 (en) 2016-11-01 2019-11-05 Amazon Technologies, Inc. Workflow based communications routing
US10416846B2 (en) 2016-11-12 2019-09-17 Google Llc Determining graphical element(s) for inclusion in an electronic communication
US10713430B2 (en) * 2016-11-30 2020-07-14 Google Llc Systems and methods for applying layout to documents
KR20180084549A (ko) * 2017-01-17 2018-07-25 삼성전자주식회사 메시지 생성 방법 및 이를 지원하는 웨어러블 전자 장치
US11907272B2 (en) 2017-02-17 2024-02-20 Microsoft Technology Licensing, Llc Real-time personalized suggestions for communications between participants
CN110945839B (zh) 2017-03-27 2022-03-04 奥瑞恩实验室 共享的和每用户的机器人群组的消息传递方法
US11695711B2 (en) * 2017-04-06 2023-07-04 International Business Machines Corporation Adaptive communications display window
US10333868B2 (en) * 2017-04-14 2019-06-25 Facebook, Inc. Techniques to automate bot creation for web pages
US10491548B2 (en) * 2017-04-17 2019-11-26 Facebook, Inc. Techniques to configure bot flow
US10860854B2 (en) 2017-05-16 2020-12-08 Google Llc Suggested actions for images
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10798029B2 (en) * 2017-07-25 2020-10-06 Freshworks, Inc. System and apparatus for generation of multiple automated ephemeral chat messages
US11777875B2 (en) * 2017-09-15 2023-10-03 Microsoft Technology Licensing, Llc Capturing and leveraging signals reflecting BOT-to-BOT delegation
US10678402B1 (en) * 2017-11-06 2020-06-09 Amazon Technologies, Inc. Interactive bot for natural language analytics
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
CN110308877A (zh) * 2018-03-20 2019-10-08 富士施乐株式会社 消息提供装置和非暂时性计算机可读介质
US11240180B2 (en) * 2018-03-20 2022-02-01 Fujifilm Business Innovation Corp. Message providing device and non-transitory computer readable medium
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US10963273B2 (en) 2018-04-20 2021-03-30 Facebook, Inc. Generating personalized content summaries for users
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US10419934B1 (en) * 2018-05-09 2019-09-17 Facebook, Inc. Systems and methods for authenticating users based on enriched data
US11249772B2 (en) 2018-05-29 2022-02-15 Google Llc Feature exposure for model recommendations and feedback
CN110751947B (zh) * 2018-11-13 2021-05-07 北京嘀嘀无限科技发展有限公司 对用户进行提示的方法、电子设备及计算机可读存储介质
US10918948B2 (en) * 2019-03-19 2021-02-16 modl.ai ApS Game bot generation for gaming applications
US11596867B2 (en) 2019-03-19 2023-03-07 modl.ai ApS AI-based content generation for gaming applications
US11331581B2 (en) 2019-03-19 2022-05-17 modl.ai ApS Experience based game development and methods for use therewith
CN110162776A (zh) * 2019-03-26 2019-08-23 腾讯科技(深圳)有限公司 交互消息处理方法、装置、计算机设备和存储介质
JP7104277B2 (ja) * 2019-03-29 2022-07-21 株式会社Aill コミュニケーション支援サーバ、コミュニケーション支援システム、コミュニケーション支援方法、及びコミュニケーション支援プログラム
JP7409781B2 (ja) * 2019-04-01 2024-01-09 Lineヤフー株式会社 出力プログラム、出力装置及び出力方法
KR20200121064A (ko) * 2019-04-15 2020-10-23 라인플러스 주식회사 이벤트 메시지를 관리하기 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
USD907053S1 (en) 2019-05-31 2021-01-05 Apple Inc. Electronic device with animated graphical user interface
CN110311856A (zh) * 2019-06-28 2019-10-08 上海连尚网络科技有限公司 即时通信方法、设备及计算机可读存储介质
US11676316B1 (en) 2019-07-01 2023-06-13 Instasize, Inc. Shareable settings for modifying images
US11449664B1 (en) * 2019-07-01 2022-09-20 Instasize, Inc. Template for creating content item
JP7272893B2 (ja) * 2019-07-26 2023-05-12 トヨタ自動車株式会社 制御装置
US11258731B2 (en) * 2019-08-22 2022-02-22 Orion Labs, Inc. Bot proxy for group communication service
US11379529B2 (en) * 2019-09-09 2022-07-05 Microsoft Technology Licensing, Llc Composing rich content messages
USD938976S1 (en) 2019-10-02 2021-12-21 Google Llc Display screen with transitional graphical user interface
USD930680S1 (en) * 2019-10-02 2021-09-14 Google Llc Display screen with transitional graphical user interface
USD949887S1 (en) * 2019-10-02 2022-04-26 Google Llc Display screen with transitional graphical user interface
USD930679S1 (en) * 2019-10-02 2021-09-14 Google Llc Display screen with transitional graphical user interface
USD939546S1 (en) * 2019-10-02 2021-12-28 Google Llc Display screen with transitional graphical user interface
USD938975S1 (en) 2019-10-02 2021-12-21 Google Llc Display screen with transitional graphical user interface
USD941327S1 (en) * 2019-10-02 2022-01-18 Google Llc Display screen with transitional graphical user interface
JP7423277B2 (ja) 2019-11-28 2024-01-29 キヤノン株式会社 印刷提案の問合せを抑制するサーバーシステム、プログラム
JP7264799B2 (ja) * 2019-12-12 2023-04-25 トヨタ自動車株式会社 サーバ装置、情報処理システム、端末装置のプログラム、及び情報処理システムの動作方法
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot
JP7287333B2 (ja) * 2020-04-06 2023-06-06 トヨタ自動車株式会社 制御装置、プログラム、及び情報処理方法
US11151195B1 (en) * 2020-05-30 2021-10-19 CareerAmerica, LLC Method and system for predicative QandA and resource suggestions
US11888790B2 (en) * 2020-06-26 2024-01-30 Cisco Technology, Inc. Dynamic skill handling mechanism for bot participation in secure multi-user collaboration workspaces
US11410192B2 (en) 2020-08-27 2022-08-09 Google Llc Group action fulfillment across multiple user devices
US11271829B1 (en) 2020-11-19 2022-03-08 Kyndryl, Inc. SLA-aware task dispatching with a task resolution control
US11329933B1 (en) 2020-12-28 2022-05-10 Drift.com, Inc. Persisting an AI-supported conversation across multiple channels
KR20220101856A (ko) * 2021-01-12 2022-07-19 삼성전자주식회사 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
CN113204302B (zh) * 2021-04-14 2023-05-12 北京达佳互联信息技术有限公司 基于虚拟机器人的操作方法、装置、设备及存储介质
CN113206781B (zh) * 2021-04-14 2023-03-10 北京达佳互联信息技术有限公司 客户端控制方法、装置、设备及存储介质
CN113190307A (zh) * 2021-04-14 2021-07-30 北京达佳互联信息技术有限公司 控件添加方法、装置、设备及存储介质
FR3127828A1 (fr) * 2021-10-06 2023-04-07 Orange Agent conversationnel en interface entre une machine et des utilisateurs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254971A1 (en) * 1999-10-27 2009-10-08 Pinpoint, Incorporated Secure data interchange
US20120202587A1 (en) * 2009-07-21 2012-08-09 Allen Jeffrey L Integrating social communities and wagering games
KR20150046100A (ko) * 2012-08-10 2015-04-29 뉘앙스 커뮤니케이션즈, 인코포레이티드 전자 디바이스에 대한 가상 에이전트 통신

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454469B2 (en) 2003-12-22 2008-11-18 International Business Machines Corporation Method and system for instant messaging Bots specification using state transition methodology and XML
WO2008005102A2 (en) * 2006-05-13 2008-01-10 Sap Ag Consistent set of interfaces derived from a business object model
US8769279B2 (en) * 2006-10-17 2014-07-01 Verifone, Inc. System and method for variable length encryption
US8224901B2 (en) * 2009-12-14 2012-07-17 International Business Machines Corporation Method and apparatus for enhancing compound documents with questions and answers
US20120042263A1 (en) * 2010-08-10 2012-02-16 Seymour Rapaport Social-topical adaptive networking (stan) system allowing for cooperative inter-coupling with external social networking systems and other content sources
KR101402506B1 (ko) 2011-12-01 2014-06-03 라인 가부시키가이샤 인스턴트 메시징 어플리케이션을 이용한 대화형 정보제공 시스템 및 방법
KR101718176B1 (ko) * 2012-08-07 2017-03-20 라인 가부시키가이샤 모바일 메신저 플랫폼에서의 수익 분배형 광고 시스템 및 그 방법
CN103595611B (zh) * 2012-08-13 2018-10-02 腾讯科技(深圳)有限公司 即时通信应用的实现方法及系统、与设备
US10447711B2 (en) * 2012-10-18 2019-10-15 White Ops Inc. System and method for identification of automated browser agents
US8984080B1 (en) * 2013-04-09 2015-03-17 Kabam, Inc. Facilitating user configured assistance requests through a chat in a virtual space
CN104869047B (zh) * 2014-02-21 2018-03-23 联想(北京)有限公司 一种信息提供方法、信息处理方法、服务器及电子设备
CN104978383B (zh) * 2015-02-12 2018-01-09 腾讯科技(深圳)有限公司 一种数据互通的方法,及数据互通设备
KR20150035877A (ko) * 2015-02-25 2015-04-07 네이버 주식회사 실시간 대화를 기반으로 한 트랜잭션 처리 방법과 시스템 및 기록 매체
US10617948B2 (en) * 2015-03-27 2020-04-14 Unonimous, Inc. System and data collection method
JP6753728B2 (ja) * 2016-08-23 2020-09-09 Line株式会社 プログラム、情報処理方法、及び端末

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254971A1 (en) * 1999-10-27 2009-10-08 Pinpoint, Incorporated Secure data interchange
US20120202587A1 (en) * 2009-07-21 2012-08-09 Allen Jeffrey L Integrating social communities and wagering games
KR20150046100A (ko) * 2012-08-10 2015-04-29 뉘앙스 커뮤니케이션즈, 인코포레이티드 전자 디바이스에 대한 가상 에이전트 통신

Also Published As

Publication number Publication date
EP3378204B1 (en) 2019-12-25
EP3378204A1 (en) 2018-09-26
US10798028B2 (en) 2020-10-06
KR20180096646A (ko) 2018-08-29
KR102197448B1 (ko) 2020-12-31
US20180083894A1 (en) 2018-03-22
CN109691034A (zh) 2019-04-26
JP2019519822A (ja) 2019-07-11
CN109691034B (zh) 2021-07-09
WO2018057537A1 (en) 2018-03-29
KR101961754B1 (ko) 2019-03-25
JP6605151B2 (ja) 2019-11-13

Similar Documents

Publication Publication Date Title
KR101961754B1 (ko) 봇 상호작용
US11700134B2 (en) Bot permissions
JP6625789B2 (ja) 言語モデルを用いたメッセージ内受信画像に対する自動提案応答
US10547574B2 (en) Suggested responses based on message stickers
US10348658B2 (en) Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) Embedded programs and interfaces for chat conversations
CN112534837B (zh) 用于提供灵活且集成的通信、调度和商业平台的系统和方法
US10917762B2 (en) Communications system with common electronic interface
EP3846111A1 (en) Cross-application data sharing

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right