Teneo Developers

Improvement suggestions

Suggestions

The Suggestions view provides the user with an overview of different types of errors and other potentially problematic issues detected in the solution by the system; and makes it easier for the user to find these and act upon them or simply acknowledge issues that do not require immediate attention.

The Suggestions are available in the Optimization tab in the Teneo Studio backstage, but the user can also find a smaller, taste-teaser selection of Suggestions in the right-hand side of the My Work tab in the backstage of the Teneo Studio. The complete list of Suggestions can be reached either from the My Work tab, by following the link at the bottom of the page, or from the left-hand menu: Optimization > Suggestions.

Optimization Suggestions

Categories and severity

There are 4 suggestion categories: Text, Robustness, Condition, and Scripts.

Suggestions, furthermore, have a severity property that will help decide which suggestions to tackle first:

  • Fatal
    Fatal suggestions need to be corrected; they cause Engine load failures and thus prevent the solution from running at all. Fatal suggestions come from the Engine and are also displayed in the Tryout.
  • Error
    Error suggestions should be corrected, as they cause a certain part of the solution not to run (for example, a Flow, a script or an integration).
  • Warning
    Warning suggestions can cause problems, but the impact is limited; these potential problems do not prevent the solution from running and can, in some particular real cases, be justified in the sense that they already work as intended.
  • Information
    Information suggestions are of the type "nice to have", and do not cause any direct problems in the solution, but are against shared conventions and best practices.

Management options

Management options

In the top-right side of the Suggestions view, the following management options are available:

  • Acknowledge
  • Unacknowledge
  • Reload
  • Filter

Acknowledge and Unacknowledge

It might happen that some of the displayed suggestions do not need to be corrected or addressed immediately, in this case the user can, by selecting the suggestion(s), click Acknowledge to remove the suggestion(s) from the displayed list of suggestions. By acknowledging a suggestion, the user is telling Teneo Studio that they are aware of the situation, but that immediate actions are not needed.

Only suggestions of the typesWarning and Information can be acknowledged.

By default, only unacknowledged suggestions are displayed, the acknowledged suggestion(s), which will be marked with a green check-mark, can be viewed by using the corresponding filter. If a suggestion is acknowledged by mistake, it can be unacknowledged again by clicking the Unacknowledge button after selecting the suggestion(s).

Reload

The Reload button refreshes the list of suggestions.

Filter Suggestions

Clicking the Filter button in the top-right area opens a view with the below described filtering options.

Click the Filter button to open the available filters

The user can filter by:

  • Category: Text, Robustness, Condition, Script
  • Severity: Info, Warning, Error, Fatal
  • Status
    • Acknowledged: displays a list of all acknowledged suggestions
    • Unacknowledged: displays a list of all unacknowledged suggestions
  • Documents
    • Enabled: displays a list of all suggestions related to enabled solution documents (Language Objects, Flows, Entities, etc.)
    • Disabled: displays a list of all suggestions related to disabled solution documents (Language Objects, Flows, Entities, etc.)
  • Name contains: Text filter matching the name of the item; by using the text filter, the user can filter the suggestions by object name, for instance when they want to see suggestions related to a specific object in the solution.

Fatal suggestions

Fatal suggestions concern solution errors that must be corrected because they cause an Engine load failure and thus prevent the solution from running at all.

To quickly draw the user's attention to fatal errors they are made immediately visible in the Tryout, as well as in the currently edited object when relevant: if a fatal state comes about while editing a Flow, Language Object or an Entity the user will be prevented from saving the object until the error is corrected.

Fatal suggestions cause warnings when trying to save objects

Problem: a Flow Link is pointing to a null target (no Flow).
Solution:

  • Open the Flow in edit mode
  • Select the Flow Link node
  • In the Flow Link panel in the right-side of the Flow, specify the properties of the Flow Link
  • Remember to Save the Flow to preserve the changes.

Note:

  • Applies to Flow Link nodes.

Problem: a Flow links to an unknown/missing integration
Solution:

  • Open the Flow in edit mode
  • Select the Integration node
  • In the top ribbon, click Delete
  • Next, re-add the wanted integration by clicking it's name in the Add Node section of the top ribbon
  • Specify any details needed in the Integration's panel in the right side of the window
  • Remember to Save the Flow to preserve the changes.

Note:

  • Applies to Integration nodes.

Linked Flow is missing

Problem: A Flow links to another Flow which is missing
Solution:

  • Open the Flow in Edit mode
  • Select the Flow Link node
  • In the right-side panel, under Target, change the target Flow by clicking Browse...
  • Browse to the wanted Flow and clik OK
  • Remember to Save the Flow to preserve the changes.

Notes:

  • Applies to Flow Link nodes.

Output has no answers

Problem: a Flow contains a corrupt Output node with no specified answer(s).
Solution:

  • Open the Flow in edit mode
  • Add an Output node by clicking the Output button in the top ribbon, or select the existing Output node in the Flow graph
  • Write the answer text and, if applicable, specify an emotion or other properties of the Output node in the right-side panel
  • Remember to Save the Flow to preserve the changes.

Fatal suggestion Output has no answers

Note:

  • Applies to Bot Output nodes.

Error Suggestions

The Error suggestions concern solution errors that should be corrected because they cause a certain part of the solution to not run, for example, a Flow, a script or an integration.

After Match linked to removed document

Problem: an After Match links to a document missing in the solution. The missing document can either be a missing Language Object or an Entity.
Solution:

  • For Language Objects and Entities:
    • Open the Flow and select the After Match
    • to create the Language Object/Entity, maintain Ctrl pressed while clicking the document name
    • in the Select a Folder window, select the folder where to add the document
    • click OK
    • the new document window opens, add the TLML Syntax or entry and remember to Save

Note

  • Applies to trigger and transition After Matches of the types: Language Object and Entity.

Class does not have any Training Data

Problem: a class doesn't contain any training data examples. The machine learning model of the solution cannot be trained without training data.
Solution:

  • Open the Class Manager (top ribbon of Teneo Studio)
  • Go to the class without training data examples and click Edit
  • Write or import the needed training examples, read more here.

Note:

  • Applies to Classes
  • For a model to train, the solution needs to contain at least two Classes
  • As of Teneo Platform 6.0, the Class Manager will prevent the user from saving if a class without training examples is detected.

Class has training examples duplicated in multiple classes

Problem: classes contain training examples which are duplicated in multiple classes.
Solution:

  • Open the Class Manager (top ribbon of Teneo Studio)
  • Go to one of the classes with duplicated training examples and click Edit
  • Remove the duplicated training example or write a new one
  • Click Save Classes to preserve the updates.

Note:

  • Applies to Classes
  • Detection of duplicated training data examples is case insensitive, i.e., "LOL" and "lol" are detected as a duplicate of one another
  • In solutions where CLU is used as the intent classifier, training a new model is prevented until all occurrences of duplicated examples in multiple classes are removed; read more

Condition is invalid

Problem: condition is invalid covers all kinds of syntax errors that can occur in any TLML syntax in the solution, this being a missing parenthesis or spurious operators. Note that TLML syntax errors are marked in red in the Syntax Editors.

Example of invalid TLML syntax

Solution: syntax errors need to be corrected manually in the Syntax Editor of the object. For more information, please see the Syntax editor page and Troubleshooting TLML Syntax.

Note:

  • Applies to Language Objects, Listeners and TLML Syntax Matches (triggers and transitions)
  • Warning messages related to invalid syntax are also displayed in the Tryout.

Integration is empty

Problem: an integration has no method.
Solution:

  • Go to the Integrations in the backstage of Teneo Studio (Solution tab > Resources > Integrations)
  • Select the integration
  • Write the integration method .
  • Remember to Save the solution to preserve the changes.

Alternatively, if the integration is no longer needed, remove the integration from the solution by first selecting it and next clicking Remove.

Note:

  • Applies to integrations.

Integration script is empty

Problem: an integration has an empty script.
Solution:

  • Go to the Integrations in the backstage of Teneo Studio (Solution tab > Resources > Integrations)
  • Select the integration
  • Add the script
  • Remember to Save the solution to preserve the changes.

Alternatively, if the integration is no longer needed, remove the integration form the solution by first selecting it and next clicking Remove.

Note:

  • Applies to integrations.

Match linked to removed document

Problem: a Match links to a document missing in the solution. The missing document can either be a missing class, missing Global Context or Variable, a Language Object or an Entity.
Solution:

  • For Global Context and Variables, in the Globals area in the backstage of Teneo Studio (Solution tab> Globals > Contexts/Variables) add the missing document.
  • For Classes, open the Class Manager to add the class to the solution.
  • For Language Objects and Entities:
    • Open the Flow and select the trigger or transition in the Flow graph
    • to create the Language Object/Entity, maintain Ctrl pressed while clicking the object name
    • the Folder Browser will open, select the folder where the Language Object or Entity should be stored and then click OK
    • the new object will open, add the TLML syntax or entry and remember to click Save when finished.
  • Alternatively, open the Flow and remove the Match from the trigger or transition.

Note

  • Applies to trigger or transition Matches of the types: Class, Global Context, Global Variable, Language Object and Entity.

Output answer(s) linked to missing emotion

Problem: One or more answers in Bot Output nodes contain a missing emotion.
Solution:

  • Open the Flow by pressing Alt and double-clicking in the Suggestions page
  • The Output node is preselected, now in the Answer or Resume Prompt section of the node, select another available emotion
  • Remember to Save the Flow to remove the suggestion.

Note

  • Applies to Bot Output answers, Resume Prompts on Bot Output nodes.

Warning Suggestions

The warning suggestions provide information about issues in the solution that can cause problems with limited impact. These potential problems do not prevent the solution from running and can - in some specific use cases - be justified in the sense that they work as intended.

After Match linked to disabled document

Problem: An After Match is making use of a disabled Language Object or Entity
Solution:

  • Open the Flow pressing Alt while double-clicking in the Suggestions page
  • The After Match section is opened in the right-side panel, now either
    • remove the After Match from the trigger/transition, or
    • open the document (Alt + double-click) to enable it (Enable button in the top ribbon of the document)
    • Remember to Save the document.

Note

  • Applies to Language Object and Entity After Matches.

Answer is empty

Problem: an Output node's answer is left empty, without any text.

Tryout displays an empty answer

Solution:

  • Open the Flow and select the Output node
  • Write the answer text
  • Remember to click Save to conserve the changes.

Note:

  • Applies to Output nodes.

Class has duplicated training data

Problem: a class contains duplicated training data examples.
Solution:

  • Open the Class Manager (top ribbon of Teneo Studio)
  • Go to the class with duplicated training examples and click Edit
  • Remove the duplicated training example or write a new one
  • Click Save Classes to preserve the updates.

Note:

  • Applies to Classes
  • Detection of duplicated training data examples is case insensitive, i.e., "LOL" and "lol" are detected as a duplicate of one another
  • While working in the Class Manager, when adding training examples to a class, the training example cannot be added to the Training Examples list if a duplicate already exists in the same class.

Condition is empty

Problem: a Language Object's or Global Listener's TLML syntax is empty
Solution:

  • For Language Objects, open the Language Object to add a TLML Syntax
  • For Global Listeners, go to Globals in the backstage of Teneo Studio and select Listeners
  • select the Listener to update and click Edit in the top right area to open the Listener window and add the TLML Syntax
  • Remember to click Save.

Note:

  • Applies to Language Objects and Global Listeners

Condition is missing a longest match option

Problem: occurs when an trigger's TLML Syntax Match is missing a longest match option (:L) due to the use of the Limit unused words to option.
Solution:

  • Add the :L (longest match option) to the TLML Syntax, or
  • remove the Limit unused words to option by expanding the Advanced Options within the TLML Syntax Match to remove it.

Limit unused words to

Note:

  • Applies to Listeners and TLML Syntax Matches (triggers and transitions).

Example contain default text

Problem: the example contains default text suggestion appears when a new positive or negative example of User Intent is added to a trigger or transition, and the default example text is left unchanged, i.e. Should match 1 or Should not match 1 for positive and negative examples respectively.
Solution:

  • Replace the default text with a meaningful example of User Intent, or
  • delete the unwanted positive or negative example(s).

Note:

  • Applies to triggers and transitions
  • As of Teneo Platform 5.1, default example text inputs are no longer created when adding new Flows.

Match linked to disabled document

Problem: This happens when a Match links to a disabled Language Object or Entity.
Solution:

  • Open the Flow pressing Alt while double-clicking in the Suggestions page
  • The Match section is opened in the right-side panel, now either
    • remove the Match from the trigger/transition, or
    • open the document (Alt + double-click) to enable it (Enable button in the top ribbon of the document)
    • Remember to Save the document

Note

  • Applies to Language Object and Entity Matches

Negative example intents conflicting with Class training data

Problem: occurs when a trigger or transition contains one or more negative examples of User Intent which also exist as training data example(s) for the class assigned as a Match to the same trigger/transition.
Solution:

  • Either remove the negative example(s) of User Intent from the trigger/transition, or
  • edit the class' training data examples in the Class Manager by removing the training example which should no longer be part of this class.

Note

  • Applies to User Intent of triggers and transitions.

Node has only “Conditional, Continue” transitions

Problem: a Flow contains a node with a series of conditional outgoing continue transitions, but no outgoing unconditional transition. In the case where no Matches in any of the transitions are fulfilled, the Flow will get stuck at this node and eventually dropped by the Engine.
Solution:

  • Open the Flow
  • Add a non-conditional transition from the Flow node, to tell Engine what to do in case none of the conditional outgoing continue transitions' Matches are met.

Note:

  • Applies to transitions.

Output answer contains default text

Problem: occurs when a new Flow is created or if a new answer is added to an existing Output node, because the answer field is automatically populated with a default answer text.
Solution:

  • Open the Flow and select the Output node
  • Write the answer text
  • Remember to click Save to conserve the changes.

Note:

  • Applies to Output nodes.

Solution has only one Class with Training Data

Problem: the solution only contains one machine learning class with training data examples, and the machine learning model cannot be trained with only one class in the solution.
Solution:

  • Open the Class Manager to add more Classes to the solution.

Note:

  • Applies to Classes.

Information Suggestions

The Information suggestions are improvement suggestions of the typenice to have and often do not need immediate attention from the Teneo Studio user, but - as these suggestions are based on best practices and shared conventions - Studio users are encouraged to correct them.

Condition contains a deprecated operator

Problem: the TLML syntax operators Directly-followed-by (>) and Not-directly-followed-by () are deprecated since Teneo Platform 4.1.
Solution: the deprecated operators should be replaced in TLML syntax with the following operators:

Operator nameDeprecated operatorReplace with...
Directly-followed-by>>>
Not-directly-followed-by>

Note:

  • Applies to Language Objects, Listeners, TLML Syntax Matches (triggers and transitions)
  • Deprecated operators will be removed from the Teneo Platform in the future and users are encouraged to remove them from TLML syntax.

Condition contains a deprecated option

Problem: the candidate search (:C) option is deprecated since Teneo Platform 4.1 due to the introduction of full candidate search in the Teneo Engine.
Solution: the candidate search (:C) option can be removed from TLML syntaxes without further actions needed.

Note:

  • Applies to Language Objects, Listeners, TLML Syntax Matches (triggers and transitions)
  • Deprecated options will be removed from the Teneo Platform in the future and users are encouraged to remove them from TLML syntaxes.

Condition is empty

Problem: the TLML syntax of a Flow Listener or a TLML Syntax Match is empty
Solution:

  • Open the Flow in edit mode and
  • For Flow Listeners, go to Listeners in the backstage of the Flow:
    • Write the TLML syntax in the field
    • Click OK when finished
  • For TLML Syntax Matches, select the trigger or transition:
    • Write the TLML syntax in the field
  • Remember to Save the Flow to preserve the changes.

Note:

  • Applies to Flow Listeners, TLML Syntax Matches.

Empty examples

Problem: positive or negative examples do not contain text
Solution:

  • Open the Language Object or Flow (in case of the latter, select the trigger or transition) in edit mode
  • In the right-side panel, double-click the empty example to open edit mode and add the example text
  • Alternatively, select the empty example and click the red cross icon to delete the example
  • Remember to save the Language Object / Flow to preserve the changes.

Note:

  • Applies to examples in Language Objects and to examples of User Intent in triggers and transitions.

Flow has no description

Problem: it is best practice to add a Flow description to each Flow which describes the purpose of the given Flow.

Flow Descriptions provide users with additional information

Solution:

  • Open the Flow
  • In the backstage panel of the Flow (select the Flow tab in the main view of the Flow), click Properties
  • Add a description in the Description field
  • Remember to Save the Flow to preserve the update.

Note:

  • Applies to Flow Properties.

Library updated

Problem: this suggestion is displayed when a new version of a lexical resource (library) is available
Solution:

  • Open the Resources in the backstage of Teneo Studio (Solution tab)
  • Select Lexical and next click Edit
  • In the right side of the Recommended version, Click Upgrade
  • Remember to Save to preserve the changes

Note:

  • Applies to assigned Lexical Resources
  • Tryout will need to be reloaded after the upgrade.

Non-standard Language Object name

Problem: the name of a Language Object doesn't follow the recommended naming conventions
Solution:

  • Open the Language Object in edit mode
  • In the backstage of the Language Object (Language Object tab), select Properties
  • Write the new name in the Name field
  • Remember to Save the Language Object to preserve the changes.

Note:

  • Applies to Language Objects
  • Certain functionalities of Teneo Studio, such as the NLU Generation, relies on the established naming conventions, and users are therefore encouraged to follow these.

Trigger has no examples - Transition has no examples

Problem: the trigger / transition does not contain any examples of positive and/or negative User Intents. It is recommended to add both positive and negative examples as these are used by the Auto-test.
Solution:

  • Open the Flow, select the trigger or transition
  • In the right-side panel, scroll to the User Intent
  • Write the examples in the Enter an Example field
  • Press Enter or the green plus icon between different examples
  • Remember to Save the Flow to preserve the updates.

Note:

  • Applies to User Intent of triggers and transitions.

Trigger has no name

Problem: according to best practices, a name should be added to each trigger, as this name is displayed in many places such as the Tryout or the trigger Ordering.

trigger Ordering window displays Flow Names and trigger Names

Solution:

  • Open the Flow and select the trigger
  • Enter the Name of the trigger in the right-side panel.

Note:

  • Applies to triggers.

Troubleshooting solutions and information about errors