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 .
DETAILED ACTION
Claims 1-20 are presented for examination.
Claims 1, 8 and 15 were amended.
This is a Final Action.
Response to Arguments
Applicant’s arguments with respect to claim(s) 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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 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 of this title, 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-20 are rejected under 35 U.S.C. 103 as being unpatentable over Flaks (US 11,074,250) in view of Raymond et al. (US 20250013893) further in view of Bahrami et al. (US 11,609,748)
1. Flaks teaches, A computer-implemented method, comprising:
receiving a user-provided prompt, wherein the user-provided prompt is provided in natural language (Col 3: Col 56-60 - teaches the system 100… receives a natural language query 110 from the system user 109 requesting information (e.g. data, reports, responses, etc). The natural language query may be specific question asked or a specific request made, by the system user 109 in natural language – describes receiving a natural language query from a user, Flaks);
performing a first retrieval augmented generation (RAG) process including retrieving first RAG data including natural language, programming syntax pairings from a vector database that have a first level of similarity with the user-provided prompt ( - teaches the information retrieval server receives a request for information from a user in the form of a natural language query – disclosing receiving a natural language query from a user, which corresponds to receiving a user-provided prompt in natural language, Flaks) and
generating a graphical user interface (GUI) that displays the response to the auto-generated prompt ( Col 38-67 to Col 2: lines 1-13 and Col 6: lines 4-13– teaches the answer generation processing logic… provides the system user with the retrieved information… formatted in a report or visualization – thus disclosing displays generated responses to the user via the system interface, Flak).
Flaks does not explicitly teach,
…wherein the first level of similarity is determined based on a first comparison of embeddings of the user-provided prompt and embeddings of the natural language, programming syntax pairings;
performing a second RAG process including retrieving second RAG data including additional programming syntax examples from a vector database that have a second level of similarity with programming syntax of the natural language, programming syntax pairings retrieved during the first RAG process wherein the second level of similarity is determined based on a second comparison of the embeddings of the natural language, programming syntax pairings and embeddings of the additional programming syntax examples;
generating an auto-generated prompt based on a first unique prompt template corresponding to a request for generation of programming code by a large language model (LLM), wherein the auto-generated prompt includes at least a portion of each of the first RAG data and the second RAG data retrieved during the first RAG process and the second RAG process;
providing the auto-generated prompt to the LLM;
receiving a response to the auto-generated prompt from the LLM that includes the programming code generated by the LLM;
However Raymond teaches,
performing a first retrieval augmented generation (RAG) process including retrieving first RAG data including natural language, programming syntax pairings from a vector database that have a first level of similarity with the user-provided prompt (Paragraphs 48 & 59-60 - teaches the system employs RAG in which a user prompt is embedded and compared against a vector database of query-response examples… candidate query/response pairs are retrieved based on semantic similarity – discloses a first RAG retrieval of NL/query (NL/programming syntax) pairs from a vector DB by similarity, Raymond);
generating an auto-generated prompt based on a first unique prompt template corresponding to a request for generation of programming code by a large language model (LLM), wherein the auto-generated prompt includes at least a portion of each of the first RAG data and the second RAG data retrieved during the first RAG process and the second RAG process (Paragraph 16 & 68 - teaches selecting a prompt template from a prompt library – disclosing selecting a prompt template used by the generative AI module to construct prompts for the mode; and teaches compiling a dynamic prompt by appending the message from the user, the chat history and the user profile to the prompt template – thus disclosing compiling multiple retrieved data elements with a prompt template before sending to the generative AI model, Raymond);
providing the auto-generated prompt to the LLM (Paragraphs 16 & 68 - teaches the composite prompt is then provided to the generative AI model, which generates a response conditioned on both the user input and the retrieved context – discloses supplying the auto-generated programming code (SQL query) in response to the NL input, Raymond); and
receiving a response to the auto-generated prompt from the LLM that includes the programming code generated by the LLM (Paragraph 16 - teaches receiving, by the AI module, a generated response from the generative AI model – thus disclosing receiving a generated response from the AI model, Raymond);
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which said subject matter pertains to allow for the combination of Flaks with Raymond because both inventions are in the same field of endeavor, namely, methods for converting natural language inputs into structured queries or structured outputs via machine learning pipelines and retrieval augmentation thereby help in solving problems of improving, context and user experience in NL in a query generation systems.
However, Bahrami teaches,
wherein the first level of similarity is determined based on a first comparison of embeddings of the user-provided prompt and embeddings of the natural language, programming syntax pairings (Fig. 5:520, 530 and 540 - teaches Map natural language search query to search vector… compare search vector to description-code pair… determine similarity score, Bahrami);
performing a second RAG process including retrieving second RAG data including additional programming syntax examples from a vector database that have a second level of similarity with programming syntax of the natural language, programming syntax pairings retrieved during the first RAG process wherein the second level of similarity is determined based on a second comparison of the embeddings of the natural language, programming syntax pairings and embeddings of the additional programming syntax examples (Fig 5:520, 530, 540 and 550 – teaches rank description code vector based on similarity score… output source-code suggestions – discloses retrieving additional code examples from a corpus based on similarity scores between vectors, which corresponds to retrieving additional programming syntax examples based on similarity; and compare search vector to description-code pair… determine similarity score, Bahrami);
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which said subject matter pertains to incorporate embedding-based similarity retrieval techniques of Bahrami into the natural language query system of Flaks in order to improve the accuracy and semantic relevance of query matching. Such substitution represents the use of a known technique (Vector embedding similarity search) to improve a similar system (natural language query retrieval) and would predictably yield improved query matching and retrieval performance.
2. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 1, further comprising: identifying an objective of the user-provided prompt (Paragraph 47 – teaches the semantic analysis module may implement natural language processing (NPL) to break down textual context provided in a message from a user these processes include part-of-speech tagging, named identity recognition, syntactic tagging/analysis and semantic role labeling – describes analyzing a user’s message to identify its semantic meaning and intent, Raymond);
based on the objective, providing the user-provided prompt to a first operational pipeline of a plurality of operational pipelines (Paragraph 59 - teaches the router may be configured to provide focused contextualized data responsive to the trends in the one or more users’ conversations, the router may be configured to work in connection with memory management moule, select contextualizing data, in the form of vectorized data chunks from an indexed vector database, to perform dynamic RAG processes - describes routing user prompts into different processing flows (pipelines) based on identified objective and context, Raymond), and wherein the first operational pipeline corresponds to retrieving the first RAG data and the second RAG data (Paragraphs 76 - teaches the memory management module, organize, store and search one or more vectorized databases of data chunks, retrieve one or more vectorized data chunks. The router selects contextualizing data, to provide responsive contextualizing information to a generative AI model to perform dynamic RAG processes – describes an operational flow (RAG pipeline) retrieves RAG data in the form of multiple vectorized chunks (first and second RAG data) for response generation, Raymond).
3. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 2, wherein each operational pipeline is associated with a unique prompt template (Paragraph 68 - teaches selecting a prompt template from a prompt template library – thus disclosing the prompt template library used to construct prompts for the generative AI model. Each template corresponds to a particular processing workflow or conversational task, which corresponds to associating operational pipelines with prompt templates, Raymond);
wherein each unique prompt template is associated with a unique, corresponding chain of thought (CoT) template (Paragraph 16 - compiling a dynamic prompt by appending the message from the user, the chat history, and the user profile to the prompt template – discloses assembling prompts with structured contextual components before sending them to the generative AI model. Such structured prompt construction corresponds to guiding the reasoning process of the model (i.e. chain-of-though style reasoning) associated with specific prompt templates, Raymond), and wherein generating the auto- generated prompt is based on a first prompt template and a first CoT template (Paragraph 16 - sending, by the generative AI module, the dynamic prompt to the generative AI model – thus discloses generating a composite prompt based on a selected template and contextual information prior to submission to the generative model, corresponding to generating the auto-generated prompt from a prompt template and associated reasoning structure, Raymond).
4. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 1, further comprising: executing, by a data intake and query system, the one or more pipelined search query statements that were auto-generated by the LLM (Col 6: lines 14-44 - teaches the SQL query identification and execution processing logic, is configured to identify, the SQL query associated with the semantic query, and execute the identified SQL query – describes execution of auto-generated structured queries (LLM equivalent), Flaks), and wherein the GUI displays results of execution of the one or more pipelined search query statements that were auto-generated by the LLM (Col 6: lines 7-13 - teaches the answer generation processing logic, formats the retrieved information, and provides it in natural language, a graphic or visualization – describes displaying query results in a GUI, Flaks).
5. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 1, further comprising: performing a filtering process following the first RAG pipeline and the second RAG pipeline (Paragraph 63 - teaches search comparator module, evaluates the similarity measurements against a threshold value, to determine how similar results must be in order for them to be included in the dynamic RAG process – describes filtering via similarity thresholds, Raymond) resulting in selection of a subset of the first RAG data and the second RAG data to be used in augmenting the auto-generated prompt (Paragraph 16 - teaches selecting, a subset of returned vectorized data chunks that have an evaluated similarity score exceeding a threshold value – describes subset selection for augmentation, Raymond).
6. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 1, wherein performing the first RAG process includes:
encoding the user-provided prompt with a first encoder resulting in a user-provided prompt embedding (Paragraphs 16- teaches vectorizing, by a chat vectorization module… the semantic analysis of the message from the user - thus disclosing a vectorization module that encodes a user message into a vector representation. Such vectorization corresponds to encoding the user prompt using an encoder to produce an embedding, Raymond), and retrieving the first RAG data based on similarity measures between the user-provided prompt embedding and embeddings of the natural language of the natural language, programming syntax pairings stored in the vector database (Fig 5: 520, 530 and 540 - teaches map natural language search query to search vector… compare search vector to description-code pair… determine similarity score – thus disclosing converting a natural language query to a search vector and comparing that vector to stored description-code vectors to compute similarity scores, Bahrami) that have the first level of similarity with the user-provided prompt (Fig 5: 530, 540, 550 and 560 - teaches description-code vectors based on similarity score… output source-code suggestion(s) – thus disclosing retrieving code examples based on similarity ranking between the query vector and stored vectors, corresponding to retrieving NL/code pairs having a defined similarity level relative to the prompt embeddings, Bahrami).
7. The combination of Flaks, Raymond and Bahrami teach, The computer-implemented method of claim 6, wherein performing the second RAG process includes:
encoding, by a second encoder, the programming syntax of the natural language, programming syntax pairings retrieved during the first RAG process resulting in embeddings of the programming syntax ( Fig 5:520- teaches map natural language search query to search vector – thus disclosing transforming natural language queries into vector representations (embeddings). Such encoding corresponds to generative embeddings of programming syntax or associated description-code pairs, Bahrami), and retrieving the second RAG data being based on similarity measures between embeddings of the programming syntax and embeddings of additional programming syntax examples stored in the vector database (Fig 5: 530 and 540 - compare search vector to description-code pair… determine similarity score – disclosing comparing vector representing descriptions and code pairs to determine similarity scores, corresponding to similarity measures between embeddings of programming syntax and stored code examples, Bahrami) that have the second level of similarity with the user-provided prompt ( Fig 5:550 and 560 – teaches rank description-code vector based on similarity score and output source-code suggestions – thus disclosing retrieving code examples ranked by similarity score, corresponding to retrieving additional programming syntax examples having a defined similarity level relative to the query embeddings, Bahrami).
Claims 8 and 15 are similar to claim 1 hence rejected similarly.
Claims 9 and 16 are similar to claim 2 hence rejected similarly.
Claims 10 and 17 are similar to claim 3 hence rejected similarly.
Claims 11 and 18 are similar to claim 4 hence rejected similarly.
Claims 12 and 19 are similar to claim 5 hence rejected similarly.
Claim 13 is similar to claim 6 hence rejected similarly.
Claim 14 is similar to claim 7 hence rejected similarly.
Claim 20 is similar to the combination of claims claim 6 and 7 hence rejected similarly.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AMRESH SINGH whose telephone number is (571)270-3560. The examiner can normally be reached Monday-Friday 8am-5pm.
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, Ann J. Lo can be reached at (571) 272-9767. 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.
/AMRESH SINGH/Primary Examiner, Art Unit 2159