US 11,722,439 B2
Bot platform for mutimodal channel agnostic rendering of channel response
Ravi K. Bikkula, Sammamish, WA (US); Amruta Shiroor, Kirkland, WA (US); Rakesh Chakari Mallareppa, Bellevue, WA (US); and Chandrasekhar Subramanya Akkiraju Venkata, Woodinville, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Oct. 1, 2018, as Appl. No. 16/149,123.
Prior Publication US 2020/0106722 A1, Apr. 2, 2020
Int. Cl. H04L 51/02 (2022.01); H04L 51/52 (2022.01); H04L 67/75 (2022.01); G06F 3/04817 (2022.01)
CPC H04L 51/02 (2013.01) [H04L 51/52 (2022.05); H04L 67/75 (2022.05); G06F 3/04817 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A system for rendering a channel response, the system comprising:
a processor and;
a memory communicatively coupled to the processor and storing instructions that, when executed by the processor, perform operations, comprising:
receive, via a computing device communicating over a channel from among a plurality of different channels, an input invoking a bot skill of a bot;
determine, from the input, an entity to be rendered in a card;
determine if a hash of the entity matches an existing template response in a cache storing template responses using corresponding unique hashes; and
in response to the hash of the entity not matching the existing template response in the cache:
select, from a plurality of card templates, a first card template over a second card template, the first card template being a first candidate for rendering the determined entity in a first canvas of the channel, the second card template being a second candidate for rendering the determined entity in a second canvas of the channel, the first card template being selected over the second card template based, as least in part on:
the channel;
the determined entity; and
whether the determined entity is an only entity to be rendered in the card to perform the bot skill of the bot or whether there are multiple entities to be rendered in the card to perform the bot skill of the bot;
bind entity data for the determined entity to one or more entity properties of the selected first card template;
generate the channel response using the selected first card template and the entity data;
store, in the cache, the channel response as a template response comprising (1) a corresponding hash that expires based on a timestamp defining a time until expiration and (2) the entity data bound to the selected first card template; and
cause the card to be rendered according to the first selected card template by sending the channel response to the channel, wherein a future hash, of a future entity associated with a future input invoking the bot skill within the time until expiration, is compared against the corresponding hash, and wherein the template response is output as a future card if the future hash matches the corresponding hash.