CN114586007B - 用于维护应用内容的隐私的自动助理架构 - Google Patents

用于维护应用内容的隐私的自动助理架构 Download PDF

Info

Publication number
CN114586007B
CN114586007B CN201980101516.6A CN201980101516A CN114586007B CN 114586007 B CN114586007 B CN 114586007B CN 201980101516 A CN201980101516 A CN 201980101516A CN 114586007 B CN114586007 B CN 114586007B
Authority
CN
China
Prior art keywords
client application
container
user
computing device
input
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201980101516.6A
Other languages
English (en)
Other versions
CN114586007A (zh
Inventor
任根洙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN114586007A publication Critical patent/CN114586007A/zh
Application granted granted Critical
Publication of CN114586007B publication Critical patent/CN114586007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本文阐述的实现方式涉及一种允许第三方应用注入依赖关系以利用自动助理函数的自动助理。此外,启用此类依赖关系注入能够允许第三方应用维护在自动助理函数的运行期间使用的任何应用内容的隐私。在一些实现方式中,第三方应用能够使用被标记为私有的参数来初始化具有助理依赖关系的函数。以这样的方式初始化函数能够允许出于安全目的抽象化在第三方应用与自动助理之间通信的私有内容。此后,能够将抽象内容通信到远程服务器,诸如托管广泛地经过训练的机器学习模型的服务器。然后,能够在不损害安全的情况下将由服务器提供的智能输出并入到第三方应用的一个或多个进程中。

Description

用于维护应用内容的隐私的自动助理架构
背景技术
人类可以使用在本文中称为“自动助理”(也被称为“数字代理”、“聊天机器人”、“交互式个人助理”、“智能个人助理”、“谈话代理”等)的交互式软件应用来参与人机谈话。例如,人类(当他们与自动助理交互时可以被称为“用户”)可以使用可以在一些情况下被转换成文本然后被处理的口头自然语言输入(即,话语)和/或通过提供文本的(例如,键入的)自然语言输入来提供命令和/或请求。
能够将各种第三方应用加载到能够提供对自动助理的访问的计算设备上,但是此类应用可能不能够利用自动助理的好处。尽管许多计算设备提供允许应用在彼此之间通信的进程间通信,但是以这种方式利用资源可能导致对存储器和处理带宽的过度消耗。例如,当在应用之间运行重复进程时,诸如当试图履行应用编程接口(API)调用时,资源限制和/或数据的复杂性能够引起延迟。此外,在应用之间运行的进程可能显示出关于安全的漏洞。在应用之间运行的进程可能显示出使某些事务的隐私变得难以维护的漏洞。
发明内容
本文阐述的实现方式涉及使得第三方应用能够选择性地并入第一方自动助理的特征,同时维护第三方内容的安全并且更高效地利用存储器和处理带宽。在一些实现方式中,第三方应用能够是用于允许用户经由在上面安装有第三方应用的客户端设备与其他用户进行通信的消息传送应用。第三方应用能够包括能够根据用户正在与之交互的第三方应用的特定功能被加载到存储器中的各种容器(例如,客户端容器)。作为示例,用户能够正在使用允许用户参与与多个其他用户的群组谈话的消息传送应用的特征。当用于群组谈话的接口被初始化时,第三方应用能够使服务容器被加载到在上面安装有第三方应用的计算设备的存储器中。服务容器能够包括用于建立某些函数(例如,自动助理函数)的代码,所述某些函数能够由第三方应用在正在计算设备处渲染用于群组谈话的接口时使用。
在一些实现方式中,容器中的函数能够用于在第三方应用的接口处提供自动助理功能性。这种功能性能够包括自动助理建议自动助理能够执行以便用某个应用功能性协助用户的某些动作(例如,为自动助理能够执行的动作提出建议)的能力。为了在第三方应用和可以被安装在计算设备上的任何其他应用处启用这种功能性,在第三方应用的特定客户端容器内建立的函数能够被注入来自服务容器的依赖关系。能够为允许群组谈话接口的某些函数可访问的特定客户端容器建立所注入的依赖关系。例如,能够在客户端容器“groupConversation”中标识函数“suggestAction”,并且函数“suggestAction”能够具有诸如“assistantSuggest”、“input”和“context”的输入参数数据(例如,suggestAction(assistantSuggest,input,context))。“assistantSuggest”参数能够与自动助理函数相关联,该自动助理函数能够使用接收到的消息的一部分和与该接收到的消息相关联的上下文数据作为输入,以便标识要向用户建议的自动助理动作。
能够响应于第三方应用初始化进程而实例化客户端容器“groupConversation”,然而,因为客户端容器最初不会被注入与自动助理函数(例如,来自服务容器的“suggestActionMessaging”)相对应的依赖关系,所以自动助理函数最初不会被实例化。换句话说,自动助理函数将不依靠客户端容器的实例化,因为自动助理函数与容器解耦了。这能够维护计算设备资源,诸如RAM,这些计算设备资源可能以其他方式在多个第三方应用实例化具有类似或相同函数的容器时被消耗。为了运行经由自动助理可获得的某个功能性,能够经由注入器容器单独地实例化体现要运行的自动助理函数的数据对象。换句话说,为了提供某个第三方功能性而被实例化的客户端容器不会取决于引用自动助理函数的数据对象的实例化。然而,该数据对象可能需要引用要运行的自动助理函数。
为促进前述示例,能够在容器“groupConversation”被第三方应用实例化时实例化与自动助理对象“assistantSuggest”相对应的数据对象。然后,第三方应用能够响应于与第三方应用相关联的另一信号和/或其他数据而给自动助理对象“assistantSuggest”指配特定功能。例如,来自用户的输入能够使得在存储器中实例化注入器类以便向“assistantSuggest”对象指配值。在一些实现方式中,为了支持自动助理对象的特定功能,能够经由软件开发套件(SDK)可获得的类“Assistant”能够被实例化并且能够包括诸如“suggestActionMessaging”和“suggestActionImage”的函数。第三方应用能够通过将第三方容器对象“assistantSuggest”定向到“suggestActionMessaging”函数来采用“suggestActionMessaging”函数。同时,单独容器,例如“videoCapture”能够被不同的第三方应用实例化。单独容器能够包括不同的函数,诸如“imageSuggestion(assistantSuggest,input,context)”,其能够具有能够被定向到助理函数“suggestActionImage”的另一第三方对象“assistantSuggest”。
在一些实现方式中,经由第三方应用生成的某些内容能够被有意地限制或者不可经由其他应用访问。然而,使用根据本文的一些实现方式的(多个)依赖关系注入,能够在仍然利用自动助理的功能性的同时维持与此类内容相对应的访问限制。为了利用可以经由远程服务器(例如,广泛地训练后的机器学习模型)可获得的一些自动助理函数的好处,能够以维持内容的隐私的方式标记和处理此类受限内容。例如,在一些实现方式中,第三方应用能够捕获屏幕截图或其他数据集合,并且采用一个或多个自动助理函数来基于屏幕截图生成动作建议。第三方应用能够实例化具有从自动助理容器注入的依赖关系的容器,以便在不损害第三方应用的隐私的情况下并且在还保存存储器的同时发起对屏幕截图的处理。
例如,当用户经由第三方应用进入群组谈话时,第三方应用能够从“groupConversation”容器中调用“suggestAction”函数。此后,用户能够初始化自动助理以便在群组谈话期间接收协助。作为响应,初始化自动助理(例如,经由对键盘的触摸输入)能够使“suggestAction”函数的“assistantSuggest”对象被指配函数“suggestActionImage”(例如,$groupconversation=>setAssistantSuggest(“suggestActionImage”))。此外,能够生成屏幕截图并且将其指配给函数“suggestAction”的对象“input”和/或能够生成上下文数据(例如,位置、时间、时间表和/或任何其他上下文数据)并且将其指配给函数“suggestAction”的对象“context”。将在堆栈中处理函数“suggestAction”。结果,能够在用户的群组谈话期间为用户提出建议,并且能够随后从存储器中清除作为结果生成的对象指配。
以上描述被作为本公开的一些实现方式的概要提供。在下面更详细地描述那些实现方式和其他实现方式的进一步描述。
其他实现方式可以包括一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质存储可由一个或多个处理器(例如,(多个)中央处理单元(CPU)、(多个)图形处理单元(GPU)和/或(多个)张量处理单元(TPU))运行以执行方法,诸如在上面和/或在本文中别处描述的方法中的一种或多种。然而,其他实现方式可以包括一个或多个计算机的系统,这些计算机包括可操作来运行存储的指令以执行方法(诸如在上面和/或在本文中别处描述的方法中的一种或多种)的一个或多个处理器。
应该领会,前面的构思和本文更详细地描述的附加构思的所有组合都被设想为是本文公开的主题的部分。例如,在本公开的结尾处出现的要求保护的主题的所有组合都被设想为是本文公开的主题的部分。
附图说明
图1A、图1B、图1C和图1D图示用户与第三方应用交互以促进使用经由各种容器采用的自动助理功能性的视图。
图2图示通过给容器提供使用一个或多个助理容器注入的依赖关系来提供自动助理功能性的系统。
图3图示用于执行通过具有从表征一个或多个自动助理函数的容器注入的依赖关系的容器来表征的第三方应用操作的方法。
图4是示例计算机系统的框图。
具体实施方式
图1A、图1B、图1C和图1D图示用户124与第三方应用118交互以促进使用经由各种容器采用的自动助理功能性的视图100、视图120、视图140和视图160。具体地,图1A的视图100图示用户124初始化第三方应用118,该第三方应用118能够操作以提供能够经由任何类型的计算机应用可用的各种不同的功能性。例如,第三方应用118、和/或任何其他客户端应用能够是允许用户124在正在计算设备102的显示面板122处渲染的图形用户界面(GUI)112中与多个不同的用户进行通信的消息传送应用。响应于初始化第三方应用118,第三方应用118、和/或计算设备102能够使客户端容器126在计算设备102的存储器128中被实例化。客户端容器126能够标识取决于用户输入的一个或多个对象和/或要被实例化以让一个或多个对象具有指配的参考值的另一容器。
作为示例,响应于用户124访问第三方应用118,能够在存储器128中使用包括assistantSuggest()对象和一个或多个单独的依赖对象的各种依赖对象来实例化客户端容器126。能够基于用户124如何与第三方应用118交互来向assistantSuggest()对象指配参考值。例如,响应于用户124调用第三方应用118的相机功能,第三方应用118能够使特定注入器容器在存储器中被实例化以便向assistantSuggest()对象指配特定值。该特定值能够是指允许第三方应用118基于图像提供自动助理建议的自动助理106的自动助理函数。附加地或替换地,第三方应用118能够使不同的注入器容器在存储器中被实例化以便向assistantSuggest()对象指配单独值或不同的值。例如,响应于用户124使用他们的手132来轻敲第三方应用118的文本字段114,能够在存储器128中实例化注入器容器130,如图1B所图示的。
注入器容器130能够向assistantSuggest()指配值,该值对应于自动助理106的允许第三方应用118基于群组消息和/或任何其他消息传送功能性来提供自动助理建议的自动助理函数(即,自动助理动作)。例如,能够在存储器128中使用诸如messageAssistantSuggest()的参考值来实例化注入器容器130,所述参考值能够使用客户端数据110来与assistantSuggest()对象相关。在一些实现方式中,assistantSuggest()对象能够包括参考值能够被映射到的输入参数。例如,用于assistantSuggest()对象的输入参数数据能够包括函数输入、应用输入和/或应用上下文(例如,assistantSuggest($function,$input,$context))。
基于assistantSuggest()对象被指配与由注入器容器130标识的助理函数相对应的值,第三方应用118和/或计算设备102能够使得在存储器128中实例化服务容器142。具体地,如图1C的视图140所图示的,能够在存储器128中从计算设备102的单独存储器实例化服务容器142。例如,客户端数据110能够包括各种应用数据,并且存储器128能够是一个或多个随机存取存储器(RAM)设备和/或由处理器在堆栈操作的运行期间访问的任何其他存储设备。在一些实现方式中,能够根据对计算设备102的用户输入和/或对第三方应用118和/或计算设备102可访问的任何其他数据来指配assistantSuggest()对象的一个或多个参数。作为示例,用户124能够向第三方应用118提供文本输入144以促进在群组聊天中与其他用户(例如,Tim和Charlie)进行通信。第三方应用118能够使用并入到文本字段114中的自然语言内容作为已被指配给assistantSuggest()对象的助理函数(例如,messageAssistantSuggest())的输入参数。附加地或替换地,并且在来自用户的在先许可的情况下,第三方应用118能够使用来自群组消息的自然语言内容作为对messageAssistantSuggest()函数的输入参数。
如图1D的视图160中提供的,存储器128中的各种容器能够由计算设备102的一个或多个处理器处理以便生成所得的内容164。能够使用至少通过服务容器142表征的messageAssistantSuggest()函数来生成所得的内容。此外,至少基于由注入器容器130阐述的相关性,基于图形用户界面112的内容的文本输入能够作为输入被提供给messageAssistantSuggest()函数。以这种方式处理应用对象能够为计算设备102和用户124维护存储器和隐私,因为不需要与单独应用共享文本内容。相反,messageAssistantSuggest()函数能够作为第三方应用118堆栈操作的一部分被运行从而产生所得的内容164。然后,能够在图形用户界面112处渲染所得的内容164作为供用户124与之交互的建议162。例如,基于处理在图形用户界面112处渲染的某些自然语言内容,第三方应用118能够利用自动助理功能性以提供用于在叫做“Highland's Coffee”的咖啡店会面的建议162。当用户124选择建议162时,实体“Highland's Coffee”的名称能够被输送到文本字段114中和/或能够链接到与在群组聊天116中提供的实体相对应的网站以供所有用户查看和/或以其他方式与之交互。
在一些实现方式中,能够使用在存储器128中实例化以便按输入参数而运行的一个或多个引擎来生成所得的内容164。作为示例,一个或多个引擎能够包括由第三方应用118使用以从输入参数生成所得的内容164的经过训练的机器学习模型。输入参数能够包括正在计算设备102的显示面板122处渲染的内容和/或表征其中用户124正在与第三方应用118交互的上下文的上下文数据。例如,具有来自用户的在先许可,上下文数据能够表征参与群组聊天116的每个人的位置。能够与经过训练的机器学习模型相结合地使用上下文数据以便标识用于每个参与者在谈话中标识的时间会面的合适位置。以这种方式,因为一个或多个引擎已被第三方应用118实例化,所以将不需要在第三方应用118的任何容器之外处理输入参数和/或上下文数据。此外,因为服务容器142被按需实例化,所以在由注入器容器130提供的数据使客户端容器126的依赖对象与通过服务容器142表征的函数和/或模型相关之前,模型不一定会占用RAM或类似的存储器。
图2图示包括具有提供自动助理204功能性的一个或多个第三方应用216、和/或任何客户端应用的计算设备202的系统20 0。能够使用具有使用随第三方应用216包括的一个或多个助理容器所注入的依赖关系的容器来提供自动助理204功能性。自动助理204能够作为在一个或多个计算设备(诸如计算设备202和/或另一计算设备238(例如,服务器设备))处提供的助理应用的一部分操作。用户能够经由助理接口220与自动助理204交互,所述助理接口220可以是麦克风、相机、触摸屏显示器、用户接口、和/或能够在用户与应用之间提供接口的任何其他装置。例如,用户能够通过向助理接口220提供口头输入、文本输入和/或图形输入来初始化自动助理204以使自动助理204执行功能(例如,提供数据、控制外围设备、访问代理、生成输入和/或输出等)。计算设备202能够包括显示设备,该显示设备能够是显示面板,该显示面板包括用于接收触摸输入和/或手势的触摸接口以便允许用户经由该触摸接口控制计算设备202的第三方应用216。在一些实现方式中,计算设备202能够缺少显示设备,从而提供可听用户接口输出,而不提供图形用户界面输出。此外,计算设备202能够提供用于从用户接收口头自然语言输入的用户接口,诸如麦克风。在一些实现方式中,计算设备202能够包括触摸接口并且能够没有相机(或者包括相机),但是能够可选地包括一个或多个其他传感器。
计算设备202和/或其他第三方客户端设备能够通过诸如互联网的网络与服务器设备通信。附加地,计算设备202和任何其他计算设备能够通过诸如Wi-Fi网络的局域网(LAN)彼此通信。计算设备202能够将计算任务卸载到服务器设备以便保存计算设备202处的计算资源。例如,服务器设备能够托管自动助理204,和/或计算设备202能够向服务器设备传送在一个或多个助理接口220处接收到的输入。然而,在一些实现方式中,能够将自动助理204托管在计算设备202处,并且能够在计算设备202处执行能够与自动助理操作相关联的各种过程。
在各种实现方式中,能够在计算设备202上实现自动助理204的所有方面或少于所有方面。在那些实现方式中的一些实现方式中,自动助理204的各方面经由计算设备202实现并且能够与服务器设备对接,所述服务器设备能够实现自动助理204的其他方面。服务器设备能够可选地经由多个线程为多个用户及其相关联的助理应用进行服务。在经由计算设备202实现自动助理204的所有方面或少于所有方面的实现方式中,自动助理204能够是与计算设备202的操作系统分离的应用(例如,被安装在操作系统“之上”),或者能够替换地由计算设备202的操作系统直接实现(例如,被认为是操作系统的应用,但与操作系统成一体)。
在一些实现方式中,自动助理204能够包括输入处理引擎206,该输入处理引擎206能够采用多个不同的模块和/或引擎来处理计算设备202和/或服务器设备的输入和/或输出。例如,输入处理引擎208能够包括语音处理引擎214,该语音处理引擎214能够处理在助理接口220处接收到的音频数据以标识音频数据中体现的文本。音频数据能够被从例如计算设备202传送到服务器设备以便维护计算设备202处的计算资源。附加地或替换地,能够在计算设备202处处理音频数据。
用于将音频数据转换为文本的过程能够包括语音识别算法,该语音识别算法能够采用神经网络、和/或统计模型来标识与单词或短语相对应的音频数据组。从音频数据转换的文本能够由数据解析引擎210解析并且作为文本数据可用于自动助理204,所述文本数据能够用于生成和/或标识(多个)命令短语、(多个)意图、(多个)动作、(多个)槽值、和/或由用户指定的任何其他内容。在一些实现方式中,能够将由数据解析引擎210提供的输出数据提供给参数引擎212以确定用户是否提供了与能够被自动助理204和/或能够经由自动助理204访问的应用或代理执行的特定意图、动作和/或例程相对应的输入。例如,助理数据222能够被存储在服务器设备和/或计算设备202处,并且能够包括定义能够被自动助理204执行的一个或多个动作的数据,以及执行动作所必需的参数。经由输入处理引擎208生成的助理数据222能够由动作引擎224处理,以便使自动助理204经由助理接口220向用户提供输出,和/或初始化与一个或多个第三方应用224相关联的一个或多个动作。
在一些实现方式中,计算设备202能够包括一个或多个第三方应用224,该一个或多个第三方应用224能够由与提供了计算设备202和/或自动助理204的实体不同的第三方实体提供。自动助理204、第三方应用216和/或计算设备202的动作引擎224能够访问应用数据230以确定能够被一个或多个第三方应用224执行的一个或多个动作。此外,应用数据230和/或任何其他数据(例如,设备数据206)能够由自动助理204、第三方应用216和/或计算设备202访问以生成上下文数据236,该上下文数据236能够表征特定第三方应用216正在计算设备202处运行的上下文,和/或特定用户正在其中访问自动助理204和/或计算设备202的上下文。
当一个或多个第三方应用224正在计算设备202处运行时,设备数据206能够表征在计算设备202处运行的每个第三方应用216的当前操作状态。此外,应用数据230能够表征运行的第三方应用216的一个或多个特征,诸如正在一个或多个第三方应用224的指示下渲染的一个或多个图形用户界面的内容。在一些实现方式中,动作引擎224能够在第三方应用216的指示下初始化自动助理204的一个或多个动作的执行。
在一些实现方式中,一个或多个第三方应用216能够为安全敏感的操作(即,实体和/或用户已被标识为使用受限内容的操作)提供应用内处理和/或要求自动助理模块和/或引擎的实例。第三方应用216能够包括交互引擎228,该交互引擎228确定由第三方应用216正在执行的一个或多个操作是否应该采用另一计算设备238和/或使用一定量的应用内处理来执行一个或多个操作。为了确定是否应该在第三方应用216的存储器地址空间中和/或在另一计算设备238处来处理数据的一个或多个部分和/或一个或多个操作,第三方应用216能够标记数据的一个或多个部分和/或一个或多个操作。例如,响应于用户与第三方应用216的接口交互,交互引擎228能够确定交互是否对应于安全敏感操作和/或数据的安全敏感部分(例如,受限内容)。当交互引擎228确定操作和/或数据的部分是安全敏感的时,交互引擎228能够生成标签以将操作和/或数据的部分标记为安全敏感的,和/或与容器引擎218进行通信以便实例化适合于执行安全敏感操作和/或处理安全敏感数据的一个或多个容器。
当交互引擎228指示特定操作是安全敏感的(例如,操作涉及访问消息、照片、日历信息、位置数据和/或其他数据)时,容器引擎218能够使得一个或多个特定容器在存储器中被实例化。具体地,容器引擎218能够使得一个或多个特定容器在为第三方应用216暂时保留的存储器地址空间中被实例化。例如,当第三方应用216打开或者以其他方式在计算设备202处运行时,客户端容器能够在存储器中根据存储在计算设备202的驱动空间和/或应用空间中的应用数据230被实例化。客户端容器能够包括能够基于一个或多个用户与第三方应用216之间的交互被指配参考值的一个或多个依赖对象。例如,当用户访问第三方应用216的特定接口时,交互引擎228能够标识与特定接口相对应的注入器容器。
注入器容器能够以编程方式提供能够经由第三方应用216执行的操作与能够由第三方应用216采用的一个或多个助理函数之间的对应。换句话说,响应于第三方应用216初始化特定操作,第三方应用216能够使用注入器容器以选择要指配给在客户端容器中标识的依赖对象的参考值。在一些实现方式中,当参考值对应于自动助理函数时,容器引擎218能够使得服务容器在计算设备202的存储器中被实例化。
服务容器能够与由也提供了自动助理204的实体提供的软件开发套件(SDK)和/或任何其他软件包相关联。服务容器能够以编程方式提供能够被并入到应用中的各种不同的函数、变量、库、对象和/或任何其他数据。作为示例,服务容器能够包括imageAssistantSuggest()函数和textAssistantSuggest()函数,并且能够使用注入器容器中的参考将前述函数中的至少一个指配给客户端容器的依赖对象。例如,当第三方应用216包括相机操作时,交互引擎228能够确定相机操作是安全敏感操作。基于此确定,交互引擎228能够使注入器容器引用服务容器的imageAssistantSuggest()函数,以便能够使用第三方应用216在共享地址空间中实例化该函数和/或与该函数相关联的任何引擎。此后,如果用户调用第三方应用216来执行相机操作,则内容处理引擎226能够使得在共享地址空间中运行imageAssistantSuggest()函数。
在一些实现方式中,当交互引擎228确定第三方应用216的特定操作能够被初始化但是不对应于安全敏感操作时,第三方应用216能够采用另一计算设备238来协助执行操作。作为示例,响应于第三方应用216的操作被初始化,交互引擎228能够确定操作不是安全敏感操作。然后,交互引擎228能够使客户端容器的依赖对象与允许第三方应用216利用在另一计算设备238处提供的一个或多个动作引擎242的处理能力的功能相关联。例如,经由第三方应用216初始化的操作能够导致使第三方应用216经由诸如互联网的网络232向输入引擎240提供内容的功能的运行。
输入引擎240能够处理内容并且标识要采用以便进一步处理内容的特定动作引擎242和/或模型。例如,在一些实现方式中,输入引擎240能够从对其他计算设备238可访问的一个或多个经过训练的机器学习模型中选择经过训练的机器学习模型。在其他计算设备238处提供的一个或多个经过训练的机器学习模型与在第三方应用216和/或计算设备202处提供的一个或多个经过训练的机器学习模型相比能够被更广泛地训练。换句话说,能够根据相比于被用于训练在自动助理204、第三方应用216和/或计算设备202处可用的模型的其他样本集的总数更大的样本集的总数来训练在计算设备238处可用的模型。在一些实现方式中,第三方应用216能够将它自己标识为输入引擎240的特定类型的应用,并且此后,输入引擎240能够选择适合于在处理内容时使用的模型。
在一些实现方式中,交互引擎228能够确定控件是否进行以下操作的设置:实例化使得内容在另一计算设备238处被处理的自动助理函数,还是实例化使得内容在计算设备202处被本地处理的助理函数。例如,在来自用户的在先许可情况下,上下文数据236能够包括当用户正在与特定的第三方应用216交互时用户的位置。第三方应用216的应用数据230能够指示当用户在家时用户更喜欢在计算设备202处处理图像。换句话说,当用户正在访问第三方应用216的相机功能并且经由第三方应用216调用自动助理功能性时,第三方应用216能够限制要在计算设备202处处理的自动助理功能性的运行。
作为示例,当用户在家并且访问第三方应用216时,容器引擎218能够使得客户端容器在计算设备202的存储器中被实例化。当用户出于在他们的家中拍照的目的而访问第三方应用216的相机接口时,容器引擎218能够将注入器容器实例化到存储器中。注入器容器能够标识用于执行各种图像操作的多个不同的函数并且客户端容器能够包括能够根据用户如何与相机接口交互而被指配值的一个或多个依赖对象。当用户以经由第三方应用216初始化自动助理操作的方式与相机接口交互时,第三方应用216能够标识指示用户关于自动助理操作的偏好的设置。至少当涉及自动助理功能性时,第三方应用216能够根据设置来确定用户更喜欢使得在家或在家附近被捕获的图像在他们的计算设备202处被排他地处理。结果,第三方应用216能够分析上下文数据236以确定用户是否在家。当用户在家时,第三方应用216能够使依赖对象被指配与用于处理在家中经由第三方应用216被捕获的一个或多个图像的自动助理函数相对应的值。当确定用户在他们正在与相机接口交互时不在家时,第三方应用216能够使依赖对象被指配与用于处理当用户不在家或不在家附近时经由第三方应用216被捕获的一个或多个其他图像的单独自动助理函数相对应的值。
在一些实现方式中,被指配给依赖对象的值能够基于正在访问第三方应用216的用户。例如,当确定第一用户正在与第三方应用216交互时,第三方应用216能够将依赖对象指配给依靠本地进程(例如,在计算设备202处排他地执行的进程)的一个或多个特定自动助理函数以使用这些自动助理函数来生成第三方应用内容。然而,当确定第二用户正在与第三方应用216交互时,第三方应用216能够将依赖对象指配给依靠远程进程(例如,在另一计算设备238处执行的进程)的某些其他自动助理函数以使用这些其他自动助理函数来生成第三方应用内容。
附加地或替换地,第三方应用216的一个或多个设置能够使第三方应用216将特定值指配给客户端容器的依赖对象以便使某些内容在使用一个或多个自动助理函数以进一步处理之前被抽象。作为示例,第三方应用216的特定设置能够使第三方应用216抽象某些文本内容(例如,创建文本内容的嵌入表示)和/或任何其他内容,然后使用抽象内容来运行被指配给特定依赖对象的自动助理函数。附加地或替换地,能够根据第三方应用216和/或自动助理204的设置或一个或多个其他设置在本地或在远程设备处处理抽象内容。以这种方式,能够在维护第三方应用内容的隐私和安全的同时还维护存储器,该存储器能够作为如何根据本文讨论的一些实现方式来实例化容器的结果被维护。
图3图示用于执行通过具有从表征一个或多个自动助理函数的容器注入的依赖关系的容器来表征的第三方应用操作的方法300。方法300能够由一个或多个计算设备、应用和/或能够使用自动助理功能性的任何其他装置或模块来执行。方法300能够包括确定是否已经经由客户端计算设备初始化了第三方应用的操作302。第三方应用能够是被安装在计算设备处和/或经由计算设备以其他方式可访问的应用,诸如具有经由远程服务器设备可用的功能性的应用。当确定第三方应用尚未被初始化时,方法300能够避开继续进行,直到第三方应用被初始化或者正被用户以其他方式访问为止。然而,当确定第三方应用已被初始化时,方法300能够进行到操作304。
操作304能够包括确定是否已经经由第三方应用初始化了特定操作。该操作能够对应于第三方应用的任何特征,诸如例如可经由第三方应用的接口访问的特征。例如,当第三方应用是消息传送应用时,该操作能够包括在计算设备的图形用户界面处渲染从另一用户接收到的消息。附加地或替换地,第三方应用能够是社交媒体应用、导航应用、购物应用、IoT控件应用、安全应用、和/或能够经由计算设备可访问的任何其他类型的应用。当确定操作尚未被初始化时,方法300能够返回到操作302。然而,当已经经由第三方应用初始化了操作时,方法300能够进行到操作306。
操作306能够包括基于经初始化的操作使客户端容器的依赖对象被指配参考值。能够根据经由第三方应用初始化的操作向客户端容器的依赖对象指配参考值。能够响应于用户输入、进程间通信、操作系统信号、和/或能够与计算设备相关联的数据的任何其他传输而初始化操作。作为示例,用户能够向第三方应用的图形用户界面提供输入以便初始化由第三方应用对操作的执行。输入能够对应于对能够为参考值提供基础的特定函数的选择。例如,用户输入能够使得第三方应用的另一接口在计算设备处被渲染,并且另一接口能够提供对通过注入器容器表征的函数的访问。
方法300能够从操作306进行到操作308,该操作308能够包括使得对应的注入器容器在计算设备的存储器中被实例化。注入器容器能够包括能够与在客户端容器中标识的一个或多个其他对象相关的一个或多个对象。作为示例,注入器容器能够包括根据来自用户的用户输入将参考值指配给客户端容器中标识的依赖对象的函数。例如,注入器容器能够表征指示是否向用户提供关于在第三方应用的接口处正在被渲染的特定内容的建议的函数。在一些实现方式中,响应于用户输入,函数能够将参考值指配给客户端容器的依赖对象以便采用自动助理函数来渲染建议。方法300能够从操作308进行到用于确定注入器容器是否提供自动助理函数与参考值之间的对应的操作310。
为了在操作310处做出确定,第三方应用和/或计算设备能够确定参考值是否标识自动助理函数。此确定能够基于在注入器容器中提供的信息。例如,注入器容器能够提供表征参考值与函数之间的对应的信息。当注入器容器标识参考值与自动助理函数之间的对应时,方法300能够进行到操作312。然而,当注入器容器标识参考值与非自动助理函数之间的对应时,方法300能够进行到操作316。
操作312能够包括使得助理服务容器(其包括自动助理函数)在存储器中被实例化。通过将自动助理服务容器实例化到存储器中,能够经由计算设备的一个或多个处理器运行与参考值相对应的自动助理函数。例如,方法300能够包括用于生成提供自动助理函数与依赖对象之间的对应的数据的可选操作314。所生成的数据能够表征用于自动助理函数数据和依赖对象的地址,和/或以其他方式将自动助理函数表征为客户端容器的一部分。方法300能够从操作312和/或操作314进行到操作316。
操作316能够包括使第三方应用操作被运行。例如,当第三方应用操作包括自动助理函数时,第三方应用能够使自动助理函数被运行。在一些实现方式中,自动助理函数能够从第三方应用接收一个或多个输入参数,同时自动助理函数与客户端容器相关。作为示例,第三方应用能够基于正在第三方应用的接口处被渲染的内容为自动助理函数提供一个或多个输入参数。以这种方式,当自动助理函数对应于用于生成建议的操作时,第三方应用能够基于正在被渲染的当前内容提供助理建议。通过以这种方式提供建议,第三方应用能够维持对第三方应用内容的控制,而不必经由一些其他广泛的进程间通信共享内容。此外,这能够维护计算设备的存储器资源,因为第三方应用在被初始化时不必实例化所有可用的容器,而是相反,能够依靠注入的依赖关系用于按需将容器实例化到存储器中。
图4是示例计算机系统410的框图。计算机系统410通常包括经由总线子系统412与许多外围设备进行通信的至少一个处理器414。这些外围设备可以包括存储子系统424(包括例如存储器425和文件存储子系统426)、用户接口输出设备420、用户接口输入设备422和网络接口子系统416。输入和输出设备允许用户与计算机系统410交互。网络接口子系统416提供到外部网络的接口并且耦合到其他计算机系统中的对应接口设备。
用户接口输入设备422可以包括键盘、诸如鼠标、轨迹球、触摸板或图形平板的指向设备、扫描器、并入到显示器中的触摸屏、诸如话音识别系统的音频输入设备、麦克风和/或其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括将信息输入到计算机系统410中或到通信网络上的所有可能类型的设备和方式。
用户接口输出设备420可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的某种其他机制。显示子系统还可以诸如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括从计算机系统410向用户或向另一机器或计算机系统输出信息的所有可能类型的设备和方式。
存储子系统424存储提供本文描述的一些或所有模块的功能性的编程和数据构造。例如,存储子系统424可以包括用于执行方法300的所选方面和/或实现系统200、计算设备102、自动助理106、其他计算设备328和/或本文讨论的任何其他应用、设备、装置和/或模块中的逻辑。
这些软件模块通常由处理器414单独或与其他处理器相结合地运行。存储子系统424中使用的存储器425能够包括多个存储器,其包括用于在程序运行期间存储指令和数据的主随机存取存储器(RAM)430和其中存储有固定指令的只读存储器(ROM)432。文件存储子系统426能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实现方式的功能性的模块可以由文件存储子系统426存储在存储子系统424中,或者存储在可由处理器414访问的其他机器中。
总线子系统412提供用于让计算机系统410的各种组件和子系统按预期彼此通信的机制。尽管总线子系统412被示意性地示出为单个总线,但是总线子系统的替代实现方式可以使用多个总线。
计算机系统410能够是包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其他数据处理系统或计算设备的各种类型。由于计算机和网络的不断改变的性质,图4中描绘的计算机系统410的描述仅旨在作为用于图示一些实现方式的特定示例。计算机系统410的许多其他配置可能具有比图4中描绘的计算机系统更多或更少的组件。
在本文描述的系统收集关于用户(或如本文常常提及的那样为“参与者”)的个人信息或者可以利用个人信息的情形下,可以给用户提供用于控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前地理位置的信息),或者用于控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。另外,某些数据可以在它被存储或使用之前被以一种或多种方式处理,使得个人可标识的信息被去除。例如,可以处理用户的身份,使得对该用户来说不能够确定个人可标识的信息,或者可以在获得地理位置信息的情况下使用户的地理位置被一般化(诸如到城市、邮政编码或州级),使得不能够确定用户的特定地理位置。因此,用户可以控制信号如何关于用户被收集和/或使用。
虽然已在本文中描述并且图示若干实现方式,但是可以利用用于执行功能和/或获得结果和/或本文描述的一个或多个优点的各种其他手段和/或结构,并且此类变化和/或修改中的每一个被视为在本文描述的实现方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置都意在为示例性的,并且实际参数、尺寸、材料和/或配置将取决于教导被用于的一个或多个特定应用。本领域的技术人员将认识到或能够使用不超过例行实验来探知本文描述的特定实现方式的许多等同物。因此,应当理解,前面的实现方式仅作为示例被呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体地描述和要求保护的方式实践实现方式。本公开的实现方式致力于本文描述的每个单独的特征、系统、制品、材料、套件和/或方法。另外,两个或更多个此类特征、系统、制品、材料、套件和/或方法的任何组合在此类特征、系统、制品、材料、套件和/或方法不是相互矛盾的情况下,被包括在本公开的范围内。
在一些实现方式中,一种由一个或多个处理器实现的方法被阐述为包括诸如以下步骤的操作:当用户正在经由计算设备访问客户端应用时在计算设备处使容器的实例在计算设备的存储器中,其中,容器包括与未在存储器中实例化的自动助理函数相关联的依赖对象。该方法能够进一步包括以下操作:当用户正在访问客户端应用时,确定用户已经向客户端应用的接口提供了输入,其中,该输入由用户提供以促进使自动助理动作经由客户端应用执行。该方法能够进一步包括以下操作:基于确定用户已经向客户端应用的接口提供了输入,使得依照来自用户的输入向依赖对象指配值。该方法能够进一步包括以下操作:使得另一容器在计算设备的存储器中被实例化,其中,另一容器包括自动助理函数并且履行依赖对象与自动助理函数之间的依赖关系。该方法能够进一步包括以下操作:当自动助理函数在存储器中被实例化时,通过引起容器的依赖对象的运行来初始化自动助理动作的执行,其中,自动助理动作的执行导致基于指配给依赖对象的值来生成客户端应用内容。该方法能够进一步包括以下操作:基于初始化自动助理动作的执行,使客户端应用在接口处渲染客户端应用内容。
在一些实现方式中,该方法能够进一步包括以下操作:基于对客户端应用的接口的输入,确定该输入是否对应于受限内容;以及响应于确定输入对应于受限内容,在计算设备处使用自动助理函数来生成客户端应用内容。在一些实现方式中,该方法能够进一步包括以下操作:基于对客户端应用的接口的输入,确定该输入是否对应于受限内容;以及响应于确定输入不对应于受限内容,在与计算设备通信的远程服务器设备处初始化自动助理动作,并且从远程服务器设备接收客户端应用内容。
在一些实现方式中,容器还包括与依赖对象的参数相关的对象变量。在一些实现方式中,该方法能够进一步包括以下操作:向对象变量指配特定值,其中,特定值基于正在客户端应用的接口处渲染的自然语言内容或者基于来自用户的输入。在一些实现方式中,该方法能够进一步包括以下操作:在确定用户已经向客户端应用的接口提供了输入之后:确定用户已经向另一客户端应用提供了单独输入,其中,另一客户端应用的特定容器在计算设备的存储器中被实例化,并且其中,特定容器包括被指配给也在存储器中被实例化的自动助理函数的单独依赖对象。在一些实现方式中,该方法能够进一步包括以下操作:基于来自用户的单独输入,使得依照来自用户的输入向单独依赖对象指配不同的值。在一些实现方式中,客户端应用允许用户初始化相对于用户能够经由另一客户端应用初始化的其他动作不同的动作。在一些实现方式中,客户端应用包括允许用户经由客户端应用向其他用户发送自然语言内容的消息传送功能性。
在其他实现方式中,一种由一个或多个处理器实现的方法被阐述为包括诸如以下步骤的操作:在客户端应用正在计算设备处运行的同时,使得注入器容器和客户端容器在计算设备的存储器中被实例化,其中,客户端容器包括与未在存储器中被实例化的一个或多个自动助理函数相关联的依赖对象。该方法能够进一步包括以下操作:在客户端应用正在计算设备处运行的同时,确定用户已经向客户端应用提供了输入以促进使客户端应用执行操作。该方法能够进一步包括以下操作:基于来自用户的输入,生成提供在客户端容器中标识的依赖对象与通过注入器容器标识的一个或多个自动助理函数中的特定自动助理函数之间的相关性的参数数据。该方法能够进一步包括以下操作:基于通过注入器容器标识的特定自动助理函数,使服务容器被实例化到计算设备的存储器中,其中,服务容器包括通过参数数据引用的特定自动助理函数。该方法能够进一步包括以下操作:由客户端应用使用特定自动助理函数来生成客户端应用内容,其中,客户端应用内容经由计算设备的接口渲染。
在一些实现方式中,用户输入被提供给客户端应用的图形用户界面,并且当在计算设备的接口处渲染图形用户界面时注入器容器在计算设备的存储器中被实例化。在一些实现方式中,生成客户端应用内容包括:在客户端应用内容被渲染时或被渲染之后,使得服务容器不再在计算设备的存储器中被实例化。
在其他的实现方式中,一种由一个或多个处理器实现的方法被阐述为包括诸如以下步骤的操作:由客户端应用使客户端容器的实例和注入器容器的实例在提供对自动助理的访问的计算设备的存储器中,其中,客户端容器包括依赖对象,并且其中,注入器容器标识能够根据客户端应用的操作被指配给依赖对象的多个不同的自动助理函数。该方法能够进一步包括以下操作:由客户端应用并且当客户端容器和注入器容器在存储器中被实例化时,初始化与自动助理相关联的应用操作的执行。该方法能够进一步包括以下操作:基于客户端应用初始化应用操作,使客户端容器的依赖对象被指配注入器容器中标识的特定自动助理函数。该方法能够进一步包括以下操作:由客户端应用并且基于应用操作,使得特定服务容器在计算设备的存储器中被实例化,其中,该特定服务容器包括特定自动助理函数并且履行依赖对象与特定自动助理函数之间的依赖关系。该方法能够进一步包括以下操作:当特定自动助理函数在存储器中被实例化时,引起依赖对象和特定自动助理函数的运行,其中依赖对象和特定自动助理函数的运行导致客户端应用内容被生成。该方法能够进一步包括以下操作:经由计算设备或另一计算设备渲染客户端应用内容。
在一些实现方式中,该方法能够进一步包括以下操作:确定应用操作是否与受限内容相关联;以及响应于确定应用操作与受限内容相关联,在计算设备处使用特定自动助理函数来生成客户端应用内容。在一些实现方式中,该方法能够进一步包括以下操作:确定应用操作是否与受限内容相关联;以及响应于确定应用操作与受限内容不相关联:在与计算设备通信的远程服务器设备处初始化特定自动助理函数或不同的自动助理函数的运行,并且从远程服务器设备接收客户端应用内容。
在一些实现方式中,客户端容器还包括与依赖对象的参数相关的对象变量。在一些实现方式中,该方法能够进一步包括以下操作:向对象变量指配特定值,其中,特定值基于正在客户端应用的接口处渲染的自然语言内容或图像,或者基于来自用户的输入。在一些实现方式中,该方法能够进一步包括以下操作:确定另一客户端应用正在运行不同的应用操作,其中,另一客户端应用的特定容器在计算设备的存储器中被实例化,并且其中,特定容器包括被指配给也在存储器中被实例化的特定自动助理函数的独立依赖对象。在一些实现方式中,该方法能够进一步包括以下操作:基于对另一客户端应用的一个或多个不同的输入使单独依赖对象被指配不同的值。在一些实现方式中,客户端应用允许用户初始化与用户能够经由另一客户端应用初始化的其他动作不同的动作。

