OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Creating a Simple Bot
SKILLS
Storyboard
Dialog Task
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Overview
Configuring Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub-Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Versioning
Collaborative Development
PLAN & USAGE
Overview
Usage Plans
Support Plans
Invoices
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Creating a Simple Bot
Creating a Banking Bot
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
Update Balance Task
Transfer Funds Task
RELEASE NOTES
  1. Home
  2. Docs
  3. Virtual Assistants
  4. API Guide
  5. Update NLP Configurations

Update NLP Configurations

To update the NLP thresholds and configurations

To use this API, app needs the Bot Builder API scope of NLP Configurations.
OR the Admin API Scope of NLP Configurations under Test and Train.

POST https://{{host}}/api/public/bot/{{BotID}}/configurations?language={{languageCode}}&groupName={{groupName}}

Query Parameters

Parameter Required/Optional Description
host Required Environment URL, for example, https://bots.kore.ai
BotID Required Bot ID or Stream ID. You can access it from the General Settings page of the bot.
languageCode Required Bot language to which these configurations need to be updated.
groupName Required
for Multiple ML Model
GroupName can be used to update the ML params of a specific group.  To update Bot level Intent Model Configurations groupName should be set to “Bot Level Intent Model”.

Body Parameters

The parameters would depend upon the threshold configuration that needs to be updated. Following is the comprehensive list of parameters for the various threshold configurations.

Update Settings

Machine Learning Engine

This section refers to the configurations related to the Machine Learning engine. For details about the configurations refer here.

{
    "configurations": [
        {
            "mode": "ml",               // Machine Learning Engine
            "exactMatchThreshold": 90,  // ML Definitive Score - value in range [80-100]
            "minThreshold": 0.4,        // ML threshold - value in range [0-1]
        }
    ],
    "mlParams": {
        "intentParams": {
            "useSynonyms": true,       // Bot Synonyms 
            "useStopwords": true,      // Stopwords 
            "usePlaceholders": true,   // Entity Placeholders 
            "features": "n_gram"       // Feature Extraction - value in range [skip_gram, n_gram]
            "skip_gram": {             // features should be 'skip_gram'
                "seqLength": 2,        // Sequence Length - value in range [2-4]
                "maxSkipDistance": 1   // Maximum Skip Distance - value in range [1-3]
              },
            "ngram": 3,                // ngram Sequence Length - value in range [1-4]
                                       // features should be ‘n_gram’
        },
        "nerParams": {
            "type": "corenlp"          // NER Model
                                       // could be "corenlp" for  Conditional Random Field 
                                       //       or "spacy" -  Deep Neural Network
         }
    }
}

Fundamental Meaning Engine

This section refers to the configurations related to the Fundamental Meaning engine. For details about the configurations refer here.

{
    "configurations": [
        {
            "mode": "cs",            // Fundamental Meaning Engine
            "labelMatch": true       // Intent Detection using Task Name Words
            "isFMThreshold": true,   //FM Threshold
            "fmThreshold": 15        //FM Threshold value
        }
  ]
}

Knowledge Graph Engine

This section refers to the configurations related to the Knowledge Graph engine. For details about the configurations refer here.

