DETAILED ACTION
Claims 1-20 are pending in the application and claims 1-20 are rejected.
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 Objections
Claims 9-16 and 20 are objected to because of the following informalities:
Claim 9:
Line 2: Replace “configured to store” with --storing--.
Line 7: Insert --the-- before “one or more”.
Claim 15:
Line 1: Replace “to generate” with --generating--.
Claim 18:
Lines 1-2: replace “further comprising” with --wherein the operations further comprise--.
Claim 19:
Lines 1-2: replace “further comprising” with --wherein the operations further comprise--.
Claim 20:
Lines 1-2: replace “further comprising” with --wherein the operations further comprise--.
Claims 10-14 and 16 depend on the objected claims and inherit the same issues
Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claims 1, 9, and 17:
Step 1:
Claims 1-8 are directed to a process, claims 9-16 are directed to a system, and claims 17-20 are directed to a non-transitory computer readable medium. Thus, they fall into statutory categories.
Step 2A, Prong 1:
Claims 1 recites:
generating, using one or more pre-trained large language models (LLMs), a plurality of sub-modules from a problem description in a natural language
grouping the plurality of sub-modules into a plurality of clusters
selecting representative sub-modules from the plurality of clusters
augmenting the problem description with the representative sub-modules
generating new sub-modules from the augmented problem description
generating source code for the problem description from the new sub-modules
Steps (a), (b), (c), (d), (e), and (f) are mental processes that can be performed in the human mind or by a human using pen and paper.
Claim 9 recites:
receiving a problem description in a natural language
generating, using one or more pre-trained LLMs, a plurality of sub-modules from the problem description
encoding, using the one or more pre-trained LLMs, the plurality of sub-modules into sub-module encodings in an embedding space
clustering the sub-module encodings into a plurality of clusters
selecting a subset of sub-module encodings from the plurality of clusters
generating representative sub-modules from the subset of sub-module encodings
generating, using the one or more pre-trained LLMs, the problem description and the representative sub-modules, new sub-modules
Steps (a), (b), (c), (d), (e), (f), and (g) are mental processes that can be performed in the human mind or by a human using pen and paper.
Claim 17 recites:
receiving a problem description in a natural language
generating, using one or more pre-trained LLMs, a plurality of sub-modules from the problem description
grouping the plurality of sub-modules into a plurality of clusters
selecting representative sub-modules from the plurality of clusters
augmenting the problem description with the representative sub-modules
generating, using the one or more pre-trained LLMs, new sub-modules from the augmented problem description.
Steps (a), (b), (c), (d), (e), and (f) are mental processes that can be performed in the human mind or by a human using pen and paper.
Step 2A Prong 2:
Claims recite additional elements, “LLMs” in claim 1; “a memory”, “processor”, and “LLMs” in claim 9; and “medium”, “a processor” and “LLMs” in claim 17. However, they are recited at a high level of generality. Thus, the claims as a whole do not integrate the exception into a practical application.
Step 2B:
The additional elements, considering them both individually and in combination, do not amount to significantly more than the judicial exception itself.
Regarding claim 2, the claim recites: wherein the grouping further comprises: encoding, using the one or more pre-trained LLMs, the plurality of sub-modules into sub-module encodings in an embedding space; and clustering the sub-module encodings into the plurality of clusters. The limitations “encoding” and “clustering are functions that can be performed in the human mind or by a human using pen and paper. Furthermore, the additional elements “pre-trained LLMs” and “embedding space” are recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 3, the claim recites: wherein the selecting further comprises: determining centroids in the plurality of clusters; and selecting a subset of sub-module encodings that are closest to the centroid. The limitation “determining” is a function that can be performed in the human mind or by a human using pen and paper. Furthermore, the additional element “centroid” is recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 4, the claim recites: converting the subset of sub-module encodings into the representative sub-modules. The limitation “converting” is nothing more than an insignificant extra solution activity, and is therefore not integrated into a practical application under Step 2A Prong 2. Furthermore, the additional element does not amount to significantly more than the judicial exception at Step 2B.
Regarding claim 5, the claim recites: generating new representative sub-modules from the new sub-modules; generating the source code from the new representative sub-modules; and generating a program from the source code. The limitations “generating new representative sub-modules”, “generating the source code from the new representative sub-modules”, and “generating a program from the source code” are functions that can be performed in the human mind or by a human using pen and paper. Furthermore, the claim does not recite any other additional elements. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 6, the claim recites: executing the program to generate a solution for the problem description. The limitation “executing the program” is nothing more than an insignificant extra solution activity, and is therefore not integrated into a practical application under Step 2A Prong 2. Furthermore, the additional element does not amount to significantly more than the judicial exception at Step 2B.
Regarding claim 7, the claim recites: wherein generating the plurality of sub-modules further comprises: generating outlines describing the plurality of sub-modules; and generating source code from the outlines to be included in the plurality of sub-modules. The limitations “generating outlines” and “generating source code” are functions that can be performed in the human mind or by a human using pen and paper. Furthermore, the claim does not recite any other additional elements. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 8, the claim recites: wherein an outline in the outlines includes a function header and a description statement. The additional elements “function header” and “description statement” are recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 10, the claim recites: wherein the operations for selecting the subset of the sub-module encodings further comprise operations: selecting sub-module encodings into the subset of sub-module encodings that are with a predefined distance to centroids of the plurality of clusters in the embedding space. The limitation “selecting” is a function that can be performed in the human mind or by a human using pen and paper. Furthermore, the additional element “centroid” is recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 11, the claim recites: wherein the operations for selecting the subset of the sub-module encodings further comprise operations: selecting one sub-module encoding from one cluster in the plurality of clusters into the subset of sub-module encodings, wherein the one sub-module encoding has a closest distance to a centroid of the one cluster. The limitation “selecting” is a function that can be performed in the human mind or by a human using pen and paper. Furthermore, the additional element “centroid” is recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 12, the claim recites: selecting a pre-defined number of sub-modules from the plurality of sub-modules; and wherein the encoding further comprises, encoding the pre-defined number of sub-modules into the sub-module encodings. The limitations “selecting” and “encoding” are functions that can be performed in the human mind or by a human using pen and paper. Furthermore, the claim does not recite any other additional elements. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 13, the claim recites: wherein the operations further comprise: combining the representative sub-modules into source code. The limitation “combining” is a function that can be performed in the human mind or by a human using pen and paper. Furthermore, the additional element “source code” is recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 14, the claim recites: wherein the operations further comprise: executing the source code to generate a solution to the problem description. The limitation “executing the source code” is nothing more than an insignificant extra solution activity, and is therefore not integrated into a practical application under Step 2A Prong 2. Furthermore, the additional element does not amount to significantly more than the judicial exception at Step 2B.
Regarding claim 15, the claim recites: wherein to generate the plurality of sub-modules, the operations further comprise: generating outlines describing the plurality of sub-modules; and generating source code from the outlines to be included in the plurality of sub-modules. The limitations “generating outlines” and “generating source code” are functions that can be performed in the human mind or by a human using pen and paper. Furthermore, the claim does not recite any other additional elements. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 16, the claim recites: wherein an outline in the outlines includes a function header and a description statement. The additional elements “function header” and “description statement” are recited at a high level of generality. Therefore, the claim does not integrate the judicial exception into a practical application at Step 2A Prong 2, or recite additional elements that amount to significantly more than the judicial exception at Step 2B.
Regarding claim 18, the claim recites: encoding using the one or more pre-trained LLMs, the plurality of sub-modules into sub-modules encoding in an embedded space and clustering the sub-module encodings into the plurality of clusters. However, they are mental processes that can be performed in the human mind or by a human using pen and paper.
Regarding claim 19, the claim recites: generating source code from the new sub-modules. However, it is mental process that can be performed in the human mind or by a human using pen and paper.
Regarding claim 20, the claim recites: selecting sub-module encodings from the plurality of clusters, one sub-module encoding from one cluster in the plurality of clusters. However, it is mental process that can be performed in the human mind or by a human using pen and paper.
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.
Claims 1, 2, 3, 5, 6, 9, 10, 11, 12, 17, 18, 19, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Chen et al. (US20240020096, Chen hereinafter), in view of Buliani et al. (US12530173, Buliani hereinafter) and Ye et al. (US20210182031, Ye hereinafter).
Regarding claim 1, Chen teaches: generating, (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”); (see Chen et al., paragraph [0005]); selecting representative sub-modules (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting.”), (see Chen et al., paragraph [0005]); (see Chen et al., paragraph [0005]); generating new sub-modules (see Chen et al., paragraph [0005]); and generating source code for the problem description from the new sub-modules (see Chen et al., paragraph [0005]);
Chen does not appear to distinctly disclose:
However, Buliani teaches: (see Buliani et al., col 28 line 66, “…Block 1904 can also include augmenting the prompt to the LLM…”); augmenting the problem description (see Buliani et al., col 28 line 66); and (see Buliani et al., col 28 line 66);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a large language model (LLM) and an augmented problem description, as taught by Buliani, for the result of refining output code.
Chen as modified does not appear to distinctly disclose: grouping
However, Ye teaches: grouping (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”); and (see Ye et al., paragraph [0026]);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 2, Chen teaches: encoding, (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”); and (see Chen et al., paragraph [0005]), (see Chen et al., Paragraph [0071]);
Chen does not appear to distinctly disclose:
However, Buliani teaches: (see Buliani et al., col 28 line 66, “…Block 1904 can also include augmenting the prompt to the LLM…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a large language model (LLM), as taught by Buliani, for the result of refining output code.
Chen as modified does not appear to distinctly disclose: clustering
However, Ye teaches: clustering (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 3, Chen teaches: selecting a subset of sub-module encodings (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting.…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”);
Chen does not appear to distinctly disclose: determining centroids in the plurality of clusters; and
However, Ye teaches: determining centroids in the plurality of clusters (see Ye et al., paragraph [0026], “…For example, the identifier 310 can define a centroid of the cluster as the reference copy of the code…”); and
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a centroid in a cluster of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 5, Chen teaches: generating new representative sub-modules from the new sub-modules; generating the source code from the new representative sub-modules; and generating a program from the source code (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”), (see Chen et al., paragraph [0046], “As a result, the user may… create executable computer code which provides a solution to the problem…”);
Regarding claim 6, Chen teaches: executing the program to generate a solution for the problem description (see Chen et al., paragraph [0054], “In some embodiments, a method may further comprise causing each of the one or more computer code samples to be executed…”), (see Chen et al., paragraph [0046], “As a result, the user may… create executable computer code which provides a solution to the problem…”);
Regarding claim 9, Chen teaches: a memory (see Chen et al., paragraph [0080], “The process shown in FIG. 1 or any of its constituent steps may be implemented using operating environment 700, system 800 (e.g., using at least one processor and at least one memory component), or any component thereof…”); and a processor coupled to the memory and configured to perform operations (see Chen et al., paragraph [0080]); receiving a problem description in a natural language (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”); generating, (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”); encoding, (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”), (see Chen et al., paragraph [0005]); (see Chen et al., paragraph [0005]), (see Chen et al., paragraph [0071]); selecting a subset of sub-module encodings (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting.”), (see Chen et al., paragraph [0005]), (see Chen et al., paragraph [0071]); generating representative sub-modules from the subset of sub-module encodings (see Chen et al., paragraph [0005]), (see Chen et al., paragraph [0071]); and generating, (see Chen et al., paragraph [0005]);
Chen does not appear to distinctly disclose:
However, Buliani teaches: (see Buliani et al., col 28 line 66, “…Block 1904 can also include augmenting the prompt to the LLM…”); (see Buliani et al., col 28 line 66); (see Buliani et al., col 28 line 66);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a large language model (LLM) and an augmented problem description, as taught by Buliani, for the result of refining output code.
Chen as modified does not appear to distinctly disclose: clustering
However, Ye teaches: clustering (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”); and (see Ye et al., paragraph [0026]);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 10, Chen teaches: selecting sub-module encodings into the subset of sub-module encodings (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”).
Chen does not appear to distinctly disclose:
However, Ye teaches: (see Ye et al., paragraph [0026], “…For example, the identifier 310 can define a centroid of the cluster as the reference copy of the code…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a centroid in a cluster of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 11, Chen teaches: selecting one sub-module encoding (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”);
Chen does not appear to distinctly disclose:
However, Ye teaches: (see Ye et al., paragraph [0026], “…For example, the identifier 310 can define a centroid of the cluster as the reference copy of the code…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a centroid in a cluster of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 12, Chen teaches: selecting a pre-defined number of sub-modules from the plurality of sub-modules; and wherein the encoding further comprises, encoding the pre-defined number of sub-modules into the sub-module encodings (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”);
Regarding claim 17, Chen teaches: A non-transitory computer readable medium storing instructions thereon, that when executed by a processor, cause the processor to perform operations (see Chen et al., paragraph [0017], “According to some disclosed embodiments, a non-transitory computer-readable medium may include instructions that are executable by one or more processors to perform operations…”); receiving a problem description in a natural language (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”); generating, (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”); (see Chen et al., paragraph [0005]); selecting representative sub-modules (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting.”), (see Chen et al., paragraph [0005]); (see Chen et al., paragraph [0005]); and generating, (see Chen et al., paragraph [0005]);
Chen does not appear to distinctly disclose:
However, Buliani teaches: (see Buliani et al., col 28 line 66, “…Block 1904 can also include augmenting the prompt to the LLM…”); augmenting the problem description (see Buliani et al., col 28 line 66); (see Buliani et al., col 28 line 66).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a large language model (LLM) and an augmented problem description, as taught by Buliani, for the result of refining output code.
Chen as modified does not appear to distinctly disclose: grouping
However, Ye teaches: grouping (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”); and (see Ye et al., paragraph [0026]);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 18, Chen teaches: encoding, (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”); and (see Chen et al., paragraph [0005]), (see Chen et al., Paragraph [0071]);
Chen does not appear to distinctly disclose:
However, Buliani teaches: (see Buliani et al., col 28 line 66, “…Block 1904 can also include augmenting the prompt to the LLM…”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include a large language model (LLM), as taught by Buliani, for the result of refining output code.
Chen as modified does not appear to distinctly disclose: clustering
However, Ye teaches: clustering (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Regarding claim 19, Chen teaches: generating source code from the new sub-modules (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”);
Regarding claim 20, Chen teaches: selecting sub-module encodings (see Chen et al., paragraph [0086], “In some embodiments, a method may also comprise receiving one or more computer code samples. Receiving, as used herein, may refer to requesting, accessing, obtaining, acquiring, accepting, identifying, selecting, highlighting, and/or collecting.…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”);
Chen does not appear to distinctly disclose:
However, Ye teaches: (see Ye et al., paragraph [0026], “…For example, the identifier 310 can use the code similarity system to translate code snippets to their vector forms for use by a clustering algorithm…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the clustering of data, as taught by Ye, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Chen, Buliani, and Ye as applied to claim 3 above, and further in view of Fells et al. (GB2507551, Fells hereinafter).
Regarding claim 4, Chen teaches: (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., Paragraph [0071], “…the trained machine learning model may comprise… a transformer decoder architecture. A transformer decoder architecture, as used herein, may refer to a machine learning architecture comprising an encoder… wherein the encoder focuses on encoding the input sequence…”);
Chen does not appear to distinctly disclose: converting
However, Fells teaches: converting the subset of sub-module encodings into the representative sub-modules (see Fells, paragraph [30], “The mapper 132 converts the embedded code…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the conversion of data, as taught by Fells, for the result of reducing redundancy among sub-modules used in subsequent code generation steps.
Claim 7 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Chen, Buliani, and Ye as applied to claims 1 and 9 above, and further in view of Yo et al. (KR20230065017, Yo hereinafter).
Regarding claim 7, Chen teaches: (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”); and generating source code (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”);
Chen does not appear to distinctly disclose: generating outlines describing
However, Yo teaches: generating outlines describing (see Yo et al., Abstract, “The present invention relates to an apparatus and a method for generating a summary of a program source code based on artificial intelligence analysis…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline, as taught by Yo, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Regarding claim 15, Chen teaches: (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”);
Chen does not appear to distinctly disclose: generating outlines describing
However, Yo teaches: generating outlines describing (see Yo et al., Abstract, “The present invention relates to an apparatus and a method for generating a summary of a program source code based on artificial intelligence analysis…”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline, as taught by Yo, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Claims 8 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Chen, Buliani, Ye, and Yo as applied to claims 7 and 15 above, and further in view of Yoneyama (JP3736308).
Regarding claim 8, Chen as modified does not appear to distinctly disclose: wherein an outline in the outlines includes a function header and a description statement.
However, Yo teaches: wherein an outline in the outlines includes (see Yo et al., paragraph [0041], “1 is a diagram illustrating a system for generating a summary sentence according to the present invention.”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline containing a description, as taught by Yo, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Chen as modified does not appear to distinctly disclose:
However, Yoneyama teaches: (see Yoneyama, paragraph [0057], “…This process corresponds to a process for generating a standard header corresponding to the acquired component name 521.”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline containing a header, as taught by Yoneyama, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Regarding claim 16, Chen as modified does not appear to distinctly disclose: wherein an outline in the outlines includes a function header and a description statement.
However, Yo teaches: wherein an outline in the outlines includes (see Yo et al., paragraph [0041], “1 is a diagram illustrating a system for generating a summary sentence according to the present invention.”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline containing a description, as taught by Yo, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Chen as modified does not appear to distinctly disclose:
However, Yoneyama teaches: (see Yoneyama, paragraph [0057], “…This process corresponds to a process for generating a standard header corresponding to the acquired component name 521.”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the generation of an outline containing a header, as taught by Yoneyama, for the result of decomposing complex tasks into smaller and more easily manageable steps.
Claims 13 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Chen, Buliani, and Ye as applied to claim 9 above, and further in view of Di et al. (CN116401091, Di hereinafter).
Regarding claim 13, Chen teaches: (see Chen et al., paragraph [0005], “…in an embodiment, a method for… generating, using a trained machine-learning model and based on the docstring, one or more computer code samples…”), (see Chen et al., paragraph [0005], “…in an embodiment, a method for generating computer code based on natural language input…”);
Chen does not appear to distinctly disclose: combining
However, Di teaches: combining the representative sub-modules into source code (see Di et al., Abstract, “Step for combining the embedded code data”);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified a system for generating computer code, as taught by Chen, to include the combination of data, as taught by Di, for the result of outputting a practical solution to the problem description.
Regarding claim 14, Chen teaches: executing the source code to generate a solution to the problem description (see Chen et al., paragraph [0054], “In some embodiments, a method may further comprise causing each of the one or more computer code samples to be executed…”), (see Chen et al., paragraph [0046], “As a result, the user may… create executable computer code which provides a solution to the problem…”);
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Joshua Tran whose telephone number is (571)272-5460. The examiner can normally be reached on M-F 9-5.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hyung Sough can be reached on (571)272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JOSHUA TRAN/
Examiner, Art Unit 2192
/S.SOUGH
spe, art unit 2192