Claims (23)

1.一种由一个或多个处理器实现的方法,所述方法包括:
当用户正在经由计算设备访问客户端应用时,在所述计算设备处使容器的实例在所述计算设备的存储器中,
其中,所述容器包括与未在所述存储器中实例化的自动助理函数相关联的依赖对象;
当所述用户正在访问所述客户端应用时,确定所述用户已经向所述客户端应用的接口提供了输入,
其中,所述输入由所述用户提供以促进使自动助理动作经由所述客户端应用执行;
基于确定所述用户已经向所述客户端应用的所述接口提供了所述输入,使得根据来自所述用户的所述输入向所述依赖对象指配值;
使得另一容器在所述计算设备的所述存储器中被实例化,
其中,所述另一容器包括所述自动助理函数并且履行所述依赖对象与所述自动助理函数之间的依赖关系;
当所述自动助理函数在所述存储器中被实例化时,通过引起所述容器的所述依赖对象的运行来初始化所述自动助理动作的执行,
其中,所述自动助理动作的所述执行导致基于指配给所述依赖对象的所述值来生成客户端应用内容;以及
基于初始化所述自动助理动作的执行,使所述客户端应用在所述接口处渲染所述客户端应用内容。
2.根据权利要求1所述的方法,进一步包括:
基于对所述客户端应用的所述接口的所述输入,确定所述输入是否对应于受限内容;以及
响应于确定所述输入对应于受限内容,在所述计算设备处使用所述自动助理函数来生成所述客户端应用内容。
3.根据权利要求1或2所述的方法,进一步包括:
基于对所述客户端应用的所述接口的所述输入,确定所述输入是否对应于受限内容;以及
响应于确定所述输入不对应于受限内容,在与所述计算设备通信的远程服务器设备处初始化所述自动助理动作,并且从所述远程服务器设备接收所述客户端应用内容。
4.根据权利要求1或2所述的方法,其中,所述容器还包括与所述依赖对象的参数相关的对象变量。
5.根据权利要求1或2所述的方法,进一步包括:
向所述对象变量指配特定值,其中,所述特定值基于正在所述客户端应用的所述接口处渲染的自然语言内容或者基于来自所述用户的所述输入。
6.根据权利要求1或2所述的方法,进一步包括:
在确定所述用户已经向所述客户端应用的所述接口提供了所述输入之后:
确定所述用户已经向另一客户端应用提供了单独输入,
其中,所述另一客户端应用的特定容器在所述计算设备的所述存储器中被实例化,以及
其中,所述特定容器包括被指配给也在所述存储器中被实例化的所述自动助理函数的单独依赖对象。
7.根据权利要求6所述的方法,进一步包括:
基于来自所述用户的所述单独输入,使得依照来自所述用户的所述输入向所述单独依赖对象指配不同的值。
8.根据权利要求6所述的方法,其中,所述客户端应用允许所述用户初始化相对于所述用户能够经由所述另一客户端应用初始化的其他动作不同的动作。
9.根据权利要求1或2所述的方法,其中,所述客户端应用包括允许所述用户经由所述客户端应用向其他用户发送自然语言内容的消息传送功能性。
10.一种由一个或多个处理器实现的方法,所述方法包括:
在客户端应用正在计算设备处运行的同时,使得注入器容器和客户端容器在所述计算设备的存储器中被实例化,
其中,所述客户端容器包括与未在所述存储器中被实例化的一个或多个自动助理函数相关联的依赖对象;
在所述客户端应用正在所述计算设备处运行的同时,确定用户已经向所述客户端应用提供了输入以促进使所述客户端应用执行操作;
基于来自所述用户的所述输入,生成参数数据,所述参数数据提供在所述客户端容器中标识的所述依赖对象与通过所述注入器容器标识的所述一个或多个自动助理函数中的特定自动助理函数之间的相关性;
基于由所述注入器容器标识的所述特定自动助理函数,使服务容器被实例化到所述计算设备的所述存储器中,
其中,所述服务容器包括由所述参数数据引用的所述特定自动助理函数;
由所述客户端应用使用所述特定自动助理函数来生成客户端应用内容,
其中,所述客户端应用内容经由所述计算设备的接口被渲染。
11.根据权利要求10所述的方法,其中,所述用户输入被提供给所述客户端应用的图形用户界面,并且当在所述计算设备的所述接口处渲染所述图形用户界面时,所述注入器容器在所述计算设备的所述存储器中被实例化。
12.根据权利要求10或11所述的方法,其中,生成所述客户端应用内容包括:
在所述客户端应用内容被渲染时或被渲染之后,使得所述服务容器不再在所述计算设备的所述存储器中被实例化。
13.一种由一个或多个处理器实现的方法,所述方法包括:
由客户端应用使客户端容器的实例和注入器容器的实例在提供对自动助理的访问的计算设备的存储器中,
其中,所述客户端容器包括依赖对象,以及
其中,所述注入器容器标识能够根据所述客户端应用的操作被指配给所述依赖对象的多个不同的自动助理函数;
由所述客户端应用并且当所述客户端容器和所述注入器容器在所述存储器中被实例化时初始化与所述自动助理相关联的应用操作的执行;
基于所述客户端应用初始化所述应用操作,使所述客户端容器的所述依赖对象被指配在所述注入器容器中标识的特定自动助理函数;
由所述客户端应用并且基于所述应用操作使得特定服务容器在所述计算设备的所述存储器中被实例化,
其中,所述特定服务容器包括所述特定自动助理函数并且履行所述依赖对象与所述特定自动助理函数之间的依赖关系;
当所述特定自动助理函数在所述存储器中被实例化时,引起所述依赖对象和所述特定自动助理函数的运行,
其中,所述依赖对象和所述特定自动助理函数的所述运行导致客户端应用内容被生成;以及
经由所述计算设备或另一计算设备来渲染所述客户端应用内容。
14.根据权利要求13所述的方法,进一步包括:
确定所述应用操作是否与受限内容相关联;以及
响应于确定所述应用操作与所述受限内容相关联,在所述计算设备处使用所述特定自动助理函数来生成所述客户端应用内容。
15.根据权利要求13或14所述的方法,进一步包括:
确定所述应用操作是否与受限内容相关联;以及
响应于确定所述应用操作不与所述受限内容相关联:
在与所述计算设备通信的远程服务器设备处初始化所述特定自动助理函数或不同的自动助理函数的运行,以及
从所述远程服务器设备接收所述客户端应用内容。
16.根据权利要求13或14所述的方法,其中,所述客户端容器还包括与所述依赖对象的参数相关的对象变量。
17.根据权利要求16所述的方法,进一步包括:
向所述对象变量指配特定值,
其中,所述特定值基于正在所述客户端应用的接口处渲染的自然语言内容或图像,或者基于来自用户的输入。
18.根据权利要求13或14所述的方法,进一步包括:
确定另一客户端应用正在运行不同的应用操作,
其中,所述另一客户端应用的特定容器在所述计算设备的所述存储器中被实例化,以及
其中,所述特定容器包括被指配给也在所述存储器中被实例化的所述特定自动助理函数的单独依赖对象。
19.根据权利要求18所述的方法,进一步包括:
使得所述单独依赖对象基于对所述另一客户端应用的一个或多个不同的输入被指配不同的值。
20.根据权利要求18所述的方法,其中,所述客户端应用允许用户初始化与所述用户能够经由所述另一客户端应用初始化的其他动作不同的动作。
21.一种计算机程序产品,所述计算机程序产品包括指令,所述指令在由一个或多个处理器运行时使所述一个或多个处理器执行根据前述权利要求中的任一项所述的方法。
22.一种计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令在由一个或多个处理器运行时使所述一个或多个处理器执行根据权利要求1至20中的任一项所述的方法。
23.一种系统,所述系统包括用于执行根据权利要求1至20中的任一项所述的方法的一个或多个处理器。
CN201980101516.6A 2019-10-29 2019-10-29 用于维护应用内容的隐私的自动助理架构 Active CN114586007B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/058569 WO2021086331A1 (en) 2019-10-29 2019-10-29 Automated assistant architecture for preserving privacy of application content

