US 11,948,023 B2
Automatic application program interface (API) selector for unsupervised natural language processing (NLP) intent classification
Alston Ghafourifar, Los Altos Hills, CA (US); Mehdi Ghafourifar, Los Altos Hills, CA (US); and Brienne Ghafourifar, Los Altos Hills, CA (US)
Assigned to Entefy Inc., Palo Alto, CA (US)
Filed by Entefy Inc., Palo Alto, CA (US)
Filed on Jun. 1, 2020, as Appl. No. 16/889,613.
Application 16/889,613 is a continuation of application No. 15/859,183, filed on Dec. 29, 2017, abandoned.
Prior Publication US 2021/0089375 A1, Mar. 25, 2021
Int. Cl. G06F 9/54 (2006.01); G06F 9/451 (2018.01); G06F 40/30 (2020.01)
CPC G06F 9/547 (2013.01) [G06F 9/453 (2018.02); G06F 9/543 (2013.01); G06F 40/30 (2020.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
monitoring, by a monitoring layer of a layered model of a hardware stack and a software stack, application program interface (API) sequences for a set of API calls from interactions between an application layer of an application on a plurality of devices and an operating system layer of the plurality of devices;
detecting a user interaction with the application on an end user device, wherein the user interaction comprises at least one of a user command or a user query for a natural language processing (NLP) intent classification system of the application;
determining acquired data and generated data for the set of API calls available to a computer system usable with the application, wherein the acquired data comprises the monitored API sequences performed by the NLP intent classification system, and wherein the generated data comprises probabilistic determinations of potentially successful API sequences performable by the NLP intent classification system;
generating, based on the acquired data and the generated data, a graphical representation comprising individual clusters of nodes connected by edges for relationships between APIs in the set of API calls available to the computer system;
determining one or more paths in the graphical representation of relationships based on one or more relationships between two or more APIs in the set of API calls, wherein each of the one or more relationships between the two or more APIs is weighted to indicate a degree of correlation for each relationship based on the acquired data and the generated data;
assigning a path metric to each of the one or more determined paths, the path metric indicating, in part, a likelihood of success for each of the one or more determined paths;
providing at least a portion of the graphical representation of relationships to the end user device with an NLP intent response to the user interaction based on the one or more determined paths and the assigned path metrics, wherein the NLP intent response is associated with a user intent from the at least one of the user command or the user query determined by the NLP intent classification system;
receiving feedback comprising one or more user inputs from the end user device to the at least the portion of graphical representation of relationships;
determining to adjust, for the graphical representation of relationships, the one or more paths associated with the one or more relationships between the two or more APIs in the set of API calls, wherein the determining to adjust comprises:
adjusting, based on a machine learning technique and the feedback, one or more of the assigned path metrics,
generating a potential API path using an AI model based on the set of API calls, the one or more determined paths, and the adjusted one or more of the assigned path metrics,
executing a test program of the potential API path for the user interaction based on the adjusted one or more of the assigned path metrics, and
determining that the potential API path results in a finished sequence of events or an error condition;
updating the one or more determined paths with the potential API path;
configuring the NLP intent classification system to execute the potential API path using the set of API calls for processing the user interaction and returning the NLP intent response;
executing, based on the NLP intent response to the user interaction, a sequence of API calls from the set of API calls using the graphical representation of relationships of the set of paths including the potential API path; and
providing the NLP intent response in the application on the end user device based on the executed sequence.