Link Search Menu Expand Document

Sentinel

GitHub tag (latest SemVer) CI docs

Sentinel is an anomalous call monitoring and filtering system which picks calls that are weird in some way or the other and push them to a daily report.

It works on calls/turn data as defined in dataframes that has standard datatype definitions.

Installation

pip install https://github.com/skit-ai/sentinel/releases/download/v0.3.0/sentinel-0.3.0-py3-none-any.whl

Usage

Running sentinel

To run sentinel against a dataframe, you need to first create a config file which has definition of the dataframe to use, filters to apply, reporting etc. More about config in the doc here

sentinel run --config-yml=config.yml

Based on the config for exporting report, you’ll get calls/turns in Slack or email.

To get the available filter functions do:

Filter list

sentinel list

This will give a list of available filter names and their description like below:

Available filter functions:

+---------------------------+------------------------------------------------+
| filters                   | description                                    |
+===========================+================================================+
| no_alternatives           | Turns with no alternatives                     |
+---------------------------+------------------------------------------------+
| filter_words              | Turns with certain words                       |
+---------------------------+------------------------------------------------+
| low_asr_confidence        | Low ASR confidence turns                       |
+---------------------------+------------------------------------------------+
| prediction_low_confidence | Low prediction confidence turns                |
+---------------------------+------------------------------------------------+
| call_end_state            | Calls with a particular end state              |
+---------------------------+------------------------------------------------+
| state_stuck               | Calls which are stuck in particular state      |
+---------------------------+------------------------------------------------+
| state_loop                | Calls which come back to already visited state |
+---------------------------+------------------------------------------------+

Filter list with verbose description

sentinel list --verbose

This will give a list of available filter names and their verbose description like below:

+---------------------------+--------------------------------------------------------------------------------------------------+
| filters                   | description                                                                                      |
+===========================+==================================================================================================+
| no_alternatives           | This filter reports turns with no alternatives.                                                  |
|                           |                                                                                                  |
|                           |     In most of the cases, these are turns where users are unresponsive.                          |
+---------------------------+--------------------------------------------------------------------------------------------------+
| filter_words              | This filter can be used to flag out turns with certain words.                                    |
|                           |                                                                                                  |
|                           |     Use the below keyword arguments in the config to specify configurable attributes.            |
|                           |     kwargs:                                                                                      |
|                           |         word_list (list): List of words to be flagged out.                                       |
+---------------------------+--------------------------------------------------------------------------------------------------+
| low_asr_confidence        | This filter flags turns where best alternative from ASR has confidence lest than some threshold. |
|                           |                                                                                                  |
|                           |     Use the below keyword arguments in the config to specify configurable                        |
|                           |     attributes.                                                                                  |
|                           |     kwargs:                                                                                      |
|                           |         confidence_threshold (int): Confidence threshold.                                        |
+---------------------------+--------------------------------------------------------------------------------------------------+
| prediction_low_confidence | This filter flags turns with SLU prediction confidence less than some threshold.                 |
|                           |                                                                                                  |
|                           |     Use the below keyword arguments in the config to specify configurable                        |
|                           |     attributes.                                                                                  |
|                           |     kwargs:                                                                                      |
|                           |         confidence_threshold (float): Confidence threshold.                                      |
+---------------------------+--------------------------------------------------------------------------------------------------+
| call_end_state            | This filter flags out calls with a particular end state.                                         |
|                           |                                                                                                  |
|                           |                                                                                                  |
|                           |     Use the below keyword arguments in the config to specify configurable                        |
|                           |     attributes.                                                                                  |
|                           |     kwargs:                                                                                      |
|                           |         end_state: list of strings of the end state(s) to filter out.                            |
+---------------------------+--------------------------------------------------------------------------------------------------+
| state_stuck               | This filter flags out calls which are stuck in a particular state.                               |
|                           |                                                                                                  |
|                           |     Parameters:                                                                                  |
|                           |         max_state_count: int, the maximum number of times a state can be repeated.               |
|                           |                                                                                                  |
|                           |     Current dataframe consist of user and bot turn hence for a call to be stuck                  |
|                           |     at a state `SAMPLE_STATE` for 5 consecutive turns, the `max_state_count`                     |
|                           |     value must be 5.                                                                             |
+---------------------------+--------------------------------------------------------------------------------------------------+
| state_loop                | This filter flags out calls where the call comes back to an already visited state.               |
|                           |                                                                                                  |
|                           |     A user might be on a state for multiple turns but once they move to a                        |
|                           |     different turn and again come back to the visited turn, this filter flags                    |
|                           |     them.                                                                                        |
+---------------------------+--------------------------------------------------------------------------------------------------+

Reporting

Currently, sentinel supports exporting results on Slack.

Slack

Below is a screenshot of exports on Slack.

Email