vania-janet/multiturn-rag-retrieval-data huggingface dataset:
The service now expects the context.integrations property to conform to a specific schema in which the allowed values are as follows:



* chat
* facebook
* intercom
* liveengage
* salesforce
* slack
* service_desk
* text_messaging
* voice_telephony
* zendesk





If your app uses a context.integrations property that does not conform to the schema, a 400 error code will be returned.





 31 March 2020 

The web chat integration was updated
: The update adds an isTrackingEnabled parameter. You can add this parameter and set it to false to add the X-Watson-Learning-Opt-Out header to each /message request that originates from the web chat. For more information about the header, see [Data collection](https://cloud.ibm.com/apidocs/assistant/assistant-v2data-collection). For more information about the parameter, see [Configuration](https://integrations.us-south.assistant.watson.cloud.ibm.com/web/developer-documentation/api-configuration).





 26 March 2020 

The Covid-19 content catalog is available in Brazilian Portuguese, 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?topic=assistant-catalog).





 19 March 2020 

A Covid-19 content catalog is available
: The English-only content catalog defines a group of intents that recognize the common types of questions people ask about the novel coronavirus. The World Health Organization characterized COVID-19 as a pandemic on 11 March 2020. 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.
"<express-as style='neutral'>A five-alarm fire early this morning claimed the lives of more than a dozen residents.</express-as>" Your browser does not support the audio tag. 
 uncertain "That's strange. Hmm, I don't know if I've seen this before." Your browser does not support the audio tag. 
 "<express-as style='uncertain'>That's strange. Hmm, I don't know if I've seen this before.</express-as>" Your browser does not support the audio tag. 





 Expressing speaking styles with SSML 

The following HTTP request uses the <express-as> element with a style of cheerful to modify the speaking style of the entire input text. The example uses the en-US_EmmaExpressive voice.

IBM Cloud

curl -X POST -u "apikey:{apikey}" --header "Content-Type: application/json" --header "Accept: audio/wav" --output full-cheerful-style.wav --data "{"text":"<express-as style='cheerful'>Oh, that's good news! I am very happy for you!</express-as>"}" "{url}/v1/synthesize?voice=en-US_EmmaExpressive"

IBM Cloud Pak for Data

curl -X POST --header "Authorization: Bearer {token}" --header "Content-Type: application/json" --header "Accept: audio/wav" --output full-cheerful-style.wav --data "{"text":"<express-as style='cheerful'>Oh, that's good news! I am very happy for you!</express-as>"}" "{url}/v1/synthesize?voice=en-US_EmmaExpressive"

The following example HTTP request uses the cheerful style for the first sentence of the request only. The second sentence is spoken with the default voice. The example again uses the en-US_EmmaExpressive voice.

IBM Cloud
"content-type": "audio/l16;rate=22050",
"interim_results": true
}
<binary audio data>
{
"action": "stop"
}
* The service responds:

{"results": [{"alternatives": {"transcript": "name "}],
"final": false}], "result_index": 0}
{"results": [{"alternatives": {"transcript": "name may "}],
"final": false}], "result_index": 0}
{"results": [{"alternatives": {"transcript": "name may flour "}],
"final": false}], "result_index": 0}
{"results": [{"alternatives": {"transcript": "name the mayflower ",
"confidence": 0.91}], "final": true}], "result_index": 0}
{"state":"listening"}









 WebSocket return codes 

The service can send the following return codes to the client over the WebSocket connection:



* 1000 indicates normal closure of the connection, meaning that the purpose for which the connection was established has been fulfilled.
* 1002 indicates that the service is closing the connection due to a protocol error.
* 1006 indicates that the connection closed abnormally.
* 1009 indicates that the frame size exceeded the 4 MB limit.
* 1011 indicates that the service is terminating the connection because it encountered an unexpected condition that prevents it from fulfilling the request.



