DETAILED ACTION
In response to communication filed on 22 May 2026, claims 1, 8, 11 and 14 are amended. Claims 1-20 are pending.
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments, see “Claim Objections”, filed 22 May 2026, have been carefully considered and based on the claim amendments, the objections have been withdrawn.
Applicant’s arguments, see “Claim Rejections Pursuant to 35 U.S.C. § 101”, filed 22 May 2026, have been carefully considered but the arguments are not considered to be persuasive.
APPLICANT’S ARGUMENT: Applicant points to several sections in specification and argues that as improving technological functionality.
EXAMINER’S RESPONSE: Examiner has carefully considered the argument and respectfully disagrees. The improvement regarding the indexes are not considered to be persuasive since according to MPEP [2106.05 (a)] “After the examiner has consulted the specification and determined that the disclosed invention improves technology, the claim must be evaluated to ensure the claim itself reflects the disclosed improvement in technology”. Some of the improvements provided from the specification are not reflected in the claim language such as generating multiple indices and application of LLMs. Further according to MPEP [2106.05 (a) (II)], "However, it is important to keep in mind that an improvement in the abstract idea itself (e.g. a recited fundamental economic concept) is not an improvement in technology". Similarly, determining indexes are already identified as abstract idea and hence do not appear to be directed towards an improvement in the technology. As a result, the above argument cannot be considered to be persuasive.
The other arguments are the ones where Applicant's arguments fail to comply with 37 CFR 1.111(b) because they amount to a general allegation that the claims define a patentable invention without specifically pointing out how the language of the claims patentably distinguishes them from overcoming abstract idea rejection.
Applicant’s arguments, see “Claim Rejections Pursuant to 35 U.S.C. § 103”, filed 22 May 2026, have been carefully considered but the arguments are not considered to be persuasive.
APPLICANT’S ARGUMENT: Applicant argues that Gupta’s vector index is not determined based on a combination of embedding vectors, not does Gupta’s vector index correspond to a plurality of embedding vectors.
EXAMINER’S RESPONSE: Examiner has carefully considered the argument but respectfully disagrees. Gupta teaches in [col 6] a vector index and it further teaches that the vector index contains an array of floats that represent an embedding vector. Gupta reference also teaches in [col 15] on selection criteria of parameters related to metadata associated with embedding vectors for the purpose of indexing. There are a plurality of embedding vectors. The current claim language and the argument do not appear to clarify how the current mapping fails to teach the above argued limitation. Applicant's arguments fail to comply with 37 CFR 1.111(b) because they amount to a general allegation that the claims define a patentable invention without specifically pointing out how the language of the claims patentably distinguishes them from the references. Similarly, the arguments do not appear to clarify how does Gupta reference not teach the above argued limitations. As a result the above arguments are not considered to be persuasive.
The other arguments are related to newly added claim limitations and are addressed in the rejection below.
Claim Interpretation
Claims 1, 8 and 14 recite “using a generative model”. These claim limitations appear to be citing intended use in terms of what the generative model is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for.
Claims 3, 10 and 16 recite “using the first index”. These claim limitations appear to be citing intended use in terms of what the first index is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for.
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, 5, 14 and 18 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Step 1:
Claims 1-7 are recited as being directed to a “method”. Claims 8-13 are recited as being directed to a “method”. Claims 14-20 are recited as being directed to a “apparatus”. Thus claims 1-20 have been identified to be directed towards the appropriate statutory category. Below is further analysis related to step 2.
Regarding claim 1,
Step 2A: Prong One:
Claim 1 recites limitations:
detecting layout regions in a document file, wherein the document file includes a multi- modal document file including a non-text object and text;
generating embedding vectors of the respective detected layout regions by performing embedding operations on the respective detected layout regions;
forming a combination of embedding vectors selected from among the generated embedding vectors;
determining, based on the combination of the selected embedding vectors, a first index indexing the layout regions respectively corresponding to the selected embedding vectors;
accessing the first index based on…
generating a response to the received user request using… the accessed first index.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to detect layout regions in a document. A human being can observe mentally that the document consists of textual and non-textual information. A human being can perform evaluation to generate embedding vectors followed by forming a combination of embedding vectors selected. A human being can apply evaluation to determine an index and by accessing the index generate a response to the received user request.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 1 further recites limitations:
An operating method of an electronic apparatus, the operating method comprising:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to integrate the abstract idea into a particular practical application.
Claim 1 further recites limitations:
a received user request; and;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly, the claim limitations as a whole above appear to be gathering data and do not appear to integrate the abstract idea into a practical application.
Claim 1 further recites limitations:
a generative model and,…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 1 further recites limitations:
An operating method of an electronic apparatus, the operating method comprising:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to amount to significantly more.
Claim 1 further recites limitations:
a received user request; and;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data in terms of requests, data and content being received and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Receiving or transmitting data over a network, e.g., using the Internet to gather data” as conventional computer technology. Similarly, the claim limitations identified above appear to be receiving data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim 1 further recites limitations:
a generative model and,…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Regarding claim 14,
Step 2A: Prong One:
Claim 14 recites limitations:
detect layout regions in a document file, wherein the document file includes a multi- modal document file including a non-text object and text;
based on the detected layout regions, generate embedding vectors of the respective detected layout regions by performing embedding on portions of content in the respective detected layout regions;
form a combination of at least some of the embedding vectors;
generate a first index indexing those of the layout regions that respectively correspond to the at least some of the embedding vectors;
access the first index based on…
generate a response to the received user request using … the accessed first index.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to detect layout regions in a document. A human being can observe mentally that the document consists of textual and non-textual information. A human being can perform evaluation to generate embedding vectors followed by forming a combination of embedding vectors selected. A human being can apply evaluation to determine an index and by accessing the index generate a response to the received user request.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 14 further recites limitations:
An electronic apparatus comprising: one or more processors; and memory storing instructions configured to cause the one or more processors to:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to integrate the abstract idea into a particular practical application.
Claim 14 further recites limitations:
a received user request; and;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly, the claim limitations as a whole above appear to be gathering data and do not appear to integrate the abstract idea into a practical application.
Claim 14 further recites limitations:
a generative model and,…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 14 further recites limitations:
An electronic apparatus comprising: one or more processors; and memory storing instructions configured to cause the one or more processors to:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to amount to significantly more.
Claim 14 further recites limitations:
a received user request; and;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data in terms of requests, data and content being received and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Receiving or transmitting data over a network, e.g., using the Internet to gather data” as conventional computer technology. Similarly, the claim limitations identified above appear to be receiving data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim 14 further recites limitations:
a generative model and,…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Regarding claims 5 and 18,
Claim 5 further recites claim limitations:
based on content in the document file being changed, identifying a layout region, among the detected layout regions, encompassing the changed information;
generating a first embedding vector of the identified layout region, the first embedding vector reflecting the changed content;
based on the first index comprising a second embedding vector of a layout region encompassing the content before being changed, forming a combination of an embedding vector in the first index other than the second embedding vector and the generated first embedding vector; and
determining, based on the combination of the generated first embedding vector with the other embedding vector in the first index, a second index for the identified layout region and a layout region of the embedding vector in the first index.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to detect layout regions with changed information in a document and generate embedding vectors based on changed information followed by forming a combination of embedding vectors. A human being can apply evaluation to determine a second index for the identified region and a layout region of the embedding vector in the first index.
There are no other claim limitations that can be integrated into a practical application or amount to significantly more.
Claim 18 further recites claim limitations:
identify a content change within a layout region among the layout regions;
generate a first embedding vector for the changed layout region, the first embedding vector reflecting the content change;
determine that the first index corresponds to the layout region identified as having changed;
select a second embedding vector of the identified first index, the second embedding vector not corresponding to a layout region other than the changed layout region; and
form a second index from a combination of the first embedding vector and the second embedding vector.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to detect layout regions with changed information in a document and generate embedding vectors based on changed information followed by determining that the first index corresponds to the layout region. A human being can apply evaluation to select a second embedding vector and then form a second index using a pen and a paper from a combination of the first embedding vector and the second embedding vector.
There are no other claim limitations that can be integrated into a practical application or amount to significantly more.
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, 3, 4, 7-8, 10-11, 13-14, 16-18 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta et al. (US 12,541,493 B1, hereinafter “Gupta”) in view of Kussmaul et al. (US 12,174,899 B2, hereinafter “Kussmaul”).
Regarding claim 1, Gupta teaches
An operating method of an electronic apparatus, the operating method comprising: (see Gupta, [col 2 lines 18-19] “provide a method (and/or a computer-readable medium or system)”).
detecting layout regions in a document file, wherein the document file includes a multi-modal document file including a non-text object and text; (see Gupta, [col 9 lines 48-56] “may split the received data into a plurality of data chunks and each data chunk may include a portion of the received data… one data chunk may be a paragraph of text in a text document… The vector search module 350 may apply a machine learning model to a data chunk to generate an embedding vector for representing the data chunk in the latent space”; [col 11 lines 12-20] “The dataset 502 may include content data such as, text, video, audio, image, and the like. The data chunks 506 may be sentences, paragraphs, pixels, etc., included in the dataset 502… may generate a data chunk 506 for each paragraph in a text document (e.g., a Wikipedia webpage); and in another example, the vector search module 350 may generate a data chunk 506 for each row of data in a data table”).
generating embedding vectors of the respective detected layout regions by performing embedding operations on the respective detected layout regions; (see Gupta, [col 9 lines 52-58] “The vector search module 350 may apply a machine learning model to a data chunk to generate an embedding vector for representing the data chunk in the latent space… an embedding vector may be incrementally updated based on any update to the corresponding data chunk. The vector search module 350 maps the generated embedding vectors into the latent space”).
forming a combination of embedding vectors selected from among the generated embedding vectors; (see Gupta, [col 11 lines 27-28] “can be used as filters in defining/refining/selecting embedding vectors”).
determining, based on the combination of the selected embedding vectors, a first index indexing the layout regions respectively corresponding to the selected embedding vectors; (see Gupta, [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-51]” may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors”).
… a received user request; and (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”).
generating a response to the received user request using a generative model and (see Gupta, [col 12 lines 6-8] “When the data represented by the embedding vectors are used as context information for training LLMs or generating responses by RAG”; [col 12 line 63 – col 13 line 19] “The data processing service 102 may perform RAG with vector search to provide context-rich external knowledge so that the output response to the user query 512 is more contextually accurate… The data chunk/dataset represented by the stored embedding vector may be used by RAG to provide contextual information for generating a response to the user query 512”).
Gupta does not explicitly teach accessing the first index based on a received user request; generating a response to the received user request using the accessed first index.
However, Kussmaul discloses plurality of indexes and teaches
accessing the first index based on the received query (see Kussmaul, [col 7 lines 43-48] “the query is included in an API. The query may be received… and then passed to search engine 120… the query includes what data to search for (e.g., customer data, financial information, documents containing a particular word or phrase) and where to search (e.g., indexes 170)”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
results are obtained from the accessed first index and returned (see Kussmaul, [col 8 line 50 – col 9 line 16] “the results are obtained from one or more indexes… search service 110 returns the results… the results are returned to client application 185… the results are sent to API gateway 115, which configures and return the data to the requestor”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Kussmaul, in the system taught by Gupta to yield the predictable results of effectively restricting access to data (see Kussmaul, [col 7 lines 16-19] “One or more of the advantages and improvements described above for restricting access to data by geofencing results based on query intent and result semantics can be realized by the method 200”).
Regarding claim 8, Gupta teaches
An operating method of an electronic apparatus, the operating method comprising: (see Gupta, [col 2 lines 18-19] “provide a method (and/or a computer-readable medium or system)”).
generating embedding vectors respectively corresponding to each of layout regions of a document file by performing embedding operations on the respective layout regions, wherein the document file includes a multi-modal document file including a non-text object and text; (see Gupta, [col 9 lines 48-58] “may split the received data into a plurality of data chunks and each data chunk may include a portion of the received data… one data chunk may be a paragraph of text in a text document… The vector search module 350 may apply a machine learning model to a data chunk to generate an embedding vector for representing the data chunk in the latent space…an embedding vector may be incrementally updated based on any update to the corresponding data chunk. The vector search module 350 maps the generated embedding vectors into the latent space”; [col 11 lines 12-20] “The dataset 502 may include content data such as, text, video, audio, image, and the like. The data chunks 506 may be sentences, paragraphs, pixels, etc., included in the dataset 502… may generate a data chunk 506 for each paragraph in a text document (e.g., a Wikipedia webpage); and in another example, the vector search module 350 may generate a data chunk 506 for each row of data in a data table”).
generating vector sets from the generated embedding vectors, wherein each of the vector sets comprises at least one of the generated embedding vectors; (see Gupta, [col 3 lines 7-10] “The configuration may store the generated set of embedding vectors in a vector database that includes a plurality of embedding vectors”; [col 14 lines 26-28] “Each dataset may include a set of data chunks, and each data chunk may be represented by a set of embedding vectors in the latent space”).
forming combinations of embedding vectors from the respective generated vector sets; determining indices for the document file from the respective combinations; (see Gupta, [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-51]” may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors”).
storing the indices in a database (DB); (see Gupta, [col 6 line 66] “the metadata may include a vector index”; [col 5 lines 61-63] “The data storage system 110 also includes a data store 270, a metadata store 275, and a vector database 280”; [col 5 lines 26-29] “The data storage system 110 includes a device… used for storing database data (e.g., a stored data set, portion of a stored data set, data for executing a query)”).
accessing, from the DB, indexes in metadata (see Gupta, [col 20 lines 1-18] “indexing each data chunk of the set of data chunks with an embedding vector of the set of embedding vectors… accessing the metadata corresponding to the first data chunk”; [col 5 lines 61-63] “The data storage system 110 also includes a data store 270, a metadata store 275, and a vector database 280”; [col 15 lines 53-55] “The metadata may be used as filter parameters to refine a user query, embedding retrieval, and the like”; [col 5 lines 26-29] “The data storage system 110 includes a device… used for storing database data (e.g., a stored data set, portion of a stored data set, data for executing a query)”) based on a received user request,… (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”) stored in the DB; and (see Gupta, [col 20 lines 1-18] “indexing each data chunk of the set of data chunks with an embedding vector of the set of embedding vectors… accessing the metadata corresponding to the first data chunk”; [col 15 lines 53-55] “The metadata may be used as filter parameters to refine a user query, embedding retrieval, and the like”; [col 5 lines 61-63] “The data storage system 110 also includes a data store 270, a metadata store 275, and a vector database 280”; [col 5 lines 26-29] “The data storage system 110 includes a device… used for storing database data (e.g., a stored data set, portion of a stored data set, data for executing a query)”).
generating a response to the received user request using a generative model and (see Gupta, [col 12 lines 6-8] “When the data represented by the embedding vectors are used as context information for training LLMs or generating responses by RAG”; [col 12 line 63 – col 13 line 19] “The data processing service 102 may perform RAG with vector search to provide context-rich external knowledge so that the output response to the user query 512 is more contextually accurate… The data chunk/dataset represented by the stored embedding vector may be used by RAG to provide contextual information for generating a response to the user query 512”).
Gupta does not explicitly teach based on a received user request, a first index among the indices; generating a response to the received user request using the accessed first index.
However, Kussmaul discloses plurality of indexes and teaches
accessing a first index among the indices based on the received query (see Kussmaul, [col 7 lines 43-48] “the query is included in an API. The query may be received… and then passed to search engine 120… the query includes what data to search for (e.g., customer data, financial information, documents containing a particular word or phrase) and where to search (e.g., indexes 170)”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
results are obtained from the accessed first index and returned (see Kussmaul, [col 8 line 50 – col 9 line 16] “the results are obtained from one or more indexes… search service 110 returns the results… the results are returned to client application 185… the results are sent to API gateway 115, which configures and return the data to the requestor”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Kussmaul, in the system taught by Gupta to yield the predictable results of effectively restricting access to data (see Kussmaul, [col 7 lines 16-19] “One or more of the advantages and improvements described above for restricting access to data by geofencing results based on query intent and result semantics can be realized by the method 200”).
Regarding claim 14, Gupta teaches
An electronic apparatus comprising: one or more processors; and memory storing instructions configured to cause the one or more processors to: (see Gupta, [col 17 line 17 – col 18 line 2] “The computer system 1000 can be used to execute instructions 1024 (e.g., program code or software) for causing the machine ( or some or all of the components thereof) to perform any one or more of the methodologies… computer system 1000 includes a processing system 1002. The processor system 1002 includes one or more processors…. The computer system 1000 also includes a memory system 1004… during execution thereof by the computer system 1000, the main memory 1004 and the processor system 1002 also constituting machine-readable media”).
detect layout regions in a document file, wherein the document file includes a multi- modal document file including a non-text object and text; (see Gupta, [col 9 lines 48-56] “may split the received data into a plurality of data chunks and each data chunk may include a portion of the received data… one data chunk may be a paragraph of text in a text document… The vector search module 350 may apply a machine learning model to a data chunk to generate an embedding vector for representing the data chunk in the latent space”; [col 11 lines 14-20] “The dataset 502 may include content data such as, text, video, audio, image, and the like. The data chunks 506 may be sentences, paragraphs, pixels, etc., included in the dataset 502… may generate a data chunk 506 for each paragraph in a text document (e.g., a Wikipedia webpage); and in another example, the vector search module 350 may generate a data chunk 506 for each row of data in a data table”).
based on the detected layout regions, generate embedding vectors of the respective detected layout regions by performing embedding on portions of content in the respective detected layout regions; (see Gupta, [col 9 lines 52-58] “The vector search module 350 may apply a machine learning model to a data chunk to generate an embedding vector for representing the data chunk in the latent space… an embedding vector may be incrementally updated based on any update to the corresponding data chunk. The vector search module 350 maps the generated embedding vectors into the latent space”).
form a combination of at least some of the embedding vectors; (see Gupta, [col 11 lines 27-28] “can be used as filters in defining/refining/selecting embedding vectors”).
generate a first index indexing those of the layout regions that respectively correspond to the at least some of the embedding vectors; (see Gupta, [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-51]” may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors”).
… a received user request; and (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”).
generate a response to the received user request using a generative model and… (see Gupta, [col 12 lines 6-8] “When the data represented by the embedding vectors are used as context information for training LLMs or generating responses by RAG”; [col 12 line 63 – col 13 line 19] “The data processing service 102 may perform RAG with vector search to provide context-rich external knowledge so that the output response to the user query 512 is more contextually accurate… The data chunk/dataset represented by the stored embedding vector may be used by RAG to provide contextual information for generating a response to the user query 512”).
Gupta does not explicitly teach access the first index based on the received user request; generate a response to the received user request using the accessed first index.
However, Kussmaul discloses plurality of indexes and teaches
access the first index based on the received query (see Kussmaul, [col 7 lines 43-48] “the query is included in an API. The query may be received… and then passed to search engine 120… the query includes what data to search for (e.g., customer data, financial information, documents containing a particular word or phrase) and where to search (e.g., indexes 170)”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
results are obtained from the accessed first index and returned (see Kussmaul, [col 8 line 50 – col 9 line 16] “the results are obtained from one or more indexes… search service 110 returns the results… the results are returned to client application 185… the results are sent to API gateway 115, which configures and return the data to the requestor”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Kussmaul, in the system taught by Gupta to yield the predictable results of effectively restricting access to data (see Kussmaul, [col 7 lines 16-19] “One or more of the advantages and improvements described above for restricting access to data by geofencing results based on query intent and result semantics can be realized by the method 200”).
Regarding claim 3, the proposed combination of Gupta and Kussmaul teaches
further comprising: receiving the user request from a user terminal; (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”; [col 4 lines 22-24] “receive requests ( e.g., database queries) from users of client devices 116 to perform one or more data processing functionalities on data stored”).
in response to obtaining, from a database (DB), (see Gupta, [col 20 lines 1-18] “indexing each data chunk of the set of data chunks with an embedding vector of the set of embedding vectors… accessing the metadata corresponding to the first data chunk”; [col 5 lines 61-63] “The data storage system 110 also includes a data store 270, a metadata store 275, and a vector database 280”; [col 15 lines 53-55] “The metadata may be used as filter parameters to refine a user query, embedding retrieval, and the like”; [col 5 lines 26-29] “The data storage system 110 includes a device… used for storing database data (e.g., a stored data set, portion of a stored data set, data for executing a query)”) the first index from the query (see Kussmaul, [col 7 lines 43-48] “the query is included in an API. The query may be received… and then passed to search engine 120… the query includes what data to search for (e.g., customer data, financial information, documents containing a particular word or phrase) and where to search (e.g., indexes 170)”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”) related to the received user request, (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”) determining whether a user has permission for the first index; (see Kussmaul, [col 6 line 64 – col 7 line 8] “First index 170A and second index 170B can be any storage system configured to store any configuration of data… data that comes out of the first index may be accessed if the user's location falls within a first geofence”; [col 7 lines 51-58] “search service 110 determines if the user is authorized to access the data… the authorization to access the data is based on permissions. The permissions may be set by a data owner… Authorization control 150 may check the user against permissions set by the data owner. Permissions may be stored and updated in access control data 155”; [col 17 lines 40-41] “validate the user is authorized to access one or more indexes”).
in response to determining that the user has the permission, (see Kussmaul, [col 7 lines 59- 61] “If it is determined the user has authorization to access the data (204:YES), then search service 110 proceeds to operation 206”) generating the response using results are obtained from the first index (see Kussmaul, [col 8 line 50 – col 9 line 16] “the results are obtained from one or more indexes… search service 110 returns the results… the results are returned to client application 185… the results are sent to API gateway 115, which configures and return the data to the requestor”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”) and the generative model; and (see Gupta, [col 12 lines 6-8] “When the data represented by the embedding vectors are used as context information for training LLMs or generating responses by RAG”; [col 12 line 63 – col 13 line 19] “The data processing service 102 may perform RAG with vector search to provide context-rich external knowledge so that the output response to the user query 512 is more contextually accurate… The data chunk/dataset represented by the stored embedding vector may be used by RAG to provide contextual information for generating a response to the user query 512”).
transmitting the generated response to the user terminal (see Gupta, [col 4 lines 28-30] “The data processing service 102 may provide responses to the requests to the users of the client devices 116 after they have been processed”; [col 12 lines 6-8] “When the data represented by the embedding vectors are used as context information for training LLMs or generating responses by RAG”; [col 12 line 63 – col 13 line 19] “The data processing service 102 may perform RAG with vector search to provide context-rich external knowledge so that the output response to the user query 512 is more contextually accurate… The data chunk/dataset represented by the stored embedding vector may be used by RAG to provide contextual information for generating a response to the user query 512”). The motivation for the proposed combination is maintained.
Claims 10 and 16 incorporate substantively all the limitations of claim 3 in a method and apparatus form and are rejected under the same rationale.
Regarding claim 4, the proposed combination of Gupta and Kussmaul teaches
further comprising: receiving the user request from a user terminal; (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”; [col 4 lines 22-24] “receive requests ( e.g., database queries) from users of client devices 116 to perform one or more data processing functionalities on data stored”).
in response to obtaining, from a database (DB), (see Gupta, [col 20 lines 1-18] “indexing each data chunk of the set of data chunks with an embedding vector of the set of embedding vectors… accessing the metadata corresponding to the first data chunk”; [col 5 lines 61-63] “The data storage system 110 also includes a data store 270, a metadata store 275, and a vector database 280”; [col 15 lines 53-55] “The metadata may be used as filter parameters to refine a user query, embedding retrieval, and the like”; [col 5 lines 26-29] “The data storage system 110 includes a device… used for storing database data (e.g., a stored data set, portion of a stored data set, data for executing a query)”) the first index from the query (see Kussmaul, [col 7 lines 43-48] “the query is included in an API. The query may be received… and then passed to search engine 120… the query includes what data to search for (e.g., customer data, financial information, documents containing a particular word or phrase) and where to search (e.g., indexes 170)”; [col 8 lines 21-22] “the geofences are established based on the search target (e.g., first index 170A)”) related to the received user request, (see Gupta, [col 12 lines 61-62] “the data processing service 102 may receive a query 512 from a user”) determining whether a user has permission for the first index; (see Kussmaul, [col 6 line 64 – col 7 line 8] “First index 170A and second index 170B can be any storage system configured to store any configuration of data… data that comes out of the first index may be accessed if the user's location falls within a first geofence”; [col 7 lines 51-58] “search service 110 determines if the user is authorized to access the data… the authorization to access the data is based on permissions. The permissions may be set by a data owner… Authorization control 150 may check the user against permissions set by the data owner. Permissions may be stored and updated in access control data 155”; [col 17 lines 40-41] “validate the user is authorized to access one or more indexes”).
in response to determining that the user does not have the permission, transmitting, to the user terminal, a message indicating failure to provide the response to the user request (see Kussmaul, [col 7 lines 61-63] “If it is determined the user does not have authorization to access the data (204:NO), then search service 110 proceeds to operation 224”; [col 9 lines 17-25] “search service 110 denies access to the data. Denying access may include not returning the results… operation 224 includes sending a notification to the requestor. The notification may indicate a reason for denial (e.g., search intent outside of allowed area). In some embodiments, denying access to the data includes sending a response that there is data within the parameters of the query, but not returning any data”). The motivation for the proposed combination is maintained.
Claims 11 and 17 incorporate substantively all the limitations of claim 4 in a method and apparatus form and are rejected under the same rationale.
Regarding claim 7, the proposed combination of Gupta and Kussmaul teaches
further comprising: setting a user or a group with access to the first index (see Kussmaul, [col 7 lines 4-10] “each of the indexes have different access control. This may include different data owners, different permissions, different geofences, etc. For example, data that comes out of the first index may be accessed if the user's location falls within a first geofence, while data from the second index may only be accessed if the user's location is within a second geofence”). The motivation for the proposed combination is maintained.
Claim 20 incorporates substantively all the limitations of claim 7 in an apparatus form and is rejected under the same rationale.
Regarding claim 13, the proposed combination of Gupta, Kussmaul and Gangumalla teaches
further comprising: setting a user with access to each of the determined plurality of indices (see Kussmaul, [col 7 lines 4-10] “each of the indexes have different access control. This may include different data owners, different permissions, different geofences, etc. For example, data that comes out of the first index may be accessed if the user's location falls within a first geofence, while data from the second index may only be accessed if the user's location is within a second geofence”). The motivation for the proposed combination is maintained.
Regarding claim 18, the proposed combination of Gupta and Kussmaul teaches
wherein the instructions are further configured to cause the one or more processors to: (see Gupta, [col 17 line 17 – col 18 line 2] “The computer system 1000 can be used to execute instructions 1024 (e.g., program code or software) for causing the machine ( or some or all of the components thereof) to perform any one or more of the methodologies… computer system 1000 includes a processing system 1002. The processor system 1002 includes one or more processors…. The computer system 1000 also includes a memory system 1004… during execution thereof by the computer system 1000, the main memory 1004 and the processor system 1002 also constituting machine-readable media”).
identify a content change within a layout region among the layout regions; generate a first embedding vector for the changed layout region, the first embedding vector reflecting the content change; (see Gupta, [col 15 lines 11-18] “may detect 814 a change to a first dataset that is represented by a first set of embedding vectors in the vector database, determine 816 that the change to the first dataset is related to a first data chunk of the first set of data chunks included in the first dataset, update 818 a first embedding vector that represents the first data chunk with the detected change, and store 820 the updated first embedding vector in the vector database”).
determine that the first index corresponds to the layout region identified as having changed; (see Gupta, [col 12 lines 1-13] “may include metadata for recording updates of datasets/data chunks, and the vector search module 350 may use the metadata for updating the embedding vectors. In this way, the embedding vectors may be updated or expanded in accordance with new information, insights, or developments in a particular domain… The metadata associated with each embedding vector may be incrementally updated to reflect changes of the corresponding data chunks”; [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-50] “may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors” – since metadata includes indexes, an update to metadata also includes an update to indexes).
select a second embedding vector of the identified first index, the second embedding vector not corresponding to a layout region other than the changed layout region; and (see Gupta, [col 12 lines 1-13] “may include metadata for recording updates of datasets/data chunks, and the vector search module 350 may use the metadata for updating the embedding vectors. In this way, the embedding vectors may be updated or expanded in accordance with new information, insights, or developments in a particular domain… The metadata associated with each embedding vector may be incrementally updated to reflect changes of the corresponding data chunks”; [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-50] “may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors” – since metadata includes indexes, an update to metadata also includes an update to indexes. Claim interpretation – “not corresponding to a layout region other than the changed layout” has a double negative and hence it has been interpreted as “corresponding to a layout region that has the changed layout” – since there are plurality of changes to the data chunks, their respective embedding vector has been selected).
form a second index from a combination of (see Kussmaul, [col 6 lines 64] “second index 170B can be any storage system configured to store any configuration of data”) the first embedding vector and the second embedding vector (see Gupta, [col 12 lines 1-13] “may include metadata for recording updates of datasets/data chunks, and the vector search module 350 may use the metadata for updating the embedding vectors. In this way, the embedding vectors may be updated or expanded in accordance with new information, insights, or developments in a particular domain… The metadata associated with each embedding vector may be incrementally updated to reflect changes of the corresponding data chunks”; [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-50] “may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors” – since metadata includes indexes, an update to metadata also includes an update to indexes and since there are plurality of changes to the data chunks, their respective embedding vectors represent first embedding vector and second embedding vector). The motivation for the proposed combination is maintained.
Claims 2, 9 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of Kussmaul further in view of Anubhai et al. (US 11,227,009 B1, hereinafter “Anubhai”).
Regarding claim 2, the proposed combination of Gupta and Kussmaul teaches
wherein the combination of the selected embedding vectors comprises… (see Gupta, [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-51]” may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors”) the selected embedding vectors (see Gupta, [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-51]” may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors”).
The proposed combination of Gupta and Kussmaul does not explicitly teach a vector generated by concatenating the selected embedding.
However, Anubhai discloses concatenation of embedding vectors and teaches
a vector generated by concatenating two vector embeddings to generate a feature vector (see Anubhai, [col 3 lines 27-30] “The generated word embedding vector and a provided word embedding vector are combined (e.g., concatenated) and then used as an input into a word encoder layer which generates a feature vector for the word”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Anubhai, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of effectively analyzing data (see Anubhai, [col 7 lines 2-6] “The word may then be run through the bidirectional LSTM networks or any other suitable neural networks (e.g., gated recurrent unit neural networks, feedforward neural networks, convolutional neural networks, etc.) and analyzed”).
Regarding claim 9, the proposed combination of Gupta and Kussmaul teaches
wherein each index is… (see Kussmaul, [col 6 line 67 – col 7 line 1] “first index 170A and second index 170B (which may be jointly referred to as the indexes 170)”) in its corresponding vector set (see Gupta, [col 3 lines 7-10] “The configuration may store the generated set of embedding vectors in a vector database that includes a plurality of embedding vectors”; [col 14 lines 26-28] “Each dataset may include a set of data chunks, and each data chunk may be represented by a set of embedding vectors in the latent space”).
The proposed combination of Gupta and Kussmaul does not explicitly teach a concatenation of the embedding vectors in its corresponding vector set.
However, Anubhai discloses concatenation of embedding vectors and teaches
a concatenation of the embedding vectors (see Anubhai, [col 3 lines 27-30] “The generated word embedding vector and a provided word embedding vector are combined (e.g., concatenated) and then used as an input into a word encoder layer which generates a feature vector for the word”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Anubhai, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of effectively analyzing data (see Anubhai, [col 7 lines 2-6] “The word may then be run through the bidirectional LSTM networks or any other suitable neural networks (e.g., gated recurrent unit neural networks, feedforward neural networks, convolutional neural networks, etc.) and analyzed”).
Regarding claim 15, the proposed combination of Gupta and Kussmaul teaches
wherein the first index includes… (see Kussmaul, [col 6 line 67] “first index 170A”).
The proposed combination of Gupta and Kussmaul does not explicitly teach the combination, which is a concatenation of the at least some of the embedding vectors.
However, Anubhai discloses concatenation of embedding vectors and teaches
the combination, which is a concatenation of the at least some of the embedding vectors (see Anubhai, [col 3 lines 27-30] “The generated word embedding vector and a provided word embedding vector are combined (e.g., concatenated) and then used as an input into a word encoder layer which generates a feature vector for the word”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes and permissions to indexes as being disclosed and taught by Anubhai, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of effectively analyzing data (see Anubhai, [col 7 lines 2-6] “The word may then be run through the bidirectional LSTM networks or any other suitable neural networks (e.g., gated recurrent unit neural networks, feedforward neural networks, convolutional neural networks, etc.) and analyzed”).
Claims 5-6, 12 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of Kussmaul further in view of Gangumalla et al. (US 2025/0342179 A1, hereinafter “Gangumalla”).
Regarding claim 5, the proposed combination of Gupta and Kussmaul teaches
further comprising: based on content in the document file being changed, identifying a layout region, among the detected layout regions, encompassing the changed information; generating a first embedding vector of the identified layout region, the first embedding vector reflecting the changed content; (see Gupta, [col 15 lines 11-18] “may detect 814 a change to a first dataset that is represented by a first set of embedding vectors in the vector database, determine 816 that the change to the first dataset is related to a first data chunk of the first set of data chunks included in the first dataset, update 818 a first embedding vector that represents the first data chunk with the detected change, and store 820 the updated first embedding vector in the vector database”).
based on the first index comprising a second embedding vector of a layout region encompassing the content before being changed, forming a combination of an embedding vector in the first index other than the second embedding vector and the generated first embedding vector; and (see Gupta, [col 20 lines 25-29] “updating the first embedding vector representing the first data chunk based on the change information; and replacing the first embedding vector stored in the vector database with the updated first embedding vector”; [col 12 lines 1-13] “may include metadata for recording updates of datasets/data chunks, and the vector search module 350 may use the metadata for updating the embedding vectors. In this way, the embedding vectors may be updated or expanded in accordance with new information, insights, or developments in a particular domain… The metadata associated with each embedding vector may be incrementally updated to reflect changes of the corresponding data chunks” – the old information in metadata is updated with the new information; [col 6 line 61 – col 7 line 2] “the metadata store 275 is configured to store metadata associated with embedding vectors and/or the datasets corresponding embedding vectors… the metadata may include information describing a dataset… the metadata may include a vector index that contains a unique ID, e.g., a primary key, and an array of floats representing an embedding vector”; [col 15 lines 40-50] “may identify a target dataset for indexing, e.g., generating embedding vectors for the target dataset… The parameters may be, "account," "time," "text content 1," "text content 2," "values," and the like. The user may identify/select a parameter for indexing, e.g., "text content 1," and may select one or more other parameters for generating metadata associated with the generated embedding vectors” – since metadata includes indexes, an update to metadata also includes an update to indexes).
The proposed combination of Gupta and Kussmaul does not explicitly teach determining, based on the combination of the generated first embedding vector with the other embedding vector in the first index, a second index for the identified layout region and a layout region of the embedding vector in the first index.
However, Gangumalla discloses updated index and teaches
determining, based on the combination of the generated first embedding vector with the other embedding vector in the first index, a second index for the identified layout region and a layout region of the embedding vector in the first index (see Gangumalla, [0029] “to detect where changes are made in an input data set 118 and re-index select portions of the input data set 118 based on where the changes are detected. In examples disclosed herein, indexing a document of the input data set 118 means to generate new vector embeddings for that document and storing those vector embeddings in the vector index 108”; [0031] “The difference report includes details of changes and corresponding document identifiers (IDs) (e.g., filenames, objectIDs, inodeIDs, etc.). The snapdiff processor 104 analyzes the difference report and identifies previous document IDs from the vector index 108 of documents indicated in the difference report as changed… only changed document(s) need to be retrieved from the storage system 102 to generate new vector embeddings and update the vector index 108 with the new vector embeddings of those changed document(s)”; [0077]-[0080] “when the index update notifier 310 causes the vector embeddings model 106 to generate an updated vector index 108… to update one or more documents in the vector index 108 based on the change type(s) indicative of the document(s) having undergone a change (e.g., a change”)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes as being disclosed and taught by Gangumalla, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of improving responses generated by LLMs (see Gangumalla, [0025] “The vector embeddings model 106, the vector index 108, the LLM query engine 112, and the LLM 114 are provided to implement Retrieval Augmented Generation (RAG), which is a process to improve responses 116 generated by LLMs”).
Regarding claim 6, the proposed combination of Gupta, Kussmaul and Gangumalla teaches
further comprising: replacing the first index with the determined second index in a database (DB) (see Gangumalla, [0084] “the index update notifier 310 causes the vector embeddings model 106 to replace the first chunk (e.g., the currently indexed chunk) and a corresponding vector (e.g., an outdated key-value pair) in the vector index 108 with the second chunk (e.g., the modified chunk) of the modified document and a corresponding vector (e.g., an updated key-value pair) in the vector index 108 without replacing others of the chunks of the currently indexed document in the vector index 108”; [0021] “The vector embeddings model 106 is in communication with an example vector index database 108 (e.g., also referred to herein as a vector index 108)”). The motivation for the proposed combination is maintained.
Regarding claim 12, the proposed combination of Gupta and Kussmaul teaches
further comprising: in response to information in the document file being changed, identifying a layout region encompassing the changed information; generating a first embedding vector from the changed information in the identified layout region; (see Gupta, [col 15 lines 11-18] “may detect 814 a change to a first dataset that is represented by a first set of embedding vectors in the vector database, determine 816 that the change to the first dataset is related to a first data chunk of the first set of data chunks included in the first dataset, update 818 a first embedding vector that represents the first data chunk with the detected change, and store 820 the updated first embedding vector in the vector database”).
The proposed combination of Gupta and Kussmaul does not explicitly teach identifying, among the indices, an index corresponding to the identified layout region, the index of the identified layout region comprising one of the generated embedding vectors; generating a replacement index comprising a combination of the one of the generated embedding vectors and the generated first embedding vector; and in the DB, replacing the identified index with the generated first index.
However, Gangumalla discloses updated index and teaches
identifying, among the indices, an index corresponding to the identified layout region, the index of the identified layout region comprising one of the generated embedding vectors; (see Gangumalla, [0031] “The difference report includes details of changes and corresponding document identifiers (IDs) (e.g., filenames, objectIDs, inodeIDs, etc.). The snapdiff processor 104 analyzes the difference report and identifies previous document IDs from the vector index 108 of documents indicated in the difference report as changed… Based on the detected changes in the difference report, the snapdiff processor 104 inserts or updates specific changed documents in the vector index 108 without affecting other non-changed documents of the input data set 118 in the vector index 108”).
generating a replacement index comprising a combination of the one of the generated embedding vectors and the generated first embedding vector; and in the DB, replacing the identified index with the generated first index (see Gangumalla, [0084] “the index update notifier 310 causes the vector embeddings model 106 to replace the first chunk (e.g., the currently indexed chunk) and a corresponding vector (e.g., an outdated key-value pair) in the vector index 108 with the second chunk (e.g., the modified chunk) of the modified document and a corresponding vector (e.g., an updated key-value pair) in the vector index 108 without replacing others of the chunks of the currently indexed document in the vector index 108”; [0021] “The vector embeddings model 106 is in communication with an example vector index database 108 (e.g., also referred to herein as a vector index 108)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes as being disclosed and taught by Gangumalla, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of improving responses generated by LLMs (see Gangumalla, [0025] “The vector embeddings model 106, the vector index 108, the LLM query engine 112, and the LLM 114 are provided to implement Retrieval Augmented Generation (RAG), which is a process to improve responses 116 generated by LLMs”).
Regarding claim 19, the proposed combination of Gupta and Kussmaul teaches
wherein the instructions are further configured to cause the one or more processors to (see Gupta, [col 17 line 17 – col 18 line 2] “The computer system 1000 can be used to execute instructions 1024 (e.g., program code or software) for causing the machine ( or some or all of the components thereof) to perform any one or more of the methodologies… computer system 1000 includes a processing system 1002. The processor system 1002 includes one or more processors…. The computer system 1000 also includes a memory system 1004… during execution thereof by the computer system 1000, the main memory 1004 and the processor system 1002 also constituting machine-readable media”).
The proposed combination of Gupta and Kussmaul does not explicitly teach replace the first index with the second index in a database (DB).
However, Gangumalla discloses updated index and teaches
replace the first index with the second index in a database (DB) (see Gangumalla, [0084] “the index update notifier 310 causes the vector embeddings model 106 to replace the first chunk (e.g., the currently indexed chunk) and a corresponding vector (e.g., an outdated key-value pair) in the vector index 108 with the second chunk (e.g., the modified chunk) of the modified document and a corresponding vector (e.g., an updated key-value pair) in the vector index 108 without replacing others of the chunks of the currently indexed document in the vector index 108”; [0021] “The vector embeddings model 106 is in communication with an example vector index database 108 (e.g., also referred to herein as a vector index 108)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of indexes as being disclosed and taught by Gangumalla, in the system taught by the proposed combination of Gupta and Kussmaul to yield the predictable results of improving responses generated by LLMs (see Gangumalla, [0025] “The vector embeddings model 106, the vector index 108, the LLM query engine 112, and the LLM 114 are provided to implement Retrieval Augmented Generation (RAG), which is a process to improve responses 116 generated by LLMs”).
Citation Of Relevant Prior Art
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US Publication No. US 2023/0351115 B1 (Zeng et al.) teaches a region detection module 110 that is configured to receive document images and process them to detect regions of interest (e.g., text objects and non-text objects) within the document images.
US Publication No. US 2023/0376687 A1 (Morariu et al.) teaches multi-modal multi-granular model.
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 VAISHALI SHAH whose telephone number is (571)272-8532. The examiner can normally be reached Monday - Friday (7:30 AM to 4:00 PM).
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, AJAY BHATIA can be reached at (571)272-3906. 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.
/VAISHALI SHAH/Primary Examiner, Art Unit 2156