IP Library › Granted Patent US 11,922,123
Granted Patent B2
US 11,922,123 · App. 17/490,792 · Granted Mar 5, 2024

Automatic out of scope transition for chatbot

Inventors: Vishal Vishnoi (Redwood City, CA); Xin Xu (San Jose, CA); Elias Luqman Jalaluddin (Seattle, WA); Srinivasa Phani Kumar Gadde (Belmont, CA); Crystal C. Pan (Palo Alto, CA); Mark Edward Johnson (Castle Cove, AU); Thanh Long Duong (Melbourne, AU); Balakota Srinivas Vinnakota (Sunnyvale, CA); Manish Parekh (San Jose, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F40/295G06F40/211G06F40/35G06F40/56G06N5/043
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 11,922,123
App. No.
17/490,792
Filed
Sep 30, 2021
Granted
Mar 5, 2024
Kind
B2
Art Unit
2656
USPC
704/9
Abstract

Techniques for automatically switching between chatbot skills in the same domain. In one particular aspect, a method is provided that includes receiving an utterance from a user within a chatbot session, where a current skill context is a first skill and a current group context is a first group, inputting the utterance into a candidate skills model for the first group, obtaining, using the candidate skills model, a ranking of skills within the first group, determining, based on the ranking of skills, a second skill is a highest ranked skill, changing the current skill context of the chatbot session to the second skill, inputting the utterance into a candidate flows model for the second skill, obtaining, using the candidate flows model, a ranking of intents within the second skill that match the utterance, and determining, based on the ranking of intents, an intent that is a highest ranked intent.

Claims (80)

1. A computer-implemented method, comprising:

receiving an utterance from a user within a chatbot session, wherein a current skill context of the chatbot session is a first skill and a current group context of the chatbot session is a first group;

inputting the utterance into a candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the utterance;

determining, based on the ranking of skills, a second skill is a highest ranked skill for processing the utterance;

changing the current skill context of the chatbot session to the second skill;

inputting the utterance into a candidate flows model for the second skill;

obtaining, using the candidate flows model, a ranking of intents within the second skill that match the utterance;

determining, based on the ranking of intents, an intent that is a highest ranked intent for processing the utterance;

receiving a subsequent utterance from the user within the chatbot session, wherein the current skill context of the chatbot session is the second skill and the current group context of the chatbot session is the first group;

inputting the subsequent utterance into the candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the subsequent utterance;

determining, based on the ranking of skills, an unresolved intent skill is a highest ranked skill for processing the subsequent utterance;

inputting the subsequent utterance into another candidate skills model;

obtaining, using another candidate skills model, a ranking of skills that could potentially process the subsequent utterance;

determining, based on the ranking of skills, a third skill is a highest ranked skill for processing the subsequent utterance; and

assigning the current skill context of the chatbot session to the third skill and the current group context of the chatbot session to a second group, wherein the second group is defined for the third skill, and the assignment of the current group context of the chatbot session to the second group is performed based on the second group being defined for the third skill.

2. The computer-implemented method of claim 1 , wherein the obtaining the ranking of skills comprises evaluating the utterance and generating confidence scores for the skills within the first group, identifying any skill with a confidence score exceeding a value of a candidate skills confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate skills based on the confidence scores as skills within the first group that could potentially process the utterance.

3. The computer-implemented method of claim 1 , wherein the obtaining the ranking of intents comprises evaluating the intents and generating confidence scores for the intents within the second skill, identifying any intent with a confidence score exceeding a value of a confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate intents based on the confidence scores as intents within the first skill that match the utterance.

4. The computer-implemented method of claim 1 , further comprising initiating a conversation flow in the chatbot session with the user based on the intent that is the highest ranked intent for processing the utterance.

5. The computer-implemented method of claim 1 , further comprising:

receiving an initial utterance from a user within the chatbot session, wherein the initial utterance is received prior to the utterance;

inputting the initial utterance into the candidate skills model;

obtaining, using the candidate skills model, a ranking of skills that could potentially process the initial utterance;

determining, based on the ranking of skills, the first skill is a highest ranked skill for processing the initial utterance;

assigning the current skill context of the chatbot session to the first skill and the current group context of the chatbot session to the first group, wherein the first group is defined for the first skill, and the assignment of the current group context of the chatbot session to the first group is performed based on the first group being defined for the first skill.

6. A system comprising:

one or more data processors; and

a non-transitory computer readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform actions including:

receiving an utterance from a user within a chatbot session, wherein a current skill context of the chatbot session is a first skill and a current group context of the chatbot session is a first group;

inputting the utterance into a candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the utterance;

determining, based on the ranking of skills, a second skill is a highest ranked skill for processing the utterance;

changing the current skill context of the chatbot session to the second skill;

inputting the utterance into a candidate flows model for the second skill;

obtaining, using the candidate flows model, a ranking of intents within the second skill that match the utterance; and

determining, based on the ranking of intents, an intent that is a highest ranked intent for processing the utterance;

receiving a subsequent utterance from the user within the chatbot session, wherein the current skill context of the chatbot session is the second skill and the current group context of the chatbot session is the first group;

inputting the subsequent utterance into the candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the subsequent utterance;

determining, based on the ranking of skills, an unresolved intent skill is a highest ranked skill for processing the subsequent utterance;

inputting the subsequent utterance into another candidate skills model;

obtaining, using another candidate skills model, a ranking of skills that could potentially process the subsequent utterance;

determining, based on the ranking of skills, a third skill is a highest ranked skill for processing the subsequent utterance; and

assigning the current skill context of the chatbot session to the third skill and the current group context of the chatbot session to a second group, wherein the second group is defined for the third skill, and the assignment of the current group context of the chatbot session to the second group is performed based on the second group being defined for the third skill.

7. The system of claim 6 , wherein the obtaining the ranking of skills comprises evaluating the utterance and generating confidence scores for the skills within the first group, identifying any skill with a confidence score exceeding a value of a candidate skills confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate skills based on the confidence scores as skills within the first group that could potentially process the utterance.

8. The system of claim 6 , wherein the obtaining the ranking of intents comprises evaluating the intents and generating confidence scores for the intents within the second skill, identifying any intent with a confidence score exceeding a value of a confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate intents based on the confidence scores as intents within the first skill that match the utterance.

9. The system of claim 6 , wherein the actions further comprise initiating a conversation flow in the chatbot session with the user based on the intent that is the highest ranked intent for processing the utterance.

10. The system of claim 6 , wherein the actions further comprise:

receiving an initial utterance from a user within the chatbot session, wherein the initial utterance is received prior to the utterance;

inputting the initial utterance into the candidate skills model;

obtaining, using the candidate skills model, a ranking of skills that could potentially process the initial utterance;

determining, based on the ranking of skills, the first skill is a highest ranked skill for processing the initial utterance;

assigning the current skill context of the chatbot session to the first skill and the current group context of the chatbot session to the first group, wherein the first group is defined for the first skill, and the assignment of the current group context of the chatbot session to the first group is performed based on the first group being defined for the first skill.

11. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause one or more data processors to perform actions including:

receiving an utterance from a user within a chatbot session, wherein a current skill context of the chatbot session is a first skill and a current group context of the chatbot session is a first group;

inputting the utterance into a candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the utterance;

determining, based on the ranking of skills, a second skill is a highest ranked skill for processing the utterance;

changing the current skill context of the chatbot session to the second skill;

inputting the utterance into a candidate flows model for the second skill;

obtaining, using the candidate flows model, a ranking of intents within the second skill that match the utterance;

determining, based on the ranking of intents, an intent that is a highest ranked intent for processing the utterance;

receiving a subsequent utterance from the user within the chatbot session, wherein the current skill context of the chatbot session is the second skill and the current group context of the chatbot session is the first group;

inputting the subsequent utterance into the candidate skills model for the first group;

obtaining, using the candidate skills model, a ranking of skills within the first group that could potentially process the subsequent utterance;

determining, based on the ranking of skills, an unresolved intent skill is a highest ranked skill for processing the subsequent utterance;

inputting the subsequent utterance into another candidate skills model;

obtaining, using another candidate skills model, a ranking of skills that could potentially process the subsequent utterance;

determining, based on the ranking of skills, a third skill is a highest ranked skill for processing the subsequent utterance; and

assigning the current skill context of the chatbot session to the third skill and the current group context of the chatbot session to a second group, wherein the second group is defined for the third skill, and the assignment of the current group context of the chatbot session to the second group is performed based on the second group being defined for the third skill.

12. The computer-program product of claim 11 , wherein the obtaining the ranking of skills comprises evaluating the utterance and generating confidence scores for the skills within the first group, identifying any skill with a confidence score exceeding a value of a candidate skills confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate skills based on the confidence scores as skills within the first group that could potentially process the utterance.

13. The computer-program product of claim 11 , wherein the obtaining the ranking of intents comprises evaluating the intents and generating confidence scores for the intents within the second skill, identifying any intent with a confidence score exceeding a value of a confidence threshold routing parameter as a candidate skill for further evaluation, and ranking the candidate intents based on the confidence scores as intents within the first skill that match the utterance.

14. The computer-program product of claim 11 , wherein the actions further comprise initiating a conversation flow in the chatbot session with the user based on the intent that is the highest ranked intent for processing the utterance.

15. The computer-program product of claim 11 , wherein the actions further comprise:

receiving an initial utterance from a user within the chatbot session, wherein the initial utterance is received prior to the utterance;

inputting the initial utterance into the candidate skills model;

obtaining, using the candidate skills model, a ranking of skills that could potentially process the initial utterance;

determining, based on the ranking of skills, the first skill is a highest ranked skill for processing the initial utterance;

assigning the current skill context of the chatbot session to the first skill and the current group context of the chatbot session to the first group, wherein the first group is defined for the first skill, and the assignment of the current group context of the chatbot session to the first group is performed based on the first group being defined for the first skill.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2021
From: VISHNOI, VISHAL; XU, XIN; JALALUDDIN, ELIAS LUQMAN; GADDE, SRINIVASA PHANI KUMAR; PAN, CRYSTAL C.; JOHNSON, MARK EDWARD; DUONG, THANH LONG; VINNAKOTA, BALAKOTA SRINIVAS; PAREKH, MANISH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 057939/0472 →
Continuity (2)
Provisional Application 63085796 · Sep 30, 2020
Related Publication 20220100961A1 · Mar 31, 2022
Cited By (3)
US 12,223,276 US 12,632,692 US 12,633,287