vania-janet/multiturn-rag-retrieval-data huggingface dataset:
For more information, see [Actions skill overview](https://cloud.ibm.com/docs/assistant?topic=assistant-actions-overview).

Date and time response types
: New to action skills, these response types allow you to collect date and time information from customers as they answer questions or make requests. For more information, see [Response types](https://cloud.ibm.com/docs/assistant?topic=assistant-actionsactions-response-types).

New built-in variables
: Two kinds of built-in variables are now available for action skills.



* Set by assistant variables include the common and essential variables Now, Current time, and Current date.
* Set by integration variables are Timezone and Locale and are available to use when connected to a webhook or integration.



For more information, see [Adding and referencing variables](https://cloud.ibm.com/docs/assistant?topic=assistant-actionsactions-variables).

Universal language model now generally available
: You now can build an assistant in any language you want to support. If a dedicated language model is not available for your target language, create a skill that uses the universal language model. The universal model applies a set of shared linguistic characteristics and rules from multiple languages as a starting point. It then learns from training data written in the target language that you add to it. For more information, see [Understanding the universal language model](https://cloud.ibm.com/docs/assistant?topic=assistant-assistant-languageassistant-language-universal).





 3 June 2021 

Log webhook support for actions and search skills
: The log webhook now supports messages exchanged with actions skills and search skills, in addition to dialog skills. For more information, see [Logging activity with a webhook](https://cloud.ibm.com/docs/assistant?topic=assistant-webhook-log).





 27 May 2021 

Change to conversation skill choices
: When adding skills to new or existing assistant, the conversation skill choices have been combined, so that you pick from either an actions skill or a dialog skill.

With this change:
The welcome and anything_else dialog nodes that are prepopulated in the tree do count toward the total.

Tree depth limit: The dialog supports 2,000 dialog node descendants; the dialog performs best with 20 or fewer.

You can see the number of dialog nodes in a dialog skill from the assistant tile. If the skill is not associated with an assistant already, add the dialog skill to an assistant, and then view the skill tile from the main page of the assistant. The trained data section lists the number of dialog nodes.

If the total seems larger than you expected, it might be because the dialog that you build from the application is translated into a JSON object. Some fields that appear to be part of a single node are actually structured as separate dialog nodes in the underlying JSON object.



* Each node and folder is represented as its own node.
* Each conditional response that is associated with a single dialog node is represented as an individual node.
* For a node with slots, each slot, slot found response, slot not found response, slot handler, and if set, the prompt for everything response is an individual node. In effect, one node with three slots might be equivalent to eleven dialog nodes.



Previous topic:[Controlling the dialog flow](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime)

Next topic:[Dialog building tips](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-tips)
With more precise input, your assistant can more easily recognize entity mentions and understand the customer's intent. This feature is not available in all languages. See [Correcting user input](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime-spell-check) for more details.

French-language dialog skill improvements
: Added full support for fuzzy matching and contextual entities and added beta support for autocorrection. For more information, see [Supported languages](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-language-support).

The Covid-19 content catalog is available in Brazilian Portuguese, English, French, and Spanish
: The content catalog defines a group of intents that recognize the common types of questions people ask about the novel coronavirus. You can use the catalog to jump-start development of chatbots that can answer questions about the virus and help to minimize the anxiety and misinformation associated with it. For more information about how to add a content catalog to your skill, see [Using content catalogs](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-catalog).

Backup automation
: Support was added for doing data backups on a schedule. For more information, see [Backing up and restoring data](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-backup).

Stateless v2 message API
: The v2 runtime API now supports a new stateless message method. For more information, see the [API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-data-v2message-stateless).

Architecture improvements
: The Skill-conversation microservice was removed. The microservice used to convert v2 API calls to v1 format and the other way around. The conversion is now done within the Store microservice. Reimplementing this function in the Store increased the overall speed with which v2 API requests are processed.
(Search skills are a beta feature available only to Plus or Premium plan users.)



For details about the v2 API, see the Watson Assistant [v2 API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-v2).

Note: The Watson Assistant v1 API still supports the legacy /message method that sends user input directly to the workspace used by a dialog skill. The v1 runtime API is supported primarily for backward compatibility purposes. If you use the v1 /message method, you must implement your own state management, and you cannot take advantage of versioning or any of the other features of an assistant.





 Authoring applications 

The v1 API provides methods that enable an application to create or modify dialog skills, as an alternative to building a skill graphically using the Watson Assistant user interface. An authoring application uses the API to create and modify skills, intents, entities, dialog nodes, and other artifacts that make up a dialog skill. For more information, see the [v1 API Reference](https://cloud.ibm.com/apidocs/assistant/assistant-v1).

Note: The v1 authoring methods create and modify workspaces rather than skills. A workspace is a container for the dialog and training data (such as intents and entities) within a dialog skill. If you create a new workspace using the API, it will appear as a new dialog skill in the Watson Assistant user interface.

For a list of the available API methods, see [API methods summary](https://cloud.ibm.com/docs/assistant?topic=assistant-api-methods).
: Korean language support has been enhanced; please see the [Supported languages](https://cloud.ibm.com/docs/assistant?topic=assistant-language-support) topic for additional details. Note that the Watson Assistant service learning models may have been updated as part of this enhancement, and when you retrain your model any changes will be applied.





 22 June 2017 

Introducing slots
: It is now easier to collect multiple pieces of information from a user in a single node by adding slots. Previously, you had to create several dialog nodes to cover all the possible combinations of ways that users might provide the information. With slots, you can configure a single node that saves any information that the user provides, and prompts for any required details that the user does not. See [Gathering information with slots](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-slots) for more details.

Simplified dialog tree
: The dialog tree has been redesigned to improve its usability. The tree view is more compact so it is easier to see where you are within it. And the links between nodes are represented in a way that makes it easier to understand the relationships between the nodes.





 21 June 2017 

Arabic support
: Language support for Arabic is now generally available. For details, see [Configuring bidirectional languages](https://cloud.ibm.com/docs/assistant?topic=assistant-language-supportlanguage-support-configure-bidirectional).

Language updates
: The Watson Assistant service algorithms have been updated to improve overall language support. See the [Supported languages](https://cloud.ibm.com/docs/assistant?topic=assistant-language-support) topic for details.





 16 June 2017 

Recommendations (Beta - Premium users only)
: The Improve panel also includes a Recommendations page that recommends ways to improve your system by analyzing the conversations that users have with your chatbot, and taking into account your system's current training data and response certainty.





 14 June 2017 

Fuzzy matching for additional languages (Beta)
* To define your own intents, see [Defining intents](https://cloud.ibm.com/docs/assistant?topic=assistant-intents).



The dialog skill cannot interact with customers until it is added to an assistant and the assistant is deployed. See [Creating an assistant](https://cloud.ibm.com/docs/assistant?topic=assistant-assistant-add).



 Troubleshooting skill upload issues 

Here are some solutions to typical upload issues:



* If you get the message, Error. Should NOT be shorter than 1 character, then check whether your skill has a name. If not, add one.
* The @sys-person and @sys-location system entities are no longer supported. If the skill you are uploading references them in its dialog, an error is displayed. Remove these system entities from your dialog.
* If you receive a message that says the skill contains artifacts that exceed the limits imposed by your service plan, complete the following steps to upload the skill successfully:



1. Purchase a plan with higher artifact limits.
2. Create a service instance in the new plan.
3. Upload the skill to the new service instance.
4. If you don't want to keep the higher-level plan, make edits to the skill such that it meets the artifact limit requirements for the plan you want to use going forward.



For information about how to decrease the number of dialog nodes, see [How many nodes are in my dialog?](/docs/assistant?topic=assistant-dialog-tasksdialog-tasks-count-nodes).



1. Download the edited skill to export it.
2. Try again to upload the edited skill into the original service instance on the plan you want.









 Adding the skill to an assistant 

You can add one dialog skill to an assistant. You must open the assistant tile and add the skill to the assistant from the assistant configuration page; you cannot choose the assistant that will use the skill from within the skill configuration page. One dialog skill can be used by more than one assistant.



1.
See the [support matrix](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-installinstall-support-matrix) for more details.

[Universal language](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-assistant-languageassistant-language-universal)
: You now can build an assistant in any language you want to support. If a dedicated language model is not available for your target language, create a skill that uses the universal language model. The universal model applies a set of shared linguistic characteristics and rules from multiple languages as a starting point. It then learns from training data written in the target language that you add to it.

[Premessage](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-webhook-pre), [postmessage](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-webhook-post), and [log webhooks](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-webhook-log)
: A set of new webhooks are available for each assistant. You can use the webhooks to perform preprocessing tasks on incoming messages and postprocessing tasks on the corresponding responses. You can use the new log webhook feature to log each message with an external service.

Features not included
: This release does not include the following features, which are available for cloud instances at the time of this release:



* Service desk support is not included.
* The phone integration is not supported.
* The actions skill is not available.
* The intent recommendations feature and the enhanced intent detection model are not supported.







 19 March 2021 

IBM Watson® Assistant 1.5.0 patch 1 is available
: For installations on IBM Cloud Pak® for Data 3.5, patch 1 includes configuration changes for FIPS compatibility and other fixes.
: Try the new autolearning beta feature to empower your skill to improve itself automatically over time. Your skill observes customer choices to understand which choices are most often the best. As its confidence grows, your skill presents better options to get the right answers to your customers with fewer clicks. For more information, see [Empower your skill to learn over time](https://cloud.ibm.com/docs/assistant?topic=assistant-autolearn).

Show more of search results
: When search results are returned from the search skill, the customer can now click a twistie to expand the search result card to see more of the returned text.





 29 July 2020 

The @sys-location and @sys-person system entities were removed
: The @sys-location and @sys-person system entities are no longer listed on the System entities page. If your dialog uses one of these entities, a red Entity not created notification is displayed to inform you that the entity is not recognized.

Skill menu actions moved
: The menu that was displayed in the header of the skill while you were working with a skill was removed. The actions that were available from the menu, such as import and export, are still available. Go to the Skills page, and click the menu on the skill tile.

The import skill process was updated to support overwriting an existing skill on import. For more information, see [Overwriting a skill](https://cloud.ibm.com/docs/assistant?topic=assistant-skill-tasksskill-tasks-overwrite).

Dialog issues were addressed
: These dialog issues were addressed:



* Fixed an issue with adding a jump-to from a conditional response in one node to a conditional response in another node.
* The page now responds better when you scroll horizontally to see multiple levels of child nodes.







 15 July 2020 

Support ended for @sys-location and @sys-person
: The person and location system entities, which were available as a beta feature in English dialog skills only, are no longer supported. You cannot enable them. If your dialog uses them, they are ignored by the service.
* Add Dialog Skill: Uses Watson natural language processing and machine learning technologies to understand user questions and requests, and respond to them with answers that are authored by you.

When you add a dialog skill from here, you get the development version. If you want to add a specific dialog skill version, add it from the skill's Versions page instead.
* Add Search Skill: For a given user query, uses the IBM Watson® Discovery service to retrieve information from a data source that you identify and shares any relevant information that it finds as the response to the user.

You must have Discovery for IBM Cloud Pak for Data installed, and an instance provisioned before you can complete the steps to create a search skill.



See [Creating a skill](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-skill-add).





 Assistant limits 



Limit details

 Assistants per service instance 

 100 



For information about the inactivity timeout limit, see [Changing the inactivity timeout setting](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-assistant-settings).

You can connect one skill of each type to your assistant.





 Deleting an assistant 

When you delete an assistant, any skills that you added to the assistant are not deleted.

To delete an assistant, follow these steps:



1. From the Assistants tab, find the assistant that you want to delete.
2. Click the ![open and close list of options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob-beta.png) icon, and then choose Delete. Confirm the deletion.







 Renaming an assistant 

You can change the name of an assistant and its associated description after you create the assistant.

To rename an assistant, follow these steps:



1. From the Assistants tab, find the assistant that you want to rename.
2. Click the !
url: 'https://api.us-south.language-translator.watson.cloud.ibm.com/instances/572b37be-09f4-4704-b693-3bc63869nnnn/v3/identify?version=2018-05-01',
auth: {
'username': 'apikey',
'password': 'nnnn'
},
headers: {
"Content-Type":"text/plain"
},
body: [
params.payload.context.skills'actions skill'].user_defined.original_input
],
json: true,
};
return rp(options)
.then(res => {
//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 param
}
};
Show more

The second web action in the sequence looks as follows:

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

function main(params) {
console.log(JSON.stringify(params))
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',
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. For more information, see [Log limits](https://cloud.ibm.com/docs/assistant?topic=assistant-logslogs-limits).





 How do I create a webhook? 

To define a webhook and add its details, open the skill where you want to add the webhook. Open the Options page, and then click Webhooks to add details about your webhook.
url: 'https://api.us-south.language-translator.watson.cloud.ibm.com/instances/572b37be-09f4-4704-b693-3bc63869nnnn/v3/identify?version=2018-05-01',
auth: {
'username': 'apikey',
'password': 'nnnn'
},
headers: {
"Content-Type":"text/plain"
},
body: [
params.payload.context.skills'main skill'].user_defined.original_input
],
json: true,
};
return rp(options)
.then(res => {
//Set the language property of the incoming message to the language that was identified by Watson Language Translator.
params.payload.context.skills['main skill'].user_defined['language'] = res.languages[0].language;
console.log(JSON.stringify(params))
return params;
})
}
else {
params.payload.context.skills['main skill'].user_defined['language'] = 'none';
return param
}
};
Show more

The second web action in the sequence looks as follows:

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

function main(params) {
console.log(JSON.stringify(params))
if ((params.payload.context.skills["main skill"].user_defined.language !== 'en') && (params.payload.context.skills["main skill"].user_defined.language !== 'none')) {
const options = { method: 'POST',
* 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 skill, it appears as a tile on the Skills page.





 Re-creating your assistant 

You can now re-create your assistant. You can then link your uploaded skills to the assistant, and configure integrations for it.

See [Creating an assistant](https://cloud.ibm.com/docs/assistant?topic=assistant-assistant-add) and [Adding integrations](https://cloud.ibm.com/docs/assistant?topic=assistant-deploy-integration-adddeploy-integration-add-task) for more details.





 Update your client applications 

When you import a dialog skill that you exported, a new skill is created. The new skill has a new workspace ID. If you have existing client applications that use the v1 API to access this skill, then you must update any workspace ID references to use the new worskpace ID instead.

When you re-create your assistant, it is given a new assistant ID. If you have existing client applications that use the v2 API to access the assistant, then you must update any assistant ID references to use the new assistant ID instead.
skillsContext.put("main skill", mainSkillContext);

MessageContext context = new MessageContext.Builder()
.global(globalContext)
.skills(skillsContext)
.build();

MessageOptions options = new MessageOptions.Builder()
.assistantId("{assistant_id}")
.sessionId("{session_id}")
.input(input)
.context(context)
.build();

MessageResponse response = service.message(options).execute().getResult();

System.out.println(response);

Show more

response=service.message(
assistant_id='{assistant_id}',
session_id='{session_id}',
input={
'message_type': 'text',
'text': 'Hello',
'options': {
'return_context': True
}
},
context={
'global': {
'system': {
'user_id': 'my_user_id'
}
},
'skills': {
'main skill': {
'user_defined': {
'account_number': '123456'
}
}
}
}
).get_result()

print(json.dumps(response, indent=2))

service
.message({
assistant_id: '{assistant_id}',
session_id: '{session_id}',
input: {
message_type: 'text',
text: 'Hello',
options: {
'return_context': true
}
},
context: {
'global': {
'system': {
'user_id': 'my_user_id'
}
},
'skills': {
'main skill': {