DETAILED ACTION
This communication is in response to the Amendments and Arguments filed on 09 July 2026. Claims 1-9, 11-18, and 20 are pending and have been examined. Hence, this action has been made FINAL.
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 .
Response to Arguments
The reply filed on 09 July 2026 has been entered. With respect to the applicant’s arguments to claim rejections under 35 U.S.C § 103, the applicant’s arguments have been considered but are moot in view of new ground(s) of rejection caused by the amendments.
Claim Interpretation
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification.
The following terms in the claims have been given the following interpretations in light of the specification:
Chatbot extension: paragraph [0025], “Chatbot 140 contains configurations 142- one or more configurations 152 that have been registered by extensions 150. Extensions 150 extend the capabilities of chatbot 140. As discussed below in more detail, extensions 150 are composable in that the output of one extension may be used as input to another extension.”
Thus, a chatbot extension is any composable software that extends or interacts with a chatbot. Chatbot extensions can solely comprise the functionality of a chatbot. This definition is used for purposes of searching for prior art, but cannot be incorporated into the claims.
PNG
media_image1.png
528
858
media_image1.png
Greyscale
Extension pipeline: paragraph [0041], “FIG. 3 illustrates a pipeline 300 of chatbot extensions 150 processing a prompt 312 of a request 310A. As illustrated, pipeline 300 includes extension 150A, extension 150B, and extension 150C. These extensions may be ordered based on their relative priority values 208. As each extension is executed, responses 320 are received and incorporated into subsequent requests 310.”
Thus, an extension pipeline is any system that includes an order of chatbot extensions that incorporate previous responses to generate an overall response. This definition is used for purposes of searching for prior art, but cannot be incorporated into the claims.
Should applicant wish different definitions, Applicant should point to the portions of the specification that clearly show a different definition.
Claim Objections
Claim 8 is objected to because of the following informalities:
Claim 8, line 21, should be "chatbot; and"
Appropriate correction is required.
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-5, 11-14, and 17 are rejected under 35 U.S.C. 103 as obvious over “PromptChainer: Chaining Large Language Model Prompts through Visual Programming” (Wu et al.) in view of US Patent Publication 20190267001 A1 (Byun et al.) in view of US Patent Publication 20200372055 A1 (Joko et al.).
Claim 1
Regarding claim 1, Wu et al. disclose a method, comprising:
receiving a plurality of configurations of a plurality of chatbot extensions (Wu et al. pg. 4, Section 3.2, Paragraphs 3-4, "Node visualization. As shown in Figure 4 (a zoomed-in node of Figure 2 (2)), each node can have one or more named inputs (
a
2
)and outputs (
a
3
), which are used to connect nodes. ... Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." Nodes are considered analogous to a plurality of chatbot extensions. A node visualization is considered analogous to a configuration of a chatbot extension; see Figure 4), wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension (Wu et al. pg. 4, Figure 4, "Node visualization: the node has... a list of named input (
a
2
) and output handles (
a
3
)"), and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline (Wu et al. pg. 4, Section 3.2, Paragraphs 4, "Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). PromptChainer also provides helper nodes that address common data transformation (C.1 in Section 3.1) and evaluation needs (C.3), or to allow users to implement their own custom JavaScript (JS) nodes. Finally, to support users in prototyping AI-infused applications, PromptChainer provides communication nodes for exchanging data with the external world (e.g., external API calls)." Any of the predefined node definitions (e.g. data transformations by helper nodes) are considered analogous to modifications made by a chatbot extension), wherein the extension pipeline is comprised of the plurality of chatbot extensions (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions);
determining an ordering of the extension pipeline based at least in part on the declared inputs, the declared outputs, and the declared modifications (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions, each of which declare an input and an output, and are associated with specific modifications (i.e. functions); see Figure 3 for node definitions which include data transformation functions)., including determining that a first chatbot extension precedes a second chatbot extension because the first chatbot extension declares an output or modification that satisfies an input declared by the second chatbot extension (Wu et al. pg. 3, Figure 2 illustrates determining that a first chatbot extension (e.g. node 4) precedes a second chatbot extension (e.g. node 5) because the first chatbot extension declares an output (e.g. node 4 declares an outputted list generated by an LLM; see Figure 3 for node definitions) that satisfies an input declared by the second chatbot extension (e.g. node 4's LLM-generated list is output to node 5's input handle for subsequent parsing));
receiving a prompt (Wu et al. pg. 7, Figure 2 illustrates receiving a prompt at node 1.);
according to the ordering, passing data including the prompt through the extension pipeline (Wu et al. pg. 3, Figure 2 illustrates passing data including the prompt through the extension pipeline. This is indicated by some nodes (e.g. 2, 3, 4, 6, and 9) taking "user" or "userInput" as input. For example, see bottom-right box for example queries that are then eventually passed through to Generic LLM nodes 4, 6, and 9.), [wherein the first chatbot extension modifies or adds to the data according to a first chatbot extension configuration];
receiving a first response [and the modified data] from the first chatbot extension (Wu et al. pg. 3, Figure 2 illustrates receiving a first response from first chatbot extension (e.g. Node 4's LLM-generated response based on the user query);
according to the ordering, providing [the prompt,] the first response [and the modified data] to the second chatbot extension (Wu et al. pg. 3, Figure 2 illustrates passing a first response (e.g. Node 4's LLM-generated response) to a second chatbot extension (e.g. Node 5));
receiving a second response from the second chatbot extension, wherein the second response is generated based on [the prompt,] the first response (Wu et al. pg. 3, Figure 2 illustrates receiving a second response (e.g. Node 5's parsed list output ) that is generated based on the first response (e.g. Node 4's LLM-generated response)) [and the modified data]; and
providing a message that comprises the second response for display (Wu et al. pg. 3, Figure 2 illustrates the example query "Who are some Country artists?" leading to the response "[ Garth Brooks, George Strait, Dolly Parton ]").
Wu et al. do not explicitly disclose all of generating a response based on modified data.
However, Byun et al. disclose receiving a plurality of configurations of a plurality of chatbot extensions (Byun et al. ¶ [0137], "each of the plurality of chatbots 730 may provide the user (or the user terminal) with a response that provides a specified service. ... the plurality of chatbots 730 may correspond to apps (or application programs) that provide the specified services" Providing chatbots that are associated with specified services is considered analogous to receiving configurations of chatbot extensions), […]; […]
receiving a prompt (Byun et al. ¶ [0066], "According to an embodiment, the intelligence agent 145 may include an utterance recognition module for performing the user input. The processor 150 may recognize the user input for executing an action in an app through the utterance recognition module.");
[according to the ordering,] passing data including the prompt (Byun et al. ¶ [134], “the dispatch module 720 may select one or more of the chatbots 731, 732, or 733 from among the plurality of chatbots 730. The selected chatbot(s) will process the converted text data. According to an embodiment, the dispatch module 720 may select the chatbot 731, 732, or 733 based on the received voice data.”) [through the extension pipeline], wherein a first chatbot extension modifies or adds to the data according to a first chatbot extension configuration (Byun et al. ¶ [0150], "the context data converter 741a may convert the context information received from the first chatbot 731 to the specified format. For example, the context data converter 741a may set at least one field (e.g., a user's name field or a user's address field) and may convert the received context depending using the field." Converting context data is considered analogous to modifying data);
receiving a first response (Byun et al. ¶ [0144], "The first NLU module 731a ... may provide the user with a first response (e.g., information about a hotel capable of being booked) based on the first intent and the first context information") and the modified data from the first chatbot extension (Byun et al. ¶ [0150], "the context data converter 741a may store the converted context information in the context DB 741b. For example, the context share module 740 may store context information, which is converted by the context data converter 741a, in the context DB 741b.");
[according to the ordering,] providing [the prompt, the first response and] the modified data to the second chatbot extension (Byun et al. ¶ [0151], "According to an embodiment, the context data converter 741a may reconvert the context information, which is stored in the specified format, to a format necessary for the second chatbot 732. … the context data converter 741a may transmit the reconverted or extracted context information the second chatbot 732.");
receiving a second response from the second chatbot extension, wherein the second response is generated based on [the prompt, the first response and] the modified data (Byun et al. ¶ [0178], "According to an embodiment, in operation 1190, the intelligent server 700 may provide a second response based on the second intent and the one or more pieces of context information transmitted from the other chatbot 731."); and
providing a message that comprises the second response for display (Byun et al. ¶ [0178], "the intelligent server 700 may provide the second response via the communication interface.").
It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al.'s extension pipeline to include Byun et al.'s data modification because such a modification is the result of combining prior art elements according to known methods to yield predictable results. More specifically, y Wu et al.'s extension pipeline as modified by Byun et al.'s data modification can yield a predictable result of improving user experience since sharing context information in addition to responses between chatbots would enable a greater level of cohesion between chatbots in understanding the user’s intent. Thus, a person of ordinary skill would have appreciated including in Wu et al.’s extension pipeline the ability to do Byun et al.'s metadata sharing since the claimed invention is merely a combination of old elements, and in the combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable.
Wu et al. in view of Byun et al. do not explicitly disclose all of a second chatbot extension generating a response based on the original prompt.
However, Joko et al. disclose receiving a plurality of configurations of a plurality of chatbot extensions (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130, which includes a request table 132 that indicates which other chatbots the chatbot 110 is allowed to communicate with, a reply table 134 that the chatbot 110 would use to determine which other chatbots it would reply to if given a request by one or more of the other chatbots, and a respondent classifier 136 that indicates which chatbot is responding to the query. In some embodiments, each of the chatbots 110, 112, 114, 116, 118, and 120 includes its own respective variant of the chatbot data 130." Chatbot data is considered analogous to a configuration), [wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension, and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline,] wherein an extension pipeline is comprised of the plurality of chatbot extensions (Joko et al. ¶ [0060], "In some embodiments, the primary chatbot 210 is in direct communication with the secondary chatbots 220, 222, and 224 and not in direct communication with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 (e.g., the primary chatbot 210 has to indirectly communicate with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 via the secondary chatbots 220, 222, and 224, which are each able to communicate with their respective tertiary chatbots based on their own respective request tables)"); […]
receiving a prompt (Joko et al. ¶ [0017], "a primary chatbot may receive a query from a user");
according to the ordering, passing data including the prompt through the extension pipeline (Joko et al. ¶ [0059], "Referring now to FIG. 2, illustrated is an example system 200 of a primary chatbot 210 communicating with secondary chatbots 220, 222, and 224 and their related tertiary chatbots 230, 232, 234, 236, 238, 240, and 242, in accordance with embodiments of the present disclosure. In some embodiments, the primary chatbot 210 receives a query (not shown) and using natural language processing techniques identifies key features of the query."), [wherein the first chatbot extension modifies or adds to the data according to a first chatbot extension configuration]; […]
according to the ordering, providing the prompt, [the first response and the modified data] to the second chatbot extension (Joko et al. ¶ [0060], "The primary chatbot 210 pushes/forwards/distributes the key features of the query to the first secondary chatbot 220, the second secondary chatbot 222, and the third chatbot 224 based on the primary chatbot's request table (which was described above in regard to FIG. 1)."); and
receiving a second response from the second chatbot extension, wherein the second response is generated based on the prompt (Joko et al. ¶ [0065], "the primary chatbot 210 sends the query and receives the response to the query via the secondary chatbot"), [the first response and the modified data]….
It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al. in view of Byun et al. to include Joko et al.'s full query because such a modification is the result of combining prior art elements according to known methods to yield predictable results. More specifically, Wu et al.'s data provided to the second chatbot as modified by Joko et al.'s full query can yield a predictable result of increasing accuracy since providing the original query to a second chatbot would enable the second chatbot to respond with a greater degree of understanding of the query/user intent. Thus, a person of ordinary skill would have appreciated including in Wu et al.'s data provided to the second chatbot the ability to provide full queries since the claimed invention is merely a combination of old elements, and in the combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable.
Claim 2
Regarding claim 2, the rejection of claim 1 is incorporated.
Wu et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension and a second configuration of the plurality of configurations is associated with the second chatbot extension (Wu et al. pg. 4, Section 3.2, Paragraph 4, "As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes.... Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." See Figure 4, which illustrates an example configuration of a chatbot extension), further comprising:
determining whether to invoke the second chatbot extension of the extension pipeline based on an evaluation of a filter condition included in the second configuration (Wu et al. pg. 4, Section 3.2, Paragraph 4, "PromptChainer also provides helper nodes that address ... evaluation needs (C.3)" See Figures 2 and 3, which illustrate an exemplary evaluation node (e.g. Toxicity classifier 10) that uses a filter condition (e.g. classifying an input as one of an insult, obscene, or a threat)) based in part on the modified data (Wu et al. pg. 3, Figure 2 illustrates the toxicity node evaluating the output of an LLM-generated response from Generic LLM node 9. An LLM-generated response is considered analogous to modified data).
Joko et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension and a second configuration of the plurality of configurations is associated with the second chatbot extension (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130, which includes a request table 132 that indicates which other chatbots the chatbot 110 is allowed to communicate with, a reply table 134 that the chatbot 110 would use to determine which other chatbots it would reply to if given a request by one or more of the other chatbots, and a respondent classifier 136 that indicates which chatbot is responding to the query. In some embodiments, each of the chatbots 110, 112, 114, 116, 118, and 120 includes its own respective variant of the chatbot data 130."), further comprising:
determining whether to invoke the second chatbot extension of the extension pipeline based on an evaluation of a filter condition included in the second configuration (Joko et al. ¶ [0030], "when identifying which one of the primary chatbot and the one or more secondary chatbots is to respond to the query, the primary chatbot may poll each of the primary chatbot and the one or more secondary chatbots. The polling may indicate each of the primary chatbot's and the one or more secondary chatbots' confidence in the other chatbots responding to the query. The primary chatbot may rank, based on the polled confidence, the primary chatbot and the one or more secondary chatbots. The primary chatbot may select, of the primary chatbot and the one or more secondary chatbots, a chatbot with the highest confidence." Selecting chatbots based on comparing confidence values is considered analogous to invoking a chatbot extension based on a filter condition evaluating to true. See claim interpretation section) based in part on the [modified] data (Joko ¶ [0034], "when polling for each of the primary chatbot's and the one or more secondary chatbots' confidence in the other chatbots responding to the query, the primary chatbot may compare the one or more key features to metadata associated with each of the primary chatbot and the one or more secondary chatbots.").
Claim 3
Regarding claim 3, the rejection of claim 1 is incorporated.
Wu et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension and a second configuration of the plurality of configurations is associated with the second chatbot extension (Wu et al. pg. 4, Section 3.2, Paragraph 4, "As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes.... Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." See Figure 4, which illustrates an example configuration of a chatbot extension)….
Joko et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension and a second configuration of the plurality of configurations is associated with the second chatbot extension (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130, which includes a request table 132 that indicates which other chatbots the chatbot 110 is allowed to communicate with, a reply table 134 that the chatbot 110 would use to determine which other chatbots it would reply to if given a request by one or more of the other chatbots, and a respondent classifier 136 that indicates which chatbot is responding to the query. In some embodiments, each of the chatbots 110, 112, 114, 116, 118, and 120 includes its own respective variant of the chatbot data 130.")….
Byun et al. further disclose wherein the data passed through the extension pipeline comprises a property (Byun et al. ¶ [0184]-[0185], "The intelligent server 700 may process the user utterances 1211 and 1213 into a first intent (e.g., hotel reservation) and context information ... the intelligent server 700 may determine that the context information is information capable of being used by one other chatbot (e.g., the second chatbot 732) and may store the context information in a database ... so as to share the context information between the plurality of chatbots 730." Context information is considered analogous to a property), wherein modifying or adding to the data passed through the extension pipeline comprises modifying or adding the property (Byun et al. ¶ [0161], "the first chatbot 731, the second chatbot 732, and the third chatbot 733 may store (or update) the context information in the specified formats in the context share module 740 at various points in time" Storing or updating context information is considered analogous to adding or modifying properties), and wherein the second configuration declares that the second chatbot extension consumes the modified or added property (Byun et al. ¶ [0190], "the intelligent server 700 may transmit the context information stored in a database to the second chatbot. ... the intelligent server 700 may obtain information about available car rentals by using the second intent and the context information and may transmit the obtained information to the user terminal 100." The second chatbot using modified context information to obtain relevant car rental information is considered analogous to consuming a modified property. Transmitting the response is considered analogous to declaring the use of the modified property).
Claim 4
Regarding claim 4, the rejection of claim 1 is incorporated.
Wu et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension (Wu et al. pg. 4, Section 3.2, Paragraph 4, "As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes.... Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." See Figure 4, which illustrates an example configuration of a chatbot extension)….
Joko et al. further disclose wherein a first configuration of the plurality of configurations is associated with the first chatbot extension (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130")….
Byun et al. further disclose wherein the data passed through the extension pipeline comprises a property (Byun et al. ¶ [0184]-[0185], "The intelligent server 700 may process the user utterances 1211 and 1213 into a first intent (e.g., hotel reservation) and context information ... the intelligent server 700 may determine that the context information is information capable of being used by one other chatbot (e.g., the second chatbot 732) and may store the context information in a database ... so as to share the context information between the plurality of chatbots 730." Context information is considered analogous to a property), and wherein the first configuration declares that the first chatbot extension modifies the property (Byun et al. ¶ [0184]-[0185], "The intelligent server 700 may process the user utterances 1211 and 1213 into a first intent (e.g., hotel reservation) and context information ... the intelligent server 700 may determine that the context information is information capable of being used by one other chatbot (e.g., the second chatbot 732) and may store the context information in a database ... so as to share the context information between the plurality of chatbots 730." Storing generated context in a database for use by other chatbots is considered analogous to declaring a modification of a property).
Claim 5
Regarding claim 5, the rejection of claim 1 is incorporated.
Wu et al. further disclose wherein the data passed through the extension pipeline comprises a property, and wherein the property indicates whether the prompt contains offensive language (Wu et al. pg. 3, Figure 3, "[Evaluation nodes] Filter or re-rank LLM outputs by human-designed criteria, e.g., politeness." See Figure 2, which illustrates a toxicity node 10 that filters inputs based on a toxicity criteria, including an "obscene" criteria. An "obscene" criteria is considered analogous to a property that indicates whether a prompt contains offensive language).
Byun et al. further disclose wherein the data passed through the extension pipeline comprises a property (Byun et al. ¶ [0184]-[0185], "The intelligent server 700 may process the user utterances 1211 and 1213 into a first intent (e.g., hotel reservation) and context information ... the intelligent server 700 may determine that the context information is information capable of being used by one other chatbot (e.g., the second chatbot 732) and may store the context information in a database ... so as to share the context information between the plurality of chatbots 730." Context information is considered analogous to a property)….
Claim 11
Regarding claim 11, Wu et al. disclose a processing system, comprising:
a processor (Wu et al. pg. 5, Section 4.1, Paragraph 2, "All of our experiments (including pilot study) rely on the same underlying LLM called LaMDA: a 137 billion parameter, general-purpose language model. ... it is trained with more than 1.5T words of text data, in an auto-regressive manner using a decoder-only Transformer structure." The use of an off-the-shelf LLM implies the use of a processor); and
a computer-readable storage medium having computer-executable instructions stored thereupon (Wu et al. pg. 5, Section 4.1, Paragraph 2, "All of our experiments (including pilot study) rely on the same underlying LLM called LaMDA: a 137 billion parameter, general-purpose language model. ... it is trained with more than 1.5T words of text data, in an auto-regressive manner using a decoder-only Transformer structure." The use of an off-the-shelf LLM implies the use of a computer-readable storage medium) that, when executed by a processing system, cause the processing system to:
receive a plurality of configurations of a plurality of chatbot extensions (Wu et al. pg. 4, Section 3.2, Paragraphs 3-4, "Node visualization. As shown in Figure 4 (a zoomed-in node of Figure 2 (2)), each node can have one or more named inputs (
a
2
)and outputs (
a
3
), which are used to connect nodes. ... Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." Nodes are considered analogous to a plurality of chatbot extensions. A node visualization is considered analogous to a configuration of a chatbot extension; see Figure 4), wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension (Wu et al. pg. 4, Figure 4, "Node visualization: the node has... a list of named input (
a
2
) and output handles (
a
3
)"), and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline (Wu et al. pg. 4, Section 3.2, Paragraphs 4, "Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). PromptChainer also provides helper nodes that address common data transformation (C.1 in Section 3.1) and evaluation needs (C.3), or to allow users to implement their own custom JavaScript (JS) nodes. Finally, to support users in prototyping AI-infused applications, PromptChainer provides communication nodes for exchanging data with the external world (e.g., external API calls)." Any of the predefined node definitions (e.g. data transformations by helper nodes) are considered analogous to modifications made by a chatbot extension), wherein the extension pipeline is comprised of the plurality of chatbot extensions (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions);
determine an ordering of the extension pipeline based at least in part on the declared inputs, the declared outputs, and the declared modifications (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions, each of which declare an input and an output, and are associated with specific modifications (i.e. functions); see Figure 3 for node definitions which include data transformation functions), including determining that a first chatbot extension precedes a second chatbot extension because the first chatbot extension declares an output or modification that satisfies an input declared by the second chatbot extension (Wu et al. pg. 3, Figure 2 illustrates determining that a first chatbot extension (e.g. node 4) precedes a second chatbot extension (e.g. node 5) because the first chatbot extension declares an output (e.g. node 4 declares an outputted list generated by an LLM; see Figure 3 for node definitions) that satisfies an input declared by the second chatbot extension (e.g. node 4's LLM-generated list is output to node 5's input handle for subsequent parsing));
receiving a prompt (Wu et al. pg. 7, Figure 2 illustrates receiving a prompt at node 1.) [from a client device];
according to the ordering, pass data including the prompt through the extension pipeline (Wu et al. pg. 3, Figure 2 illustrates passing data including the prompt through the extension pipeline. This is indicated by some nodes (e.g. 2, 3, 4, 6, and 9) taking "user" or "userInput" as input. For example, see bottom-right box for example queries that are then eventually passed through to Generic LLM nodes 4, 6, and 9.), [wherein the first chatbot extension modifies or adds to the data according to a first chatbot extension configuration];
receive a first response [and the modified data] from the first chatbot extension (Wu et al. pg. 3, Figure 2 illustrates receiving a first response from first chatbot extension (e.g. Node 4's LLM-generated response based on the user query);
according to the ordering, providing [the prompt,] the first response [and the modified data] to the second chatbot extension (Wu et al. pg. 3, Figure 2 illustrates passing a first response (e.g. Node 4's LLM-generated response) to a second chatbot extension (e.g. Node 5));
receive a second response from the second chatbot extension, wherein the second response is generated based on [the prompt,] the first response (Wu et al. pg. 3, Figure 2 illustrates receiving a second response (e.g. Node 5's parsed list output ) that is generated based on the first response (e.g. Node 4's LLM-generated response)) [and the modified data]; and
provide a message of the second response for display (Wu et al. pg. 3, Figure 2 illustrates the example query "Who are some Country artists?" leading to the response "[ Garth Brooks, George Strait, Dolly Parton ]").
Wu et al. do not explicitly disclose all of generating a response based on modified data.
However, Byun et al. disclose receiving a plurality of configurations of a plurality of chatbot extensions (Byun et al. ¶ [0137], "each of the plurality of chatbots 730 may provide the user (or the user terminal) with a response that provides a specified service. ... the plurality of chatbots 730 may correspond to apps (or application programs) that provide the specified services" Providing chatbots that are associated with specified services is considered analogous to receiving configurations of chatbot extensions), […]; […]
receiving a prompt from a client device (Byun et al. ¶ [0066], "According to an embodiment, the intelligence agent 145 may include an utterance recognition module for performing the user input. The processor 150 may recognize the user input for executing an action in an app through the utterance recognition module.");
[according to the ordering,] passing data including the prompt (Byun et al. ¶ [134], “the dispatch module 720 may select one or more of the chatbots 731, 732, or 733 from among the plurality of chatbots 730. The selected chatbot(s) will process the converted text data. According to an embodiment, the dispatch module 720 may select the chatbot 731, 732, or 733 based on the received voice data.”) [through the extension pipeline], wherein a first chatbot extension modifies or adds to the data according to a first chatbot extension configuration (Byun et al. ¶ [0150], "the context data converter 741a may convert the context information received from the first chatbot 731 to the specified format. For example, the context data converter 741a may set at least one field (e.g., a user's name field or a user's address field) and may convert the received context depending using the field." Converting context data is considered analogous to modifying data);
receiving a first response (Byun et al. ¶ [0144], "The first NLU module 731a ... may provide the user with a first response (e.g., information about a hotel capable of being booked) based on the first intent and the first context information") and the modified data from the first chatbot extension (Byun et al. ¶ [0150], "the context data converter 741a may store the converted context information in the context DB 741b. For example, the context share module 740 may store context information, which is converted by the context data converter 741a, in the context DB 741b.");
[according to the ordering,] providing [the prompt, the first response and] the modified data to the second chatbot extension (Byun et al. ¶ [0151], "According to an embodiment, the context data converter 741a may reconvert the context information, which is stored in the specified format, to a format necessary for the second chatbot 732. … the context data converter 741a may transmit the reconverted or extracted context information the second chatbot 732.");
receiving a second response from the second chatbot extension, wherein the second response is generated based on [the prompt, the first response and] the modified data (Byun et al. ¶ [0178], "According to an embodiment, in operation 1190, the intelligent server 700 may provide a second response based on the second intent and the one or more pieces of context information transmitted from the other chatbot 731."); and
providing a message of the second response for display (Byun et al. ¶ [0178], "the intelligent server 700 may provide the second response via the communication interface.").
It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al.'s extension pipeline to include Byun et al.'s data modification.
The suggestion/motivation for doing so is similar to the suggestion/motivation described above with respect to claim 1.
Wu et al. in view of Byun et al. do not explicitly disclose all of a second chatbot extension generating a response based on the original prompt.
However, Joko et al. disclose receiving a plurality of configurations of a plurality of chatbot extensions (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130, which includes a request table 132 that indicates which other chatbots the chatbot 110 is allowed to communicate with, a reply table 134 that the chatbot 110 would use to determine which other chatbots it would reply to if given a request by one or more of the other chatbots, and a respondent classifier 136 that indicates which chatbot is responding to the query. In some embodiments, each of the chatbots 110, 112, 114, 116, 118, and 120 includes its own respective variant of the chatbot data 130." Chatbot data is considered analogous to a configuration), [wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension, and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline,] wherein an extension pipeline is comprised of the plurality of chatbot extensions (Joko et al. ¶ [0060], "In some embodiments, the primary chatbot 210 is in direct communication with the secondary chatbots 220, 222, and 224 and not in direct communication with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 (e.g., the primary chatbot 210 has to indirectly communicate with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 via the secondary chatbots 220, 222, and 224, which are each able to communicate with their respective tertiary chatbots based on their own respective request tables)"); […]
receiving a prompt from a client device (Joko et al. ¶ [0017], "a primary chatbot may receive a query from a user");
according to the ordering, passing data including the prompt through the extension pipeline (Joko et al. ¶ [0059], "Referring now to FIG. 2, illustrated is an example system 200 of a primary chatbot 210 communicating with secondary chatbots 220, 222, and 224 and their related tertiary chatbots 230, 232, 234, 236, 238, 240, and 242, in accordance with embodiments of the present disclosure. In some embodiments, the primary chatbot 210 receives a query (not shown) and using natural language processing techniques identifies key features of the query."), [wherein the first chatbot extension modifies or adds to the data according to a first chatbot extension configuration]; […]
according to the ordering, providing the prompt, [the first response and the modified data] to the second chatbot extension (Joko et al. ¶ [0060], "The primary chatbot 210 pushes/forwards/distributes the key features of the query to the first secondary chatbot 220, the second secondary chatbot 222, and the third chatbot 224 based on the primary chatbot's request table (which was described above in regard to FIG. 1)."); and
receiving a second response from the second chatbot extension, wherein the second response is generated based on the prompt (Joko et al. ¶ [0065], "the primary chatbot 210 sends the query and receives the response to the query via the secondary chatbot"), [the first response and the modified data]….
It would have been obvious to a person having ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al. in view of Byun et al. to include Joko et al.'s full query.
The suggestion/motivation for doing so is similar to the suggestion/motivation described above with respect to claim 1.
Claim 12
Regarding claim 12, the rejection of claim 11 is incorporated.
Wu et al. further disclose wherein the prompt received from the client device is provided to the extension pipeline (Wu et al. pg. 3, Figure 2 illustrates passing data including the prompt through the extension pipeline. This is indicated by some nodes (e.g. 2, 3, 4, 6, and 9) taking "user" or "userInput" as input. For example, see bottom-right box for example queries that are then eventually passed through to Generic LLM nodes 4, 6, and 9.) and wherein the second response is received from the extension pipeline (Wu et al. pg. 3, Figure 2 illustrates receiving a second response (e.g. Node 5's parsed list output ) that is generated based on the first response (e.g. Node 4's LLM-generated response)).
Joko et al. further disclose wherein the prompt received from the client device is provided to the extension pipeline (Joko et al. ¶ [0017], "In some embodiments, a primary chatbot may receive a query from a user. ... The primary chatbot may identify, from the analyzing, one or more key features of the query. The primary chatbot may push the one or more key features to one or more secondary (e.g., tertiary, quaternary, etc.) chatbots.") and wherein the second response is received from the extension pipeline (Joko et al. ¶ [0055], "The chatbot 116 then analyzes the query and generates a response (R) for the query. The chatbot 116 pushes/sends the response to the chatbot 110, which then transmits the response to the user 102").
Claim 13
Regarding claim 13, the rejection of claim 11 is incorporated.
Joko et al. further disclose wherein a first configuration associated with the first chatbot extension declares a preferred location of the first chatbot extension in the pipeline (Joko et al. ¶ [0040], "the chatbot 110 includes chatbot data 130, which includes a request table 132 that indicates which other chatbots the chatbot 110 is allowed to communicate with, a reply table 134 that the chatbot 110 would use to determine which other chatbots it would reply to if given a request by one or more of the other chatbots, and a respondent classifier 136 that indicates which chatbot is responding to the query." Chatbot data that specifies communication order with other chatbots is considered analogous to a configuration that declares a preferred location in a pipeline), and wherein the first chatbot extension is placed in the extension pipeline in an order derived in part from the preferred location of the first chatbot extension relative to preferred locations of other chatbot extensions of the extension pipeline (Joko et al. ¶ [0060], "In some embodiments, the primary chatbot 210 is in direct communication with the secondary chatbots 220, 222, and 224 and not in direct communication with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 (e.g., the primary chatbot 210 has to indirectly communicate with the tertiary chatbots 230, 232, 234, 236, 238, 240, and 242 via the secondary chatbots 220, 222, and 224, which are each able to communicate with their respective tertiary chatbots based on their own respective request tables)").
Claim 14
Regarding claim 14, the rejection of claim 11 is incorporated.
Byun et al. further disclose wherein the metadata comprises a plurality of properties (Byun et al. ¶ [0087]-[0088], "The context information may include general context information, user context information, or device context information. ... the general context information may include information about current time and space. For example, the information about the current time and space may include information about current time or a current location of the user terminal 100."), and wherein the second chatbot extension adds or modifies or deletes an individual property of the plurality of properties (Byun et al. ¶ [0150], "the context data converter 741a may convert the context information received from the first chatbot 731 to the specified format. For example, the context data converter 741a may set at least one field (e.g., a user's name field or a user's address field) and may convert the received context depending using the field.").
Claim 17
Regarding claim 17, the rejection of claim 11 is incorporated.
Joko et al. further disclose wherein a first configuration associated with the first chatbot extension registers the first chatbot extension to be invoked by a chatbot when the chatbot is unable to respond to the prompt (Joko ¶ [0060], "In some embodiments, the primary chatbot 210 pushes the key features of the query to the secondary chatbots 220, 222, and 224 if the primary chatbot 210 determines that it is unable to properly/accurately respond to the query (e.g., within a degree of certainty).").
Claims 6 and 7 are rejected under 35 U.S.C. 103 as obvious over Wu et al. in view of Byun et al. in view of Joko et al. as applied to claim 1 above, and further in view of US Patent Publication 20230074406 A1 (Baeuml et al.).
Claim 6
Regarding claim 6, the rejection of claim 1 is incorporated.
Wu et al. in view of Byun et al. in view of Joko et al. do not explicitly disclose all of providing chatbots with a conversation of messages.
However, Baeuml et al. disclose wherein a second chatbot extension is provided with a conversation of messages generated by one or more previous chatbot extensions that preceded the second chatbot extension in an extension pipeline (Baeuml et al. ¶ [0042]-[0043], "the automated assistant 115 can transmit one or more structured request to one or more first-party (1P) systems 191... and/or one or more third-party (3P) systems 192 over one or more of the networks, and receive fulfillment data from one or more of the 1P systems 191 and/or 3P systems 192 to generate the stream of fulfillment data. ... The stream of fulfillment data can correspond to, for example, a set of assistant outputs ... the LLM engine 150A1 and/or 150A2 can process the set of assistant outputs that are predicted to be responsive to the assistant query" LLM engine 150 is considered analogous to a second chatbot extension. A stream of fulfillment data consisting of a set of assistant outputs is considered analogous to a conversation of messages generated by previous chatbot extensions).
It would have been obvious to a person having ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify the metadata property of Wu et al. in view of Byun et al. in view of Joko et al. to incorporate Baeuml et al.’s provision of conversation history.
The suggestion/motivation for doing so would have been to, “a quantity of user inputs received at the client device can be reduced since a quantity of occurrences of the user having to request information that is contextually relevant to a dialog session can be reduced,” as noted by the Baeuml et al. disclosure in paragraph [0019].
Claim 7
Regarding claim 7, the rejection of claim 6 is incorporated.
Baeuml et al. further disclose wherein the second chatbot extension modifies an existing message of the conversation of messages (Baeuml et al. ¶ [0043], "in some implementations, the LLM engine 150A1 and/or 150A2 can cause the set of assistant outputs to be modified, using one or more LLM outputs, to generate a set of modified assistant outputs.").
Claims 8-9 are rejected under 35 U.S.C. 103 as obvious over “PromptChainer: Chaining Large Language Model Prompts through Visual Programming” (Wu et al.) in view of US Patent Publication 20190267001 A1 (Byun et al.).
Claim 8
Regarding claim 8, Wu et al. disclose a computer-readable storage medium having computer-executable instructions stored thereupon (Wu et al. pg. 5, Section 4.1, Paragraph 2, "All of our experiments (including pilot study) rely on the same underlying LLM called LaMDA: a 137 billion parameter, general-purpose language model. ... it is trained with more than 1.5T words of text data, in an auto-regressive manner using a decoder-only Transformer structure." The use of an off-the-shelf LLM implies the use of a computer-readable storage medium) that, when executed by a processing system, cause the processing system to:
receive a plurality of configurations of a plurality of chatbot extensions (Wu et al. pg. 4, Section 3.2, Paragraphs 3-4, "Node visualization. As shown in Figure 4 (a zoomed-in node of Figure 2 (2)), each node can have one or more named inputs (
a
2
)and outputs (
a
3
), which are used to connect nodes. ... Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). Users can implement these nodes by providing a natural language prompt, call an LLM with the prompt as input, and use the LLM outputs accordingly." Nodes are considered analogous to a plurality of chatbot extensions. A node visualization is considered analogous to a configuration of a chatbot extension.), wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension (Wu et al. pg. 4, Figure 4, "Node visualization: the node has... a list of named input (
a
2
) and output handles (
a
3
)"), and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline (Wu et al. pg. 4, Section 3.2, Paragraphs 4, "Node Types. As summarized in Figure 3, we define several types of nodes to cover diverse user needs. At its core are two types of LLM nodes: Generic LLM nodes and LLM Classifier nodes (See the node definitions and examples in Figure 3). PromptChainer also provides helper nodes that address common data transformation (C.1 in Section 3.1) and evaluation needs (C.3), or to allow users to implement their own custom JavaScript (JS) nodes. Finally, to support users in prototyping AI-infused applications, PromptChainer provides communication nodes for exchanging data with the external world (e.g., external API calls)." Any of the predefined node definitions (e.g. data transformations by helper nodes) are considered analogous to modifications made by a chatbot extension), wherein the extension pipeline is comprised of the plurality of chatbot extensions (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions);
determine an ordering of the extension pipeline based at least in part on the declared inputs, the declared outputs, and the declared modifications, including determining that a first chatbot extension precedes a second chatbot extension because the first chatbot extension declares an output or modification that satisfies an input declared by the second chatbot extension (Wu et al. pg. 3, Figure 2 illustrates an example chain of chatbot extensions, each of which declare an input and an output, and are associated with specific modifications (i.e. functions). For example, it can be determined that a first chatbot extension (e.g. node 4) precedes a second chatbot extension (e.g. node 5) because the first chatbot extension declares an output (e.g. node 4 declares an outputted list generated by an LLM; see Figure 3 for node definitions) that satisfies an input declared by the second chatbot extension (e.g. node 4's LLM-generated list is output to node 5's input handle for subsequent parsing));
according to the ordering, receive, at the first chatbot extension, data including a prompt (Wu et al. pg. 10, Figure 7 illustrates receiving a prompt at node "MultiParagraph", which is then passed to the first chatbot extension (e.g. "SplitParas").);
modify the prompt (Wu et al. pg. 10, Figure 7 illustrates first chatbot extension "SplitParas" modifying the prompt by splitting the paragraphs.);
provide a [chatbot] LLM with the modified prompt (Wu et al. pg. 10, Figure 7 illustrates first chatbot extension (e.g. "SplitParas") providing a large language model with the modified prompt (e.g. the split paragraph output));
receive a response from the [chatbot] LLM (Wu et al. pg. 10, Figure 7 illustrates receiving a response (e.g. The summarized output from the first "Summarize" node) from the large language model);
modify the data passed through the extension pipeline (Wu et al. pg. 10, Figure 7 illustrates modifying data passed through the extension pipeline by the node "JoinNode" joining the summaries) [by setting a property of the data passed through the extension pipeline based on the response from the chatbot]; and
provide the modified data to the extension pipeline (Wu et al. pg. 10, Figure 7 illustrates passing the modified data (e.g. the joined summaries) to further down the extension pipeline), wherein the extension pipeline provides the modified data to the second chatbot extension (Wu et al. pg. 10, Figure 7 illustrates passing the modified data (e.g. the joined summaries) to a second chatbot extension (e.g. The second "Summarize" node), and wherein the second chatbot extension uses the data to generate a message for display (Wu et al. pg. 10, Figure 7 illustrates a second chatbot extension (e.g. The second "Summarize" node) using the modified data (e.g. the joined summaries) to eventually generate a message for display (e.g. "An essay about pros and cons on tent camping.")).
Wu et al. do not explicitly disclose all of setting a property of data.
However, Byun et al. disclose receiving a plurality of configurations of a plurality of chatbot extension (Byun et al. ¶ [0137], "each of the plurality of chatbots 730 may provide the user (or the user terminal) with a response that provides a specified service. ... the plurality of chatbots 730 may correspond to apps (or application programs) that provide the specified services" Providing chatbots that are associated with specified services is considered analogous to receiving configurations of chatbot extensions), [wherein each individual configuration of the plurality of configurations declares any inputs consumed by a corresponding chatbot extension, any outputs produced by the corresponding chatbot extension, and any modifications made by the corresponding chatbot extension to data passed through an extension pipeline, wherein the extension pipeline is comprised of the plurality of chatbot extensions]; […]
[according to the ordering,] receiving, at a first chatbot extension, data including a prompt (Byun et al. ¶ [0184]-[0185], "the ASR module 710 may process the voice data to generate first text data based on the user utterance."); …
providing a chatbot with the [modified] prompt (Byun et al. ¶ [0144], "the first chatbot 731 may include the first NLU module 731a and the first local context module 731b ... the first NLU module 731a may generate a first intent (e.g., hotel reservation) from a first user input");
receiving a response from the chatbot (Byun et al. ¶ [0144], "The first NLU module 731a may further generate first context information ... associated with the first intent and may provide the user with a first response ... based on the first intent and the first context information." The generated context information is considered analogous to a response from the chatbot);
modifying the data passed through the extension pipeline by setting a property of the data passed through the extension pipeline based on the response from the chatbot (Byun et al. ¶ [0150], "the context data converter 741a may convert the context information received from the first chatbot 731 to the specified format. For example, the context data converter 741a may set at least one field (e.g., a user's name field or a user's address field) and may convert the received context depending using the field." Modifying context data by setting/converting a field is considered analogous to modifying a property of data); and
providing the modified data to the extension pipeline (Byun et al. ¶ [0144], "the first local context module 731b may transmit the first context information to the context share module 740... the context share module 740 may receive context information generated by the plurality of chatbots 730."), wherein the extension pipeline provides the modified data to the second chatbot extension (Byun et al. ¶ [0147], "the context share module 740 may transmit the stored context information to the other chatbots."), and wherein the second chatbot extension uses the data to generate a message for display (Byun et al. ¶ [0178], "According to an embodiment, in operation 1190, the intelligent server 700 may provide a second response based on the second intent and the one or more pieces of context information transmitted from the other chatbot 731.").
It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al.'s extension pipeline to include Byun et al.'s property modification.
The suggestion/motivation for doing so is similar to the suggestion/motivation described above with respect to claim 1.
Claim 9
Regarding claim 9, the rejection of claim 8 is incorporated.
Wu et al. further disclose wherein the first chatbot extension emits a log entry based on the response (Wu et al. pg. 4-5, Section 3.2, Paragraph 7, "To address the cascading error challenge (C.3), PromptChainer supports chain debugging at various levels of granularity: ... to perform end-to-end assessment, users can run the entire chain and log the outputs per node, such that the ultimate chain output is easy to retrieve (Figure 4
c
2
)." See Figure 4
c
2
, which illustrates a first chatbot extension emitting a log entry based on a response (e.g. "20:24:36 success:Node:[Is about music]")).
Claims 15-16 are rejected under 35 U.S.C. 103 as obvious over Wu et al. in view of Byun et al. in view of Joko et al. as applied to claims 11 and 14 above, and further in view of US Patent Publication 20220284174 A1 (Galitsky).
Claim 15
Regarding claim 15, the rejection of claim 11 is incorporated.
Wu et al. in view of Byun et al. in view of Joko et al. do not explicitly disclose determining that the first response is accurate based on an analysis of an outside source.
However, Galitsky teaches wherein the second chatbot extension determines that the first response is accurate (Galitsky ¶ [0050], "FIG. 1 depicts an example of a computing environment for correcting raw text generated using deep learning techniques, in accordance with at least one embodiment. In the example depicted in FIG. 1, computing environment 100 includes one or more of computing device 102 and user device 104. Computing device 102 can implement an application (e.g., application 106). In some embodiments, the application 106 may be an autonomous agent (e.g., a chatbot) that engages in a conversation with user device 104 and uses one or more of the techniques disclosed herein to dialog in response to input provided by user device 104") based on an analysis of an outside source (Galitsky ¶ [0037], "The techniques discussed herein apply fact-checking to raw text to identify entities and phrases which are untrue. One or more queries are formed from these untrue phrases and search available knowledge bases (e.g., the Internet, a corpus of documents, etc.) for sentences that may be used to replace/correct and/or augment portions of the raw text while retaining the syntactic and logical structure of the original text.").
It would have been obvious to a person having ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al.’s extension pipeline with the Galitsky’s accuracy check.
The suggestion/motivation for doing so would have been to, “improve the end-to-end content generation process with fact-checking and correct fact substitution, to make the resulting content sound and trusted,” as noted by the Galitsky disclosure in paragraph [0037].
Claim 16
Regarding claim 16, the rejection of claim 14 is incorporated.
Galitsky further discloses wherein the second chatbot extension determines that the first response is accurate (Galitsky ¶ [0050], "FIG. 1 depicts an example of a computing environment for correcting raw text generated using deep learning techniques, in accordance with at least one embodiment. ... In some embodiments, the application 106 may be an autonomous agent (e.g., a chatbot) that engages in a conversation with user device 104 and uses one or more of the techniques disclosed herein to dialog in response to input provided by user device 104") based on an analysis of an outside source (Galitsky ¶ [0037], "The techniques discussed herein apply fact-checking to raw text to identify entities and phrases which are untrue. One or more queries are formed from these untrue phrases and search available knowledge bases (e.g., the Internet, a corpus of documents, etc.) for sentences that may be used to replace/correct and/or augment portions of the raw text while retaining the syntactic and logical structure of the original text."), and wherein the individual property of the data indicates that the first response is accurate (Galitsky ¶ [0137], "Each candidate true sentence obtained from the search results may be generalized with the raw text sentence such that each candidate true statement has an associated semantic alignment score and syntactic alignment score associated with it. These scores may collectively indicate a degree of by which a candidate true statement is appropriate to provide fragments with which the raw text sentence may be corrected"; alignment score is considered analogous to an individual property).
Claim 18 is rejected under 35 U.S.C. 103 as obvious over Wu et al. in view of Byun et al. in view of Joko et al. as applied to claim 11 above, and further in view of US Patent Publication 20220141160 A1 (Ham et al.).
Claim 18
Regarding claim 18 the rejection of claim 11 is incorporated.
Wu et al. in view of Byun et al. in view of Joko et al. do not explicitly disclose all of combining responses.
However, Ham et al. disclose wherein the first chatbot extension adds the first response to a conversation (Ham et al. ¶ [0113], " In this case, a first response (ex. Did you check the mobile data or Wi-Fi connection state? Setting>connection>data use>mobile data>turn on) of the selected chat-bot 1 regarding the user's question may be acquired in operation S13"), wherein the second chatbot extension adds the second response to the conversation (Ham et al. ¶ [0136], "the chat-bot management module 122 may acquire a second response (ex. Shall I turn on the mobile data?) of the chat-bot 2 regarding the generated question (ex. Turn on the mobile data), and provide a response to the user's question (question 1) based on the aforementioned first response and second response in operation S17."), and wherein providing the message of the second response for display comprises providing the conversation for display (Ham et al. ¶ [0137]-[0141], "The processor 120 may generate a combined response for the input user's question (question 1) based on the first response and the second response. Here, the combined response may simply include the first response and the second response, or it may be a new response wherein the first response and the second response are fused. ... Then, the chat-bot management module 122 may provide the generated combined response.").
It would have been obvious to a person having ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al. in view of Byun et al. in view of Joko et al. to incorporate Ham et al.’s response combination because such a modification is the result of combining prior art elements according to known methods to yield predictable results. More specifically, Wu et al.’s extension pipeline as modified by Ham et al.’s response combination can yield a predictable result of improving response quality since multiple chatbots providing a response to a query can provide varying perspectives and insights as opposed to a single inference from a single chatbot. Thus, a person of ordinary skill would have appreciated including in Wu et al.’s extension pipeline the ability to do Ham et al.’s response combination since the claimed invention is merely a combination of old elements, and in the combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable.
Claim 20 is rejected under 35 U.S.C. 103 as obvious over Wu et al. in view of Byun et al. in view of Joko et al. as applied to claim 11 above, and further in view of US Patent Publication 20220261817 A1 (Ferrucci et al.).
Claim 20
Regarding claim 20, the rejection of claim 11 is incorporated.
Wu et al. in view of Byun et al. in view of Joko et al. do not explicitly disclose a stream of subsections.
However, Ferrucci et al. teach wherein the [second] chatbot extension receives a stream of subsections (Ferrucci et al. ¶ [0167], "The user input may include a continuous stream of words describing an input scenario that may be typed or spoken by the user 104”; a continuous stream of words is considered analogous to the claimed stream of subsections, see Claim Interpretation section) [of the first response] as [the first response is] generated (Ferrucci et al. ¶ [0167], "In some examples, the multimodal dialog engine 216 may use the semantic parser 214 to identify components and connections between the components as the user 104 continues to describe the input scenario").
It would have been obvious to one of ordinary skill in the art before the time of the effective filing date of the claimed invention of the instant application to modify Wu et al.’s extension pipeline to include Ferrucci et al.’s continuous stream of subsections because such a modification is the result of simple substitution of one known element for another producing a predictable result. More specifically, Wu et al.’s first response and Ferrucci et al.’s user input perform the same general and predictable function, the predictable function being providing the computing system with the user’s intent and/or context for solving the user’s problem. Since each individual element and its function are shown in the prior art, albeit shown in separate references, the difference between the claimed subject matter and the prior art rests not on any individual element or function but in the very combination itself - that is in the substitution of Wu et al.’s transmission of responses by replacing it with Ferrucci’s ability to understand a continuous stream of subsections. Thus, the simple substitution of one known element for another producing a predictable result renders the claim obvious.
Reference Cited
The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure.
“AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts” to Wu et al. discloses a prototype of PromptChainer that delves deeper into prompt templates for a large language model.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 JACOB B VOGT whose telephone number is (571)272-7028. The examiner can normally be reached Monday - Friday, 11am - 8pm EST.
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, PARAS D SHAH can be reached at (571)270-1650. 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.
/JACOB B VOGT/ Examiner, Art Unit 2653
/Paras D Shah/ Supervisory Patent Examiner, Art Unit 2653
09/15/2026