Distributed personal assistant

  • US 10,671,428 B2
  • Filed: 05/26/2016
  • Issued: 06/02/2020
  • Est. Priority Date: 09/08/2015
  • Status: Active Grant
  • ×
    • Pin Icon | RPX Insight
    • Pin
First Claim
Patent Images

1. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by an electronic device, cause the electronic device to:

  • receive a user request for a service from a virtual assistant;

    determine at least one task to perform in response to the user request;

    estimate at least one performance characteristic for completion of the at least one task with the electronic device, based on at least one heuristic of a plurality of heuristics, wherein estimating the at least one performance characteristic based on the at least one heuristic of the plurality of heuristics comprises;

    determining whether performing the at least one task requires using personal data stored on the electronic device;

    in response to determining that performing the at least one task requires using personal data stored on the electronic device, identifying a first heuristic of the plurality of heuristics;

    weighting a second heuristic of the plurality of heuristics relative to one or more other heuristics of the plurality of heuristics based on a first weight, wherein a value of the first weight is determined based on computing conditions associated with the electronic device; and

    estimating the at least one performance characteristic based on the first heuristic and the weighted second heuristic;

    based on the estimate, determine whether to execute the at least one task at the electronic device using the personal data;

    in accordance with a determination to execute the at least one task at the electronic device, cause the execution of the at least one task at the electronic device; and

    in accordance with a determination to execute the at least one task outside the electronic device;

    generate executable code for carrying out the at least one task; and

    transmit the executable code from the electronic device.

View all claims