# US 12,223,276 B2 · Automatic out of scope transition for chatbot

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,276 B2
- Document ID: US12223276B2
- Status: Granted
- Kind: B2
- Application number: 18/424,178
- Filed: 2024-01-26
- Published: 2024-05-23
- Granted: 2025-02-11
- Earliest claimed: 2020-09-30
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Vishal Vishnoi; Xin Xu; Elias Luqman Jalaluddin; Srinivasa Phani Kumar Gadde; Crystal C. Pan; Mark Edward Johnson; Thanh Long Duong; Balakota Srinivas Vinnakota; Manish Parekh
- Web page: https://patentgrep.com/patent/US12223276B2

## CPC

- G06F 16/3329: Natural language query formulation
- G06F 40/295: Named entity recognition
- G06F 16/35: Clustering; Classification
- G06F 40/211: Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
- G06F 40/35: Discourse or dialogue representation
- G06F 40/56: Natural language generation
- G06N 5/043: Distributed expert systems; Blackboards
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## 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

### Claim 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;
obtaining, using a candidate skills model for the first group, 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 and a third skill is a second highest ranked skill for processing the utterance;
determining both the second skill and the third skill are within a win margin parameter;
changing the current skill context of the chatbot session to the second skill and the third skill;
obtaining, using a candidate flows model for the second skill, a ranking of intents within the second skill that match the utterance;
obtaining, using another candidate flows model for the third skill, a ranking of intents within the third skill that match the utterance; and
determining, based on the ranking of intents within the second skill and the ranking of intents within the third skill, an intent that is a highest ranked intent for processing the utterance.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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 receive 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; and
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.

### Claim 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;
obtaining, using a candidate skills model for the first group, 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 and a third skill is a second highest ranked skill for processing the utterance;
determining both the second skill and the third skill are within a win margin parameter;
changing the current skill context of the chatbot session to the second skill and the third skill;
obtaining, using a candidate flows model for the second skill, a ranking of intents within the second skill that match the utterance;
obtaining, using another candidate flows model for the third skill, a ranking of intents within the third skill that match the utterance; and
determining, based on the ranking of intents within the second skill and the ranking of intents within the third skill, an intent that is a highest ranked intent for processing the utterance.

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 6)

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

### Claim 9 (depends on 6)

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.

### Claim 10 (depends on 6)

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 receive 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; and
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.

### Claim 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;
obtaining, using a candidate skills model for the first group, 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 and a third skill is a second highest ranked skill for processing the utterance;
determining both the second skill and the third skill are within a win margin parameter;
changing the current skill context of the chatbot session to the second skill and the third skill;
obtaining, using a candidate flows model for the second skill, a ranking of intents within the second skill that match the utterance;
obtaining, using another candidate flows model for the third skill, a ranking of intents within the third skill that match the utterance; and
determining, based on the ranking of intents within the second skill and the ranking of intents within the third skill, an intent that is a highest ranked intent for processing the utterance.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 11)

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.

### Claim 15 (depends on 11)

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 receive 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; and
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.