If the socket closes with an error, the client receives an informative message of the form {"error":"{message}"} before the socket closes. Use the onerror event handler to respond appropriately. For more information about WebSocket return codes, see [IETF RFC 6455](https://tools.ietf.org/html/rfc6455).

The WebSocket implementations of the SDKs can return different or additional response codes.
In this step, you will edit the digression settting for the restaurant booking node to prevent users from digressing away from it, and see how the setting change impacts the dialog flow.



1. Let's look at the current digression settings for the Restaurant booking node. Click the node to open it in edit view.
2. Click Customize, and then click the Digressions tab.

![Shows the digression settings for the Restaurant booking node.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/tut-dig-resto-settings.png)
3. Change the Allow digressions away toggle from on to off, and then click Apply.
4. Click ![Close](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/close.png) to close the node edit view.
5. Click Clear in the Try it out pane to reset the dialog.
6. Type Book me a restaurant.

Your assistant responds with a prompt for the day to reserve, When do you want to go?
7. Type Tomorrow.

Your assistant responds with a prompt for the time to reserve, What time do you want to go?
8. Ask, What time do you close?

Your assistant recognizes that the question triggers the #restaurant_opening_hours intent, but ignores it and displays the prompt associated with the @sys-time slot again instead.



You successfully prevented the user from digressing away from the restaurant booking process.





 Step 4: Digressing to a node that does not return 

You can configure a dialog node to not go back to the node that your assistant digressed away from for the current node to be processed.
(https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/variety.png)

You can choose to rotate through the response variations sequentially or in random order. By default, responses are rotated sequentially, as if they were chosen from an ordered list.

To change the sequence in which individual text responses are returned, complete the following steps:



1. Add each variation of the response into its own response variation field. For example:



Varying responses

 Response variations 

 Hello. 
 Hi. 
 Howdy! 



2. For the response variation setting, choose one of the following settings:



* sequential: The system returns the first response variation the first time the dialog node is triggered, the second response variation the second time the node is triggered, and so on, in the same order as you define the variations in the node.

Results in responses being returned in the following order when the node is processed:



* First time:

Hello.
* Second time:

Hi.
* Third time:

Howdy!



* random: The system randomly selects a text string from the variations list the first time the dialog node is triggered, and randomly selects another variation the next time, but without repeating the same text string consecutively.

Example of the order that responses might be returned in when the node is processed:



* First time:

Howdy!
* Second time:

Hi.
* Third time:

Hello.













 Rich responses 

You can return responses with multimedia or interactive elements such as images or clickable buttons to simplify the interaction model of your application and enhance the user experience.

In addition to the default response type of Text, for which you specify the text to return to the user as a response, the following response types are supported:



* Connect to human agent: The dialog calls a service that you designate, typically a service that manages human agent support ticket queues, to pass off the conversation to a person.
params.payload.output.generic[0].text = res.translations[0].translation;
return {
body : params
}
})
}
return {
body : params
}
};
Show more





 Removing the webhook 

If you decide you do not want to process message responses with a webhook, complete the following steps:



1. From the assistant overview page, click the ![Overflow menu](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/kebab.png) icon, and then choose Settings.
2. Click Webhooks > Post-message webhook.
3. Do one of the following things:



* To change the webhook that you want to call, click Delete webhook to delete the currently specified URL and secret. You can then add a new URL and other details.
* To stop calling a webhook to process every message response, click the Post-message webhook switch to disable the webhook altogether.
Click OK, and then OK again to exit the dialog.









 Related links 



* [About vCenter Server upgrade](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vcenter.upgrade.doc/GUID-9ED7B32A-019F-4A97-BC58-1A9BF7D16C57.html)
* [About VMware ESXi upgrade](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.upgrade.doc/GUID-65B5B313-3DBB-4490-82D2-A225446F4C99.html)
* [Contacting IBM Support](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-trbl_support)
(https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/variety.png)

You can choose to rotate through the response variations sequentially or in random order. By default, responses are rotated sequentially, as if they were chosen from an ordered list.

To change the sequence in which individual text responses are returned, complete the following steps:



1. Add each variation of the response into its own response variation field. For example:



Varying responses

 Response variations 

 Hello. 
 Hi. 
 Howdy! 



2. For the response variation setting, choose one of the following settings:



* sequential: The system returns the first response variation the first time the dialog node is triggered, the second response variation the second time the node is triggered, and so on, in the same order as you define the variations in the node.

Results in responses being returned in the following order when the node is processed:



* First time:

Hello.
* Second time:

Hi.
* Third time:

Howdy!



* random: The system randomly selects a text string from the variations list the first time the dialog node is triggered, and randomly selects another variation the next time, but without repeating the same text string consecutively.

Example of the order that responses might be returned in when the node is processed:



* First time:

Howdy!
* Second time:

Hi.
* Third time:

Hello.













 Rich responses 

You can return responses with multimedia or interactive elements such as images or clickable buttons to simplify the interaction model of your application and enhance the user experience.

In addition to the default response type of Text, for which you specify the text to return to the user as a response, the following response types are supported:



* Connect to human agent: The dialog calls a service that you designate, typically a service that manages human agent support ticket queues, to transfer the conversation to a person. You can optionally include a message that summarizes the user's issue to be provided to the human agent.
[Close](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/close.png) to close the edit view.