{
    "configurations": [ THRESHOLDS & CONFIGURATIONS 
         {
            "mode": "faq",  
            "autoSpellCorrectEnabled": true,             // Auto Correction
            "useBotSynonyms": true,                      // Bot Synonyms
            "enPatternLemma": false,                     // Lemmatization using Parts of Speech
            "pathCoverage": 50,                          // Path Coverage - value in range [0-100]
            "exactMatchThreshold": 95,                   // Minimum and Definitive Level for Knowledge Tasks 
                                                         // value in range [0-100] 
                                                         // should be more than minThreshold & maxThreshold
            "maxThreshold": 80,                          // Probable range for Knowledge Task 
                                                         // value in range [0-100] 
                                                         // should be between minThreshold & exactMatchThreshold 
            "minThreshold": 60,                          // Low confidence range for Knowledge Task 
                                                         // value in range [0-100] 
                                                         // should be less than maxThreshold & exactMatchThreshold  
            "suggestionsCount": 3,                       // KG suggestionsCount | [0-5]
            "taskMatchTolerance": 35,                    // Proximity of Suggested Matches | [0-50]
            "longResponses": {
                "readMore": true,                        // Manage Long Responses
                "useCustomReadMoreURL": true,            // readMore should be true
                "customReadMoreURL": "www.siteurl.com"   // readMore link; readMore should be true
              },
            "searchInAnswer": {
                "enabled": true,                         //  Search in Answer
                "notifyUser": true,                      // Inform end user that it is a probable answer
                "responseType": "relevantWithReadMore",  // can be "complete" - Show complete response, 
                                                         //      or "relevant" - Show only the relevant paragraph,
                                                         //      or "relevantWithReadMore" - Show only the relevant paragraph with “read more” link ]
                "customReadMoreURL": "www.siteurl.com",  // “read more” link 
                "useCustomReadMoreURL": true             // enabled should be true
            }
            "qualifyContextualPaths": false,             // Qualify Contextual Paths
        }
 ]
}

Ranking & Resolver Engine

This section refers to the configurations related to the Ranking & Resolver engine. For details about the configurations refer here.

{
    "configurations": 
        {
            "mode": "rr",                 // Ranking and Resolver Engine
            "taskMatchTolerance": 2,      // Proximity of Probable Matches - value in range [0-20]
            "useDependencyParser": true,  // Dependency Parsing Model 
            "minMatchVal": 0.4,           // Minimum Match Score - value in range [0-1] 
                                          // useDependencyParser should be true
            "rankingParameters": ""       //  Advanced Configurations                                           
                                          // useDependencyParser should be true
            "intentRescoring": false,     // Rescoring of Intents
            "isPreferDefinitiveMatch": true // Prefer Definitive Matches
        }
 ]
}

Advanced NLP Configurations

This section refers to the configurations as given in the Advanced NLP Configurations section of Natural Language -> Training. For details about the configurations refer here.

Following is the sample request for setting the above-mentioned Advanced NLP Configurations.

{
    "advancedNLPSettings":[
        {
            "configurationKeyName": "NoneIntent",
            "configurationValue":true,
            "nlpEngine":"ML"
        }
    ]
}

Following is the complete list of the permissible advanced NLP configurations settings and the possible values:

Split Compound Words

{
        "configurationName": "Split Compound Words",
        "configurationKeyName": "splitCompoundWords",
        "desc": "The settings enables splitting of the compound words into multiple stems and then process the individual stem",
        "nlpEngine": "ML",
        "dataType": "Boolean",
        "range": [true, false],
        "defaultValue": false,
        "requiresTraining": true,
        "language": ["de", "nl"],
        "isChild": false
    }

None Intent

{
        "configurationName": "None Intent",
        "configurationKeyName": "NoneIntent",
        "desc": "Once enabled, a None intent is created which reduces the chances of getting a false positive for an intent match using ML engine",
        "nlpEngine": "ML",
        "dataType": "Boolean",
        "range": [true, false],
        "defaultValue": true,
        "requiresTraining": true,
        "language": "ALL",
        "isChild": false
    }

Cosine similarity dampening

{
        "configurationName": "Cosine similarity dampening",
        "configurationKeyName": "cosineSimilarityDampening",
        "desc": "Avoid penalty on short length questions using Cosine Similarity Dampening",
        "nlpEngine": "KG",
        "dataType": "Boolean",
        "range": [true, false],
        "defaultValue": true,
        "requiresTraining": false,
        "language": "ALL",
        "isChild": false
    }

Network Type

{
        "configurationName" : "Network Type",
        "configurationKeyName" : "network",
        "desc" : "Networks available for intent training",
        "nlpEngine" : "ML",
        "dataType" : "enum",
        "range" : ["Standard","MLP-BOW","MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"],
        "defaultValue": "Standard",
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : false
    }

Epochs

{
        "configurationName": "Epochs",
        "configurationKeyName": "epochs",
        "desc": "Number of iterations in training the model",
        "nlpEngine": "ML",
        "dataType": "Number",
        "range": [20, 300],
        "defaultValue": 20,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"]
    }

Batch Size

{
        "configurationName" : "Batch Size",
        "configurationKeyName" : "batch_size",
        "desc" : "Number of training samples used for each batch while training",
        "nlpEngine" : "ML",
        "dataType" : "Number",
        "range" : [10,30],
        "defaultValue":10,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"]
    }

Learning rate

{
        "configurationName": "Learning rate",
        "configurationKeyName": "lr",
        "desc": "Learning rate is a hyper-parameter that controls how much we are adjusting the weights of our network with respect to the loss gradient",
        "nlpEngine": "ML",
        "dataType": "enum",
        "range": [1e-4, 1e-3, 1e-2],
        "defaultValue": 1e-3,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"]
    }

Dropout

{
        "configurationName": "Dropout",
        "configurationKeyName": "dropout",
        "desc": "Regularization parameter to avoid overfitting of the model",
        "nlpEngine": "ML",
        "dataType": "Number",
        "range": [0, 0.8],
        "defaultValue": 0,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"]
    }

Vectorizer

{
        "configurationName": "Vectorizer",
        "configurationKeyName": "vector_type",
        "desc": "Feature extraction technique on training data",
        "nlpEngine": "ML",
        "dataType": "enum",
        "range": ["count", "tfidf"],
        "defaultValue": "count",
        "requiresTraining": true,
        "language": "ALL",
        "isChild": true,
        "parentConfiguration": "network",
        "requiredParentInput": ["MLP-BOW"]
    }

Maximum sequence length

{
        "configurationName": "Maximum sequence length",
        "configurationKeyName": "max_seq_length",
        "desc": "Length of the training sample or user input",
        "nlpEngine": "ML",
        "dataType": "Number",
        "range": [10, 30],
        "defaultValue": 20,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN","KoreBERT"]
    }

Embeddings Type

{
        "configurationName": "Embeddings Type",
        "configurationKeyName": "word_embedding_type",
        "desc": "Feature extraction technique on training data",
        "nlpEngine": "ML",
        "dataType": "enum",
        "range": ["generated", "pretrained", "random"],
        "defaultValue": "random",
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"]
    }

Embeddings Dimensions

{
        "configurationName": "Embeddings Dimensions",
        "configurationKeyName": "embedding_dim",
        "desc": "Embeddings Dimensions to be used in featurization",
        "nlpEngine": "ML",
        "dataType": "Number",
        "range": [100, 400],
        "defaultValue": 300,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"]
    }

K Fold Cross-Validation

{
        "configurationName" : "kfold",
        "configurationKeyName" : "kfold",
        "desc" : "kfold parameter for Crossvalidation",
        "nlpEngine" : "ML",
        "dataType" : "Number",
        "range" : [2,10],
        "defaultValue": 5,
        "requiresTraining" : true,
        "language" : "ALL",
        "isChild" : false
    }

FAQ Name as Intent Name

{
        "configurationName": "FAQ Name as Intent Name",
        "configurationKeyName": "FAQ_Name_Intent_Name",
        "desc": "Enable to use FAQ Name as Intent Name. ",
        "nlpEngine": "KG",
        "dataType": "Boolean",
        "range": [true, false],
        "defaultValue": false,
        "requiresTraining" : false,
        "language" : "ALL",
        "isChild" : false
    }

Fuzzy Match

{
        "configurationName" : "Fuzzy Match",
        "configurationKeyName" : "fuzzyMatch",
        "desc" : "This setting enables the use of the fuzzy matching algorithm for intent identification",
        "nlpEngine" : "ML",
        "dataType" : "Boolean",
        "range" : [true,false],
        "defaultValue": true,
        "requiresTraining" : false,
        "language" : "ALL",
        "isChild" : false
    }

Handle Negation

