CN113574503B - 在功能手机处主动缓存瞬时助手动作建议 - Google Patents
在功能手机处主动缓存瞬时助手动作建议 Download PDFInfo
- Publication number
- CN113574503B CN113574503B CN201980093783.3A CN201980093783A CN113574503B CN 113574503 B CN113574503 B CN 113574503B CN 201980093783 A CN201980093783 A CN 201980093783A CN 113574503 B CN113574503 B CN 113574503B
- Authority
- CN
- China
- Prior art keywords
- helper
- metadata
- action
- time
- client application
- 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
Links
- 230000009471 action Effects 0.000 title claims abstract description 219
- 230000001052 transient effect Effects 0.000 title claims abstract description 196
- 238000009877 rendering Methods 0.000 claims abstract description 80
- 230000004044 response Effects 0.000 claims description 95
- 238000000034 method Methods 0.000 claims description 77
- 230000008859 change Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 6
- 230000001755 vocal effect Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 74
- 230000008569 process Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000013518 transcription Methods 0.000 description 4
- 230000035897 transcription Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000692 anti-sense effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 235000013555 soy sauce Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
在客户端设备(例如,功能手机)处主动缓存瞬时助手动作建议,用于由客户端设备的助手客户端应用选择性渲染。瞬时助手动作建议在经由助手客户端应用渲染并被选择时使助手客户端应用启动执行对应的助手动作。在各种实施方式中,预取的瞬时动作建议可以是时间受约束建议,其至少包括相关联的渲染限制元数据,该渲染限制元数据定义了时间受约束建议的渲染被限制到的一个或多个时间窗口。主动缓存刷新率元数据还可以与瞬时动作建议相关联,并定义其间助手客户端应用将避免与远程系统接口以预取更新的瞬时助手动作建议的持续时间。
Description
背景技术
术语“功能手机(feature phone)”是用于描述一类缺乏现代智能手机的全部功能的手持计算机的反义词。功能手机通常没有触摸屏,而是选择非触摸显示屏(例如背光LCD屏幕)和物理键盘和/或物理导航按钮。功能手机还可以包括低质量麦克风、低质量摄像头、用于Wi-Fi连接的硬件、用于宽带蜂窝网络连接的硬件(例如,3G、4G和/或5G)和/或全球定位系统(GPS)组件。框302
已经为功能手机开发了移动操作系统,其使得能够下载和安装(和/或预加载)应用。应用可以是例如可以用于JavaScript的基于HTML5的应用。这种操作系统的一个非限制性示例是由Kai OS Technologies Inc.开发的基于Linux的移动操作系统KaiOS。许多功能手机经由基于HTML5的应用,使用户能够体验与现代智能手机上体验的功能类似的功能,但使用较少的硬件资源(例如,较少的内存使用、较少的处理器使用等)。
尽管由功能手机操作系统执行的基于HTML5的应用可以提供减少的硬件使用(与其现代智能手机对应物相比),但功能手机操作系统和/或功能手机的有限硬件资源也呈现用于有效实现各种应用的技术挑战。此类应用的一个示例在本文中称为“助手客户端应用”(有时也称为“自动助手客户端应用”、“交互式个人助手应用”、“智能个人助手应用”、“个人语音助手应用”等)。
发明内容
本文公开的实施方式涉及在功能手机或其他客户端设备处主动缓存瞬时助手动作建议以供设备的助手客户端应用选择性渲染。助手客户端应用至少选择性地与远程助手组件接口以经由功能手机或其他客户端设备的助手客户端应用提供自动化助手功能。当酱油助手客户端应用渲染并由在功能手机处的用户输入选择时,瞬时助手动作建议(在此也称为“瞬时动作建议”)导致助手客户端应用启动对应助手动作的执行(可选地通过与远程助手组件交互的方式)。
在各种实施方式中,用于瞬时动作建议的元数据包括与瞬时动作建议的文本和/或其他内容(例如,图像)不同的对应动作元数据。在那些实施方式中,动作元数据用于启动对应助手动作的执行。例如,可以将动作元数据传输到远程自动化助手组件以启动动作。动作元数据可以包括例如替代文本或更简明的内容,其在远程自动化助手组件处(直接或间接)映射到对应的助手动作。在动作元数据比瞬时动作建议的文本和/或其他内容更简洁并且通过非语音输入选择瞬时动作建议的情况下,向远程自动化助手组件传输更高效的数据可以用来发起对应的助手动作。可以用任何用户设备——包括但不限于本文在一些示例中描述的功能手机——实现更高效的数据传输的这种好处。更高效的数据传输还可以改进网络条件较差(例如网络连接较差或不存在)的情况或位置的实施方式。此外,在各种实施方式中,助手动作是本地助手动作,因为它可以在功能手机(或其他用户设备)本地执行——尽管瞬时动作建议本身不能直接在功能手机处执行。在这些实施方式中,功能手机可以直接利用动作元数据来执行动作,而无需与远程自动化助手组件进行通信。例如,瞬时动作建议可以是“自拍”,动作元数据可以由功能手机直接执行,以使功能手机的相机应用(或助手客户端应用的相机功能)被自动打开,具有来自功能手机的前置摄像头的视场。由于功能手机的限制,“自拍”的用户输入本身不被功能手机直接执行,除非功能手机与可以解释用户输入并作为回应提供对应的动作的远程自动化助手组件通信。另一方面,通过将动作元数据本地缓存并与“自拍”瞬时动作建议相关联,可以响应瞬时动作建议的选择直接执行对应动作——减少延迟并且无需功能手机与远程自动化助手组件通信以确定对应的动作。这在网络条件较差的情况或位置诸如——网络连接较差或不存在——中很有用。
如本文中更详细地描述的,其中存储有瞬时动作建议的功能手机的主动缓存是“主动的”,因为未响应于最近在功能手机处基于用户输入已经请求过瞬时动作建议而将瞬时动作建议存储在主动缓存中。相反,瞬时动作建议被从远程服务器主动预取,然后存储在主动缓存中——尽管之前可能从未在功能手机处请求或选择过。在一些实施方式中,可以响应于预取请求响应于在远程服务器处确定瞬时动作建议至少具有将来在功能手机处被选择的阈值概率来提供瞬时动作建议。此外,并且如本文中更详细地描述的,瞬时动作建议是“瞬时的”,因为它们(和/或其对应的元数据)仅在被去除和/或被更新的瞬时动作建议(和/或更新的对应元数据)替换之前的短持续时间(例如,少于10、7、5、3或1天)被存储在主动缓存中。如本文还描述的,在一些实施方式中,用于瞬时动作建议的对应元数据可以直接(例如,在时间戳元数据和生存时间的情况下)或间接(例如,在主动缓存刷新率元数据的情况下)定义它们在主动缓存中的持续时间。
在主动缓存瞬时动作建议中,助手客户端应用选择性地与远程自动化助手系统接口以预取瞬时动作建议和对应元数据。然后,助手客户端应用将预取的瞬时动作建议和对应元数据写入功能手机或另一用户设备的本地存储中的主动缓存。当助手客户端应用随后正在执行时并且在要提供动作建议的状态(例如,初始调用状态或某些响应之后的状态)中,可以访问主动缓存以有效地选择和渲染瞬时动作建议的一个或多个。通过从本地主动缓存中选择瞬时动作建议,它们可以以最小的延迟渲染(例如,因为不必从远程系统主动检索它们)和/或可以在网络连接差或不存在(从而阻止从远程系统及时主动检索建议)的情况下渲染。使用任何用户设备——包括但不限于功能手机——都可以实现在渲染时延迟最小和/或能够在网络条件较差的情况或位置中进行渲染的好处。例如,用户设备可以在“低功率”模式下操作,并且如本文所述的高级预存储的性能可以帮助向用户设备提供省电特征而不影响设备的响应性。
在各种实施方式中,预取的瞬时动作建议可以是时间受约束建议,其至少包括相关联的渲染限制元数据。渲染限制元数据定义了时间受约束建议的渲染被限制到的一个或多个时间窗口(例如,特定日期、一周中的特定天和/或一天中的特定时间)。因此,助手客户端应用可以在确定是否选择时间受约束建议进行渲染时参考此类渲染限制元数据——避免在不符合渲染限制元数据定义的时间窗口的时间选择它,并且至少有选择地(并且可能总是)在符合时间窗口的时间选择它。使用此类渲染限制元数据可以使时间受约束建议在它相关之前存储在主动缓存中,但在相关时以最小的延迟进行渲染(如渲染限制元数据所定义)——并且在不相关时被有效地忽略渲染(从而防止不相关的建议的在计算上浪费的渲染)。
此外,渲染限制元数据的利用克服了功能手机和/或功能手机的操作系统的一个或多个约束。作为一个非限制性示例,功能手机操作系统尤其经常使有限数量的应用(例如,单个应用)能够在任何给定时间在操作系统的前台执行,从而防止任何应用在操作系统的后台中运行(或仅使得非常有限数量的应用能够在后台运行)。此外,即使当应用在前台执行时,操作系统和/或资源约束(例如,处理器和/或存储器约束)可以限制应用在给定时间可以执行的并行进程的数量。渲染限制元数据的利用使得时间受约束建议能够在相关之前被存储。这种先进的预存储是在下述情况下被执行的:认识到对瞬时动作建议(和相关元数据)的预取将是间歇性的,并且当在功能手机处使用时,取决于在前台实际执行的自动助手客户端应用和/或取决于在前台或后台时处于“空闲”状态(例如,由于并行进程的执行的限制)——这种情况相对较少发生。以这种方式,当助手客户端应用在功能手机处执行时采用这里描述的高级预存储可以帮助克服功能手机和/或功能手机的操作系统的一个或多个约束。
此外,鉴于功能手机的上述和/或其他约束,和/或鉴于节省网络带宽的利用,利用瞬时动作建议预取的元数据还可以包括时间戳元数据。时间戳元数据可以定义预取瞬时助手动作建议的时间或远程系统生成瞬时助手动作建议的时间。助手客户端应用可以参考时间戳元数据,以确定主动缓存中相关联的瞬时动作建议的年龄。助手客户端应用可以根据年龄确定是否从缓存中移除陈旧的瞬时动作建议(从而释放功能手机的通常有限的存储资源),忽略缓存中陈旧的瞬时动作建议(不必须立即删除它们),和/或是否预取更新的瞬时动作建议和/或相关联的元数据(其可以进一步基于下面描述的主动缓存刷新率元数据)。在确定是否删除陈旧的瞬时动作建议和/或忽略陈旧的瞬时动作建议时,助手客户端应用可以可选地引用生存时间值。生存时间值可以定义持续时间或阈值时间段,在其之后瞬时动作建议可以被认为是陈旧的。例如,如果当前时间或时间戳大于时间戳元数据(瞬时助手动作建议的)和生存时间值定义的持续时间的组合,则可以认为已经超过生存时间阈值并且可能不渲染瞬时助手动作建议。或者,生存时间值可以定义时间戳参考,其中,仅当时间戳元数据与参考时间戳进行比较并且没有超过生存时间阈值时才可以渲染瞬时助手动作建议。例如,如果时间戳元数据大于(或小于,取决于时间戳的具体配置)参考时间戳,可以认为已经超过生存时间阈值,可能渲染瞬时助手动作建议。在某些实施方式中,可以将生存时间值作为在预取期间检索的元数据的一部分提供——或者作为在单独的异步配置检索期间检索的元数据的一部分提供(下面更详细地描述),并且生存时间值可以被分配为瞬时动作中的一个或多个(例如,所有)建议的元数据。提供给功能手机的助手客户端应用的最近生存时间值可以取代紧接在前的生存时间值,且可以与紧接在前的生存时间值不同。因此,助手应用使用的生存时间值可以随时间变化,并且可以由远程系统的各种考虑因素生成,诸如最近缓存的瞬时动作建议的特性。
主动缓存刷新率元数据可以定义持续时间,在该持续时间期间助手客户端应用将避免与远程系统接口以预取更新的瞬时助手动作建议。例如,为了节省与预取瞬时动作建议和/或关联的元数据相关联的网络带宽和/或客户端和/或服务器处理,客户端助手应用可以避免每次它被执行时预取新的更新的瞬时助手动作建议和/或相关联的元数据。相反,在一些实施方式中,新的更新的瞬时助手动作建议和/或相关联的元数据的预取率可以至少部分地基于缓存刷新率元数据。
如本文所述,在一些实施方式中,可以作为与瞬时动作建议一起预取的元数据的一部分提供主动缓存刷新率元数据。附加地或替代地,可以相对于瞬时动作建议预取请求异步地将主动缓存刷新率元数据传输到功能手机(或其他客户端设备)。例如,可以响应于自动化助手应用的单独配置检索而提供主动缓存刷新率元数据。例如,配置检索可以是到远程系统的传输,其可选地包括当前配置设置的指示,包括但不限于当前主动缓存刷新率元数据和/或当前生存时间值。响应于传输,并且可选地仅当远程系统确定传输所指示的当前配置设置与更新的配置设置不同时,远程系统可以提供更新的配置设置。可选地,助手客户端应用可以等待实现任何更新的配置设置,直到助手客户端应用关闭(即,作为关闭过程的一部分实施)或直到助手客户端应用从关闭状态再次打开(即,作为关闭过程的一部分实施)。
在其中异步提供更新的主动缓存刷新率元数据和/或生存时间值的实施方式中,这使得能够在与瞬时动作建议预取请求分离的和可选地比瞬时动作建议预取请求更数据有效的过程中调整瞬时动作建议刷新率和/或瞬时动作建议使用率。例如,与瞬时助手动作预取请求相比,配置检索可以更频繁地执行,但使用较少的网络资源、较少的客户端资源和/或较少的服务器资源。这可以使能:响应于服务器端确定某些条件已经发生(例如,时间受约束建议的时间窗口的改变)而增加缓存刷新率;响应于服务器端确定某些条件已经发生(例如,确定先前提供的瞬时动作建议由于动态事件而过时)更改生存时间值;响应于服务器端确定某些条件已经发生(例如,网络条件已经恶化和/或服务器负载过大)而降低缓存刷新率;等等。此外,可以选择性地在逐个区域的基础上基于在各个区域中的网络和/或服务器条件和/或基于大多数最近为各个区域提供的瞬时动作建议而调整和提供主动缓存刷新率元数据和/或生存时间值。配置检索的区域可以是地理区域。可以例如基于在配置检索传输中由助手应用包括的数据和/或基于传输的网际协议地址来确定地理区域。
在各种实施方式中,可以在远程系统处基于一个或多个最近预取的针对设备和/或地理区域的瞬时动作建议可选地生成缓存刷新率元数据。例如,如果所有最近预取的瞬时动作建议都是静态的,那么缓存刷新元数据可以定义比如果所有最近预取的瞬时动作建议中的一个或多个是动态的时将定义的刷新率更长的持续时间的刷新率。例如,如果瞬时动作建议不包含“时间受约束”建议(或至少仅具有静态窗口的时间受约束(例如,“夏至建议”)),则缓存刷新率元数据可以定义导致不经常(例如,每5天)检查新建议(或至少是新元数据)的速率。另一方面,如果瞬时动作建议包括“动态”的时间受约束建议(例如,“板球比赛”建议或具有动态开始和/或结束时间的其他体育赛事建议),则缓存刷新率元数据可以定义导致更频繁地(例如,每天2次)检查新建议(或至少新元数据)的速率。可选地,可以响应于确定用于时间受约束建议的时间窗口实际上已经改变(例如,通过与一个或多个附加系统对接)来生成和提供定义导致更频繁地检查新建议的速率的缓存刷新率元数据。因此,可以通过在某些情况下降低速率来节省网络和/或计算资源,而在其他情况下选择性地增加速率以确保仅在相关时,才通过更频繁地获取更新的瞬时动作建议和/或相关的元数据渲染动态瞬时助手动作建议——从而减少对不相关建议的计算浪费地渲染。
如本文所述,在功能手机处的助手客户端应用被配置为选择性地与远程系统接口以选择性地预取瞬时动作建议和相关联的元数据。当应用在功能手机的前台执行时,助手客户端应用可以与远程系统接口。例如,助手客户端应用可以作为应用打开过程的一部分和/或在应用打开但空闲时与远程系统接口。还将理解,当自动助手客户端应用处于“空闲”时,甚至当应用不在用户设备的前台执行时(即,当它在后台执行时),也可以执行高级预存储。还如本文所述,即可欧是选择性的并且可以由时间戳元数据、缓存刷新率元数据、生存时间值和/或其他考虑因素驱动。这样的考虑可以限制各种功能手机与远程系统的交互量,从而节省带宽(其否则将被更大量交互消耗)和/或节省远程系统处的资源(其否则将通过处理更多的互动而被消耗)。此外,通过在自动助手客户端应用处于“空闲”时执行高级预存储,用户设备可以更有效地使用带宽。因此可以改进设备的性能。
在与远程系统对接时,助手客户端应用预取新的瞬时动作建议和/或元数据。在一些实施方式中,新的瞬时动作建议和相关联的元数据被预取,并且它们完全取代存储在主动缓存中的任何现有建议和元数据。在各种实施方式中,助手客户端应用可以向远程系统提供当前存储在主动缓存中的(例如,通过传输客户端设备当前缓存的令牌)瞬时动作建议和/或元数据的指示。远程系统可以基于指示(例如,来自传输的令牌)确定是否提供:更新的瞬时动作建议和相关联的元数据,以用于完全取代主动高速缓存中当前缓存的瞬时动作建议和相关联的元数据;仅更新的元数据,用于取代主动缓存中的部分或全部元数据;仅更新的瞬时动作建议,用于仅替换主动缓存中的一些瞬时动作建议;或,更新的瞬时动作建议和相关联的元数据,用于仅替换在主动缓存中的一些瞬时动作建议和/或元数据。
以上描述被提供为这里描述的各种实施方式的概述。下面更详细地描述这些和其他实施方式。
此外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如,诸如功能手机或服务器设备之类的客户端设备的处理器),其中,该一个或多个处理器可操作以执行存储在相关存储器中的指令,并且其中,指令被配置为导致本文描述的任何方法的执行。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文描述的方法中的任一个的计算机指令。
应当理解,前述概念和这里更详细描述的附加概念的所有组合都被设想为这里公开的主题的一部分。例如,出现在本公开末尾的要求保护的主题的所有组合都被认为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例环境的框图。
图2描绘了预取请求的示例、预取的瞬时动作建议和元数据如何可以在预取请求之间变化以及预取请求的速率如何可以基于高速缓存刷新元数据而变化。
图3描绘了图示由客户端设备的自动助手应用预取和利用瞬时动作建议和相关联的元数据的示例方法的流程图。
图4描绘了图示生成时间受约束建议和相关联的元数据、响应于瞬时动作建议预取请求的传输时间受约束建议和相关联的元数据以及可选地生成和传输高速缓存刷新率元数据的示例方法的流程图。
图5图示了经由功能手机的助手客户端应用渲染瞬时动作建议的示例。
图6图示了计算设备的示例架构。
具体实施方式
参考图1,示出了可以在其中实施本文公开的技术的示例环境。示例环境包括功能手机101。虽然关于功能手机描述了这里描述的许多示例,但是应当理解,在各种实施方式中,技术可以适于至少选择性地用于其他客户端设备。例如,响应于非功能手机处于低功率模式、处于网络连接受限制的区域以及/或满足其他条件,可以将各种技术用于非功能手机(诸如,调制解调器智能手机或其他基于触摸屏的客户端设备)。
功能手机101至少选择性地执行自动助手客户端应用106(这里也称为“助手客户端应用106”或“助手客户端app 106”)。尽管在图1中将助手客户端应用106示出为与功能手机101的操作系统104分开,在各种实施方式中,助手客户端应用106可以被集成为操作系统104的一部分。因此,术语“助手客户端应用”在本文中用于指代被安装在操作系统104的顶部的助手应用或形成操作系统104的部分的助手应用。
一个或多个基于云的自动化助手组件119——在本文中也可以统称为自动化助手的“远程助手服务器”——可以被实现在经由在114处概括地指示的一个或多个局域网和/或广域网(例如,因特网)通信地耦合到功能手机101的一个或多个计算系统上。虽然单数术语“服务器”在本文中用于指代“远程助手服务器”,但应理解,在许多实施方式中,“远程助手服务器”是一组服务器和/或其他计算系统,例如使用云基础设施实现的高性能服务器的一个或多个集群。
在各种实施方式中,助手客户端应用106的实例通过其与一个或多个基于云的自动化助手组件119的交互,可以形成从用户的角度看来似乎是的自动化助手120的逻辑实例。图1中以虚线描绘了这种自动助手120的一个实例。因此应当理解,与在功能手机101上执行的助手客户端应用106接涉的用户实际上可以与他或她自己的自动助手120的逻辑实例接涉。为了简洁和简单起见,术语如本文中用作“服务”特定用户的“自动助手”将指代在由用户操作的功能手机101上执行的助手客户端应用106与一个或多个基于云的自动助手组件119(其可以是在多个助手客户端应用106之间共享)的组合。
功能手机101可以类似于智能手机,但缺乏现代智能手机的全部功能。在各种实施方式中,功能手机101可以没有触摸屏,而是包括非触摸显示器(例如,背光LCD屏幕)和物理键盘和/或物理导航按钮。在各种实施方式中,功能手机101可以附加地或替代地包括专为功能手机设计的移动操作系统104。一些这样的操作系统可以限制安装在其上的应用在后台运行,或者可以严格限制可以在后台运行的应用数量(例如,只允许一个应用在后台运行,或只在如果满足严格限制的内存使用限制的情况下允许应用在后台运行)。此外,一些这样的操作系统可以附加地或替代地要求应用利用某些标记语言,诸如可以用于JavaScript的HTML 5。
在一些实施方式中,功能手机101可以配备有一个或多个视觉传感器102,尽管这不是必需的。视觉传感器102可以采用各种形式,诸如低质量的数码相机。一个或多个视觉传感器102可以例如由图像捕获模块109使用以捕捉其中部署了功能手机101的环境的图像帧(静止图像或视频)。然后可以将这些图像帧传输到基于云的助手组件119,作为请求的一部分、由基于云的助手组件119基于图像帧生成的助手内容以及返回到助手客户端应用106以供呈现的助手内容。例如,捕获叶子的图像和识别叶子起源于的植物的返回的助手内容以及植物的附加细节可以被传输到基于云的助手组件119。
此外,在许多实施方式中,功能手机101配备有一个或多个麦克风103。麦克风103可以检测音频数据,诸如捕获功能手机101的用户的口头话语的音频数据、环境声音等。可以与助手客户端应用106向基于云的助手组件119的请求一起包括检测到的音频数据(可选地压缩)。例如,可以与请求组合地,经由在助手客户端应用106和基于云的助手组件119之间建立的流信道将检测到的音频数据作为流式音频数据提供到基于云的助手组件119。在某些情况下,基于云的助手组件119可以通过执行语音到文本处理(例如,经由下面描述的语音到文本组件117)来转录音频数据,并将转录的文本提供给助手客户端应用106以由助手客户端应用106合并到另一应用的文本输入字段中,该另一应用在调用助手客户端应用106时处于活动状态。在一些其他情况下,基于云的助手组件119可以通过执行语音到文本处理来转录音频数据,基于转录生成助手请求,基于助手请求获得响应式助手内容,以及将响应式助手内容提供给助手客户端应用106以供助手客户端应用106渲染。
功能手机101和操作基于云的自动化助手组件119的计算设备各自可以包括一个或多个用于存储数据和软件应用的存储器、一个或多个用于访问数据和执行应用的处理器以及促进通过网络的通信的其他组件。由基于云的自动化助手组件119执行的操作可以分布在多个计算机系统上。基于云的自动化助手组件119可以被实现为例如在通过网络彼此耦合的一个或多个位置的一台或多台计算机上运行的计算机程序。
如上所述,在各种实施方式中,功能手机101可以操作自动助手客户端应用106或自动助手120的“客户端部分”。在各种实施方式中,自动助手客户端应用106可以包括app打开/调用模块1071、app配置模块1072、语音捕获模块108、图像捕获模块109、请求模块110、输出模块111、预取模块1121和选择模块1122。
app打开/调用模块1071可以响应于在功能手机101处接收到的某些用户界面输入——诸如某个硬件按钮的长按(例如,多用途硬件按钮的按下时间超过1秒、2秒、3秒或其他阈值)——而使助手客户端应用106被调用(例如,在操作系统104的前台打开和执行)。如本文所描述的,操作系统104可以防止助手客户端应用106在后台运行(曾经或在某些情况下),并且当app打开模块1071打开助手应用107时,它从完全关闭的状态打开助手应用106。
app配置模块1072可以通过与远程配置系统144接口来选择性地执行配置检索。远程配置系统144可以被实现为例如在通过网络相互耦合的一个或多个位置的一台或多台计算机上运行的计算机程序。远程配置系统144可以可选地是基于云的助手组件119的组件。可以在助手客户端应用106正在执行时并且可选地在助手客户端应用106处于空闲和/或在前台正在执行时执行配置检索。可选地,配置检索可以被限制为每次执行助手客户端应用106仅执行一次,仅以特定速率执行,和/或在其他限制下执行。如本文所述,配置检索中的一个或多个可以相对于由预取模块1121执行的预取请求异步,可以比由预取模块1121执行的预取请求更少资源秘籍,和/或可以比由预取模块1121执行的预取请求更频繁地执行。
响应于来自应用配置模块1072的配置检索,配置系统144可以可选地返回一个或多个要由助手客户端应用106利用的当前配置参数。那些当前配置参数可以包括但不限于本文描述的主动缓存刷新率元数据和/或当前生存时间值。如刷新/TTL 1132所指示的,至少当前主动缓存刷新率元数据和/或当前生存时间值可以被本地存储在功能手机101处,以供如本文所述的预取模块1121利用。可选地,配置检索可以包括当前活动的配置参数的指示,以使得远程配置系统144能够确定当前活动的配置参数中的一个或多个是否是最新的。如果所有都是最新的,远程配置系统144可以避免发送对配置检索的响应,或者发送指示不需要更新的参数的最小响应。如果只有一些配置参数不是最新的,远程配置系统144可以发送响应,其仅具有用于不是最新的那些的更新配置参数。在一些实施方式中,app配置模块1072可以使检索到的更新的配置参数被暂时存储,但不提交(例如,不存储以供预取模块1121和/或其他模块使用)直到提交条件发生。提交条件可以是助手客户端应用106的关闭(以及作为关闭过程的一部分提交的配置参数),或者助手客户端应用106的后续打开(以及作为打开过程的一部分提交的配置参数).
远程配置系统144可以基于各种考虑来确定当前主动缓存刷新率元数据和/或当前生存时间值。例如,与最近提供的瞬时动作建议相比,可以基于在远程建议系统140处的当前负载、基于从网络数据146确定的地理区域中的网络条件和/或基于来自远程数据系统145的信息确定之一或两者。例如,远程配置系统144可以基于确定网络条件已经对于某个地理区域退化了而对于某些地理区域中的功能手机101的预取请求增加由主动缓存刷新率元数据指示的持续时间(即,使预取请求不那么频繁)。此外,例如,远程配置系统144可以附加地或替代地基于确定在服务于某些地理区域的远程建议系统140的一个或多个组件上存在超负荷和/或此类组件正在经历故障或其他关键问题,而增加由针对来自某些地理区域中的功能手机101的预取请求的主动缓存刷新率元数据指示的持续时间。此外,例如,远程配置系统144可以附加地或替代地基于确定最近提供的针对某些地理区域中的瞬时动作建议(其中,向该某些地理区域中的一组功能手机提供相同的瞬时动作建议)是静态的,而增加针对来自某些地理区域中的功能手机101的预取请求的主动缓存刷新率元数据指示的持续时间。作为另一示例,远程配置系统144可以基于确定针对某些地理区域最近提供的瞬时动作建议是动态的、具有已改变的关联渲染限制元数据和/或包括现在不相关或否则被认为过时的瞬时动作建议,而减少针对来自某些地理区域中的功能手机101的预取请求的主动缓存刷新率元数据指示的持续时间(即,使预取请求更频繁)。因此,可以通过在某些情况下减少主动缓存刷新率而在其他情况下选择性地增加刷新率来节省网络和/或计算资源。这确保了通过更频繁地获得更新的瞬时动作建议和/或关联的元数据,仅在相关时才渲染瞬时助手动作建议——从而减少不相关建议的计算上浪费的渲染。附加地或替代地,这确保在网络和/或服务器状况恶化的情况下减少速率,防止否则将导致没有速率减少的进一步恶化。
可以使用硬件和软件的任何组合来实现的语音捕获模块108可以与麦克风103接口以捕获对应于经由麦克风103捕获的用户话语和/或其他可听声音的音频数据。此外,语音捕获模块108可以将音频数据(例如,音频数据流和/或音频数据的记录)连同请求一起提供给基于云的助手组件119,以用于进一步处理(例如,用于提供音频数据的转录或响应音频数据的助手响应)。
可以使用硬件或软件的任何组合来实现的图像捕获模块109可以被配置为与视觉传感器102接口以捕捉对应于视觉传感器102的视场的一个或多个图像帧(例如,数字照片)。此外,图像捕获模块109可以将图像帧连同请求一起提供给基于云的助手组件119,以用于进一步处理(例如,用于提供助手响应).
可以使用硬件和软件的任何组合来实现的请求模块110生成请求并将请求传输到基于云的助手组件119或功能手机101的其他组件(例如,单独的应用,可选地通过操作系统104)。请求可以包括由语音捕获模块108捕捉的音频数据、由图像捕获模块109捕捉的图像数据和/或可以包括选择的瞬时动作建议和/或相关联的动作元数据。例如,当用户输入选择渲染的(例如,显示的)瞬时动作建议时,被映射到所选瞬时动作建议的动作元数据可以被包括在请求模块110的请求中。可以利用各种用户输入来选择给定的瞬时动作建议。例如:硬件导航按钮可用于导航到建议和选择建议;可选择在渲染瞬时动作建议时与瞬时动作建议对应的硬件按钮来选择该建议;或者可以说出瞬时动作建议或被分配给瞬时动作建议的标签(例如,数字或字母)来选择该建议。
可以使用硬件和软件的任何组合来实现的输出模块111可以使得由选择模块1122(如下所述)选择的瞬时动作建议在其中将提供瞬时动作建议的状态中被渲染(例如,以图形方式)。这样的状态可以包括第一次执行助手客户端应用106时的初始状态、遵循自动助手的某些先前响应的状态(例如,没有提供与该响应相关的进一步服务器提供的建议的响应)和/或其他状态。在许多实施方式中,瞬时动作建议可以是零状态对话启动器,其在服务器端组件没有提供其他上下文相关建议的状态下被提供。可以由用户选择瞬时动作建议以导致以最少的输入执行对应的动作。
输出模块111还可以从基于云的助手组件119接收响应内容(其中,响应内容响应于请求模块110传输的请求)。响应内容可以是例如:口头响应、打字和/或图像输入;响应在被渲染后由用户输入选择的瞬时动作建议;或响应另一选择的动作建议(不一定是来自主动缓存1131的瞬时动作建议)。输出模块111还输出响应内容。在一些实施方式中,响应内容是助手内容,并且输出模块111使助手内容经由助手客户端应用106被渲染。助手内容可以包括文本、图像和/或要经由功能手机101的显示器视觉渲染的其他内容、要经由功能手机的扬声器呈现的音频数据(例如,文本到语音版本的文本)和/或要经由显示器、扬声器和/或其他用户界面输出设备呈现的其他内容。在其他实施方式中,响应内容可以是助手内容,其不一定由助手应用渲染和/或不基于从基于云的助手组件119接收的内容(例如,它可以基于助手动作的局部表现)。例如,响应于用户对“呼叫妈妈”的瞬时动作建议的选择,输出模块111可以利用对应的动作元数据来使输出模块111与功能手机101的电话拨号应用接口以使电话拨号应用拨打名为“妈妈”的联系人。此外,例如,响应于用户对“打开灯”的瞬时动作建议的选择,可以向控制“灯”的第三方系统提供响应式助手内容以使得灯被“打开””,并且可以提供使输出模块111确认灯已打开的响应式助手内容(例如,“OK,灯已打开”的可听内容)。
预取模块1121选择性地与远程建议系统140接口以预取瞬时动作建议和/或相关联的元数据。预取模块1121将预取的瞬时动作建议和/或关联的元数据存储在主动缓存1131中以供选择模块1122利用。远程建议系统140可以被实现为例如在通过网络相互耦合一个或多个位置中的一台或多台计算机上运行的计算机程序。远程建议系统140可以可选地是基于云的助手组件119的组件。
在一些实施方式中或对于一些预取,预取模块1121从远程建议系统140接收新的瞬时动作建议和相关联的元数据,并且用新的瞬时动作建议和相关的元数据完全取代存储在主动缓存1131中的任何现有建议和元数据。在一些实施方式中或对于一些预取,预取模块1121可以向远程建议系统140提供当前存储在主动缓存中的瞬时动作建议和/或元数据的指示(例如,通过传输当前缓存的令牌)。在那些情况下,远程建议系统140可以基于该指示确定是否提供:更新的瞬时动作建议和相关联的元数据,用于完全取代主动高速缓存1131中当前缓存的瞬时动作建议和相关联的元数据;仅更新元数据,以取代主动缓存1131中的部分或全部元数据;仅更新瞬时动作建议,以仅取代主动缓存1131中的一些瞬时动作建议;或,更新的瞬时动作建议和相关联的元数据,用于仅取代主动缓存1131中的瞬时动作建议和/或元数据的一些。远程建议系统140可以响应于预取请求向预取模块1121提供预取模块1121应该针对接收到的瞬时动作建议和/或元数据执行哪些(个)前述动作的指示。预取模块1121可以根据这样的指示来动作。
响应于确定助手客户端应用106处于空闲和/或在前台执行,预取模块1121可以可选地发起预取请求。附加地或替代地,预取模块1121可以基于本地存储的、指示另一预取请求可以发生的主动缓存刷新率元数据来发起预取请求。这可以基于将主动缓存刷新率元数据与当前存储在主动缓存1131中的瞬时动作建议的时间戳元数据进行比较,或与指示上次发生预取请求的时间的单独时间戳进行比较。本地存储的主动缓存刷新率元数据在图1中被示出为刷新/TTL 1132,并且可以被存储在主动缓存1131中,或与主动缓存1131分开。主动缓存刷新率元数据可以由app配置模块1072检索,如本文所述,或者可以已经由预取模块1121在先前的预取中检索。
响应于预取请求,远程建议系统140提供瞬时动作建议1421-N和相关联的元数据143。相关联的元数据143可以包括渲染限制元数据、时间戳元数据(或者时间戳元数据可以由助手客户端app生成)、动作元数据、优先级元数据、生存时间值和/或主动缓存刷新率元数据。尽管在图1中示出了瞬时动作建议1421-N,可以理解,将在不同时间和/或响应来自不同功能手机的预取请求提供不同的瞬时动作建议。例如,可以响应于来自第一地理区域的所有预取请求在第一时间段提供瞬时动作建议的第一集合,可以响应于来自第二地理区域的所有预取请求在第一时间段提供唯一的瞬时动作建议的第二集合,可以响应于来自第一地理区域的所有预取请求在第二时间段(不与第一时间段重叠)提供唯一的瞬时动作建议的第三集合。因此,可以根据预取请求的时间和/或传输预取请求的功能手机的地理位置提供不同的瞬时动作建议。远程建议系统140可以可选地基于确定它们至少具有在地理区域中的功能手机处被选择的阈值概率来针对给定时间段和/或针对给定地理区域生成瞬时动作建议1421-N。这可以基于当前趋势的助手输入(可选地特定于地理区域)、历史助手输入(可选地特定于地理区域)和/或其他因素。虽然远程建议系统140和远程配置系统144被示为彼此分离并且与基于云的助手组件分离,但是在各种实施方式中,组件中的一个或多个(例如,所有)可以形成内聚系统和/或相互接口(例如,经由一个或多个API)。
一个或多个瞬时动作建议1421-N可以是时间受约束建议,其至少包括相关联的渲染限制元数据。渲染限制元数据定义了时间受约束建议的渲染被限制到的一个或多个时间窗口(例如,特定日期、一周中的特定天和/或一天中的特定时间)。例如,时间受约束建议可以是“工作路线的交通状况”,并且可以与将其渲染限制在工作日上午6:00到上午9:00之间的渲染限制元数据相关联。此外,例如,时间受约束建议可以是“选举日信息”,并且可以与将其渲染限制到地方选举当天以及可选地在地方选举前一天的渲染限制元数据相关联。作为又一示例,时间受约束建议可以是“板球比赛得分”,且可以与将其渲染限制到板球比赛的一个或多个预期开始时间和一个或多个预期结束时间的渲染限制元数据相关联。远程建议系统140可以可选地参考一个或多个远程数据系统145来确定时间窗口。
此外,远程建议系统140可以通过与一个或多个远程数据系统145的交互来确定对时间受约束建议的动态时间窗口的改变,并且更新渲染限制元数据以反映更新的时间窗口。在许多实施方式中,这种更新的渲染限制元数据将不被主动推送到先前提供有现在过时的渲染限制元数据的对应功能手机(例如,考虑到功能手机的约束)。然而,响应于对应的配置请求,可以通过远程配置系统144向一个或多个对应的功能手机提供更新的主动缓存刷新元数据(指示增加的速率)。这将反过来导致对应的助手应用提高其预取请求的速率,并在后续的预取请求中获取更新的渲染限制元数据。因此,在各种实施方式中,配置系统144和主动建议系统140可以交互以使配置系统144响应于远程建议系统140对瞬时助手动作建议和/或元数据的改变而提供更新的主动缓存刷新率数据。
当助手客户端应用106处于要提供助手动作建议的状态时,选择模块1122选择助手动作建议以供输出模块111渲染。选择模块1122可以响应于助手客户端应用106处于这种状态或预期它处于这种状态来选择助手动作建议。在一些实施方式中,选择模块1122将来自主动缓存1131的瞬时动作建议的选择优先于非瞬时动作建议,如图1中的固定105所示。非瞬时动作建议105可以被固定并长期存储,并且可以是仅当主动缓存1131中没有瞬时动作建议可用或有瞬时动作建议可用但具有比生存时间值(即时间戳数据超过生存时间阈值)旧的时间戳数据时才可选地选择的回退建议。在一些实施方式中,选择模块1122总是选择其相关联的渲染限制元数据启用其渲染的任何时间受约束建议。
在一些实施方式中,选择模块1122选择瞬时动作建议的子集,其中,该子集中的数量是固定的,或者基于助手客户端应用的当前状态来确定。当存在比子集的数量更多的瞬时动作建议(可以基于生存时间值和呈现限制元数据来呈现)时,选择模块1122可以利用一种或多种技术来从更大数量中选择子集。例如,选择模块1122可以从更大数量中随机(真正随机或伪随机)选择子集。此外,例如,选择模块1122可以最初选择尚未在功能手机101处渲染的任何瞬时动作建议,然后如果需要则从已经渲染的瞬时动作建议中随机选择。此外,例如,瞬时动作建议可以各自可选地与可以在选择中引用的对应优先级元数据相关联。例如,一个或多个可能具有最高优先级元数据,一个或多个可能具有中等优先级数据,并且一个或多个可能具有最低优先级元数据。选择模块1122可以首先选择最高优先级的元数据瞬时动作建议,然后是中等优先级,然后是最低优先级。在需要在多个共同优先级瞬时动作建议之间进行选择的情况下,选择模块1122可以可选地随机进行选择。
在选择模块1122选择动作建议之后,它们被提供给输出模块111用于渲染,如本文所述。响应于对所渲染的动作建议之一的选择,请求模块110可以使得执行对应的助手动作。在一些实施方式中,所渲染的瞬时动作建议各自与对应的动作元数据相关联,并且请求模块110利用对应的助手动作来使得执行对应的助手动作。这可以包括基于动作元数据的对应助手动作的本地执行和/或对应动作元数据向基于云的助手组件119的传输。基于云的助手组件119可以将动作元数据映射到对应的助手动作,并执行对应的助手动作。
基于云的助手组件119包括语音到文本(“STT”)模块117和文本到语音(“TTS”)模块116。STT模块117可以处理与请求一起接收的音频数据,并将其中包含的口头输入转换为文本(从而创建口头输入的转录)。在各种实施方式中,STT模块117可以访问各种STT模型,可选地,每个模型都符合不同的语言和/或方言,并且STT模块117可以基于包含在请求模块110的对应请求中的数据来选择这些模型的子集(例如,一个)。
TTS模块116可以被配置为将文本数据(例如,由自动助手120制定的自然语言响应)转换成计算机生成的语音输出。在一些实施方式中,TTS模块116可以将计算机生成的语音输出提供给功能手机101以例如使用一个或多个扬声器直接输出。例如,可以响应于对于渲染的瞬时动作建议的用户选择,将计算机生成的语音输出提供为响应内容的全部或部分。
基于云的自动化助手组件119还包括意图匹配器135,其可以被配置为基于随请求提供的音频数据的转录、随请求提供的上下文数据和/或基于其他信号——诸如传感器信号和在线信号(例如,从网络服务获得的数据)等等——来确定请求的意图。在各种实施方式中,意图匹配器135可以将响应于选择对应的瞬时动作建议而接收的动作元数据映射到对应的意图。在一些实施方式中,意图匹配器135可以包括自然语言处理器122。自然语言处理器122可以被配置为处理转录的音频数据、由用户通过功能手机101生成的键入自然语言输入、包括在动作元数据中的自然语言等——并且可以生成注释输出(例如,以文本形式)以供自动助手120的一个或多个其他组件使用。生成的注释输出包括自然语言输入的一个或多个注释和一个或多个(例如,全部)的自然语言输入。
意图匹配器135可以使用各种技术来确定意图。在一些实施方式中,意图匹配器135可以访问一个或多个数据库(未描绘),其包括例如以下部分之间的多个映射:语法和响应动作(或更一般地,意图);动作元数据和响应动作;和/或其他映射。在许多情况下,这些语法可以随着时间的推移被选择和/或学习,并且可以代表用户最常见的意图。例如,一种语法“play<artist>”可以被映射到调用响应动作的意图,该响应动作使得<artist>的音乐在用户操作的功能手机101上播放。另一语法“[weather|forecast]today”可能可以匹配到用户查询,诸如“what’s the weather today(今天的天气如何)”和“what’s the forecastfor today?(今天的预测是什么?)”
除了语法之外或代替语法,在一些实施方式中,意图匹配器135可以单独地或与一种或多种语法组合地采用一种或多种训练的机器学习模型。这些训练的机器学习模型也可以被存储在一个或多个数据库中,并且可以例如通过下述方式被训练以识别意图:将指示用户话语的数据和/或任何检测到的用户提供的视觉线索嵌入到降维空间中,然后例如使用诸如欧几里德距离、余弦相似度等技术确定哪些其他嵌入(以及因此,意图)最接近。
在一些实施方式中,自动化助手120可以充当用户和一个或多个第三方计算服务130(或“第三方代理”或“代理”)之间的中介。这些第三方计算服务130可以是接收输入并提供响应输出的独立软件进程。一些第三方计算服务可以采用第三方应用的形式,这些应用可能或可能不在与操作例如基于云的自动助手组件119的计算系统分离的计算系统上操。一种可以被意图匹配器135识别的用户意图是参与第三方计算服务130。例如,自动化助手120可以提供对到用于控制智能设备的服务的应用编程接口(“API”)的访问。用户可以调用自动助手120并选择渲染的瞬时动作建议,诸如“打开供暖装置”。意图匹配器135可以将该瞬时动作建议或相关动作元数据映射到触发自动助手120与第三方服务接涉的语法,从而使用户的供暖装置被打开。
响应模块124可以被配置为接收由意图匹配器135输出的预测/估计的意图以及相关联的时隙值(无论是由用户主动提供还是从用户请求)并履行(或“解决”)意图。在各种实施方式中,用户意图的履行(或“解决”)可以导致例如由响应模块124生成/获得各种履行信息(也称为“响应”信息或“解决信息”)。如下所述,在一些实施方式中,履行信息可以被提供给自然语言生成器126,其可以基于履行信息生成自然语言输出。
履行(或“解决”)信息可以采用各种形式,因为可以以多种方式履行(或“解决”)意图。假设用户请求纯信息,诸如“Where were the outdoor shots of‘The Shining’filmed?(《闪灵》的户外镜头是在哪里拍摄的?)”用户的意图可以例如由意图匹配器135确定为搜索查询。搜索查询的意图和内容可以被提供给响应模块124,响应模块124如图1所示可以与一个或多个搜索模块150通信,该搜索模块150被配置为搜索文档和/或其他数据源(例如,知识图等)的语料库用于响应信息。响应模块124可以向搜索模块150提供指示搜索查询的数据(例如,查询的文本、降维嵌入等)。搜索模块150可以提供响应信息——诸如GPS坐标——或者其他更明确的信息——诸如“Timberline Lodge,Mt.Hood,Oregon.”。该响应信息可以形成由响应模块124生成的履行信息的一部分。
附加地或替代地,响应模块124可以被配置为例如从意图匹配器135接收用户的意图和由用户提供的或使用其他方式(例如,用户的GPS坐标、用户偏好等)确定的任何时隙值并触发响应动作。响应动作可以包括例如订购商品/服务、启动计时器、设置提醒、发起电话呼叫、播放媒体、传输消息等。在一些这样的实施方式中,履行信息可以包括与履行、确认响应(在某些情况下可以从预先确定的响应中选择)等相关联的时隙值。
自然语言生成器126可以被配置为基于从各种来源获得的数据生成和/或选择自然语言输出(例如,被设计成模仿人类语音的词/短语)。在一些实施方式中,自然语言生成器126可以被配置为接收与意图的履行相关联的履行信息作为输入,并且基于履行信息生成自然语言输出。附加地或替代地,自然语言生成器126可以从诸如第三方应用(例如,所需时隙)之类的其他源接收信息,它可以使用这些信息来为用户编写自然语言输出。
现在转向图2,图示了两个预取请求201和202的示例。在图2中,预取模块1121第一次传输预取请求201。预取模块1121传输预取请求201的第一次可以至少部分地基于本地存储的当前主动缓存刷新率元数据,如1132所示。例如,当前主动缓存刷新率元数据可以定义24小时的持续时间,并且预取模块1121可以响应于确定自上次预取请求已经过去了至少24小时来传输预取请求201。当前主动缓存刷新率元数据可能已经由配置系统144响应于app配置模块1072的先前配置检索而先前提供。
响应于预取请求201,远程建议系统提供瞬时动作建议142A1-10和对应的元数据143A。元数据143A包括所有瞬时动作建议142A1-10的时间戳元数据、时间受约束的瞬时动作建议142A3的渲染限制元数据以及每个瞬时动作建议142A1-10的对应动作元数据。预取模块1121接收瞬时动作建议142A1-10和对应的元数据143A,并将两者存储在主动缓存1131中。例如,预取模块1121可以使瞬时动作建议142A1-10和对应的元数据143A在主动缓存1131中取代任何现有的瞬时动作建议和关联的元数据。
在预取请求201之后,但在任何进一步的预取请求之前,app配置模块1072从配置系统144接收更新的主动缓存刷新率元数据和可选的更新的生存时间值207。app配置模块1072可以响应于这里描述的配置检索来接收更新的主动缓存刷新率元数据和/或更新的生存时间值207。app配置模块1072存储更新的主动缓存刷新率元数据和可选的更新的生存时间值207,替换先前的主动缓存刷新率元数据和可选的先前生存时间值。例如,先前的主动缓存刷新率元数据可能定义了24小时的持续时间,更新的持续时间可以是3小时。例如,可以响应于服务器端确定与时间受约束建议142A3相关联的时间窗口已经改变、响应于服务器端确定新的及时瞬时动作建议是可用的和/或其他考虑因素而提供这样的更新的主动缓存刷新率元数据。作为另一示例,先前的主动缓存刷新率元数据可能已经定义了24小时的持续时间,更新的持续时间可以是36小时。例如,可以响应于服务器端确定网络和/或服务器资源已经恶化来提供这种更新的主动缓存刷新率元数据。
在app配置模块1072接收到更新的数据207之后,预取模块1121第二次传输预取请求202。第二次至少部分基于最近存储在本地的更新的当前主动缓存刷新率元数据,如1132所示。例如,更新的当前主动缓存刷新率元数据可以定义3小时的持续时间,并且预取模块1121可以响应于确定自上次预取请求已经过去至少3小时来传输预取请求202。
响应于预取请求202,远程建议系统提供瞬时动作建议142B1-8和对应的元数据143B。元数据143B包括所有瞬时动作建议142B1-8的时间戳元数据、时间受约束建议142B2的渲染限制元数据、时间受约束建议142B4的单独渲染限制元数据以及每个瞬时动作建议142B1-8的对应动作元数据。时间受约束建议142B2可以可选地与时间受约束建议142A3相同,但是对应的渲染限制元数据可以不同(例如,它可以基于在远程建议系统140处确定的更新时间窗来更新)。预取模块1121接收瞬时动作建议142B1-8和对应的元数据143B,并将两者存储在主动缓存1131中。例如,预取模块1121可以使瞬时动作建议142B1-8和对应的元数据143B在主动缓存1131中替代瞬时动作建议142A1-10和元数据143A。
图3是示出由客户端设备的自动助手应用预取和利用瞬时动作建议和相关联的元数据的示例方法300的流程图。为了方便,参照执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如功能手机101的助手客户端应用106。此外,虽然以特定顺序示出方法300的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框302处,系统接收对于打开助手客户端应用的请求。例如,请求可以是在功能手机处接收到的某些用户界面输入。例如,某些用户界面输入可以是硬件按键的长按,功能手机的操作系统响应检测到硬件按键的长按,可以提供对于打开助手客户端应用的请求。
在块304处,系统确定瞬时动作建议在主动缓存中是否可用并且是否满足当前生存时间阈值。在一个示例中,系统可以将当前生存时间值(参考时间戳)与用于主动缓存的瞬时动作建议的时间戳元数据进行比较。在另一示例中,系统可以将瞬时动作建议的时间戳元数据和当前生存时间值的组合与当前时间或时间戳进行比较。在一些实施方式中,块304可以在助手客户端应用打开时执行,因为初始启动状态将是将提供瞬时动作建议的状态。在后续块中使用主动缓存可能在启动时特别有益,因为可以以最小的延迟检索瞬时动作建议,而无需等待来自远程系统的动作建议的主动提供。此外,鉴于功能手机约束和/或在某些网络条件下,在启动时传输对动作建议的实时请求可能是有问题的。
如果块304处的决定为是,则系统进行到块306并从主动缓存中选择一个或多个瞬时动作建议。在一些实施方式中,该选择可选地基于主动缓存的元数据,诸如每个瞬时动作建议的优先级元数据和/或一个或多个瞬时动作建议的渲染限制元数据。
如果块304处的决定为否,则系统进行到块308并选择本地存储在高速缓存外部的一个或多个非瞬时动作建议。系统还可以可选地在块308从主动缓存中移除不满足当前生存时间值的任何瞬时动作建议。
在块312处,系统渲染在块306或块308处选择的所选动作建议。
在块314处,系统确定对瞬时动作建议的最后预取是否在由当前主动缓存刷新率元数据定义的当前主动缓存刷新率内。如果不是,则在块316,系统在能够时(例如,当助手客户端应用空闲时)与远程系统接口以预取更新的瞬时动作建议和/或元数据。系统然后进行到块318并且在主动缓存中本地存储在块316处预取的瞬时动作建议和/或元数据。虽然块314被图示为发生在块312之后,但是它在其他实施方式中可以发生在方法300中的其他点。当鉴于硬件和操作系统约束而可能时,可以可选地与方法300的其他块并行执行块314、316和/或318。
在块312之后,系统还在块320和324处监视对在块312处渲染的任何一个动作建议的选择或其他输入(例如,与渲染的任何动作建议无关的键入或口头输入)。
如果在块320处选择了渲染的动作建议,则系统进行到块322并且基于所选择的动作建议生成请求。例如,系统可以至少部分地基于所选动作建议的动作元数据生成请求。
如果在块326处接收到其他输入,则系统进行到块326并且基于其他输入生成请求。例如,当另一输入是口头输入时,系统可以至少部分地基于捕获的音频数据生成请求,或者当另一输入是键入输入时系统可以至少部分地基于键入数据生成请求。
在块328,系统响应于请求接收响应内容。例如,可以将请求传输到基于云的自动化助手组件,并且作为响应从基于云的自动化助手组件接收响应内容。此外,例如,请求可以在本地执行,并且响应内容从本地组件(例如,另一app)被接收和/或由该本地组件渲染。
在块330,系统渲染响应内容(例如,可听地和/或图形地)。然后系统可以可选地返回到块304。
图4是示出生成时间受约束建议和相关联的元数据、响应于瞬时动作建议预取请求而传输时间受约束建议和相关联的元数据、以及可选地生成和传输缓存刷新率元数据的示例方法400的流程图。为了方便,参照执行操作的系统来描述流程图的操作。该系统可以包括诸如远程建议系统140和/或远程配置系统144的各种计算机系统的各种组件。此外,虽然以特定顺序示出方法400的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在块402处,系统为未来事件生成时间受约束建议。例如,系统可以生成描述未来事件和与未来事件相关的一个或多个助手动作的时间受约束建议。
在块404,系统确定未来事件的时间窗口。例如,系统可以可选地与一个或多个附加系统交互以确定时间窗口,和/或可以基于未来事件的一个或多个特性来确定时间窗口。
在块406,系统基于时间窗口生成时间受约束建议的渲染限制元数据。在一些实施方式中,系统在块304为未来事件确定多个时间窗口,并基于多个时间窗口生成渲染限制元数据。系统可以额外地为时间受约束建议生成附加的元数据,诸如动作元数据、时间戳元数据和/或优先级元数据。
在块408,系统从助手客户端应用接收瞬时动作建议预取请求。例如,系统可以从功能手机的助手客户端应用接收预取请求。
在块410,系统响应于块408的预取请求而传输时间受约束建议和渲染限制元数据。可以可选地传输与时间受约束建议相关联的其他元数据。此外,在一些实施方式中,时间受约束建议被包括在响应于预取请求而传输的一批瞬时动作建议中。这样的批次可以包括附加的时间受约束建议和/或非时间受约束建议。
在可选块412,系统生成主动缓存刷新率元数据。如本文所述,可以基于各种考虑来生成主动缓存刷新率元数据,各种考虑诸如是网络状况、服务器状况、针对时间受约束建议的更新的渲染限制元数据的生成和/或与可选地在块410传输的批次的瞬时动作建议相关的其他因素。也如本文中所描述的,所生成的主动缓存刷新率元数据可以可选地特定于特定地理区域和/或其他约束。
在可选块414,系统传输主动缓存刷新率元数据。例如,系统可以将主动缓存刷新率元数据作为块410的传输的一部分,或者相对于块410的传输异步地传输。在传输是异步的一些实施方式中,它可以响应于单独的配置检索请求而被传输。此外,在一些实施方式中,主动缓存刷新率元数据的传输可以取决于源自地理区域和/或主动缓存刷新率元数据可选地特定于的其他约束的配置检索请求。
现在转向图5,示出了经由功能手机500的助手客户端应用的渲染瞬时动作建议551-554的示例。功能手机500具有导航按钮510、第一可选择按钮511、第二可选择按钮512、麦克风520、扬声器530、光标540和功能手机显示器550。在显示器550上渲染的光标540连同瞬时动作建议551-554和指示如何可以提供其他输入(不是选择瞬时动作建议)的独立元素。尽管图示了光标540,但是可以提供替代符号或其他指示以指示显示器550的哪些区域是活动的。
图5示出了在初始调用助手客户端应用之后功能手机500的示例。基于初始调用状态是期望瞬时动作建议的状态来渲染瞬时动作建议551-554。在每个瞬时动作建议551-554旁边示出了对应的数字(1、2、3、4),其指示用户可以选择对应的可选数字硬件按钮(在键盘上)来选择建议。例如,按下“1”硬件按钮将导致选择瞬时动作建议551。附加地或替代地,导航按钮510可用于移动光标540并选择对应的建议,或循环通过并选择建议之一(例如,当未提供光标时)。可以使用其他选择输入,诸如本文描述的其他选择输入。
瞬时动作建议551、552和553是时间受约束建议的非限制性示例。例如,瞬时动作建议551可以基于符合板球比赛的多个时间窗口之一的当前时间来渲染,如对应的渲染限制元数据所定义的。此外,例如,瞬时动作建议551可以基于符合夏至的时间窗口(例如,特定日期)的当前天来渲染,如对应的渲染限制元数据所定义的。此外,例如,瞬时动作建议551可以基于符合请求拼车的时间窗口的当前时间和/或星期几来渲染,如对应的渲染限制元数据所定义的。瞬时动作建议554是瞬时动作建议的非限制性示例,其可以包括相关的动作元数据,其使得能够在功能手机500本地执行对应的助手动作。
图6图示了计算设备610的示例架构。计算设备610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备进行通信。这些外围设备可以包括存储子系统624,包括例如存储器子系统625和文件存储子系统626、用户界面输入设备622、用户界面输出设备620和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供与外部网络的接口,并耦合到其他计算机系统中的对应接口设备。
用户界面输入设备622可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板之类的指向设备、扫描仪、并入显示器中的触摸屏、诸如语音识别系统、麦克风之类的音频输入设备以及/或者其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括所有可能类型的设备以及将信息输入到计算设备610或通信网络上的方式。
用户界面输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备以及将信息从计算设备610输出到用户或另一机器或计算机系统的方式。
存储子系统624存储提供本文描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统624可以包括执行这里描述的一种或多种方法的逻辑。
这些软件模块通常由处理器614单独或与其他处理器组合执行。存储子系统中使用的存储器625可以包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)630和其中存储固定指令的只读存储器(ROM)632。文件存储子系统626可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实施方式的功能的模块可以可选地由文件存储子系统626存储在存储子系统624中,或者存储在处理器614可访问的其他机器中。
总线子系统612提供了一种机制,用于让计算设备610的各种组件和子系统按预期相互通信。尽管总线子系统612被示意性地示为单条总线,但是总线子系统的替代实施方式可以使用多条总线。
计算设备610可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断改变的性质,所描绘的计算设备610的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备610的许多其他配置可能具有比计算设备610更多或更少的组件。
在本文讨论的某些实施方式可能收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物特征信息以及用户的活动和人口统计信息、用户之间的关系等)的情况下,为用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。也就是说,本文讨论的系统和方法仅在从相关用户那里接收到明确授权如此做后才收集、存储和/或使用用户个人信息。
例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向要收集其个人信息的每个用户提供一个或多个选项,以允许控制与该用户相关的信息收集,就是否收集信息以及要收集信息的哪些部分提供许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,某些数据在存储或使用之前可能会以一种或多种方式进行处理,以便删除个人身份信息。作为一个示例,可能会处理用户的身份,从而无法确定任何个人身份信息。作为另一示例,用户的地理位置可能被上位化到更大的区域,从而无法确定用户的特定位置。
在一些实施方式中,提供了一种由客户端设备的一个或多个处理器执行的助手客户端应用执行的方法,该方法包括,当助手客户端应用正在执行时,与远程系统接口以预取用于助手客户端应用以及对应的元数据的瞬时助手动作建议。预取的瞬时助手动作建议包括对应的元数据的、与给定元数据相关联的时间受约束建议。给定元数据包括定义时间受约束建议的渲染被限制到的一个或多个时间窗口的渲染限制元数据。该方法还包括将预取的瞬时助手动作建议和对应的元数据写入客户端设备的本地存储中的主动缓存中。该方法还包括,在将获取的瞬时助手动作建议和对应的元数据写入本地存储中的主动缓存之后,并且当助手客户端应用随后在客户端设备处执行时:确定助手客户端应用是处于其中提供助手动作建议的状态。该方法还包括,响应于确定助手客户端应用处于其中要提供瞬时助手动作建议的状态:访问本地存储中的主动缓存以选择瞬时助手动作建议的子集。该子集至少包括时间受约束建议。访问本地存储中的主动缓存以选择子集包括:基于确定当前时间条件符合由时间受约束建议的渲染限制元数据定义的一个或多个时间窗口中的至少一个来选择时间受约束建议以包含在子集中。该方法还包括在客户端设备处并经由助手客户端应用渲染瞬时助手动作建议的子集,包括渲染时间受约束建议。指向所渲染的时间受约束建议的另外的用户输入导致助手客户端应用启动对应于时间受约束建议的给定助手动作的执行。
本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,对应的元数据还包括与动作建议中的一个或多个瞬时助手相关联的时间戳元数据。时间戳元数据定义了预取瞬时助手动作建议的时间或远程系统生成瞬时助手动作建议的时间。在那些实施方式的一些版本中,该方法进一步包括,在呈现瞬时助手动作建议的子集之后,并且当助手客户端应用再次随后执行时:基于超过生存时间阈值的时间戳元数据从在本地存储中的主动缓存中移除一个或多个瞬时助手动作建议。在这些版本中的一些版本中,该方法还包括,在呈现瞬时助手动作建议的子集之后,并且当助手客户端应用再次随后执行并且再次处于要提供助手动作建议的状态时:从本地存储的主动缓存外部,基于超过生存时间阈值的时间戳元数据,选择至少一个非瞬时助手动作建议;并且通过助手客户端应用呈现至少一个非瞬时助手动作建议。生存时间阈值可以是例如:在助手客户端应用中预定义的;包含在从远程系统预取的对应元数据中;或相对于与远程系统接口以预取瞬时助手动作建议异步地从远程系统或附加的远程系统中获取。
在一些实施方式中,对应的元数据还包括与一个或多个瞬时助手动作建议相关联的主动缓存刷新率元数据。主动缓存刷新率元数据定义了其间助手客户端应用将避免与远程系统接口以预取更新的瞬时助手动作建议的持续时间。
在一些实施方式中,该方法还包括与远程系统或附加远程系统接口以获取主动缓存刷新率元数据。与获取主动缓存刷新率元数据接口相对于与远程系统接口以预取瞬时助手动作建议是异步的。主动缓存刷新率元数据定义了其间助手客户端应用将避免与远程系统接口以预取更新的瞬时助手动作建议的持续时间。在那些实施方式的一些版本中,与获取主动缓存刷新率元数据接口发生在助手客户端应用的先前执行中,而没有立即实现主动缓存刷新率元数据。在那些实施方式的一些附加或替代版本中,该方法还包括,当助手客户端应用随后执行时:由助手客户端应用并基于主动缓存刷新率元数据确定避免与远程系统接口以预取更新的瞬时助手动作建议。由助手客户端应用基于主动缓存刷新率元数据来确定避免与远程系统接口以预取更新的瞬时助手动作建议可以包括:比较由主动缓存刷新率元数据定义的持续时间与关联于一个或多个瞬时助手动作建议的时间戳元数据。时间戳元数据可以定义获取瞬时助手动作建议的时间或远程系统生成瞬时助手动作建议的时间。在那些实施方式的一些附加或替代版本中,该方法还包括当助手客户端应用再次随后执行时:由助手客户端应用基于主动缓存刷新率元数据确定再次与远程系统接口以预取更新的瞬时助手动作建议;再次与远程系统接口以预取更新的瞬时助手动作建议和对应的更新元数据;且将本地存储的主动缓存中的瞬时助手动作建议和对应的元数据替换为更新后的瞬时助手动作建议和对应的更新元数据。对应的更新的元数据可以包括更新的主动缓存刷新率元数据,或者可以相对于与远程系统接口异步地获取更新的主动缓存刷新率元数据,以预取更新的瞬时助手动作建议和对应的更新的元数据。更新的主动缓存刷新率元数据可以定义更新的持续时间,在该更新持续时间期间,助手客户端应用将避免与远程系统接口以获取更新的瞬时助手动作建议。更新的持续时间可以与所述持续时间不同。更新的瞬时动作建议可以可选地包括更新的对应元数据的、具有改变的给定元数据的时间受约束建议的另一次出现。改变的给定元数据可以包括更新的渲染限制元数据,该更新的渲染限制元数据定义了时间受约束建议的渲染被限制到的一个或多个更新的时间窗口。一个或多个更新的时间窗口不同于渲染限制元数据的时间窗口。
在一些实施方式中,时间受约束建议包括描述对应于时间受约束建议的给定助手动作的文本,并且渲染时间受约束建议包括显示文本,并且另外的用户输入包括选择客户端设备的硬件按钮。在这些实施方式中的一些实施方式中,给定元数据还包括在远程系统处映射到给定助手动作的动作元数据。动作元数据包括比文本少的字节,并且在启动执行给定的助手动作时,助手客户端应用将动作元数据传输到远程系统来代替文本。
在一些实施方式中,另外的用户输入包括对应于时间受约束建议的口头输入。
在一些实施方式中,与远程系统接口以预取瞬时助手动作建议和对应的元数据是响应于确定助手客户端应用空闲。
在一些实施方式中,当助手客户端应用在客户端设备的前台执行时,与远程系统接口以预取瞬时助手动作建议和对应的元数据发生。
在一些实施方式中,提供了由一个或多个远程服务器在与由客户端设备的一个或多个处理器执行的助手客户端应用进行选择性网络通信中所执行的方法。该方法包括为具有动态时间特征的未来事件生成时间受约束的瞬时助手动作建议。该方法还包括基于与一个或多个远程系统接口确定未来事件的动态时间特征的至少一个时间窗口。该方法还包括基于时间窗口为时间受约束的瞬时助手动作建议生成渲染限制元数据。渲染限制元数据将时间受约束的瞬时助手动作建议的渲染限制到至少一个时间窗口。该方法还包括基于未来事件的一个或多个特性为时间受约束的瞬时助手动作建议生成主动缓存刷新率元数据。主动缓存刷新率元数据定义了持续时间,在该持续时间期间,助手客户端应用要避免与远程系统接口以预取至少时间受约束的瞬时助手动作建议的更新。该方法还包括从客户端设备的助手客户端应用接收瞬时动作建议预取请求,并响应于该瞬时动作建议预取请求,至少提供时间受约束的瞬时助手动作建议和渲染限制元数据。该方法还包括响应于瞬时动作建议预取请求或来自助手客户端应用的附加异步请求,提供用于时间受约束的瞬时助手动作建议的主动缓存刷新率元数据。
该技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,生成主动缓存刷新率元数据在提供时间受约束的瞬时助手动作建议和渲染限制元数据之后发生,并且响应于确定未来事件的一个或多个特性已经改变。在那些实施方式中,提供主动缓存刷新率元数据可以响应于附加的异步请求。
在一些实施方式中,提供了一种由一个或多个远程服务器执行的方法,该方法包括生成瞬时助手动作建议并从地理区域中的多个客户端设备的对应助手客户端应用接收对应的瞬时动作建议预取请求。该方法还包括:响应于对应的瞬时动作建议预取请求中的每一个提供瞬时动作建议。该方法还包括确定一个或多个远程服务器的负载变化和/或地理区域中一个或多个网络条件的变化。该方法还包括,响应于确定负载的变化和/或一个或多个网络条件的变化:生成更新的主动缓存刷新率元数据,该更新的主动缓存刷新率元数据定义了其间对应的助手客户端应用要避免与一个或多个远程服务器接口以预取更新的瞬时助手动作建议的持续时间;并且将更新的主动缓存刷新率元数据相对于任何瞬时动作建议预取请求异步地传输到对应的助手客户端应用,传输到多个功能手机的对应助手客户端应用以替换任何本地存储的预先存在的主动缓存刷新率元数据。
Claims (26)
1.一种由用户设备的一个或多个处理器执行的助手客户端应用执行的方法,所述方法包括:
当所述助手客户端应用在所述用户设备处执行时,与远程系统接口以预取用于所述助手客户端应用的瞬时助手动作建议和对应的元数据,
其中,所预取的瞬时助手动作建议包括:
与所述对应的元数据中的给定元数据相关联的时间受约束建议,所述给定元数据包括:
定义一个或多个时间窗口的渲染限制元数据,所述时间受约束建议的渲染被限制到所述一个或多个时间窗口;
将所预取的瞬时助手动作建议和所述对应的元数据写入所述用户设备的本地存储中的主动缓存;
在将所获取的瞬时助手动作建议和所述对应的元数据写入所述本地存储中的所述主动缓存之后,以及当所述助手客户端应用随后在所述用户设备处执行时:
确定所述助手客户端应用处于将提供助手动作建议的状态;
响应于确定所述助手客户端应用处于将提供瞬时助手动作建议的所述状态中:
访问所述本地存储中的所述主动缓存以选择所述瞬时助手动作建议的子集,所述子集至少包括所述时间受约束建议,并且访问所述本地存储中的所述主动缓存以选择所述子集包括:
基于确定当前时间条件符合由所述时间受约束建议的所述渲染限制元数据定义的所述一个或多个时间窗口中的至少一个来选择所述时间受约束建议以包括在所述子集中;
在所述用户设备处并经由所述助手客户端应用渲染所述瞬时助手动作建议的所述子集,包括渲染所述时间受约束建议;
其中,针对所渲染的时间受约束建议的另外的用户输入使所述助手客户端应用启动对应于所述时间受约束建议的给定助手动作的执行。
2.根据权利要求1所述的方法,其中,所述对应的元数据进一步包括与所述瞬时助手动作建议中的一个或多个相关联的时间戳元数据,所述时间戳元数据定义预取所述瞬时助手动作建议的时间或由所述远程系统生成所述瞬时助手动作建议的时间。
3.根据权利要求2所述的方法,进一步包括:
在渲染所述瞬时助手动作建议的所述子集之后,以及当所述助手客户端应用随后再次在所述用户设备处执行时:
基于所述时间戳元数据超过生存时间阈值,从所述本地存储中的所述主动缓存中移除所述瞬时助手动作建议中的一个或多个。
4.根据权利要求2所述的方法,进一步包括:
在渲染所述瞬时助手动作建议的所述子集之后,并且当所述助手客户端应用随后再次在所述用户设备处执行并再次处于将提供助手动作建议的所述状态时:
基于所述时间戳元数据超过生存时间阈值:
从所述本地存储中的所述主动缓存中选择至少一个非瞬时助手动作建议;以及
在所述用户设备处并经由所述助手客户端应用渲染所述至少一个非瞬时助手动作建议。
5.根据权利要求3所述的方法,其中,所述生存时间阈值是在所述助手客户端应用处预定义的。
6.根据权利要求3所述的方法,其中,所述生存时间阈值:
被包括在从所述远程系统预取的所述对应的元数据中,或
相对于与所述远程系统接口以预取瞬时助手动作建议异步地从所述远程系统或附加远程系统被获取。
7.根据权利要求1所述的方法,其中,所述对应的元数据进一步包括与所述瞬时助手动作建议中的一个或多个相关联的主动缓存刷新率元数据,所述主动缓存刷新率元数据定义持续时间,在所述持续时间期间所述助手客户端应用将避免与远程系统接口以预取更新的瞬时助手动作建议。
8.根据权利要求1所述的方法,进一步包括:
与所述远程系统或附加远程系统接口以获取主动缓存刷新率元数据,其中,接口以获取主动缓存刷新率元数据相对于与所述远程系统接口以预取瞬时助手动作建议是异步的,并且其中,所述主动缓存刷新率元数据定义持续时间,在所述持续时间期间所述助手客户端应用要避免与远程系统接口以预取更新的瞬时助手动作建议。
9.根据权利要求8所述的方法,其中,所述接口以获取所述主动缓存刷新率元数据发生在所述助手客户端应用的先前执行中,而没有立即实现所述主动缓存刷新率元数据。
10.根据权利要求7所述的方法,进一步包括:
当所述助手客户端应用随后在所述用户设备处执行时:
由所述助手客户端应用并基于所述主动缓存刷新率元数据确定避免与所述远程系统接口以预取更新的瞬时助手动作建议。
11.根据权利要求10所述的方法,其中,由所述助手客户端应用并基于所述主动缓存刷新率元数据确定避免与所述远程系统接口以预取更新的瞬时助手动作建议包括:
将由所述主动缓存刷新率元数据定义的所述持续时间和与所述瞬时助手动作建议中的一个或多个相关联的时间戳元数据进行比较,所述时间戳元数据定义获取所述瞬时助手动作建议的时间或所述远程系统生成所述瞬时助手动作建议的时间。
12.根据权利要求7所述的方法,进一步包括:
当所述助手客户端应用随后再次在所述用户设备处执行时:
由所述助手客户端应用基于所述主动缓存刷新率元数据确定再次与所述远程系统接口以预取更新的瞬时助手动作建议;
再次与所述远程系统接口以预取所述更新的瞬时助手动作建议和对应的更新元数据;以及
在所述本地存储中的所述主动缓存中将所述瞬时助手动作建议和所述对应的元数据替换为所述更新的瞬时助手动作建议和所述对应的更新元数据。
13.根据权利要求12所述的方法,其中,所述对应的更新元数据包括更新的主动缓存刷新率元数据,或者相对于与所述远程系统接口以预取所述更新的瞬时助手动作建议和对应的更新元数据而异步地获取所述更新的主动缓存刷新率元数据,所述更新的主动缓存刷新率元数据定义更新的持续时间,在所述更新的持续时间期间,所述助手客户端应用将避免与所述远程系统接口以获取更新的瞬时助手动作建议,所述更新的持续时间与所述持续时间不同。
14.根据权利要求12所述的方法,其中,所述更新的瞬时动作建议包括所述更新的对应元数据中具有更改的给定元数据的所述时间受约束建议的另一出现,所述更改的给定元数据包括:
更新的渲染限制元数据,所述更新的渲染限制元数据定义一个或多个更新的时间窗口,所述时间受约束建议的渲染被限制到所述一个或多个更新的时间窗口,所述一个或多个更新的时间窗口不同于渲染所述限制元数据的所述时间窗口。
15.根据权利要求1所述的方法,其中,所述时间受约束建议包括描述对应于所述时间受约束建议的所述给定助手动作的文本,其中,渲染所述时间受约束建议包括显示所述文本,并且其中,所述另外的用户输入包括选择所述用户设备的硬件按钮。
16.根据权利要求15所述的方法,其中,所述给定元数据进一步包括在所述远程系统处被映射到所述给定助手动作的动作元数据;其中,所述动作元数据包括比所述文本少的字节,并且其中,在启动所述给定助手动作的执行时,所述助手客户端应用将所述动作元数据代替所述文本传输到所述远程系统。
17.根据权利要求1所述的方法,其中,所述另外的用户输入包括对应于所述时间受约束建议的口头输入。
18.根据权利要求1-17中的任一项所述的方法,其中,与所述远程系统接口以预取所述瞬时助手动作建议和所述对应的元数据是响应于确定所述助手客户端应用处于空闲。
19.根据权利要求-17中的任一项所述的方法,其中,当所述助手客户端应用在所述用户设备的前台执行时,发生与所述远程系统接口以预取所述瞬时助手动作建议和所述对应的元数据。
20.一种由与由用户设备的一个或多个处理器执行的助手客户端应用选择性地进行网络通信中的一个或多个远程服务器执行的方法,所述方法包括:
为具有动态时间特征的未来事件生成时间受约束瞬时助手动作建议;
基于与一个或多个远程系统接口,为所述未来事件的所述动态时间特征确定至少一个时间窗口;
基于所述时间窗口生成所述时间受约束瞬时助手动作建议的渲染限制元数据,所述渲染限制元数据将所述时间受约束瞬时助手动作建议的渲染约束到所述至少一个时间窗口;
基于所述未来事件的一个或多个特性为所述时间受约束瞬时助手动作建议生成主动缓存刷新率元数据,所述主动缓存刷新率元数据定义持续时间,在所述持续时间期间,所述助手客户端应用将避免与远程系统接口以预取至少所述时间受约束瞬时助手动作建议的更新;
从所述用户设备的所述助手客户端应用接收瞬时动作建议预取请求;以及
响应于所述瞬时动作建议预取请求,至少提供所述时间受约束瞬时助手动作建议和所述渲染限制元数据;
响应于来自所述用户设备的所述助手客户端应用的所述瞬时动作建议预取请求或附加异步请求,提供用于所述时间受约束瞬时助手动作建议的所述主动缓存刷新率元数据。
21.根据权利要求20所述的方法,
其中,生成所述主动缓存刷新率元数据发生在提供所述时间受约束瞬时助手动作建议和所述渲染限制元数据之后,并且响应于确定所述未来事件的所述一个或多个特性已经改变;以及
其中,提供所述主动缓存刷新率元数据是响应于所述附加的异步请求。
22.一种由一个或多个远程服务器执行的方法,所述方法包括:
生成瞬时助手动作建议;
从地理区域内的多个用户设备的对应助手客户端应用接收对应的瞬时动作建议预取请求;
响应于所述对应的瞬时动作建议预取请求中的每个对应的瞬时动作建议预取请求,提供所述瞬时动作建议;
确定在一个或多个所述远程服务器处的负载改变和/或在所述地理区域中的一个或多个网络条件的改变;
响应于确定所述负载的所述改变和/或所述一个或多个网络条件的所述改变:
生成更新的主动缓存刷新率元数据,所述更新的主动缓存刷新率元数据定义持续时间,在所述持续时间期间,所述对应助手客户端应用将避免与一个或多个所述远程服务器接口以预取更新的瞬时助手动作建议;以及
将所述更新的主动缓存刷新率元数据传输到所述对应助手客户端应用,并且相对于任何瞬时动作建议预取请求异步地传输到所述多个用户设备的所述对应助手客户端应用,以取代任何本地存储的预先存在的主动缓存刷新率元数据。
23.一种包括至少一个处理器的用户设备,所述至少一个处理器执行存储的指令以执行根据权利要求1至19中的任一项所述的方法。
24.根据权利要求23所述的用户设备,其中,所述用户设备是功能手机。
25.一种包括至少一个处理器的服务器设备,所述至少一个处理器执行存储的指令以执行根据权利要求20至22中的任一项所述的方法。
26.一种存储指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时执行根据权利要求1至22中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311694398.9A CN117827339A (zh) | 2019-05-06 | 2019-11-05 | 在功能手机处主动缓存瞬时助手动作建议 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201921018023 | 2019-05-06 | ||
IN201921018023 | 2019-05-06 | ||
PCT/US2019/059812 WO2020226684A1 (en) | 2019-05-06 | 2019-11-05 | Proactive caching of transient assistant action suggestions at a feature phone |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311694398.9A Division CN117827339A (zh) | 2019-05-06 | 2019-11-05 | 在功能手机处主动缓存瞬时助手动作建议 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113574503A CN113574503A (zh) | 2021-10-29 |
CN113574503B true CN113574503B (zh) | 2024-01-02 |
Family
ID=69159969
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311694398.9A Pending CN117827339A (zh) | 2019-05-06 | 2019-11-05 | 在功能手机处主动缓存瞬时助手动作建议 |
CN201980093783.3A Active CN113574503B (zh) | 2019-05-06 | 2019-11-05 | 在功能手机处主动缓存瞬时助手动作建议 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311694398.9A Pending CN117827339A (zh) | 2019-05-06 | 2019-11-05 | 在功能手机处主动缓存瞬时助手动作建议 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10897529B2 (zh) |
EP (2) | EP3759595B1 (zh) |
CN (2) | CN117827339A (zh) |
WO (1) | WO2020226684A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827339A (zh) * | 2019-05-06 | 2024-04-05 | 谷歌有限责任公司 | 在功能手机处主动缓存瞬时助手动作建议 |
US20210377364A1 (en) * | 2020-05-27 | 2021-12-02 | Sap Se | Synchronization of customizations for enterprise software applications |
JP7380612B2 (ja) * | 2021-02-18 | 2023-11-15 | トヨタ自動車株式会社 | 方法、情報処理装置、及びシステム |
US20220415319A1 (en) * | 2021-06-28 | 2022-12-29 | Google Llc | On-device generation and personalization of zero-prefix suggestion(s) and use thereof |
CN114564667B (zh) * | 2022-04-28 | 2022-07-19 | 深圳市艾德网络科技发展有限公司 | 分析大规模数据的低延时缓存数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999036866A1 (en) * | 1998-01-15 | 1999-07-22 | Microsoft Corporation | Methods and apparatus for using resource transition probability models for pre-fetching resources |
US6343317B1 (en) * | 1999-12-29 | 2002-01-29 | Harry A. Glorikian | Internet system for connecting client-travelers with geographically-associated data |
CN104067274A (zh) * | 2012-01-19 | 2014-09-24 | 谷歌公司 | 用于改进对搜索结果的访问的系统和方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070192318A1 (en) | 2005-09-14 | 2007-08-16 | Jorey Ramer | Creation of a mobile search suggestion dictionary |
US9495461B2 (en) | 2011-03-22 | 2016-11-15 | Excalibur Ip, Llc | Search assistant system and method |
US8645825B1 (en) | 2011-08-31 | 2014-02-04 | Google Inc. | Providing autocomplete suggestions |
US9116986B1 (en) * | 2012-10-12 | 2015-08-25 | Google Inc. | Interactive calendar with an integrated journal |
US9805057B2 (en) * | 2013-10-15 | 2017-10-31 | Google Inc. | Automatic generation of geographic imagery tours |
US9973466B2 (en) * | 2013-12-16 | 2018-05-15 | Inbubbles Inc. | Space time region based communications |
US20180174058A1 (en) * | 2014-04-24 | 2018-06-21 | Hcl Technologies Limited | Providing dynamic and personalized recommendations |
US10440499B2 (en) * | 2014-06-16 | 2019-10-08 | Comcast Cable Communications, Llc | User location and identity awareness |
CN106664592B (zh) * | 2014-07-16 | 2020-08-18 | 腾赛拉网络有限公司 | 用于内容分发的方法和系统及相应的计算机可读介质 |
US9979796B1 (en) * | 2014-07-16 | 2018-05-22 | Tensera Networks Ltd. | Efficient pre-fetching notifications |
US9553813B2 (en) * | 2014-07-23 | 2017-01-24 | Cisco Technology, Inc. | Selectively employing dynamic traffic shaping |
US10091327B2 (en) * | 2015-08-10 | 2018-10-02 | Paypal, Inc. | Processing available user data to determine a user profile for use in anticipating changing user interests |
US10970646B2 (en) * | 2015-10-01 | 2021-04-06 | Google Llc | Action suggestions for user-selected content |
US10535005B1 (en) * | 2016-10-26 | 2020-01-14 | Google Llc | Providing contextual actions for mobile onscreen content |
US10565243B2 (en) * | 2017-02-17 | 2020-02-18 | Sap Se | Application-independent transformation and progressive rendering of queries for constrained user input devices and data model enabling same |
WO2018226951A1 (en) * | 2017-06-09 | 2018-12-13 | Walmart Apollo, Llc | Systems and methods for providing location-based time-limited services |
US10579226B2 (en) * | 2017-09-19 | 2020-03-03 | Google Llc | Time proximity based map user interactions |
CN117827339A (zh) * | 2019-05-06 | 2024-04-05 | 谷歌有限责任公司 | 在功能手机处主动缓存瞬时助手动作建议 |
-
2019
- 2019-11-05 CN CN202311694398.9A patent/CN117827339A/zh active Pending
- 2019-11-05 EP EP19835928.3A patent/EP3759595B1/en active Active
- 2019-11-05 CN CN201980093783.3A patent/CN113574503B/zh active Active
- 2019-11-05 WO PCT/US2019/059812 patent/WO2020226684A1/en unknown
- 2019-11-05 US US16/618,604 patent/US10897529B2/en active Active
- 2019-11-05 EP EP21187764.2A patent/EP3920025A1/en active Pending
-
2020
- 2020-12-10 US US17/118,485 patent/US11240363B2/en active Active
-
2022
- 2022-01-31 US US17/588,669 patent/US11695863B2/en active Active
-
2023
- 2023-06-29 US US18/216,460 patent/US20240040027A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999036866A1 (en) * | 1998-01-15 | 1999-07-22 | Microsoft Corporation | Methods and apparatus for using resource transition probability models for pre-fetching resources |
US6343317B1 (en) * | 1999-12-29 | 2002-01-29 | Harry A. Glorikian | Internet system for connecting client-travelers with geographically-associated data |
CN104067274A (zh) * | 2012-01-19 | 2014-09-24 | 谷歌公司 | 用于改进对搜索结果的访问的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US11695863B2 (en) | 2023-07-04 |
US20220159116A1 (en) | 2022-05-19 |
US11240363B2 (en) | 2022-02-01 |
CN113574503A (zh) | 2021-10-29 |
US10897529B2 (en) | 2021-01-19 |
EP3759595A1 (en) | 2021-01-06 |
WO2020226684A1 (en) | 2020-11-12 |
US20240040027A1 (en) | 2024-02-01 |
EP3759595B1 (en) | 2021-08-25 |
US20200358892A1 (en) | 2020-11-12 |
EP3920025A1 (en) | 2021-12-08 |
CN117827339A (zh) | 2024-04-05 |
US20210099567A1 (en) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113574503B (zh) | 在功能手机处主动缓存瞬时助手动作建议 | |
JP7256237B2 (ja) | 局所的なテキスト応答マップを利用する、ユーザの口頭発話への応答のレンダリング | |
US11948576B2 (en) | Proactive caching of assistant action content to enable resolution of spoken or typed utterances | |
US20220107824A1 (en) | Adapting client application of feature phone based on experiment parameters |
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 |