vania-janet/multiturn-rag-retrieval-data huggingface dataset:
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 Adding a dialog skill 

The natural-language processing for the Watson Assistant service is defined in a dialog skill, which is a container for all of the artifacts that define a conversation flow.

You can add one dialog skill to an assistant. See [Skill limits](https://cloud.ibm.com/docs/assistant?topic=assistant-skill-addskill-add-limits) for information about limits per plan.



 Create the dialog skill 

You can create a skill from scratch, use a sample skill that is provided by IBM, or upload a skill from a JSON file.

To add a skill, complete the following steps:



1. From the assistant where you want to add the skill, click Add an actions or dialog skill.
2. Do one of the following:



* To create a new dialog skill, remain on the Create skill tab.
* To add the dialog sample skill that is provided with the product as a starting point for your own skill or as an example to explore before you create one yourself, open the Use sample skill tab, and then click the sample labeled TYPE: Dialog. You can skip the remaining steps.
* To add a skill that was downloaded previously, you can upload it as a JSON file. Open the Upload skill tab. Drag a file or click Drag and drop file here or click to select a file and select the JSON file you want to upload.

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

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

Click Upload.
: Importing of large skills from JSON data is now processed in the background. When you import a JSON file to create a skill, the new skill tile appears immediately. However, depending on the size of the skill, it might not be available for several minutes while the import is being processed. During this time, the skill cannot be opened for editing or added to an assistant, and the skill tile shows the text Processing.





 23 November 2020 

Deploy your assistant to WhatsApp!
: Make your assistant available through WhatsApp messaging so it can exchange messages with your customers where they are. This beta integration creates a connection between your assistant and WhatsApp by using Twilio as a provider. For more information, see [Integrating with WhatsApp](https://cloud.ibm.com/docs/assistant?topic=assistant-deploy-whatsapp).





 13 November 2020 

New coverage metric and enhanced intent detection model
: The following features are available in service instances hosted in all data center locations except Dallas.

Introducing the coverage metric!
: Want a quick way to see how your dialog is doing at responding to customer queries? Enable the new coverage metric to find out. The coverage metric measures the rate at which your dialog is confident that it can address a customer's request per message. For conversations that are not covered, you can review the logs to learn more about what the customer wanted. For the metric to work, you must design your dialog to include an Anything else node that is processed when no other dialog node intents are matched. For more information, see [Graphs and statistics](https://cloud.ibm.com/docs/assistant?topic=assistant-logs-overviewlogs-overview-graphs).

Try out the enhanced intent detection model
: The new model, which is being offered as a beta feature in English-language dialog and actions skills, is faster and more accurate. It combines traditional machine learning, transfer learning, and deep learning techniques in a cohesive model that is highly responsive at run time. For more information, see [Improved intent recognition](https://cloud.ibm.com/docs/assistant?topic=assistant-intent-detection).





 3 November 2020
Supported languages 

Watson Assistant supports individual features to varying degrees per language.

Watson Assistant has classifier models that are designed specifically to support conversational skills in the following languages:



Table 1. Supported languages

 Language Language code 

 Arabic ar 
 Chinese (Simplified) zh-cn 
 Chinese (Traditional) zh-tw 
 Czech cs 
 Dutch nl 
 English en-us 
 French fr 
 German de 
 Italian it 
 Japanese ja 
 Korean ko 
 Portuguese (Brazilian) pt-br 
 Spanish es 
 Universal* xx 



* If you want to support conversations in a language for which Watson Assistant doesn't have a dedicated model, such as Russian, use the Universal language model. For more information, see [Adding support for global audiences](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-assistant-language).



 Feature support details 

The following tables illustrate the level of language support available for product features.

In the following tables, the level of language and feature support is indicated by these codes:



* GA: The feature is generally available and supported for this language. Note that features might continue to be updated even after they are generally available.
* Beta: The feature is supported only as a beta release, and is still undergoing testing before it is made generally available in this language.
* NA: Indicates that a feature is not available in this language.





 Skill support details 



Table 2. Skill support details

 Language [Dialog skill](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-skill-dialog-add) [Search skill](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-skill-search-add) 

 English (en) GA GA 
 Arabic (ar) GA GA 
 Chinese (Simplified) (zh-cn) GA GA 
 Chinese (Traditional) (zh-tw) GA GA 
 Czech (cs) GA GA 
 Dutch (nl) GA GA 
 French (fr) GA GA 
 German (de) GA GA 
 Italian (it) GA GA 
 Japanese (ja) GA GA
You can download a dialog skill version in JSON format. You might want to download a skill version if you want to use a specific version of a dialog skill in a different instance of the Watson Assistant service, for example. You can download the version from one instance and import it to another instance as a new dialog skill.

To download a dialog skill version, complete the following steps:



1. From the skill menu, click Versions.
2. Click the ![Click to view actions](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon from the version you want to download, and then choose Export.
3. Specify a name for the JSON file and where to save it, and then click Save.



For more information about how to replace a skill, see [Overwriting a skill](https://cloud.ibm.com/docs/assistant?topic=assistant-skill-tasksskill-tasks-overwrite).
Adding support for global audiences 

Your customers come from all around the globe. You need an assistant that can talk to them in their own language and in a familiar style. Choose the approach that best fits your business needs.



* Quickest solution: The simplest way to add language support is to author the assistant in a single language. You can translate each message that is sent to your assistant from the customer's local language to the assistant language. Later you can translate each response from the assistant language back to the customer's local language.

This approach simplifies the process of authoring and maintaining the conversation. You can build one assistant and use it for all languages. However, the intention and meaning of the customer message can be lost in the translation.

For more information about webhooks you can use for translation, see [Webhook overview](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-webhook-overview).
* Most precise solution: If you have the time and resources, the best user experience can be achieved when you build multiple assistants, one for each language that you want to support. Watson Assistant has built-in support for all languages. Use one of 13 language-specific models or the universal model, which adapts to any other language you want to support.

When you build an assistant that is dedicated to a language, a language-specific classifier model is used by the assistant. The precision of the model means that your assistant can better understand and recognize the goals of even the most colloquial message from a customer.

Use the universal language model to create an assistant that is fluent even in languages that Watson Assistant doesn't support with built-in models.

To deploy, use the web chat integration with your French-speaking assistant to deploy to a French-language page on your website. Deploy your German-speaking assistant to the German page of your website. Maybe you have a support phone number for French customers. You can configure your French-speaking assistant to answer those calls, and configure another phone number that German customers can use.
Name the assistant My first assistant.
3. Click Create assistant.

![Finish creating the new assistant](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-create-assistant-done.png)







 Step 3: Create a dialog skill 

A dialog skill is a container for the artifacts that define the flow of a conversation that your assistant can have with your customers.



1. Click the My first assistant tile to open the assistant.
2. Click Add dialog skill.

![Shows the Add skill button from the home page](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-add-dialog-skill.png)
3. Click the Create skill tab.
4. Give your skill the name My first skill.
5. Optional: If the dialog you plan to build will use a language other than English, then choose the appropriate language from the list.

![Finish creating the skill](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-add-skill-done.png)
6. Click Create skill.

![Shows the My first assistant with the My first skill added to it](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-my-first-skill.png)
7. Click the skill you just created to open it.







 Step 4: Add intents from a content catalog
Click Import skill, and then click Choose JSON File, and select the JSON file you want to import.

Important:



* The imported JSON file must use UTF-8 encoding, without byte order mark (BOM) encoding.
* The maximum size for a skill JSON file is 10MB. If you need to import a larger skill, consider importing the intents and entities separately after you have imported the skill. (You can also import larger skills using the REST API. For more information, see the [API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-data-v1?curl=createworkspace).)
* The JSON cannot contain tabs, newlines, or carriage returns.



Specify the data you want to include:



* Select Everything (Intents, Entities, and Dialog) if you want to import a complete copy of the exported skill, including the dialog.
* Select Intents and Entities if you want to use the intents and entities from the exported skill, but you plan to build a new dialog.



Click Import.

If you have trouble importing a skill, see [Troubleshooting skill import issues](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-skill-dialog-addskill-dialog-add-import-errors).



5. Specify the details for the skill:



* Name: A name no more than 100 characters in length. A name is required.
* Description: An optional description no more than 200 characters in length.
* Language: The language of the user input the skill will be trained to understand. The default value is English.





After you create the dialog skill, it appears as a tile on the Skills page. Now, you can start identifying the user goals that you want the dialog skill to address.



* To add prebuilt intents to your skill, see [Using content catalogs](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-catalog).
If your German-language dialog skill has the root verb haben as an entity value, it recognizes conjugated forms of the verb (hast) in user input as mentions of the entity.





 2 April 2020 

New and improved access control
: Now, when you give other people access to your Watson Assistant resources, you have more control over the level of access they have to individual skills and assistants. You can give one person read-only access to a production skill and manager-level access to a development skill, for example. For more information, see [Managing access to resources](https://cloud.ibm.com/docs/assistant?topic=assistant-access-control).

Can't see Analytics anymore? If you cannot do things that you could do before, you might not have appropriate access. Ask the service instance owner to change your service access role. For more information, see [How to keep your access](https://cloud.ibm.com/docs/assistant?topic=assistant-access-controlaccess-control-prep).

If you can't access the API Details for a skill or assistant anymore, you might not have the access role that is required to use the instance-level API credentials. You can use a personal API key instead. For more information, see [Getting API information](https://cloud.ibm.com/docs/assistant?topic=assistant-assistant-settingsassistant-settings-api-details).





 1 April 2020 

Plus plan changes
: The Plus plan is now available starting at $120/month for 1,000 users on pay-as-you-go or subscription IBM Cloud accounts. And you can subscribe without contacting Sales.

French language beta support added for contextual entities
: You can add contextual entities to French-language dialog skills. For more information about contextual entities, see [Creating entities](https://cloud.ibm.com/docs/assistant?topic=assistant-entitiesentities-annotations-overview).

New API version
: The current API version is now 2020-04-01. The following change was made with this version:
//Set the language property of the incoming message to the language that was identified by Watson Language Translator.
params.payload.context.skills["actions skill"].user_defined["language"] = res.languages[0].language;
console.log(JSON.stringify(params))
return params;
})
}
else {
params.payload.context.skills["actions skill"].user_defined["language"] = 'none'
return params
}
};
Show more

The second web action in the sequence sends the text to the Watson Language Translator service to translate the input text from the language that was identified in the previous web action into English. The translated string is then sent to your assistant instead of the original text.

The node.js code for the second action in your sequence looks as follows:

let rp = require("request-promise");

function main(params) {
console.log(JSON.stringify(params))
//If the the incoming message is not null and is not English, translate it.
if ((params.payload.context.skills["actions skill"].user_defined.language !== 'en') && (params.payload.context.skills["actions skill"].user_defined.language !== 'none')) {
const options = { method: 'POST',
url: 'https://api.us-south.language-translator.watson.cloud.ibm.com/instances/572b37be-09f4-4704-b693-3bc63869nnnn/v3/translate?version=2018-05-01',
auth: {
'username': 'apikey',
'password': 'nnn'
},
headers: {
"Content-Type":"application/json"
},
//The body includes the parameters that are required by the Language Translator service, the text to translate and the target language to translate it into.
body: {
FAQ 

Find answers to frequently-asked questions and quick fixes for common problems.



 What's a... 



 Term Definition 

 Assistant Container for your skills. You add skills to an assistant, and then deploy the assistant when you are ready to start helping your customers. [Learn more](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-assistants). 
 Condition Logic that is defined in the If assistant recognizes section of a dialog node that determines whether the node is processed. The dialog node conditions is equivalent to an If statement in If-Then-Else programming logic. 
 Content catalog A set of prebuilt intents that are categorized by subject, such as customer care. You can add these intents to your skill and start using them immediately. Or you can edit them to complement other intents that you create. [Learn more](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-catalog). 
 Context variable A variable that you can use to collect information during a conversation, and reference it later in the same conversation. For example, you might want to ask for the customer's name and then address the person by name later on. A context variable is used by the dialog skill. [Learn more](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime-contextdialog-runtime-context-variables). 
 Dialog The component where you build the conversation that your assistant has with your customers. For each defined intent, you can author the response your assistant should return. [Learn more](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-overview). 
 Digression A feature that gives the user the power to direct the conversation. It prevents customers from getting stuck in a dialog thread; they can switch topics whenever they choose. [Learn more](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtimedialog-runtime-digressions).
Language support 

IBM Watson® Knowledge Studio provides support for training a model in several languages.

Support for multiple languages does not mean that the product itself is translated. The Knowledge Studio user interfaces, messages, and documentation are available in English only.

You can train a model in the following languages:



*  English (the default language)
*  Arabic
*  Brazilian Portuguese
*  Chinese (Simplified)
*  Chinese (Traditional)
*  Dutch
*  French
*  German
*  Italian
*  Japanese
*  Korean
*  Spanish



Support includes the ability to add documents in these languages to a workspace, add dictionaries, run pre-annotation, use the ground truth editor to annotate documents, and train a machine learning model. When you select a language, the system applies language-specific templates to handle dictionary entries, text tokenization, and sentence segmentation. For information about how the system handles dictionaries in different languages, see [Dictionaries](https://cloud.ibm.com/docs/watson-knowledge-studio?topic=watson-knowledge-studio-dictionarieswks_dictionaries).

The rule editor and rule-based model cannot handle bidirectional text, so cannot be used with Arabic documents.



  Restrictions 

Because of character restrictions in the underlying machine learning technology, entries in the type system cannot contain spaces and can include only the following ASCII characters:



*  A through Z and a through z
*  0 through 9
*  The underscore character: _



The following rules also apply:



*  The first character in the name must be alphabetical.
*  The entity type name length cannot exceed 64 characters.
*  The relation type name length cannot exceed 128 characters.



Thus, for example, when a human annotator annotates Japanese text in the ground truth editor, the entity type and relation type names that can be applied will not be in Japanese.



  Related tasks 

[Configuring support for Arabic](https://cloud.ibm.com/docs/watson-knowledge-studio?topic=watson-knowledge-studio-wks_langsupp_ar)
Download as JSON files both the dialog skill that you want to copy the dialog nodes from and the dialog skill that you want to copy the nodes to.
2. In a text editor, open the JSON file for the dialog skill that you want to copy the dialog nodes from.
3. Find the dialog_nodes array, and copy it.
4. In a text editor, open the JSON file for the dialog skill that you want to copy the dialog nodes to, and then paste the dialog_nodes array into it.
5. Import the JSON file that you edited in the previous step to create a new dialog skill with the dialog nodes you wanted.



* Is it possible to recover a deleted skill?

Regularly [back up data](https://cloud.ibm.com/docs/assistant?topic=assistant-backup) to prevent problems that might arise from inadvertent deletions. If you do not have a backup, there is a short window of time during which a deleted skill might be recoverable. Immediately following the deletion, [open a case](https://cloud.ibm.com/docs/get-support?topic=get-support-open-case) with Support to determine if the data can be recovered. Include the following information in your case:



* skill ID
* instance ID or name
* region where the service instance is hosted from which the skill was deleted



* Can I change my plan to a Lite plan?

No, you cannot change from a Trial, Plus, or Standard plan to a Lite plan. And you cannot upgrade from a Trial to a Standard plan. For more information, see [Upgrading](https://cloud.ibm.com/docs/assistant?topic=assistant-upgrade).
* How many Lite plan instances of Watson Assistant can I create?

You can have only one Lite plan instance of Watson Assistant per resource group.
* How long are log files kept for a workspace?

The length of time for which messages are retained depends on your service plan.
* [Dialog](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-build): A dialog is a branching conversation flow that defines how your application responds when it recognizes the defined intents and entities. You use the dialog editor to create conversations with users, providing responses based on the intents and entities that you recognize in their input.

![Diagram of a basic implementation that uses intent and dialog only.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/basic-impl.png)



To enable your dialog skill to handle more nuanced questions, define entities and reference them from your dialog.



* [Entities](https://cloud.ibm.com/docs/assistant?topic=assistant-entities); An entity represents a term or object that is relevant to your intents and that provides a specific context for an intent. For example, an entity might represent a city where the user wants to find a business location, or the amount of a bill payment. The name of an entity is always prefixed with the @ character.

You can train the skill to recognize your entities by providing entity term values and synonyms, entity patterns, or by identifying the context in which an entity is typically used in a sentence. To fine tune your dialog, go back and add nodes that check for entity mentions in user input in addition to intents.



![Diagram of a more complex implementation that uses intent, entity, and dialog.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/complex-impl.png)

As you add information, the skill uses this unique data to build a machine learning model that can recognize these and similar user inputs.