Now, when you test, you can provide a set of number or a mix of numbers and text as input, and the dialog reminds you of the correct order number format. You have successfully tested your dialog, found a weakness in it, and corrected it.

Another way you can address this type of scenario is to add a node with slots. See the [Adding a node with slots to a dialog](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-tutorial-slots) tutorial to learn more about using slots.
Click ![Close](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/close.png) to close the edit view.
35. Move the Number provided node before the Ask for order number node. Click the More![More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon on the Number provided node, and then select Move. Select the Ask for order number node, and then click Above node.

![Shows moving the Number provided child node before the Ask for order number node.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-reorder-cancel-order-children.png)
36. Force the conversation to evaluate the child nodes under the cancel_order node at run time. Click to open the cancel_order node in the edit view, and then, in the And finally section, select Skip user input.

![Shows setting the cancel order node being set to skip user input.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-skip-user-input.png)







 Test order cancellations 

Test whether your assistant can recognize character patterns that match the pattern used for product order numbers in user input.



1. Click the !
This is the icon with the initials of the logged on user. Then click Settings.
3. Select Notification Channels.
4. For the channel you want to disable, toggle Enabled for the channel so it is disabled. Alerts are temporarily disabled and notifications muted.







 Deleting a notification channel 

Complete the following steps to delete a notification channel:



1. Launch the web UI. For more information on how to launch the Web UI, see [Navigating to the Web UI](https://cloud.ibm.com/docs/workload-protection?topic=workload-protection-launch).
2. Click the user icon. This is the icon with the initials of the logged on user. Then click Integrations.
3. Select Notification Channels.
4. Identify the target channel that you want to modify and the Actions icon ![Actions icon](https://cloud.ibm.com/docs-content/v1/content/667adc0b8a7fdb0b349b1158d8e128640b5bc72b/icons/action-menu-icon.svg).
5. Click Delete Channel.
6. Confirm the deletion of the channel by clicking Yes, delete.
} else if (response.output.actions[0].name === 'end_conversation') {
// User said goodbye, so we're done.
console.log(response.output.generic[0].text);
endConversation = true;
}
}
} else {
// Display the output from assistant, if any. Supports only a single
// response.
if (response.output.generic) {
if (response.output.generic.length > 0) {
switch (response.output.generic[0].response_type) {
case 'text':
// It's a text response, so we just display it.
console.log(response.output.generic[0].text);
break;
case 'option':
// It's an option response, so we'll need to show the user
// a list of choices.
console.log(response.output.generic[0].title);
const options = response.output.generic[0].options;
// List the options by label.
for (let i = 0; i < options.length; i++) {
console.log((i+1).toString() + '. ' + options[i].label);
}
break;
}
}
}
}