Publications (2)

Publication Number Publication Date
CN114586007A CN114586007A (zh) 2022-06-03
CN114586007B true CN114586007B (zh) 2024-04-09

Family

ID=68582495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980101516.6A Active CN114586007B (zh) 2019-10-29 2019-10-29 用于维护应用内容的隐私的自动助理架构

Country Status (4)

Country Link
US (3) US11374887B2 (zh)
EP (1) EP4022431A1 (zh)
CN (1) CN114586007B (zh)
WO (1) WO2021086331A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4022431A1 (en) 2019-10-29 2022-07-06 Google LLC Automated assistant architecture for preserving privacy of application content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US9223683B1 (en) * 2012-05-03 2015-12-29 Google Inc. Tool to analyze dependency injection object graphs for common error patterns
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
CN107636613A (zh) * 2015-05-14 2018-01-26 微软技术许可有限责任公司 到第三方应用的数字助理可扩展性
US10198877B1 (en) * 2018-05-23 2019-02-05 Google Llc Providing a communications channel between instances of automated assistants

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587836B1 (en) * 1997-09-26 2003-07-01 Worldcom, Inc. Authentication and entitlement for users of web based data management programs
US7472093B2 (en) 2000-03-08 2008-12-30 Rsa Security Inc. Targeted delivery of informational content with privacy protection
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7925616B2 (en) * 2001-06-19 2011-04-12 Microstrategy, Incorporated Report system and method using context-sensitive prompt objects
US7559048B1 (en) * 2001-06-19 2009-07-07 Microstrategy Incorporated System and method for managing objects between projects
US7162451B2 (en) 2001-11-30 2007-01-09 International Business Machines Corporation Information content distribution based on privacy and/or personal information
US20040145601A1 (en) * 2003-01-29 2004-07-29 International Business Machines Corporation Method and a device for providing additional functionality to a separate application
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US10276170B2 (en) * 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8863074B2 (en) * 2010-01-27 2014-10-14 Oracle International Corporation Software modeling framework
US20120216219A1 (en) * 2011-02-21 2012-08-23 General Electric Company, A New York Corporation Methods and apparatus for dynamic customization of clinical workflows
US8661410B2 (en) * 2011-03-11 2014-02-25 Oracle International Corporation Managed enterprise software components as dynamic services
US8856734B2 (en) * 2011-03-11 2014-10-07 Oracle International Corporation Type-safe dependency injection of services into enterprise components
US20140089507A1 (en) * 2012-09-26 2014-03-27 Gyan Prakash Application independent content control
US9043458B2 (en) * 2013-03-19 2015-05-26 Cognizant Technology Solutions India Pvt. Ltd. Framework for facilitating implementation of multi-tenant SaaS architecture
US10114745B2 (en) * 2014-10-07 2018-10-30 Red Hat, Inc. Assisted garbage collection in a virtual machine
US10223074B2 (en) * 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US20170214701A1 (en) * 2016-01-24 2017-07-27 Syed Kamran Hasan Computer security based on artificial intelligence
JP6686226B2 (ja) * 2016-04-18 2020-04-22 グーグル エルエルシー 適切なエージェントの自動化アシスタント呼び出し
US10855625B1 (en) * 2016-05-11 2020-12-01 Workato, Inc. Intelligent, adaptable, and trainable bot that orchestrates automation and workflows across multiple applications
US10613834B2 (en) * 2016-09-17 2020-04-07 Oracle International Corporation Systems and method for supporting reactive responses using a dependency injection framework
US10120786B2 (en) * 2016-12-13 2018-11-06 Sap Se Programmatic access control validation
US11513864B2 (en) * 2018-03-22 2022-11-29 Amazon Technologies, Inc. Adoption of existing virtual computing resources into logical containers for management operations
US20190324798A1 (en) * 2018-04-18 2019-10-24 Unisys Corporation Method and system for migrating xml schemas in application releases
US11030269B2 (en) * 2018-06-03 2021-06-08 Apple Inc. Analytic data collection for application navigation
US11188353B2 (en) * 2018-07-12 2021-11-30 Vmware, Inc. Runtime extension system for bundled web application
US11689370B2 (en) * 2019-06-04 2023-06-27 The Toronto-Dominion Bank Dynamic management and implementation of consent and permissioning protocols using container-based applications
EP4022431A1 (en) 2019-10-29 2022-07-06 Google LLC Automated assistant architecture for preserving privacy of application content
KR20210061091A (ko) * 2019-11-19 2021-05-27 삼성전자주식회사 인텔리전트 어시스턴스 서비스를 제공하기 위한 전자 장치 및 그의 동작 방법
US20230095576A1 (en) * 2021-09-24 2023-03-30 Google Llc Data protection for computing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US9223683B1 (en) * 2012-05-03 2015-12-29 Google Inc. Tool to analyze dependency injection object graphs for common error patterns
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
CN107636613A (zh) * 2015-05-14 2018-01-26 微软技术许可有限责任公司 到第三方应用的数字助理可扩展性
US10198877B1 (en) * 2018-05-23 2019-02-05 Google Llc Providing a communications channel between instances of automated assistants

