IP Library Granted Patent US 12664359
Granted Patent B1
US 12664359 · App. 17/643,758 · Granted Jun 23, 2026

Conversation orchestration system with natural language processing and response handling

Inventors: Chintan Mehta (San Ramon, CA); Michelle Moore (Mooresville, NC); Ramakrishna Swarup Pogalur (San Ramon, CA); Kunal Jha (Indian Land, SC); Kapil Soni (Bangalore, IN); Venkatesan Chinnaraju (Fremont, CA); Upul D. Hanwella (San Francisco, CA); Ranganathan Kanchi (San Francisco, CA)
Assignee: Wells Fargo Bank, N.A.
G06F40/20G06F16/90332H04L65/1066
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12664359
App. No.
17/643,758
Granted
Jun 23, 2026
Kind
B1
Abstract

A computing system is described that includes a natural language processing (NLP) node configured to receive an input data stream during a communication session with a customer; select a primary NLP engine for the communication session from a plurality of NLP engines based on accuracy scores, use case requirements, and/or performance constraints; and route the input data stream to the primary NLP engine. The NLP node may select one or more of the other NLP engines to operate as secondary NLP engines in training stages or as standby NLP engines during the communication session. The output from the primary NLP engine may be used to generate responses to customer queries within the input data stream. At a communication session boundary, the NLP node may select the most appropriate one of the NLP engines to operate as the primary NLP for a subsequent communication session.

Claims (66)

1 . A method comprising:

receiving, by a computing system, an input data stream including one or more customer queries during a communication session with a customer, wherein the one or more customer queries originate from a customer-facing service and are associated with a first query domain;

identifying, by a rule-based model and from a database of parameters for a plurality of natural language processing (NLP) engines, a set of NLP engines pre-trained for the first query domain associated with the communication session;

selecting, by the computing system, a first NLP engine from the set of NLP engines to operate as a primary NLP engine for the communication session based at least on accuracy scores for the set of NLP engines;

selecting, by the computing system, a second NLP engine from the set of NLP engines to operate as a standby NLP engine for the communication session based at least on the accuracy scores for the set of NLP engines;

routing, by the computing system, the input data stream of the communication session to the primary NLP engine for the communication session, the primary NLP engine configured to process the one or more customer queries within the input data stream of the communication session;

based on a failure of the primary NLP engine such that the primary NLP engine is unable to process the one or more customer queries, automatically routing the input data stream of the communication session to the standby NLP engine for the communication session, the standby NLP engine configured to process the one or more customer queries within the input data stream of the communication session; and

generating, by the computing system, one or more responses to the one or more customer queries within the input data stream of the communication session based at least in part on output of one of the primary NLP engine or the standby NLP engine for the communication session.

2 . The method of claim 1 , further comprising selecting one or more NLP engines from the plurality of NLP engines to operate as secondary NLP engines during the communication session, wherein each of the secondary NLP engines is configured to operate in a training stage based on the one or more customer queries within the input data stream of the communication session or the output of the primary NLP engine for the one or more customer queries within the input data stream of the communication session.

3 . The method of claim 1 , wherein selecting the first NLP engine to operate as the primary NLP engine for the communication session comprises selecting, by a second rule-based model, the first NLP engine as having a highest accuracy score from among the accuracy scores for the set of NLP engines.

4 . The method of claim 1 , wherein selecting the first NLP engine to operate as the primary NLP engine for the communication session comprises:

determining performance constraints of the computing system during the communication session;

identifying, by a second rule-based model and from the database of parameters for the plurality of NLP engines, one or more NLP engines from the set of NLP engines that use algorithms that comply with the performance constraints of the computing system, the one or more NLP engines including the first NLP engine; and

selecting, by the rule-based model, the first NLP engine as having a highest accuracy score from among the accuracy scores for the identified one or more NLP engines.

5 . The method of claim 1 , wherein the input data stream of the communication session comprises a first input data stream of a first communication session, the method further comprising:

receiving, by the computing system, a second input data stream including one or more second customer queries during a second communication session, wherein the one or more second customer queries are associated with a second query domain;

identifying, by the rule-based model and from the database of parameters for the plurality of NLP engines, a second set of NLP engines pre-trained for the second query domain associated with the second communication session;

selecting, by the computing system, a third NLP engine from the second set of NLP engines to operate as a primary NLP engine for the second communication session based at least on accuracy scores for the second set of NLP engines;

routing, by the computing system, the second input data stream of the second communication session to the primary NLP engine for the second communication session; and

generating, by the computing system, one or more responses to the one or more second customer queries within the second input data stream of the second communication session based at least in part on output of the primary NLP engine for the second communication session.

6 . The method of claim 5 , wherein selecting the third NLP engine comprises, at a communication session boundary between an end of the first communication session and a start of the second communication session:

determining updated accuracy scores for one or more NLP engines of the plurality of NLP engines based on information received from the one or more NLP engines for the first communication session; and

selecting, by the computing system, the third NLP engine from the second set of NLP engines to operate as the primary NLP engine for the second communication session based at least in part on the updated accuracy scores for the one or more NLP engines of the plurality of NLP engines.

7 . The method of claim 6 , wherein determining the updated accuracy scores comprises:

receiving an updated accuracy score from the first NLP engine operating as the primary NLP engine for the first communication session; and

receiving an updated accuracy score from at least one NLP engine operating as a secondary NLP engine in a training stage during the first communication session.

8 . The method of claim 6 , wherein determining the updated accuracy scores comprises:

determining an updated accuracy score for the first NLP engine operating as the primary NLP engine for the first communication session based on the output of the primary NLP engine during the first communication session; and

determining an updated accuracy score for at least one NLP engine operating as a secondary NLP engine in a training stage during the first communication session based on validation or test output of the secondary NLP engine for the training stage during the first communication session.

9 . The method of claim 1 , wherein generating the one or more responses to the one or more customer queries within the input data stream of the communication session comprises:

determining one or more of personal information or account information of the customer; and

generating at least one personalized response for the customer based on the output of the primary NLP engine for the communication session and the one or more of personal information or account information of the customer.

10 . The method of claim 1 , further comprising sending, by the computing system, a response data stream including the one or more responses to the customer-facing service.

11 . A computing system comprising:

a memory; and

one or more processors in communication with the memory, the one or more processors configured to:

receive an input data stream including one or more customer queries during a communication session with a customer, wherein the one or more customer queries originate from a customer-facing service and are associated with a first query domain;

identify, by a rule-based model and from a database of parameters for a plurality of natural language processing (NLP) engines, a set of NLP engines pre-trained for the first query domain associated with the communication session;

select a first NLP engine from the set of NLP engines to operate as a primary NLP engine for the communication session based at least on accuracy scores for the set of NLP engines;

select a second NLP engine from the set of NLP engines to operate as a standby NLP engine for the communication session based at least on the accuracy scores for the set of NLP engines;

route the input data stream of the communication session to the primary NLP engine for the communication session, the primary NLP engine configured to process the one or more customer queries within the input data stream of the communication session;

based on a failure of the primary NLP engine such that the primary NLP engine is unable to process the one or more customer queries, automatically route the input data stream of the communication session to the standby NLP engine for the communication session, the standby NLP engine configured to process the one or more customer queries within the input data stream of the communication session; and

generate one or more responses to the one or more customer queries within the input data stream of the communication session based at least in part on output of one of the primary NLP engine or the standby NLP engine for the communication session.

12 . The computing system of claim 11 , wherein the one or more processors are further configured to select one or more NLP engines from the plurality of NLP engines to operate as secondary NLP engines during the communication session, wherein each of the secondary NLP engines is configured to operate in a training stage based on the one or more customer queries within the input data stream of the communication session or the output of the primary NLP engine for the one or more customer queries within the input data stream of the communication session.

13 . The computing system of claim 11 , wherein to select the first NLP engine to operate as the primary NLP engine for the communication session, the one or more processors are configured to select, by a second rule-based model, the first NLP engine as having a highest accuracy score from among the accuracy scores for the set of NLP engines.

14 . The computing system of claim 11 , wherein to select the first NLP engine to operate as the primary NLP engine for the communication session, the one or more processors are further configured to:

determine performance constraints of the computing system during the communication session;

identify, by a second rule-based model and from the database of parameters for the plurality of NLP engines, one or more NLP engines from the set of NLP engines that use algorithms that comply with the performance constraints of the computing system, the one or more NLP engines including the first NLP engine; and

select, by the rule-based model, the first NLP engine as having a highest accuracy score from among the accuracy scores for the identified one or more NLP engines.

15 . The computing system of claim 11 , wherein the input data stream of the communication session comprises a first input data stream of a first communication session, and wherein the one or more processors are configured to:

receiving, by the computing system, a second input data stream including one or more second customer queries during a second communication session, wherein the one or more second customer queries are associated with a second query domain;

identifying, by the rule-based model and from the database of parameters for the plurality of NLP engines, a second set of NLP engines pre-trained for the second query domain associated with the second communication session;

selecting, by the computing system, a third NLP engine from the second set of NLP engines to operate as a primary NLP engine for the second communication session based at least on accuracy scores for the second set of NLP engines;

routing, by the computing system, the second input data stream of the second communication session to the primary NLP engine for the second communication session; and

generating, by the computing system, one or more responses to the one or more second customer queries within the second input data stream of the second communication session based at least in part on output of the primary NLP engine for the second communication session.

16 . The computing system of claim 15 , wherein to select the third NLP engine, the one or more processors are configured to, at a communication session boundary between an end of the first communication session and a start of the second communication session:

determine updated accuracy scores for one or more NLP engines of the plurality of NLP engines based on information received from the one or more NLP engines for the first communication session; and

select the third NLP engine from the second set of NLP engines to operate as the primary NLP engine for the second communication session based at least in part on the updated accuracy scores for the one or more NLP engines of the plurality of NLP engines.

17 . A computer-readable storage medium comprising instructions that, when executed, cause one or more processors of a computing system to:

receive an input data stream including one or more customer queries during a communication session with a customer, wherein the one or more customer queries originate from a customer-facing service and are associated with a first query domain;

identify, by a rule-based model and from a database of parameters for a plurality of natural language processing (NLP) engines, a set of NLP engines pre-trained for the first query domain associated with the communication session;

select a first NLP engine from the set of NLP engines to operate as a primary NLP engine for the communication session based at least on accuracy scores for the set of NLP engines;

select a second NLP engine from the set of NLP engines to operate as a standby NLP engine for the communication session based at least on the accuracy scores for the set of NLP engines;

route the input data stream of the communication session to the primary NLP engine for the communication session, the primary NLP engine configured to process the one or more customer queries within the input data stream of the communication session;

based on a failure of the primary NLP engine such that the primary NLP engine is unable to process the one or more customer queries, automatically route the input data stream of the communication session to the standby NLP engine for the communication session, the standby NLP engine configured to process the one or more customer queries within the input data stream of the communication session; and

generate one or more responses to the one or more customer queries within the input data stream of the communication session based at least in part on output of one of the primary NLP engine or the standby NLP engine for the communication session.