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.

The My Work tab displays Suggestions

Suggestion 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 Try Out.
  • 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 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 Try Out, 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.

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 Flow 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.

Class does not have any Training Data

Problem: a Class doesn't contain any training data. The machine learning model of the solution cannot be trained in Teneo Learn without training data.
Solution:

  • Open the Class Manager (top ribbon of Teneo Studio)
  • Go to the Class without training data and click Edit
  • Write or import the needed training data, 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 any Class without training data i

Condition is invalid

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

Example of invalid condition

Solution: conditions syntax errors need to be corrected manually in the Condition Editor of the object. For more information, please see the Condition Editor section.

Note:

  • Applies to Language Objects, Listeners and Condition Match Requirements (Intent Triggers and Transitions)
  • Warning messages related to invalid conditions are also displayed in the Try Out.

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 Requirement linked to removed document

Problem: a Match Requirement 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 Intent 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 condition or entry and remember to click Save when finished.
  • Alternatively, open the Flow and remove the Match Requirement from the Intent Trigger or Transition.

Note

  • Applies to Intent Trigger or Transition Match Requirements of the types: Class, Global Context, Global Variable, Language Object and Entity.

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.

Answer is empty

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

Try Out 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 training data which duplicate training data contained in the same or other classes.
Solution:

  • Open the Class Manager (top ribbon of Teneo Studio)
  • Go to the Class with duplicated training data and click Edit
  • Remove one of the duplicated training data examples
  • Remember to click Save Classes to preserve the updates.

Note:

  • Applies to Classes
  • While working in the Class Manager, when two training data examples are the same, the UI will prevent the user from saving the changes.

Condition is empty

Problem: a Language Object or Global Listener has an empty condition.
Solution:

  • For Language Objects, open the Language Object to add a condition
  • 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 condition
  • Remember to click Save.

Note:

  • Applies to Language Objects and Global Listeners.

Condition is missing a longest match option

Problem: occurs when an Intent Trigger's Condition Match Requirement 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 Condition, or
  • remove the Limit unused words to option by expanding the Advanced Options within the Condition Match Requirement to remove it.

Limit unused words to

Note:

  • Applies to Listeners and Condition Match Requirements (Intent Triggers and Transitions).

Example contain default text

Problem: the example contains default text suggestion appears when a new positive or negative example is added to an Intent 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, or
  • delete the unwanted positive or negative example(s).

Note:

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

Negative examples conflicting with Class training data

Problem: occurs when an Intent Trigger or Transition contains one or more negative examples which also exist as training data for the Class assigned as a Match Requirement of the same Intent Trigger/Transition.
Solution:

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

Note

  • Applies to Intent 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 transition's Match Requirements 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' Match Requirements 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, 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 condition operators Directly-followed-by (>) and Not-directly-followed-by () are deprecated since Teneo Platform 4.1.
Solution: the deprecated condition operators should be replaced in conditions with the following operators:

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

Note:

  • Applies to Language Objects, Listeners, Condition Match Requirements (Intent Triggers and Transitions)
  • Deprecated condition operators will most likely be removed from the Teneo Platform in the future and users are encouraged to remove them from conditions.

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 conditions without further actions needed.

Note:

  • Applies to Language Objects, Listeners, Condition Match Requirements (Intent Triggers and Transitions)
  • Deprecated condition options will most likely be removed from the Teneo Platform in the future and users are encouraged to remove them from conditions.

Condition is empty

Problem: a Flow Listener has no condition
Solution:

  • Open the Flow in edit mode and next the Flow Listener, located in the backstage of the Flow
  • Write the condition in the Condition field
  • Click OK when finished, and remember to Save the Flow to preserve the changes.

Note:

  • Applies to Flow Listeners.

Empty examples

Problem: the positive or negative example doesn't contain text
Solution:

  • Open the Language Object or Flow (in case of the latter, select the Intent 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 Intent Triggers, Transitions and Language Objects.

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:

  • Go to the Resources in the backstage of Teneo Studio (Solution tab)
  • Select Lexical
  • Click Upgrade.

Note:

  • Applies to assigned Lexical Resources.

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 Generator, relies on the established naming conventions, and users are therefore encouraged to follow these.

Trigger has no examples - Transition has no examples

Problem: the Intent Trigger / Transition does not contain any Positive or Negative Examples. It is recommended adding both Positive and Negative Examples in Intent Triggers as these are used in Auto-test.
Solution:

  • Open the Flow, select the Intent Trigger or Transition
  • In the right-side panel, scroll to the Examples
  • 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 Intent Triggers and Transitions.

Trigger has no name

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

Intent Trigger Ordering window displays Flow Names and Intent Trigger Names

Solution:

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

Note:

  • Applies to Intent Triggers.

Information about errors