Also Published As

Publication number Publication date
US11374887B2 (en) 2022-06-28
US20210328949A1 (en) 2021-10-21
US11750544B2 (en) 2023-09-05
WO2021086331A1 (en) 2021-05-06
US20220329550A1 (en) 2022-10-13
US20230412538A1 (en) 2023-12-21
EP4022431A1 (en) 2022-07-06
CN114586007A (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
US11790004B2 (en) Systems, methods, and apparatuses for providing assistant deep links to effectuate third-party dialog session transfers
US11900944B2 (en) Initializing non-assistant background actions, via an automated assistant, while accessing a non-assistant application
US20230049562A1 (en) Document creation and editing via automated assistant interactions
US20230412538A1 (en) Automated assistant architecture for preserving privacy of application content
CN113424151A (zh) 用于具有受限架构的第三方车辆计算设备的自动化助理建议
US20230385022A1 (en) Automated assistant performance of a non-assistant application operation(s) in response to a user input that can be limited to a parameter(s)
US20230336521A1 (en) Sending messages from smart speakers and smart displays via smartphones
CN111771189A (zh) 提供在调解助理应用处的动态自动响应的系统、方法和装置
CN116724304A (zh) 用于在单独应用中引入或控制搜索过滤器参数的自动化助理
US20220215179A1 (en) Rendering content using a content agent and/or stored content parameter(s)
US11885632B2 (en) Conditional preparation for automated assistant input from a user in a vehicle
US11726641B1 (en) Encoding/decoding user interface interactions
US20240038246A1 (en) Non-wake word invocation of an automated assistant from certain utterances related to display content
US20220147775A1 (en) Generating a selectable suggestion using a provisional machine learning model when use of a default suggestion model is inconsequential
US20240087564A1 (en) Restricting third party application access to audio data content

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant