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.
Categories and severity
There are 4 suggestion categories: Text, Robustness, TLML Syntax, 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
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.
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.
The user can filter by:
- Category: Text, Robustness, TLML Syntax, 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
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.
Empty Flow link
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.
Link to an unknown integration definition
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.
Note:
- Applies to Bot Output nodes.
Error Suggestions
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
TLML Syntax is invalid
Problem: TLML Syntax 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.
Solution: syntax errors must 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
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.
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.
TLML Syntax 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
TLML Syntax is missing a longest match option
Problem: occurs when a 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.
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
TLML Syntax contains a deprecated operator
Operator name | Deprecated operator | Replace 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.
TLML Syntax 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.
TLML Syntax 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.
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.
Solution:
- Open the Flow and select the trigger
- Enter the Name of the trigger in the right-side panel.
Note:
- Applies to triggers.