AI-driven platform for API dialogue
AssigneeCheck Point Software Technologies Ltd.
InventorsBarak Kfir, Albert Havinson, Nofar Bardugo, Dan Karpati, Tamir Zegman
Life of this patent
Estimating the term…
Abstract
A system and method are provided for utilizing a service's Application Programming Interface (API) documentation, generating an OpenAPI specification for the API, enriching the OpenAPI specification with artificial intelligence (AI) generated explanatory notes, and integrating the enriched OpenAPI specification with an AI engine (e.g., a natural language model, large language model, etc.). This process may permit users to interact with the service through natural language.
Claims20
A computer device for enabling natural language interaction with an application programming interface (API) for performing a service using an artificial intelligence (AI) engine, the computer device comprising:
- processor circuitry configured to:
- perform a creation flow for generating a canonical API specification comprising:
- receiving API code, wherein the API code comprises computer code for performing the service;
- processing API documentation comprising receiving or generating the API documentation for the API code, wherein, when the API documentation is generated, the processing of the API documentation includes:
- sending a request including the API code to the AI engine to generate the API documentation;
- and
- receiving the API documentation from the AI engine;
- generating from the processed API documentation a standardized API specification comprising:
- sending a request to the AI engine to generate the standardized API specification from the API documentation;
- and
- receiving the standardized API specification from the AI engine;
- and
- generating from the standardized API specification the canonical API specification comprising:
- sending a request to the AI engine to generate the canonical API specification from the standardized API specification;
- and
- receiving the canonical API specification from the AI engine, wherein the canonical API includes a verbose description of the API including functions of the API, parameters received by the API, and values returned by the API;
- and
- perform a usage flow as a command processor engine comprising:
- receiving a trigger;
- determining a prompt from the received trigger;
- sending to the AI engine the determined prompt and a functions list of the functions of the API;
- receiving from the AI engine an identified function and provided parameters for calling the identified function in order to achieve an intended result based on the determined prompt;
- calling the identified function of the API using the provided parameters;
- receiving and sending to the AI engine an execution result of calling the identified function with the provided parameters;
- repeatedly performing an iterative instruction execution loop for achieving the intended result until receiving a stop instruction from the AI engine, comprising:
- receiving from the AI engine a set of instructions including at least one of the stop instruction, or the identified function and the provided parameters for calling the identified function;
- when the set of instructions include the identified function and provided parameters:
- calling the identified function of the API using the provided parameters;
- and
- receiving and sending to the AI engine the execution result of calling the identified function with the provided parameters.
A system for enabling natural language interaction with an application programming interface (API) for performing a service, the method comprising:
- an AI engine comprising a computer device including:
- a memory comprising a non-transitory computer readable medium storing a natural language model (NLM);
- computer circuitry configured to:
- perform a creation flow for generating a canonical API specification comprising:
- receiving API code, wherein the API code comprises computer code for performing the service;
- processing API documentation comprising receiving or generating the API documentation for the API code, wherein, when the API documentation is generated, the processing of the API documentation includes:
- sending a request including the API code to the AI engine to generate the API documentation;
- and
- receiving the API documentation from the AI engine;
- generating from the processed API documentation and the API code a standardized API specification;
- and
- generating from the standardized API specification a canonical API specification, wherein the canonical API specification includes a verbose description of the API including functions of the API, parameters received by the API, and values returned by the API;
- a command processor engine comprising an electronic device including:
- processor circuitry configured to perform a usage flow comprising:
- receiving a trigger;
- determining a prompt from the received trigger;
- sending to the AI engine the determined prompt and a functions list of the functions of the API;
- receiving from the AI engine an identified function and provided parameters for calling the identified function;
- calling the identified function of the API using the provided parameters;
- receiving and sending to the AI engine an execution result of calling the identified function with the provided parameters;
- repeatedly performing an iterative instruction execution loop until receiving a stop instruction from the AI engine, comprising:
- receiving from the AI engine a set of instructions including at least one of the stop instruction, or the identified function and the provided parameters for calling the identified function;
- when the set of instructions include the identified function and provided parameters:
- calling the identified function of the API using the provided parameters;
- and
- receiving and sending to the AI engine the execution result of calling the identified function with the provided parameters;
- wherein the computer circuitry of the AI engine is further configured to perform the usage flow by:
- receiving from the command processor engine the determined prompt and the functions list;
- determining an execution flow of one or more function calls for obtaining an intended result based on the received prompt and the functions list;
- determining from the execution flow the identified function and the provided parameters for calling the identified function;
- sending the identified function and the provided parameters to the command processor engine;
- receiving from the command processor engine the execution result of calling the identified function with the provided parameters;
- repeatedly performing the iterative instruction execution loop until obtaining a stop condition, comprising:
- determining the execution flow of the one or more function calls for obtaining the intended result based on the received prompt, the functions list, and the received execution result;
- determining from the execution flow the identified function and the provided parameters for calling the identified function;
- sending the identified function and the provided parameters to the command processor engine;
- receiving from the command processor engine the execution result of calling the identified function with the provided parameters;
- and
- upon obtaining the stop condition, sending the stop instruction to the command processor engine.
Dependencies are inferred from the claim text.