vania-janet/multiturn-rag-retrieval-data huggingface dataset:
Click Choose a file, and then select the digression-showcase.json file that you downloaded earlier.
4. Click Import to finish importing the dialog skill.







 Step 2: Temporarily digressing away from dialog 

Digressions allow users to break away from a dialog branch to temporarily change the topic before they return to the original dialog flow. In this step, you will start to book a restaurant reservation, then digress away to ask for the restaurant's hours. After providing the opening hours information, your assistant will return back to the restaurant booking dialog flow.



1. Click Dialog to switch from the page with intents to a view of the dialog tree.
2. Click the ![Try it](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/ask_watson.png) icon to open the "Try it out" pane.
3. Type Book me a restaurant into the text field.

Your assistant responds with a prompt for the day to reserve, When do you want to go?
4. Click the Location![Location](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/location.png) icon next to the response to highlight the node that triggered the response, the Restaurant booking node, in the dialog tree.

![Shows the Restaurant booking node that is highlighted and the dialog in progress in the Try it out pane.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/tut-dig-location.png)
5. Type Tomorrow.
Language support 

Natural Language Understanding supports a variety of languages depending on which features you analyze. Currently, English is the only language that is supported across all features. The rest of the languages have limited support. To jump to the list of features that are compatible with a language, click the language in the following list.



* [Arabic](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportarabic)
* [Chinese (Simplified)](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportchinese-simplified)
* [Czech](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportczech)
* [Danish](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportdanish)
* [Dutch](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportdutch)
* [English](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportenglish)
* [Finnish](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportfinnish)
* [French](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportfrench)
* [German](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supportgerman)
* [Hebrew](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-language-supporthebrew)
For more information, see [Previous-generation languages and models](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-models).

For language model customization, the Korean models are generally available (GA) for production use; for acoustic model customization, they are beta functionality. For more information, see [Language support for customization](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-custom-support).



* For more information about how the service parses corpora for Korean, see [Parsing of Korean](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-corporaWordscorpusLanguages-koKR).
* For more information about creating sounds-like pronunciations for custom words in Korean, see [Guidelines for Korean](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-corporaWordswordLanguages-koKR).







 14 December 2017 

Language model customization now generally available
: Language model customization and all associated parameters are now generally available (GA) for all supported languages: Japanese, Spanish, UK English, and US English.

Beta acoustic model customization now available for all languages
: The service now supports acoustic model customization as beta functionality for all available languages. You can create custom acoustic models for broadband or narrowband models for all languages. For an introduction to customization, including acoustic model customization, see [Understanding customization](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-customization).

