DETAILED ACTION
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 .
Claims 1-20 are pending in this office action.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or non-obviousness.
Claims 1-6, 8-13 and 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over Grover et al US20250278268A1and further in view of Kohisseri et al US 20220188079 A1.
As per claim 1, Grover discloses a method of jointly generating code output by one or more neural network-based language models:
[0004] “The captured plurality of sets of input parameters are input into a first Artificial Intelligence (AI) algorithm that generates a plurality of corresponding AI generated source code”;
the method comprising: generating, via a first neural network based language model (LM), a first code output in a programming language:
[0035] The AI generated source code 125 may be any type of source code that is generated by the code AI algorithm 124. The AI generated source code 125 may be in various types of programming languages, such as Java, JavaScript, perl, C++, assembly language, and/or the like. The AI generated source code 125 is generated based on input parameters (the data/tokenized inputs (i.e., prompts) that are used as inputs when prompted by the code AI algorithm 124) provided to the code AI algorithm 124.
in response to an input task description in a natural language;
[0048] In another embodiment, the input could be in natural language (e.g., not source code), in which case the input modifier 129 would output natural language and learn prompts (words/phrasings) to use and not to use to guide the code AI algorithm 124 to produce AI generated source code 125 without issues”;
generating, via a second neural network based LM, a first critique text based on a first input prompt comprising a first instruction to evaluate an accuracy of the first code output compared with the input task description:
[0036] The output issue scanner 126 may be similar to the training set issue scanner 122. The output issue scanner 126 is used to scan the AI generated source code 125 for issues. The output issue scanner 126 may scan for similar issues as the training set issue scanner 122. The output issue scanner 126 may also comprise an output AI algorithm 127”;
[0046] “Alternatively, the output issue scanner 126 may scan for all known issues and/or user defined issues. The results of the output issue scanner 126 are then fed back to the input modifier 129/input AI algorithm 130. The results of the scan may also be displayed (e.g., as shown in FIG. 9) to the user. For example, identified snippets of source code that have issues may be displayed to the user so that the user can select specific inputs (e.g., specific snippets of source code of a specific issues).”;
generating, via a third neural network based LM different than the second neural network based LM, a second critique text based on a second input prompt comprising a second instruction to evaluate the first code output, the input task description, and the first critique text;
[0037] The output AI algorithm 127 may be used to identify new types of issues in the final source code 128. For example, the output AI algorithm 127 may be used to identify mutations of malware, mutations of vulnerabilities, mutations of bugs, mutations of non-optimal source code, mutations of viruses, and/or the like that are in the AI generated source code 125. The output AI algorithm 127 may also be used to identify snippets of source code that are associated with any identified issues (existing or mutated issues) in the AI generated source code 125.
generating, by the first neural network based LM, a revised code output based on an input prompt combining the input task description, the first code output, the first critique text, and the second critique text:
[0070] The input modifier 129 gets, in step 604, input from the user as to which input parameter(s) 201 to use to generate the AI generated source code 125. The input modifier 129 modifies the new input parameter(s) 201 based on the user input in step 606. The new input parameter(s) 201 are then provided to the code AI algorithm 124 in step 608. The process then goes to step 508.”;
But not explicitly:
and executing the revised code output in a code environment thereby producing a result to the input task description.
Kohisseri discloses:
and executing the revised code output in a code environment thereby producing a result to the input task description.
[0076] In an embodiment, the validation module 225 may be configured for generating an executable source code 109 for the application after validating the one or more best-fit source codes. In an embodiment, the validation module 225 may validate the one or more best-fit source codes based on predetermined customized rule generators in the source code generator 105. As an example, the validation module 225 may compile and build the best-fit source code using the abstract syntax trees created for each code snippets and perform a code review and code quality and security checks based on the user-specific application requirements across different languages”;
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Kohessiri into teachings of Grover for determining one or more best-fit source codes for the application based on similarities among each of the one or more source codes. Finally, the method comprises generating an executable source code for the application by validating the one or more best-fit source codes based on historical information related to one or more executable source codes previously generated by the source code generator.
As per claim 2, the rejection of claim 1 is incorporated and furthermore Grover discloses:
, wherein the third neural network based LM is different than the second neural network based LM by at least one of: a different set of parameters; or a second input prompt different from the first input prompt.
[0040]“The input modifier 129 may also comprise an input AI algorithm 130. The input AI algorithm 130 is used to identify inputs that produce issues. For example, the input AI algorithm 130 may identify that input parameter X causes issue Y to occur in the AI generated source code 125. The input AI algorithm 130 can be used in conjunction with the input modifier 129 to remove inputs to the code AI algorithm 124 that produce different issues in the AI generated source code 125, such as described below”;
As per claim 3, the rejection of claim 2 is incorporated and furthermore Grover discloses:
wherein the second input prompt comprises a second instruction to evaluate a safety of the first code output:
[0067] Another option may be to display a different input parameter 201 to replace the current input parameter 201. For example, the input parameter 201 may be to use a low encryption level (e.g., 64-bit encryption) or insecure type of encryption. The vulnerability is that the low encryption level/type of encryption is not secure. The different input parameter 201 may be to use a higher encryption level using a different encryption algorithm. For example, the different input parameter 201 may be to use Advanced Encryption Standard (AES) 128-bit encryption instead of Data Encryption Standard (DES) 64-bit encryption.
As per claim 4, the rejection of claim 1 is incorporated and furthermore Grover discloses:
generating, via the first neural network based LM, a second code output in the programming language based at least on the result of executing the revised code:
[0070] The input modifier 129 gets, in step 604, input from the user as to which input parameter(s) 201 to use to generate the AI generated source code 125. The input modifier 129 modifies the new input parameter(s) 201 based on the user input in step 606. The new input parameter(s) 201 are then provided to the code AI algorithm 124 in step 608. The process then goes to step 508.”;
As per claim 5, the rejection of claim 4 is incorporated and furthermore Grover discloses:
wherein the generating the second code output is further based on the first critique text and the second critique text:
[0004] “For example, the issue may be a type of malware or a software vulnerability. A second AI algorithm identifies a first input parameter from the plurality of sets of input parameters that is associated with the identified issue. The second AI algorithm modifies, based on the first input parameter, a new first input parameter provided to the first AI algorithm. The first new input parameter is used to generate a new corresponding AI generated source code.’;
As per claim 6, the rejection of claim 4 is incorporated and furthermore Grover discloses:
generating, via the first neural network based LM, a third code output based on at least one of: additional critiques generated by the second and third neural network based LMs; or an additional result generated by code execution.
[0051] “For example, the user may be presented with a list of learned vulnerability/malware/non-optimized code snippets. The user can then select which of the learned vulnerability/malware snippets to use as an input parameter 201 for generating new AI generated source code 125 without the vulnerability/malware/non-optimized code in addition to the other user input parameters 201.”;
Claims 8, 9, 10, 11, 12, 13 are the system claim corresponding to method claims 1, 2, 3, 4, 5, 6 and rejected under the same rational set forth in connection with the rejection of claims 1, 2, 3, 4, 5, 6 above.
Claims 15, 16, 17, 18, 19, 20 are the non-transitory machine-readable medium claim corresponding to method claims 1, 2, 3, 4, 5, 6 and rejected under the same rational set forth in connection with the rejection of claims 1, 2, 3, 4, 5, 6 above.
Claims 7, 14 are rejected under 35 U.S.C. 103 as being unpatentable over Grover et al US20250278268A1 in view of Kohisseri et al US 20220188079 A1 and further in view Tworek et al US20250272128A1.
As per claim 7, the rejection of claim 1 is incorporated and furthermore Grover discloses:
wherein at least one of the first or second neural network based LMs have access to at least one of a web search capability or a code interpreter, and at least one of the first critique text or the second critique text is further based on at least one of a web search or a code execution.
Tworek discloses:
wherein at least one of the first or second neural network based LMs have access to at least one of a web search capability or a code interpreter:
[0051] An important functionality enabled by the tool may include a code generator and a code interpreter. Code generator may include AI models configured to create source code based on user inputs and predefined templates or specifications. Code interpreter can provide multimodal machine learning models with a working computer language interpreter that has the ability to interpret, compile, and/or execute source code.
and at least one of the first critique text or the second critique text is further based on at least one of a web search or a code execution.
[0100] “For example, a system (e.g., code interpreter 102) may analyze if the aforementioned code or script that runs the computer code produces an error. In some embodiments, an error is detected by comparing the code to pre-stored requirements, such as syntax requirements, logic requirements, and/or naming conventions. In some embodiments, an error is detected by attempting to execute the code or script and receiving a response indicating failure (e.g., a runtime error). If the computer code produces an error, then method 700 reverts back to step 702 and generates the code or script anew. If, however, the computer code does not produce an error, then method 700 continues to step 708”.
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to combine the teachings of cited references. One ordinary skill in the art before the effective filling date of the claimed invention would have been motivated to incorporate the teachings of Tworek into teachings of Grover and kohessiri to provide a multimodal machine learning models with updated data and expanded libraries, but also allows for the appropriate manipulation of such user-provided data or files via the use of computer code or computer programming languages.[Tworek 0005].
Claim 14 is the system claim corresponding to method claim 7 and rejected under the same rational set forth in connection with the rejection of claim 7 above.
Pertinent arts:
US20240385942A1:
A code scanning system scans code to identify issues where a workaround has been implemented. The code scanning system automatically identifies a status corresponding to the identified issue and generates a suggested operation to perform based upon the issue and the identified status. The issue, the identified status, and the suggested operation can be surfaced for user interaction.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRAHIM BOURZIK whose telephone number is (571)270-7155. The examiner can normally be reached Monday-Friday (8-4:30).
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, Wei Y Mui can be reached at 571-270-2738. 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.
/BRAHIM BOURZIK/ Examiner, Art Unit 2191
/WEI Y MUI/ Supervisory Patent Examiner, Art Unit 2191