DETAILED ACTION
Claims 1-20 are pending in this application.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-4, 6, 14, 15 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2025/0156157 A1 to Kunz in view of U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al.
As to claim 1, Kunz teaches a method for processing a query using a machine-trained language model, comprising:
receiving the query (user query) (“…In response to the user query, application 110 generates user prompt 112 and system prompt 114 and transmits prompts 112 and 114 to trained text generation model 130. Model 130 may comprise a neural network trained to generate text based on input text. Trained text generation model 130 may be implemented by a set of linear equations, executable program code, a set of hyperparameters defining a model structure and a set of corresponding weights, or any other representation of an input-to-output mapping which was learned as a result of the training…” paragraph 0028);
generating a first prompt (User Prompt 112/System Prompt 114) that includes a description of the query and selector information, the selector information including an instruction to select one or more functions from a group of functions, and a summary of the functions in the group of functions (Function Call Metadata 144/Function Call Metadata Embeddings 146) (“…In response to the user query, application 110 generates user prompt 112 and system prompt 114 and transmits prompts 112 and 114 to trained text generation model 130. Model 130 may comprise a neural network trained to generate text based on input text. Trained text generation model 130 may be implemented by a set of linear equations, executable program code, a set of hyperparameters defining a model structure and a set of corresponding weights, or any other representation of an input-to-output mapping which was learned as a result of the training…Application 110 transmits search requests to and receives search results from repository 140. Repository 140 may comprise any searchable data storage system, including but not limited to a monolithic or distributed database system. Repository 140 includes search component 141 which is exposed to external processes to submit search queries to search for data stored in storage 142. According to the illustrated embodiment, storage 142 stores function call metadata 144 and function call metadata embeddings 146…Function call metadata 144 may comprise metadata describing a plurality of function calls. The metadata associated with a function call may include, for example, a function name, function parameters (i.e., arguments), descriptions of the function name and function parameters, and an endpoint supporting the function call. For purposes of the present description, an API may consist of one or more function calls associated with a same endpoint. Function call metadata may therefore comprise one or more publicly-available API specifications…The function calls described by function call metadata 144 may be provided by one or more applications and/or services. Some of the function calls may be supported by a particular database system of a particular software provider, while others of the function calls may be supported by a procurement application provided by the particular software provider. The function calls may also be supported by applications and/or services provided by more than one software provider…Function call metadata embeddings 146 are multi-dimensional vector representations of function call metadata 144. Function call metadata embeddings 146 facilitate searches for function call metadata 144 which is semantically similar to search terms of a given search request. Generation and use of function call metadata embeddings 146 according to some embodiments will be described in detail below..” paragraphs 0028/0032-0035);
sending the first prompt to the machine-trained language model (Trained Text Generation Model 130/1130) (“…The user prompt and system prompt are transmitted to a text generation model at S915. Next, flow proceeds as described above with respect to S220 through S250 of process 200, to receive a response from a function call endpoint. The system prompt is updated with the response at S920. For example, FIG. 11 shows updated system prompt 1130 including response 1135 received from a function call endpoint as described above…The user prompt and updated system prompt are transmitted to the text generation model at S925. Based on the instructions of the updated system prompt, the text generation model either returns a result, a generated function call, or a generated search query. In the example of updated system prompt 1130, the text “If you need more information, generate code using the above tools” and “If you have all the information needed to answer the user's query, return, e.g.,” instructs the text generation model to determine whether is able to answer the user's query and, if so, to return a result. If not, the text generation model generates and returns a function call if it already has its needed the function call metadata, or a search query to obtain needed function call metadata as described above…” paragraphs 0036/0037); and
receiving a first language-model response from the machine-trained language model that the machine-trained language model generates in response to the first prompt, the first language-model response including identification information that identifies a particular function specified in the group of functions (Trained Text Generation Model 130/1130) (“…The user prompt and system prompt are transmitted to a text generation model at S915. Next, flow proceeds as described above with respect to S220 through S250 of process 200, to receive a response from a function call endpoint. The system prompt is updated with the response at S920. For example, FIG. 11 shows updated system prompt 1130 including response 1135 received from a function call endpoint as described above…The user prompt and updated system prompt are transmitted to the text generation model at S925. Based on the instructions of the updated system prompt, the text generation model either returns a result, a generated function call, or a generated search query. In the example of updated system prompt 1130, the text “If you need more information, generate code using the above tools” and “If you have all the information needed to answer the user's query, return, e.g.,” instructs the text generation model to determine whether is able to answer the user's query and, if so, to return a result. If not, the text generation model generates and returns a function call if it already has its needed the function call metadata, or a search query to obtain needed function call metadata as described above…” paragraphs 0036/0037).
Kunz is silent with reference to generating a second prompt that provides a particular instance of function definition information that describes the particular function in more detail than the selector information in the first prompt by specifying at least input information to be provided to the particular function, the second prompt having fewer tokens than an amount of tokens that would be needed to describe all of the functions in the group of functions;
sending the second prompt to the machine-trained language model;
receiving a second language-model response that the machine-trained language model generates in response to the second prompt, the second language-model response providing invocation information for invoking the particular function with input information that is formatted in a manner specified by the particular instance of function definition information; and
invoking the particular function specified by the invocation information.
Chakhvadze teaches generating a second prompt that provides a particular instance of function definition information that describes the particular function in more detail than the selector information in the first prompt by specifying at least input information to be provided to the particular function (the data management system generates a further prompt (e.g., the second prompt)) (“…In various embodiments, the data management system automatically handles error detection and correction based on model responses. Specifically, upon receiving a model response, the data management system determines if an error occurred during at least one of the operations, including the operation of parsing the response; the operation of validating the parsed response, and the operation of generating the one or more programming data objects in the requested machine-readable format. Once an error is detected, the data management system generates a further prompt (e.g., the second prompt) based on a text description of the error and the model response that includes the error. The data management system uses the machine learning model to generate a further model response (e.g., second response) in the output format (e.g., requested machine-readable format) based on the further prompt. Once the further model response is generated, the data management system parses the response, validates the response against the schema, and converts the response into one or more into one or more programming data objects in the requested machine-readable format. Upon determining the further model response is free from error, the data management system passes the one or more programming data objects as function outputs to the requesting user for downstream processing…” paragraph 0020), the second prompt having fewer tokens than an amount of tokens that would be needed to describe all of the functions in the group of functions (the token budget of each data chunk is dynamically calculated based on the current size of the internal state parameter, so that the number of tokens in the resulting prompt is not larger than the maximum number of tokens supported by the large language model) (“…At operation 608, the processor dynamically calculates a token budget based on an internal state parameter. The internal state parameter is updated before the processor identifies and process a next data chunk. As more data chunks are identified and processed, the size of the internal state parameter continues to grow. Given that the total length of model input and output is limited, the token budget of each data chunk is dynamically calculated based on the current size of the internal state parameter, so that the number of tokens in the resulting prompt is not larger than the maximum number of tokens supported by the large language model…” paragraph 0082),
sending the second prompt to the machine-trained language model/
receiving a second language-model response that the machine-trained language model generates in response to the second prompt, the second language-model response providing invocation information for invoking the particular function with input information that is formatted in a manner specified by the particular instance of function definition information (The data management system uses the machine learning model to generate a further model response (e.g., second response) in the output format (e.g., requested machine-readable format) based on the further prompt) (“…In various embodiments, calling a function can include specifying the function name, function definitions, function call operator, and data values (also referred to as arguments) the function expects to receive. Arguments are values for the parameters defined for the function. Arguments can be passed to the function provided by the data management system…In various embodiments, the data management system automatically handles error detection and correction based on model responses. Specifically, upon receiving a model response, the data management system determines if an error occurred during at least one of the operations, including the operation of parsing the response; the operation of validating the parsed response, and the operation of generating the one or more programming data objects in the requested machine-readable format. Once an error is detected, the data management system generates a further prompt (e.g., the second prompt) based on a text description of the error and the model response that includes the error. The data management system uses the machine learning model to generate a further model response (e.g., second response) in the output format (e.g., requested machine-readable format) based on the further prompt. Once the further model response is generated, the data management system parses the response, validates the response against the schema, and converts the response into one or more into one or more programming data objects in the requested machine-readable format. Upon determining the further model response is free from error, the data management system passes the one or more programming data objects as function outputs to the requesting user for downstream processing…At operation 606, the processor processes the collection of data units to generate a plurality of outputs. The processing of the collection can include a number of operations, such as operations 608 through 614. In various embodiments, data management system can provide one or more functions that can be called to handles the processing of the collection of data units. For example, inputs to a function that is provided to processing of the collection of data units can include instruction prompt template, zero or more arguments (also referred to as function parameters, or parameters) passed as symbolic chunk iterators, and zero or more arguments representing internal state parameter. Example outputs of such a function can include a final results that includes aggregated (or merged) outputs resulting from the processing of the collection…” paragraphs 0018/0020/0081), and
invoking the particular function specified by the invocation information (“…In various embodiments, calling a function can include specifying the function name, function definitions, function call operator, and data values (also referred to as arguments) the function expects to receive. Arguments are values for the parameters defined for the function. Arguments can be passed to the function provided by the data management system…The API server 110 receives and transmits data (e.g., API calls, commands, requests, responses, and authentication data) between the client device 102 and the application server 116. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client software application 104 in order to invoke the functionality of the application server 116. The API server 110 exposes various functions supported by the application server 116 including, without limitation: user registration; login functionality; data object operations (e.g., generating, storing, retrieving, encrypting, decrypting, transferring, access rights, licensing, etc.); and user communications…” paragraph 0046).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz with the teaching of Chakhvadze because the teaching of Chakhvadze would improve the system of Kunz by providing a token budget determining component for dynamically calculating token budget based on an internal state (also referred to as an internal state parameter) and corresponding to a number of tokens that exceeds an upper limit of tokens (e.g., the token budget) that a large language model can process (Chakhvadze paragraph 0056).
As to claim 2, Kunz teaches the method of claim 1, further comprising:
receiving reference information that describes functions from at least one reference source (“…Application 110 transmits search requests to and receives search results from repository 140. Repository 140 may comprise any searchable data storage system, including but not limited to a monolithic or distributed database system. Repository 140 includes search component 141 which is exposed to external processes to submit search queries to search for data stored in storage 142. According to the illustrated embodiment, storage 142 stores function call metadata 144 and function call metadata embeddings 146…The search query is transmitted to a repository of function call metadata (e.g., repository 140) at S225. An endpoint and parameters of a function call are received from the repository at S230. According to some embodiments, the endpoint and parameters of the function call are determined based on embeddings of the search terms (e.g., “contact”) of the search query and on function call metadata embeddings which were previously generated and stored in the repository…Accordingly, search component 1240 may identify function call metadata from either of function call metadata 1247 and function call metadata 1249 in response to a model-generated search request received from application 1210…” paragraphs 0032/0046/0074); and
using the machine-trained language model to transform the reference information into the selector information and instances of function definition information that describe the functions in the group of functions (“…Application 110 transmits search requests to and receives search results from repository 140. Repository 140 may comprise any searchable data storage system, including but not limited to a monolithic or distributed database system. Repository 140 includes search component 141 which is exposed to external processes to submit search queries to search for data stored in storage 142. According to the illustrated embodiment, storage 142 stores function call metadata 144 and function call metadata embeddings 146…Consequently, trained text generation model 1230 may generate function calls for endpoints exposed by API 1254, API 1251 or API 1257. These function calls may be chained to answer a single user query as described above with respect to process 900. More particularly, two or more of the chained function calls may be transmitted to different endpoints and executed by different ones of applications 1252, 1255 and 1258…” paragraphs 0032/0075).
As to claim 3, Kunz teaches the method of claim 1, further comprising:
receiving the selector information from a repository that includes different pre-generated instances of selector information (Repository 140/1240); and
receiving pre-generated instances of function description information from the repository that describe respective functions in the group of functions (“…Application 110 transmits search requests to and receives search results from repository 140. Repository 140 may comprise any searchable data storage system, including but not limited to a monolithic or distributed database system. Repository 140 includes search component 141 which is exposed to external processes to submit search queries to search for data stored in storage 142. According to the illustrated embodiment, storage 142 stores function call metadata 144 and function call metadata embeddings 146…The search query is transmitted to a repository of function call metadata (e.g., repository 140) at S225. An endpoint and parameters of a function call are received from the repository at S230. According to some embodiments, the endpoint and parameters of the function call are determined based on embeddings of the search terms (e.g., “contact”) of the search query and on function call metadata embeddings which were previously generated and stored in the repository…Accordingly, search component 1240 may identify function call metadata from either of function call metadata 1247 and function call metadata 1249 in response to a model-generated search request received from application 1210…” paragraphs 0032/0046/0074/0075).
As to claim 4, Chakhvadze teaches the method of claim 1, wherein the invocation information in the second language-model response is application programming interface information (“…In various embodiments, calling a function can include specifying the function name, function definitions, function call operator, and data values (also referred to as arguments) the function expects to receive. Arguments are values for the parameters defined for the function. Arguments can be passed to the function provided by the data management system…The API server 110 receives and transmits data (e.g., API calls, commands, requests, responses, and authentication data) between the client device 102 and the application server 116. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client software application 104 in order to invoke the functionality of the application server 116. The API server 110 exposes various functions supported by the application server 116 including, without limitation: user registration; login functionality; data object operations (e.g., generating, storing, retrieving, encrypting, decrypting, transferring, access rights, licensing, etc.); and user communications…” paragraph 0046).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz with the teaching of Chakhvadze because the teaching of Chakhvadze would improve the system of Kunz by providing a token budget determining component for dynamically calculating token budget based on an internal state (also referred to as an internal state parameter) and corresponding to a number of tokens that exceeds an upper limit of tokens (e.g., the token budget) that a large language model can process (Chakhvadze paragraph 0056).
As to claim 6, Chakhvadze teaches the method of claim 1, further comprising generating successive prompts (the data management system generates a further prompt (e.g., the second prompt) and receiving successive language-model responses until a particular language-model response indicates that the particular language-model response is a final response (generate a further model response (e.g., second response)) (“…In various embodiments, the data management system automatically handles error detection and correction based on model responses. Specifically, upon receiving a model response, the data management system determines if an error occurred during at least one of the operations, including the operation of parsing the response; the operation of validating the parsed response, and the operation of generating the one or more programming data objects in the requested machine-readable format. Once an error is detected, the data management system generates a further prompt (e.g., the second prompt) based on a text description of the error and the model response that includes the error. The data management system uses the machine learning model to generate a further model response (e.g., second response) in the output format (e.g., requested machine-readable format) based on the further prompt. Once the further model response is generated, the data management system parses the response, validates the response against the schema, and converts the response into one or more into one or more programming data objects in the requested machine-readable format. Upon determining the further model response is free from error, the data management system passes the one or more programming data objects as function outputs to the requesting user for downstream processing…At operation 606, the processor processes the collection of data units to generate a plurality of outputs. The processing of the collection can include a number of operations, such as operations 608 through 614. In various embodiments, data management system can provide one or more functions that can be called to handles the processing of the collection of data units. For example, inputs to a function that is provided to processing of the collection of data units can include instruction prompt template, zero or more arguments (also referred to as function parameters, or parameters) passed as symbolic chunk iterators, and zero or more arguments representing internal state parameter. Example outputs of such a function can include a final results that includes aggregated (or merged) outputs resulting from the processing of the collection…” paragraphs 0018/0020/0081).
As to claim 14, Kunz teaches the method of claim 1, wherein the particular function is a computer program and/or or machine-trained model that accepts a particular input, performs particular operations on the input, and delivers a particular output as an outcome of the operations (Trained Text Generation Model 130) (“…In response to the user query, application 110 generates user prompt 112 and system prompt 114 and transmits prompts 112 and 114 to trained text generation model 130. Model 130 may comprise a neural network trained to generate text based on input text. Trained text generation model 130 may be implemented by a set of linear equations, executable program code, a set of hyperparameters defining a model structure and a set of corresponding weights, or any other representation of an input-to-output mapping which was learned as a result of the training…Consequently, trained text generation model 1230 may generate function calls for endpoints exposed by API 1254, API 1251 or API 1257. These function calls may be chained to answer a single user query as described above with respect to process 900. More particularly, two or more of the chained function calls may be transmitted to different endpoints and executed by different ones of applications 1252, 1255 and 1258…” paragraphs 0075).
As to claim 15, Kunz teaches a computing system for processing a query using a machine-trained language model, comprising:
an instruction data store for storing computer-readable instructions (Figure 14); and
a processing system for executing the computer-readable instructions in the data store (Figure 14), to perform operations including:
receiving the query user query) (“…In response to the user query, application 110 generates user prompt 112 and system prompt 114 and transmits prompts 112 and 114 to trained text generation model 130. Model 130 may comprise a neural network trained to generate text based on input text. Trained text generation model 130 may be implemented by a set of linear equations, executable program code, a set of hyperparameters defining a model structure and a set of corresponding weights, or any other representation of an input-to-output mapping which was learned as a result of the training…” paragraph 0028);
in a first prompting operation, asking the machine-trained model to select a particular application programming interface (API) to be called in responding to the query, from a group of APIs (Function Call Metadata 144/Function Call Metadata Embeddings 146) (“…In response to the user query, application 110 generates user prompt 112 and system prompt 114 and transmits prompts 112 and 114 to trained text generation model 130. Model 130 may comprise a neural network trained to generate text based on input text. Trained text generation model 130 may be implemented by a set of linear equations, executable program code, a set of hyperparameters defining a model structure and a set of corresponding weights, or any other representation of an input-to-output mapping which was learned as a result of the training…Application 110 transmits search requests to and receives search results from repository 140. Repository 140 may comprise any searchable data storage system, including but not limited to a monolithic or distributed database system. Repository 140 includes search component 141 which is exposed to external processes to submit search queries to search for data stored in storage 142. According to the illustrated embodiment, storage 142 stores function call metadata 144 and function call metadata embeddings 146…Function call metadata 144 may comprise metadata describing a plurality of function calls. The metadata associated with a function call may include, for example, a function name, function parameters (i.e., arguments), descriptions of the function name and function parameters, and an endpoint supporting the function call. For purposes of the present description, an API may consist of one or more function calls associated with a same endpoint. Function call metadata may therefore comprise one or more publicly-available API specifications…The function calls described by function call metadata 144 may be provided by one or more applications and/or services. Some of the function calls may be supported by a particular database system of a particular software provider, while others of the function calls may be supported by a procurement application provided by the particular software provider. The function calls may also be supported by applications and/or services provided by more than one software provider…Function call metadata embeddings 146 are multi-dimensional vector representations of function call metadata 144. Function call metadata embeddings 146 facilitate searches for function call metadata 144 which is semantically similar to search terms of a given search request. Generation and use of function call metadata embeddings 146 according to some embodiments will be described in detail below..” paragraphs 0028/0032-0035); and
receiving a first language-model response from the machine-trained language model that provides identification information that identifies the particular API in the group of APIs that is selected (Trained Text Generation Model 130/1130) (“…The user prompt and system prompt are transmitted to a text generation model at S915. Next, flow proceeds as described above with respect to S220 through S250 of process 200, to receive a response from a function call endpoint. The system prompt is updated with the response at S920. For example, FIG. 11 shows updated system prompt 1130 including response 1135 received from a function call endpoint as described above…The user prompt and updated system prompt are transmitted to the text generation model at S925. Based on the instructions of the updated system prompt, the text generation model either returns a result, a generated function call, or a generated search query. In the example of updated system prompt 1130, the text “If you need more information, generate code using the above tools” and “If you have all the information needed to answer the user's query, return, e.g.,” instructs the text generation model to determine whether is able to answer the user's query and, if so, to return a result. If not, the text generation model generates and returns a function call if it already has its needed the function call metadata, or a search query to obtain needed function call metadata as described above…” paragraphs 0036/0037).
Kunz is silent with reference to in a second prompting operation, asking the machine-trained language model to generate an API message to be input to the particular API that conforms to a particular instance of function definition information that describes the particular API, the second prompting operation producing fewer tokens than an amount of tokens that would be needed to describe all of the APIs in the group of APIs,
receiving a second language-model response that includes the API message that is generated, to be input to the particular API, and
sending the API message to the particular API to invoke the particular API.
Chakhvadze teaches in a second prompting operation, asking the machine-trained language model to generate an API message to be input to the particular API that conforms to a particular instance of function definition information that describes the particular API (the data management system generates a further prompt (e.g., the second prompt)) (“…In various embodiments, the data management system automatically handles error detection and correction based on model responses. Specifically, upon receiving a model response, the data management system determines if an error occurred during at least one of the operations, including the operation of parsing the response; the operation of validating the parsed response, and the operation of generating the one or more programming data objects in the requested machine-readable format. Once an error is detected, the data management system generates a further prompt (e.g., the second prompt) based on a text description of the error and the model response that includes the error. The data management system uses the machine learning model to generate a further model response (e.g., second response) in the output format (e.g., requested machine-readable format) based on the further prompt. Once the further model response is generated, the data management system parses the response, validates the response against the schema, and converts the response into one or more into one or more programming data objects in the requested machine-readable format. Upon determining the further model response is free from error, the data management system passes the one or more programming data objects as function outputs to the requesting user for downstream processing…” paragraph 0020),
the second prompting operation producing fewer tokens than an amount of tokens that would be needed to describe all of the APIs in the group of APIs (the token budget of each data chunk is dynamically calculated based on the current size of the internal state parameter, so that the number of tokens in the resulting prompt is not larger than the maximum number of tokens supported by the large language model) (“…At operation 608, the processor dynamically calculates a token budget based on an internal state parameter. The internal state parameter is updated before the processor identifies and process a next data chunk. As more data chunks are identified and processed, the size of the internal state parameter continues to grow. Given that the total length of model input and output is limited, the token budget of each data chunk is dynamically calculated based on the current size of the internal state parameter, so that the number of tokens in the resulting prompt is not larger than the maximum number of tokens supported by the large language model…” paragraph 0082),
receiving a second language-model response that includes the API message that is generated, to be input to the particular API, and
sending the API message to the particular API to invoke the particular API (“…In various embodiments, calling a function can include specifying the function name, function definitions, function call operator, and data values (also referred to as arguments) the function expects to receive. Arguments are values for the parameters defined for the function. Arguments can be passed to the function provided by the data management system…The API server 110 receives and transmits data (e.g., API calls, commands, requests, responses, and authentication data) between the client device 102 and the application server 116. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client software application 104 in order to invoke the functionality of the application server 116. The API server 110 exposes various functions supported by the application server 116 including, without limitation: user registration; login functionality; data object operations (e.g., generating, storing, retrieving, encrypting, decrypting, transferring, access rights, licensing, etc.); and user communications…” paragraph 0046).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz with the teaching of Chakhvadze because the teaching of Chakhvadze would improve the system of Kunz by providing a token budget determining component for dynamically calculating token budget based on an internal state (also referred to as an internal state parameter) and corresponding to a number of tokens that exceeds an upper limit of tokens (e.g., the token budget) that a large language model can process (Chakhvadze paragraph 0056).
As to claim 20, see the rejection of claim 1, expect for a computer-readable storage medium.
Kunz teaches a computer-readable storage medium (Figure 14).
Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2025/0156157 A1 to Kunz in view of U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al. as applied to claim 1 above, and further in view of U.S. Pub. No. 20140089911 A1 to Allan et al.
As to claim 10, Kunz as modified Chakhvadze teaches the method of claim 1, however it is silent with reference to automatically removing the particular instance of function definition information from a context data store upon a determination that a triggering event has occurred that indicates that the particular instance of function definition information is no longer needed.
Allan teaches automatically removing the particular instance of function definition information from a context data store upon a determination that a triggering event (Steps 109/Step 115) has occurred that indicates that the particular instance of function definition information is no longer needed (“…The unified functions resultant from analysis are stored in a repository (step 101). The repository may be repository 53 shown in FIG. 1. Unified functions are functions that have been rationalized and combined based on their description, which indicates that the functions perform similar capabilities with only slight variations. The similar functionality analysis removes duplications and ensures function or candidate service connections by: identifying functions with similar names and identical functionality; identifying functions with similar names but different functionality to eliminate all duplication functions using function description as a basis; identifying functions with different names, but identical functionality to group functions with some variations in functionality, but with overlapping commonality under a course grained facade function; ensure function name and description for correctness by accepting, deleting, or fixing; and related functions to facades. Once the similar functionality analysis is complete, the analysis may include: the function/candidate name, function description; action resulting from analysis of accepted, added, deleted, or unified; the unified function name, and the facade for a course grained function that can be supported by finer grained functions, for example as shown in FIGS. 10-13. Step 101 is further described in FIGS. 3-5…The functions resultant from the similar functionality analysis are retrieved from the repository and a pivot table is created with the unified functions (step 102), for example by the pivot table creator program 67. The functions within the pivot table are categorized (step 103). The categorization includes categorizing based on operation the function or candidate service performs through create, read, update, delete, technical functions, and wrongly placed (CRUDTW) operations, the functional area the candidate service or function should belong to and the business activity type. The categorization is preferably based on the function or candidate service description…” paragraphs 0038/0039).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz and Chakhvadze with the teaching of Alan because the teaching of Alan would improve the system of Kunz and Chakhvadze by providing a similar functionality analysis applied to functions to remove duplications, unify functions, and ensure function or candidate service connections and for optimal function invocation (Allan paragraph 0037).
Claims 11 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2025/0156157 A1 to Kunz in view of U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al. as applied to claim 10 above, and further in view of U.S. Pub. No. 20140089911 A1 to Allan et al. as applied to claim 1 above, and further in view of U.S. Pub. No. 2025/0103401 A1 to Singh.
As to claim 11, Kunz as modified Chakhvadze and Alan teaches the method of claim 10, however it is silent with reference to wherein one triggering event is an indication that the particular function associated with the particular instance of function information has been invoked.
Singh teaches wherein one triggering event is an indication that the particular function associated with the particular instance of function information has been invoked (initiating, based on receipt by a prompt module, one of a user-request requirement and a repository-optimization trigger/to remove obsolete APIs from the distributed API repository based on the mergeable APIs that were merged) (“…In some arrangements, an artificial-intelligence merger, construction, and optimization method for application program interfaces can comprise one or more steps such as, for example: initiating, based on receipt by a prompt module, one of a user-request requirement and a repository-optimization trigger, an application program interface (API) merge and create process to merge mergeable APIs stored in a distributed API repository into a constructed API that is newly created and to remove obsolete APIs from the distributed API repository based on the mergeable APIs that were merged; extracting, by a metadata extraction module, API metadata for the mergeable APIs from the distributed API repository; generating, by an analyzer module based on a generative artificial intelligence (AI) process executing deep-learning abstract syntax tree (AST) and generative pre-trained transformer (GPT) algorithms, API clusters containing combinable APIs from the mergeable APIs based on the API metadata that was extracted; generating, by the API analyzer using the generative AI process, telemetry for the API clusters to identify an API solution cluster for the combinable APIs based on which of the API clusters had a highest performance ranking in view of execution speed, predicted reliability, security, and scalability; combining, by a generation module consistent with API security-rule requirements, the combinable APIs identified by the API solution cluster into the constructed API; creating, by the generation module, constructed metadata for the constructed API; testing, by a smart contract module, the constructed API as a smart contract to obtain operability test results on the constructed API, said smart contract being a self-executing contract with agreement terms for software API testing written into code for the smart contract, said smart contract stored on a distributed ledger blockchain; transmitting, by the smart contract module to the generative AI process, the operability test results based on execution of the smart contract with respect to the constructed API; storing, in the distributed API repository, the constructed API with the constructed metadata; removing, from the distributed API repository, any of said combinable APIs and any of said API metadata that is obsolete in view of the constructed API; deploying, by an orchestration module, the constructed API to the distributed ledger blockchain; monitoring, continuously by an API monitoring module, the distributed ledger blockchain to observe performance metrics for the constructed API; transmitting, by the API monitoring module to the generative AI process, the performance metrics; ingesting, into the generative AI process, the operability test results and the performance metrics; mapping, to the constructed API in the distributed API repository, future process calls to any of said combinable APIs that were rendered obsolete; and/or providing, by the API merge and create process, developer notifications for any of said combinable APIs that were rendered obsolete…” paragraphs 0011/0051).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz and Chakhvadze with the teaching of Singh because the teaching of Singh would improve the system of Kunz and Chakhvadze by providing a technique for removing or deleting obsolete functions/API to allow for optimal function invocation.
As to claim 12, Kunz as modified Chakhvadze and Alan teaches the method of claim 10, however it is silent with reference to wherein one triggering event is an indication that another query has been received for which the particular function associated with the particular instance of function definition information is unusable.
Singh teaches wherein one triggering event is an indication that another query has been received for which the particular function associated with the particular instance of function definition information is unusable (to remove obsolete APIs from the distributed API repository based on the mergeable APIs that were merged) (“…In some arrangements, an artificial-intelligence merger, construction, and optimization method for application program interfaces can comprise one or more steps such as, for example: initiating, based on receipt by a prompt module, one of a user-request requirement and a repository-optimization trigger, an application program interface (API) merge and create process to merge mergeable APIs stored in a distributed API repository into a constructed API that is newly created and to remove obsolete APIs from the distributed API repository based on the mergeable APIs that were merged; extracting, by a metadata extraction module, API metadata for the mergeable APIs from the distributed API repository; generating, by an analyzer module based on a generative artificial intelligence (AI) process executing deep-learning abstract syntax tree (AST) and generative pre-trained transformer (GPT) algorithms, API clusters containing combinable APIs from the mergeable APIs based on the API metadata that was extracted; generating, by the API analyzer using the generative AI process, telemetry for the API clusters to identify an API solution cluster for the combinable APIs based on which of the API clusters had a highest performance ranking in view of execution speed, predicted reliability, security, and scalability; combining, by a generation module consistent with API security-rule requirements, the combinable APIs identified by the API solution cluster into the constructed API; creating, by the generation module, constructed metadata for the constructed API; testing, by a smart contract module, the constructed API as a smart contract to obtain operability test results on the constructed API, said smart contract being a self-executing contract with agreement terms for software API testing written into code for the smart contract, said smart contract stored on a distributed ledger blockchain; transmitting, by the smart contract module to the generative AI process, the operability test results based on execution of the smart contract with respect to the constructed API; storing, in the distributed API repository, the constructed API with the constructed metadata; removing, from the distributed API repository, any of said combinable APIs and any of said API metadata that is obsolete in view of the constructed API; deploying, by an orchestration module, the constructed API to the distributed ledger blockchain; monitoring, continuously by an API monitoring module, the distributed ledger blockchain to observe performance metrics for the constructed API; transmitting, by the API monitoring module to the generative AI process, the performance metrics; ingesting, into the generative AI process, the operability test results and the performance metrics; mapping, to the constructed API in the distributed API repository, future process calls to any of said combinable APIs that were rendered obsolete; and/or providing, by the API merge and create process, developer notifications for any of said combinable APIs that were rendered obsolete…” paragraphs 0011/0051).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz and Chakhvadze with the teaching of Singh because the teaching of Singh would improve the system of Kunz and Chakhvadze by providing a technique for removing or deleting obsolete functions/API to allow for optimal function invocation.
Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2025/0156157 A1 to Kunz in view of U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al. as applied to claim 1 above, and further in view of U.S. Pub. No. 2025/0103367 A1 to Shipkovenski et al.
As to claim 13, Kunz as modified Chakhvadze teaches the method of claim 1, however it is silent with reference to wherein a first function in the group of functions receives input information generated by a second function in the group of functions, and wherein two or more functions in the group of functions perform, at least in part, the same operations.
Shipkovenski teaches wherein a first function (API Call 150) in the group of functions receives input information generated by a second function in the group of functions (Second API Call 155), and wherein two or more functions in the group of functions perform, at least in part, the same operations (performs the same operation) (“…At a FaaS framework executing in a first cloud, the method receives a first API (Application Programming Interface) call invoking a first function that is defined by the framework. At the FaaS framework, the method generates, from the first API call, a second API call that directs a set of machines in a second cloud to invoke a second function that performs a desired operation of the first function in the second cloud. The method forwards, at the FaaS framework, the second API call to the second cloud for the set of machines to instantiate the second function after receiving the second API call, to use the second function to perform the desired operation, and to discard the second function after performing the desired operation…Based on the API call 150 received from the program 110, the SDK 120 of some embodiments selects a cloud provider from the available cloud providers 130-134, and generates a second API call 155 to invoke the function named in the first API call 150. In some embodiments, the second API call 155 is in a second format that is compatible with the selected cloud provider. In some embodiments, the function named in the API call 150 is a first function, and the function retrieved by the SDK 120 is a second function that when executed, performs the same operation, and produces the same results, as the named first function…” paragraphs 0004/0035).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz and Chakhvadze with the teaching of Shipkovenski because the teaching of Shipkovenski would improve the system of Kunz and Chakhvadze by providing a FaaS framework that allows for plural cloud providers for services function calls or invocation.
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 2025/0156157 A1 to Kunz in view of U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al. as applied to claim 15 above, and further in view of U.S. Pub. No. 2018/0260374 A1 to Sobby et al.
As to claim 17, Kunz as modified Chakhvadze teaches the computing system of claim 15, however it is silent with reference to wherein the operations are repeated one or more times to invoke plural function calls in series.
Sobby teaches wherein the operations are repeated one or more times to invoke plural function calls in series (recursive functions/ further function calls) (“…In some examples, the functions comprise multi-step functions, recursive functions, or nested functions, among others. These functions might require more than one execution step or function call to complete and determine a result. In these cases, asynchronous function handler 123 can handle evaluation of the functions by issuing a series of function calls out to the appropriate function platform. Each intermediate result received from the function platform can be cached or otherwise stored by asynchronous function handler. These intermediate results can be employed in further function calls to produce a final evaluated result based on the intermediate results and one or more repeated function calls. A further discussion on these multi-step function calls is discussed below in FIGS. 3 and 4…” paragraph 0025).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claim invention to modify the system of Kunz and Chakhvadze with the teaching of Sobby because the teaching of Sobby would improve the system of Kunz and Chakhvadze by providing a recursive learning process where a function, algorithm, or model learns or operates by repeatedly by applying itself to smaller instances of the same problem until a preferred or optimal condition is met
Allowable Subject Matter
Claims 5, 7-9, 16, 18 and 19 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Reasons for allowance
The following is an examiner’s statement of reasons for allowance:
The closest prior art of records, (U.S. Pub. No. 2025/0156157 A1 to Kunz and U.S. Pub. No. 2025/0045025 A1 to Chakhvadze et al.), taken alone or in combination do not specifically disclose or suggest the claimed recitations (claims 5, 7-9, 16, 18 and 19), when taken in the context of claims as a whole.
Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
U.S. Pub. No. 2022/0343461 A1 to LI et al. and directed to a system and method allow rich content transformation to be separately processed on a client device and on a cloud-based server.
US 2024/0256762 A1 to Beauchamp and directed to Methods and systems for prompting a large language model (LLM) to process inputs from multiple user elements to generate a revised block of text.
U.S. Pub. No. 2014/0358825 A1 to Phllipps et al. and directed to apparatuses, systems, methods, and computer program products for machine learning results.
U.S. Pub. No. 2016/0110657 A1 to Gibiansky et al. and directed to a system and method for selecting a machine learning method and optimizing the parameters that control its behavior including receiving data; determining, using one or more processors.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHARLES E ANYA whose telephone number is (571)272-3757. The examiner can normally be reached Mon-Fir. 9-6pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, KEVIN YOUNG can be reached at 571-270-3180. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CHARLES E ANYA/Primary Examiner, Art Unit 2194