{
        "configurationName" : "Handle Negation",
        "configurationKeyName" : "f_negation",
        "desc" : "This setting enables the handling of negated words in intent identification",
        "nlpEngine" : "ML",
        "dataType" : "Boolean",
        "range" : [true,false],
        "defaultValue": true,
        "requiresTraining" : true,
        "language" : ["en", "es"],
        "isChild" : false
    }

Ignore Multiple Occurences

{
        "configurationName" : "Ignore Multiple occurences",
        "configurationKeyName" : "binary",
        "desc" : "This setting enables to just use presence or absence of a term instead of the raw counts",
        "nlpEngine" : "ML",
        "dataType" : "Boolean",
        "range" : [true,false],
        "defaultValue": false,
        "requiresTraining" : true,
        "language" : ["en"],
        "isChild" : true,
        "parentConfiguration" : "network",
        "requiredParentInput" : ["MLP-BOW"]
    }

Entity Placeholders in User Utterances

{
        "configurationName": "Test PlaceHolders",
        "configurationKeyName": "TestPlaceHolders",
        "desc": "Enable to replace entity values present in the user input with the corresponding entity placeholders during prediction",
        "nlpEngine": "ML",
        "dataType": "Boolean",
        "range": [true, false],
        "defaultValue": true,
        "requiresTraining": false,
        "language": "ALL",
        "isChild": false
    }

Delete Settings

To delete any settings use the name of the settings mentioned in above sections in this way:

curl --location -g --request POST \
  'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \
  --header 'auth: YOUR_JWT_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data-raw '{
    "delete": {
        "advancedNLPSettings": [
            "kfold"
        ]
    }
}'

Reset Settings

To reset any settings use the name of the settings mentioned in above sections in this way:

curl --location -g --request POST \
  'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \
  --header 'auth: YOUR_JWT_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data-raw '{
      "reset": {
         "faq": [
             "pathCoverage",                // Path Coverage
             "suggestionsCount",            // KG suggestionsCount
             "minimumAndDefinitiveLevels",  // Minimum and Definitive Level for Knowledge Tasks (will reset all three values)
             "taskMatchTolerance"           // Proximity of Suggested Matches
        ],
        "ml": [
            "exactMatchThreshold",          // ML Definitive Score 
            "minThreshold"                  // ML threshold 
        ],
        "rr": [
            "taskMatchTolerance",           // Proximity of Probable Matches
            "minMatchVal"                   // Minimum Match Score
        ],
        "mlParams": [
            "ngram",                        // ngram Sequence Length
            "seqLength",                    // Sequence Length
            "maxSkipDistance"               // Maximum Skip Distance
        ]
    }
}'

Authorization

Invoke the API with JWT in the header as follows:

auth: {{JWT}}

Response Content Type

application/json

Sample Request

curl --location -g --request POST \
  'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \
  --header 'auth: YOUR_JWT_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data-raw '{
    "advancedNLPSettings": [
        {
            "configurationKeyName": "NoneIntent",
            "configurationValue": true,
            "nlpEngine": "ML"
        }
    ],
    "configurations": [
        {
            "mode": "ml",
            "exactMatchThreshold": 85,
            "useDependencyParser": true,
            "minThreshold": 0.2
        },
        {
            "mode": "faq",
            "useBotSynonyms": true,
            "searchInAnswer": {
                "enabled": true,
                "notifyUser": false,
                "responseType": "relevantWithReadMore",
                "customReadMoreURL": "aa",
                "useCustomReadMoreURL": true
            }
        }
    ],
    "mlParams": {
        "intentParams": {
            "features": "skip_gram",
            "skip_gram": {
                "seqLength": 3,
                "maxSkipDistance": 2
            }
        }
    },
    "nlSettings": {
        "enableAutoUtteranceAddition": false,
        "enableNegativePatterns": true
    }
}'

Sample Response

[
    {
        "message": "Training Queued.",
        "Training_ID": "5d14b03edba48abcb44375a1"
    }
]
Menu
Kore.ai Named a Leader in 2022 Gartner® Magic Quadrant™ for Enterprise Conversational AI PlatformsGet the Report