// If we're not done, prompt for the next round of input.
if (!endConversation) {
const newMessageFromUser = prompt('>> ');
newMessageInput = {
messageType: 'text',
text: newMessageFromUser,
}
sendMessage(newMessageInput);
} else {
// We're done, so we delete the session.
service
.deleteSession({
assistantId,
sessionId,
})
.then(res => {
return;
})
[Close](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/close.png) to close the edit view.



If, at run time, the user triggers this node and provides a name, then you will know the user's name. If you know it, you should use it! Add conditional responses to the greeting dialog node you added previously to include a conditional response that uses the user name, if it is known.





 Add the user name to the greeting 

If you know the user's name, you should include it in your greeting message. To do so, add conditional responses, and include a variation of the greeting that includes the user's name.



1. Find the General_Greetings node in the dialog tree, and click to open it in the edit view.
2. Click Customize, scroll down, and then set the Multiple conditioned responses switch to On.

![Shows that the conditional responses setting has been enabled.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/gs-ass-turn-on-mcr.png)
3. Click Apply.

![Shows the existing response is now part of a table of responses.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/gs-ass-mcr-add-response.png)
4. Click Add response.
5. In the If assistant recognizes field, type $username, and in the Respond with field, add a new response:

Good day to you, $username!
6.
The service responds to this message by sending a text message that confirms the format of the audio response. The following response confirms the default audio format.

{
'binary_streams': [
{
content_type: 'audio/ogg;codecs=opus'
}
]
}





 Receive a response 

After it confirms the audio format, the service sends the synthesized audio as a binary stream of data in the indicated format. For audio formats that include a header (for example, audio/wav and audio/ogg), the service returns the header before it sends the audio data. The header can span multiple binary responses. For all audio formats, the client needs to append all binary responses from the service to assemble the complete audio response.

In addition to sending a text message that confirms the requested audio format, the service can also send text messages with warnings or errors. The service also sends one or more text messages that include timing information if



* The input text includes one or more SSML <mark> elements.
* You specify the timings parameter with the request.



The client can handle text messages by responding to them, displaying them, or capturing them for use by the application (for example, if they contain mark locations).

When it finishes synthesizing the input text and sending all binary and text messages, the service automatically closes the WebSocket connection. The following simple onMessage() function appends text and binary messages that are received from the service to the appropriate variables based on their type. When the onClose() function executes, the entire audio stream has been received and the service sends no further binary or text messages.

var messages;
var audioStream;

function onMessage(evt) {
if (typeof evt.data === string) {
messages += evt.data;
} else {
console.log('Received ' + evt.data.size() + ' binary bytes');
audioStream += evt.data;
}
}

function onClose(evt) {
// The service's response is complete.
}





 WebSocket return codes
In this step, you will edit the digression setting for the restaurant booking node to prevent users from digressing away from it, and see how the setting change impacts the dialog flow.



1. Let's look at the current digression settings for the Restaurant booking node. Click the node to open it in edit view.
2. Click Customize, and then click the Digressions tab.

![Shows the digression settings for the Restaurant booking node.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/tut-dig-resto-settings.png)
3. Set the Allow digressions away switch to Off, and then click Apply.
4. Click ![Close](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/close.png) to close the node edit view.
5. Click Clear in the "Try it out" pane to reset the dialog.
6. Type Book me a restaurant.

Your assistant responds with a prompt for the day to reserve, When do you want to go?
7. Type Tomorrow.

Your assistant responds with a prompt for the time to reserve, What time do you want to go?
8. Ask, What time do you close?

Your assistant recognizes that the question triggers the #restaurant_opening_hours intent, but ignores it and displays the prompt that is associated with the @sys-time slot again instead.



You successfully prevented the user from digressing away from the restaurant booking process.





 Step 4: Digressing to a node that does not return 

You can configure a dialog node to not go back to the node that your assistant digressed away from for the current node to be processed.
[Edit Welcome Banner](https://cloud.ibm.com/docs-content/v1/content/78bb71851d95d7580503eb9ba10cf3ae31490ade/apiconnect/tutorials/images/32-edit.png)
3. After the "Content" heading, you can change the text and image for the "Welcome" banner. You can enter text directly into the content editor, or select the "Edit HTML Source" icon and edit the HTML specifications directly. ![Content editor](https://cloud.ibm.com/docs-content/v1/content/78bb71851d95d7580503eb9ba10cf3ae31490ade/apiconnect/tutorials/images/33-content.png)
4. Add an image to the home screen. Locate the "Image" heading and click Choose File. Browse for na image and click Upload.

Supported image formats include: png, gif, jpg, and jpeg. If you don't have an image, you can use ![this one](https://cloud.ibm.com/docs-content/v1/content/78bb71851d95d7580503eb9ba10cf3ae31490ade/apiconnect/tutorials/images/Cloudy_Day.png).
![Upload Image](https://cloud.ibm.com/docs-content/v1/content/78bb71851d95d7580503eb9ba10cf3ae31490ade/apiconnect/tutorials/images/34-image.png)

If you want to remove the image, click Remove.
![Upload Image](https://cloud.ibm.com/docs-content/v1/content/78bb71851d95d7580503eb9ba10cf3ae31490ade/apiconnect/tutorials/images/35-uploaded-image.png)
5.
If you log in with a SoftLayer ID, you can also change your profile information from the Profile page.

If you log in with an ID from an external identity provider (IdP), then your information from your IdP is displayed. However, you can't update it on the Profile page. You must update your user information with your IdP.





 Changing your cookie settings 

The IBM Cloud console requires cookies to manage your sessions, such as to provide secure login, handle transactions, and save some preferences. Additional cookies are used to build a more personalized experience for you and provide better support. If you change your cookie settings from the IBM standard default, you might not be able to use some features, such as chat communications.

To change your settings from the IBM standard default, complete the following steps:



1. In the console, go to the Avatar icon ![Avatar icon](https://cloud.ibm.com/docs-content/v1/content/4d8c6eec891cff72b666dc24bd3211810c77fb42/icons/i-avatar-icon.svg) > Privacy.
2. Move the slider to select your level of allowed cookies.

You can click Advanced settings to view the exact company and domain for the cookies in each level. Then, click Basic settings to return to cookie preference selection.
3. Click Agree and save custom settings.