New version parameter for speech recognition
: The various methods for making recognition requests now include a new version parameter that you can use to initiate requests that use either the older or upgraded versions of base and custom models. Although it is intended primarily for use with custom models that have been upgraded, the version parameter can also be used without custom models.
* The source and target languages must be among the [List of supported languages](https://cloud.ibm.com/docs/language-translator?topic=language-translator-translation-modelslist-languages-supported).
* The service correctly translates from and to bidirectional languages that are written left-to-right and right-to-left (for example, Arabic, Hebrew, and Urdu).



This tutorial walks you through translating documents from the command line with curl. You can also use the Watson SDKs to translate documents with a number of programming languages. For more information, see the methods in the [API & SDK reference](https://cloud.ibm.com/apidocs/language-translator).





 Step 1: Submit a document to translate 

The following example request submits the file curriculum.html to the service and translates it from English to French. Replace {apikey} and {url} with your service credentials, and replace curriculum.html with a relative path to your file. The source and target parameters specify the languages for the translation.

curl -X POST --user "apikey:{apikey}" --form "file=@curriculum.html" --form "source=en" --form "target=fr" "{url}/v3/documents?version=2018-05-01"

To translate a document with a [custom model](https://cloud.ibm.com/docs/language-translator?topic=language-translator-customizing), use the model_id parameter. The following request translates the document with the custom model identified by the model ID 96221b69-8e46-42e4-a3c1-808e17c787ca. The custom model is defined for en-fr translation, so the source and target parameters are not needed.
All workspaces that you create by using the API are displayed as dialog skills when you open the user interface.





 23 July 2019 

Dialog search is fixed
: In some skills, the search function was not working in the Dialog page. The issue is now fixed.





 17 July 2019 

Disambiguation choice limit
: You can now set the maximum number of options to show to users when the assistant asks them to clarify what they want to do. For more information about disambiguation, see [Disambiguation](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-runtimedialog-runtime-disambiguation).

Dialog search issue
: In some skills, the search function is not working in the Dialog page. A new user interface library, which increases the page responsiveness, is being rolled out to existing service instances in phases. This search issue affects only dialog skills for which the new library is not yet enabled.

Missing skills issue
: In some cases, workspaces that were created through the API only are not being displayed when you open the Watson Assistant user interface. Normally, these workspaces are displayed as dialog skills. If you do not see your skills from the UI, don't worry; they are not gone. Contact support to report the issue, so the team can enable the workspaces to be displayed properly.





 15 July 2019 

Numeric system entities upgrade available in Dallas
: The new system entities are now also available as a beta feature for instances that are hosted in Dallas. See [New system entities](https://cloud.ibm.com/docs/assistant?topic=assistant-system-entities).





 12 June 2019 

Numeric system entities upgrade
: New system entities are available as a beta feature that you can enable in dialog skills that are written in English or German. The revised system entities offer better date and time understanding. They can recognize date and number spans, national holiday references, and classify mentions with more precision.
This naming convention ensures that context variable names are unique across the dialog skill. If you change the name, be sure to use a unique name.
8. In the conditional responses section, two response conditions are added automatically, one response to show when the webhook callout is successful and a return variable is sent back. And one response to show when the callout fails. You can edit these responses, and add more conditional responses to the node.



* If the callout returns a response, and you know the format of the JSON response, then you can edit the dialog node response to include only the section of the response that you want to share with users.

For example, the Language Translator service returns an object like this:

{
"translations":[
{"translation":"¿Cómo estás?"}
],
"word_count":3,
"character_count":12
}

Use a SpEL expression that extracts only the translated text value.



Conditional responses example

 Condition Response 

 $webhook_result_1 Your words in Spanish: . 
 anything_else The call to the external application failed. Please try again later. 



If you use the recommended format for the response and the translation response shown earlier is returned, the assistant's response to the user would be: Your words in Spanish: ¿Cómo estás?
* If you want to provide a specific response if the callout returns an empty string, meaning the call is successful, but the value returned is an empty string, you can add a conditional response that has a condition with syntax like this:

$webhook_result_1.size() == 0



9. When you are done, click the X to close the node. Your changes are automatically saved.







 Testing webhooks 

When you first add a webhook callout, it can be useful to see exactly what is returned in the response from the external application, the data and its format. To do this, add this expression as the text response for the successful callout conditional response: $webhook_result_n where n is the appropriate number for the webhook you are testing.
* For information about how to download a specific dialog skill version, see [Downloading a skill version](https://cloud.ibm.com/docs/assistant?topic=assistant-versionsversions-export).







 Overwriting a skill 

To overwrite or replace an existing skill, upload the new version of the skill as a JSON file into the existing skill.

You can overwrite a dialog or actions skill. You cannot overwrite a search skill.

To overwrite a skill, complete the following steps:



1. Click the Skills icon ![Skills menu icon](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/nav-skills-icon.png) to open the Skills page.
2. Find the skill that you want to replace.
3. Click the ![open and close list of options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon, and then choose Upload.
4. Drag a file or click Drag and drop file here or click to select a file and select the JSON file you want to overwrite your skill with.

The uploaded JSON file must use UTF-8 encoding, without byte order mark (BOM) encoding. The JSON cannot contain tabs, newlines, or carriage returns.

For dialog skills only: The maximum size for a skill JSON file is 10 MB. If you need to upload a larger skill, consider using the REST API. For more information, see the [API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-v1?curl=createworkspace).
5. Click Upload and overwrite.
Supported languages 

You can use [the language management APIs](https://us-south.appid.cloud.ibm.com/swagger-ui//Management%20API%20-%20Config/mgmt.updateLocalization) to set the language in which your user communication can be written. However, only English is available out of the box. You are responsible for the conversion of the messages. After you set the configuration with the API, the GUI updates so that you are able to change the template text.



Table 6. Languages that are supported

 Code Language Region 

 af-ZA Afrikaans South Africa 
 sq-AL Albanian Albania 
 am-ET Amharic Ethiopia 
 ar-DZ Arabic Algeria 
 ar-BH Arabic Bahrain 
 ar-EG Arabic Egypt 
 ar-IQ Arabic Iraq 
 ar-JO Arabic Jordan 
 ar-KW Arabic Kuwait 
 ar-LB Arabic Lebanon 
 ar-LY Arabic Libya 
 ar-MR Arabic Mauritania 
 ar-MA Arabic Morocco 
 ar-OM Arabic Oman 
 ar-QA Arabic Qatar 
 ar-SA Arabic Saudi Arabia 
 ar-SY Arabic Syria 
 ar-YE Arabic Tunisia 
 ar-AE Arabic United Arab Emirates 
 ar-YE Arabic Yemen 
 hy-AM Armenian Armenia 
 as-IN Assamese India 
 az-AZ Azerbaijani Azerbaijan 
 eu-ES Basque Spain 
 be-BY Belarusian Belarus 
 bn-BD Bengali Bangladesh 
 be-BY Belarusian Belarus 
 bn-BD Bengali Bangladesh 
 bn-IN Bengali India 
 bs-Latn-BA Bosnian Bosnia 
 bg-BG Bulgarian Bulgaria 
 my-MM Burmese Myanmar 
 ca-ES Catalan Spain 
 zh-Hans-CN Chinese-simplified China 
 zh-Hans-SG Chinese-simplified Singapore 
 zh-Hant-HK Chinese-traditional Hong Kong S.A.R. of China 
 zh-Hant-MO Chinese-traditional Macao S.A.R. of the PRC 
 zh-Hant-TW Chinese-traditional Taiwan 
 hr-HR Croatian Croatia 
 cs-CZ Czech Czech Republic 
 da-DK Danish Denmark 
 nl-BE Dutch Belgium
See [Organizing the dialog with folders](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-tasksdialog-tasks-folders) for more information.





 Digression tutorial 

Follow the [tutorial](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-tutorial-digressions) to import a workspace that has a set of nodes already defined. You can walk through some exercises that illustrate how digressions work.





 Design considerations 



* Avoid fallback node proliferation: Many dialog designers include a node with a true or anything_else condition at the end of every dialog branch as a way to prevent users from getting stuck in the branch. This design returns a generic message if the user input does not match anything that you anticipated and included a specific dialog node to address. However, users cannot digress away from dialog flows that use this approach.

Evaluate any branches that use this approach to determine whether it would be better to allow digressions away from the branch. If the user's input does not match anything you anticipated, it might find a match against an entirely different dialog flow in your tree. Rather than responding with a generic message, you can effectively put the rest of the dialog to work to try to address the user's input. And the root-level Anything else node can always respond to input that none of the other root nodes can address.
* Reconsider jumps to a closing node: Many dialogs are designed to ask a standard closing question, such as, Did I answer your question today? Users cannot digress away from nodes that are configured to jump to another node. So, if you configure all of your final branch nodes to jump to a common closing node, digressions cannot occur. Consider tracking user satisfaction through metrics or some other means.
* Test possible digression chains: If a user digresses away from the current node to another node that allows digressions away, the user could potentially digress away from that other node, and repeat this pattern one or more times again.
Follow this procedure to make it less likely that the dialog will respond by resetting the confidence level threshold from the default setting of 0.2 to 0.5. Changing the confidence level threshold to 0.5 instructs your assistant to not respond with an answer from the dialog unless the assistant is more than 50% confident that the dialog can understand the user's intent and can address it.



1. From the Dialog page of your dialog skill, make sure that the last node in the dialog tree has an anything_else condition with a search skill response type.

Whenever this node is processed, the search skill is triggered.
2. Add a folder to the dialog. Position the folder before the first dialog node that you want to de-emphasize. Add the following condition to the folder:

intents[0].confidence > 0.5

This condition is applied to all of the nodes in the folder. The condition tells your assistant to process the nodes in the folder only if your assistant is at least 50% confident that it knows the user's intent.
3. Move any dialog nodes that you do not want your assistant to process often into the folder.



After changing the dialog, test the assistant to make sure the search skill is triggered as often as you want it to be.

An alternative approach is to teach the dialog about topics to ignore. To do so, you can add utterances that you want the assistant to send to the search skill immediately as test utterances in the dialog skill's Try it out pane. You can then select the Mark as irrevlant option within the Try it out pane to teach the dialog not to respond to this utterance or others like it.





 Disabling search 

You can disable the search skill from being triggered.

You might want to do so temporarily, while you are setting up the integration. Or you might want to only ever trigger a search for specific user queries that you can identify within the dialog, and use a search skill response type to answer.

To prevent the search skill from being triggered, complete the following steps:



1. From the Assistants page, click the menu for your assistant, and then choose Settings.
2.
Extracting in languages other than English 

To extract text from non-English documents, you can sometimes use or modify the provided extractors or define new extractors based on linguistic patterns. Also, if target terms are based on a pattern, you can design a sequence pattern.

You can use the workspace to build extractors to be used with any language, such as Spanish and French, that is based on tokens defined by white space and punctuation. For example, the results of using the Person extractor with Spanish text might extract names as shown here.

![Results of applying the Person extractor to Spanish text](https://cloud.ibm.com/docs-content/v1/content/148d3bd95f946aa1bb53ea1540475f522e6b61c9/watson-knowledge-studio-data/images/Spanish.png)



 Extending the provided extractors for use in a different language 

If your target language is based on tokens defined by white space and punctuation, you can extend a provided extractor that has customization points or dictionaries by adding terms to the appropriate dictionaries in the target language.



 Provided extractor Included in folder: How to extend 

 All generic extractors Generic extractors Define a regular expression for the target text pattern. If the provided extractor produces results, create a union with the provided extractor and the regular expression. 
 Email address, Phone number, Zip code Named Entity Recognition Define a regular expression for the target text pattern. If the provided extractor produces results, create a union with the provided extractor and the regular expression. 
 Currency Named Entity Recognition Combine a decimal number extractor with a literal to represent the local currency symbol in a sequence or define a regular expression. If more than one currency symbol is required, use a dictionary rather than a literal. 
 Date and time Named Entity Recognition For numeric formats, define a regular expression for the target text pattern. <br> <br>For alphabetic formats, define a sequence using integers for the days and years and a mapping table to represent the months. Use the full names and abbreviations for each month in the mapping table.
Creating a custom language model 

Follow these steps to create, add contents to, and train a custom language model for the IBM Watson® Speech to Text service:



1. [Create a custom language model](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-languageCreatecreateModel-language). You can create multiple custom models for the same or different domains. The process is the same for any model that you create. Language model customization is available for most previous-generation models and for all next-generation models. For more information, see [Language support for customization](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-custom-support).
2. [Add a corpus to the custom language model](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-languageCreateaddCorpus). A corpus is a plain text document that uses terminology from the domain in context. You can add multiple corpora serially, one at a time, to a custom model. For custom models that are based on previous-generation models, the service builds a vocabulary for a custom model by extracting terms from corpora that do not exist in its base vocabulary. For custom models that are based on next-generation models, the service extracts character sequences rather than words from corpora.
3. [Add words to the custom language model](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-languageCreateaddWords). You can also add custom words to a model individually. You can specify how the words from a custom model are to be displayed in a speech transcript and how they are pronounced in audio. For custom models that are based on previous-generation models, you can also modify custom words that are extracted from corpora.
4. [Train the custom language model](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-languageCreatetrainModel-language).
: The toggle to enable disamibugation, which is a feature that is available to Plus and Premium plan users only, has moved. The Settings button was removed from the Dialog page. You can now enable disambiguation and configure it from the skill's Options tab.

An introductory tour is now available
: A short product tour is now displayed when a new service instance is created. Brand new users are also given help as they start development. A new assistant is created for them automatically. Informational popups are displayed to introduce the product user interface features, and guide the new user toward taking the key first step of creating a dialog skill.





 10 April 2019 

Autocorrection is now available
: Autocorrection is a beta feature that helps your assistant understand what your customers want. It corrects misspellings in the input that customers submit before the input is evaluated. With more precise input, your assistant can more easily recognize entity mentions and understand the customer's intent. See [Correcting user input](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-runtime-spell-check) for more details.





 22 March 2019 

Introducing search skill
: A search skill helps you to make your assistant useful to customers faster. Customer inquiries that you did not anticipate and so have not built dialog logic to handle can be met with useful responses. Instead of saying it can't help, the assistant can query an external data source to find relevant information to share in its response. Over time, you can build dialog responses to answer customer queries that require follow-up questions to clarify the user's meaning or for which a short and clear response is suitable. And you can use search skill responses to address more open-ended customer queries that require a longer explanation. This beta feature is available to users of Premium and Plus service plans only.

See [Building a search skill](https://cloud.ibm.com/docs/assistant?topic=assistant-skill-search-add) for more details.





 14 March 2019 





 4 March 2019 

Simplified navigation