vania-janet/multiturn-rag-retrieval-data huggingface dataset:
ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES" --param "label-key=LABEL-KEY" --param "label-value=LABEL-VALUE" [--param "devicepath=DEVICEPATH"]
6. Customize the command based on the settings that you want to use.
7. Run the command to create a configuration.
8. Verify your configuration was created.

ibmcloud sat storage config get --config CONFIG







 Creating a configuration in the API 



1. Generate an API key, then request a refresh token. For more information, see [Generating an IBM Cloud IAM token by using an API key](https://cloud.ibm.com/docs/account?topic=account-iamtoken_from_apikey).
2. Copy one of the following example requests and replace the variables that you want to use.

Example request to create a version 4.8 configuration.

curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ "config-name": "string", "controller": "string", "storage-class-parameters": [ { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" } ], "storage-template-name": "local-volume-block", "storage-template-version": "4.8", "update-assignments": true, "user-config-parameters": { "entry.name": "LABEL-KEY", { "entry.name": "LABEL-VALUE", { "entry.name": "DEVICEPATH","user-secret-parameters": }
Remember, this response is only triggered when the user does not provide a valid time value. Click the Edit response![Edit response](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/edit-slot.png) icon.
8. Click the Options![More icon](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon, and select Open JSON editor. Add the following context variable definition.

{
"output": {
"text": {
"values": [
"Please specify the time that you want to eat.
The restaurant seats people between 9AM and 9PM."
]
}
},
"context": {
"counter": "<? context['counter'] + 1 ?>"
}
}

This expression adds a 1 to the current counter tally.
9. Click Back, and then click Save.
10. Reopen the @sys-time slot by clicking the Edit slot![Edit slot](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/edit-slot.png) icon.

You will add a second conditional response to the Not found section that checks whether the counter is greater than 1, which indicates that the user has provided an invalid response 3 times previously. In this case, the dialog assigns the time value on the user's behalf to the popular dinner reservation time of 8 PM. Don't worry; the user will have a chance to change the time value when the confirmation slot is triggered. Click Add a response.
11.
A number sign () is prepended to the intent name to label it as an intent. This naming convention helps you and others recognize the intent as an intent. It has no example user utterances associated with it yet.
3. In the Add user examples field, type the following utterance, and then click Add example:

i'd like to make a reservation
4. Add these additional examples to help Watson recognize the reservation intent.

I want to reserve a table for dinner
Can 3 of us get a table for lunch?
do you have openings for next Wednesday at 7?
Is there availability for 4 on Tuesday night?
i'd like to come in for brunch tomorrow
can i reserve a table?
5. Click the Close![Close arrow](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/close_arrow.png) icon to finish adding the reservation intent and its example utterances.







 Step 2: Add entities 

An entity definition includes a set of entity values that represent vocabulary that is often used in the context of a given intent. By defining entities, you can help your assistant identify references in the user input that are related to intents of interest. In this step, you will enable system entities that can recognize references to time, date, and numbers.



1. Click Entities to open the Entities page.
2. Enable system entities that can recognize date, time, and number references in user input. Click the System entities tab, and then turn on these entities:



* @sys-time
* @sys-date
* @sys-number





You have successfully enabled the @sys-date, @sys-time, and @sys-number system entities. Now you can use them in your dialog.





 Step 3: Add a dialog node with slots 

A dialog node represents the start of a thread of dialog between your assistant and the user.
It must not start with a digit or an underscore ( _ ).
7. Verify that the plan shows all of the resources that you want to create and that the names and values are correct. If the plan needs to be adjusted, edit the input.auto.tfvars file to correct resources and run terraform plan again.
8. Create the virtual private cloud for SAP instance and IAM access policy in IBM Cloud.

terraform apply "plan1"

The virtual private cloud and components are created and you see output similar to the terraform plan output.
9. Add the SAP credentials and the virtual server instance IP to the SAP GUI. For more information about the SAP GUI, see [SAP GUI](https://help.sap.com/doc/7abd5470728810148a4b1a83b0e91070/1511%20000/en-US/frameset.htm).







 Deploying SAP S/4HANA High Availability on Single Zone with the catalog tile interface 

Use these steps to configure the SAP HA SZ S/4HANA on your existing VPC by using the catalog tile interface. The scripts can take 2 - 3 hours to complete.



1. From the IBM Cloud Catalog, select the SAP S/4HANA High Availability on Single Zone tile. The Tile opens the Create tab for SAP HA SZ S/4HANA. For more information about this deployment, see the About tab or the readme file link.
2. On the SAP HA SZ S/4HANA page, configure your workspace:



* Enter a name for the workspace or use the default.
* Select the Resource Group to use to create resources. Use the Default or create a Resource Group.
* Select a Location to create your Schematics workspace. The workspace location does not have to match the resource location.



3. Enter the required deployment values, review the default input variables, and provide values that match your solution. These parameters are specific to your deployment.
(https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/slots-prompt-for-everything.png)



1. Back in the node edit view, scroll down to the newly-added If no slots are pre-filled, ask this first field. Add the following initial prompt for the node, I can make a reservation for you. Just tell me the day and time of the reservation, and how many people it is for.
2. Click ![Close](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/close.png) to close the node edit view.
3. Test this change from the Try it out pane. Open the pane, and then click Clear to nullify the slot context variable values from the previous test.
4. Enter i'd like to make a reservation.

The dialog now responds with, I can make a reservation for you. Just tell me the day and time of the reservation, and how many people it is for.
5. Enter, it's for Saturday. There will be 2 of us coming in at 8pm

The dialog responds with, OK. I am making you a reservation for 2 on Saturday at 8:00 PM.

![Shows the Try it out pane when the user provides everything in one input.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/slots-everything-tested.png)



If the user provides any one of the slot values in their initial input, then the prompt that asks for everything is not displayed.
In the view, click the Tools icon ![Tools icon](https://cloud.ibm.com/docs-content/v1/content/6f3c07c34058f637b1c86044ca4f9b24214330a7/activity-tracker/images/tool.png).
2. In the Line Template field, enter a word or string in the Highlight Terms section.
3. Optionally, click Persist these settings to apply these setting to all views.









 Guidelines defining line templates 

Consider the following guidelines that you must apply when you define a line template:



* Use mustache style {{field.name}} or bash style ${field.name} variables to construct your template.
* Use {{line}} or $@ to reference the original line.
* All other characters or strings are interpreted as a text literal.



For example, you can define a line template as {{initiator.id}} -- {{action}} -- {{message}} to see these fields for each event in a view.





 Change the name and description of a custom view 

You can rename a view. You can add or modify the description of a view.

Complete the following steps:



1. In your view, select Edit View Properties. The Edit View Properties page opens.

You can rename the view, add or modify the description of the view, and apply a custom line format.
2. Enter a new name in the Rename View section to rename the view.
3. Enter or modify the description in the Description section.
4. Click Save properties.
If the slot context variables are all filled with valid values, no prompts are displayed. The same is true for the dialog at run time. You must build into the dialog a mechanism by which you reset the slot context variables to null so that the slots can be filled anew by the next user. To do so, you are going to add a parent node to the node with slots that sets the context variables to null.



1. From the tree view of the dialog, click the More![More icon](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon on the node with slots, and then select Add node above.
2. Specify reservation as the condition for the new node. (This is the same condition that is used by the node with slots, but you will change the condition for the node with slots later in this procedure.)
3. Click the Options![More icon](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon next to the node response, and then click Open JSON editor. Add an entry for each slot context variable that you defined in the node with slots, and set it equal to null.

{
"context": {
"date": null,
"time": null,
"guests": null,
"confirmation": null
},
"output": {}
}

!
In this example, a variable named new_variable is added to a context block that already contains a variable.

{
"context":{
"existing_variable": "value",
"new_variable":"value"
}
}

To subsequently reference the context variable, use the syntax $name where name is the name of the context variable that you defined. For example, $new_variable.



Learn more:



* [Deleting a context variable in JSON](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime-contextdialog-runtime-context-delete-json)
* [Updating a context variable value in JSON](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime-contextdialog-runtime-context-update-json)
* [Setting one context variable equal to another](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-dialog-runtime-contextdialog-runtime-var-equals-var)





 Deleting a context variable in JSON 

To delete a context variable, set the variable to null.

{
"context": {
"order_form": null
}
}

If you want to remove all trace of the context variable, you can use the JSONObject.remove(string) method to delete it from the context object. However, you must use a variable to perform the removal. Define the new variable in the message output so it will not be saved beyond the current call.

{
"output": {
"text" : {},
"deleted_variable" : "<? context.remove('order_form') ?>"
}
}

Alternatively you can delete the context variable in your application logic.





 Updating a context variable value in JSON 

In general, if a node sets the value of a context variable that is already set, then the previous value is overwritten by the new value.
* [Adding a grammar to a custom language model](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-grammarAdd)
* [Using a grammar for speech recognition](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-grammarUse)
* [Managing grammars](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-manageGrammars)
* [Example grammars](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-grammarExamples)



* Custom model upgrading



* [Upgrading custom models](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-custom-upgrade)
* [Using upgraded custom models for speech recognition](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-custom-upgrade-use)





* Security topics



* [Information security](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-information-security)
* [Protecting sensitive information in your Watson service](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-keyservice)
* [Public and private network endpoints](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-public-private-endpoints)
* [Virtual Private Endpoints](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-virtual-private-endpoints)



* Service background



* [The science behind the service](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-science)
[More icon](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) menu in the Configure slot 2 header, select Enable conditional responses.
8. In the Found section, add a conditional response by clicking the Edit response![Edit response](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/edit-slot.png) icon.
9. Add the following conditions and responses to check whether the time that the user specifies falls within the allowed time window:



Slot 2 conditional response details

 Condition Response Action 

 `@sys-time.after('21:00:00')` Our last seating is at 9 PM. Clear slot and prompt again 
 `@sys-time.before('09:00:00')` Our first seating is at 9 AM. Clear slot and prompt again 



10. Add a third conditional response that is displayed if the user provides a valid time that falls within the window. This type of simple confirmation lets the user know that her response was understood.



Slot 2 conditional response 3 details

 Condition Response Action 

 `true` Ok, the reservation is for $time. Move on 



11. Edit the @sys-number slot to validate the value provided by the user in the following ways:



* Check that the number of guests specified is larger than zero.
* Anticipate and address the case when the user changes the number of guests.

If, at any point while the node with slots is being processed, the user changes a slot value, the corresponding slot context variable value is updated. However, it can be useful to let the user know that the value is being replaced, both to give clear feedback to the user and to give the user a chance to rectify it if the change was not what she intended.



12.
If you want to, you can specify a custom confidence level for a condition, for example, intents.size() > 0 && intents[0] == 'help' && intents[0].confidence > 0.1





 Accessing input 

The input JSON object contains one property only: the text property. The text property represents the text of the user input.



 Input property usage examples 

The following example shows how to access input:



* To execute a node if the user input is "Yes", add this expression to the node condition: input.text == 'Yes'



You can use any of the [String methods](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methodsdialog-methods-strings) to evaluate or manipulate text from the user input. For example:



* To check whether the user input contains "Yes", use: input.text.contains( 'Yes' ).
* Returns true if the user input is a number: input.text.matches( '[0-9]+' ).
* To check whether the input string contains ten characters, use: input.text.length() == 10.
Set pre_prod Boolean parameter to true to configure destination as pre-production destination else set the value as false.

{
"params" : {
"website_url" : "https://testwebsite.com",
"pre_prod" : "true" // Set to true in case of configuring Destination as pre-prod Destination (pre_prod destination can only be configured for Standard plan)
}
}
* The following example shows format of the DestinationConfig object for Slack destination.

{
"params" : {
"url" : "https://hooks.slack.com/services/G0gyhsush/TYodsjhs/GHTbfidsimkk"
}
}
* The following example shows format of the DestinationConfig object for Safari destination. Set pre_prod Boolean parameter to true to configure destination as pre-production destination else set the value as false.

{
"params": {
"cert_type":"p12",
"certificate_name":"Users/Testuser/Documents/safari.p12",
"password":"safarinew",
"url_format_string":"https://test.com",
"website_name":"testwebsite",
"website_push_id":"test",
"website_url":"https://test.com",
"pre_prod" : "true" // Set to true in case of configuring Destination as pre-prod Destination (pre_prod destination can only be configured for Standard plan)
}
}
* The following example shows format of the DestinationConfig object for MS Teams destination.

{
"params" : {
"url" : "https://xyz.webhook.office.com"
}
}
* The following example shows format of the DestinationConfig object for IBM Cloud® Functions destination.

{
"params" : {
Click the Dialogs tab to open the dialog tree.
2. Click the More icon ![More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) on the #General_Greetings node, and then select Add node below.
3. Start typing reservation in the condition field, and then select it from the list. This node will be evaluated if the user input matches the reservation intent.
4. Click Customize, click the Slots toggle to turn it on, and then click Apply.

![Shows the customize dialog where you turn on slots.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/slots-toggle-on.png)
5. Define the following slots:



Slot details

 Check for Save it as If not present, ask 

 @sys-date $date What day would you like to come in? 
 @sys-time $time What time do you want the reservation to be made for? 
 @sys-number $guests How many people will be dining? 



6. As the response, specify OK. I am making you a reservation for $guests on $date at $time.

![Shows what each slot and the response look like in the tool when filled in as specified.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/slots-simple-node.png)
7. Click !
* * The parameter "parquet.crypto.factory.class" must be set to "com.ibm.parquet.key.management.IBMKeyToolsFactory"

For example:

sc.hadoopConfiguration.set("parquet.encryption.key.access.token" , "<token string>")
sc.hadoopConfiguration.set("parquet.encryption.kms.instance.url" , "https://<region>.kms.cloud.ibm.com")
sc.hadoopConfiguration.set("parquet.encryption.kms.instance.id", "27861a9a-6779-4026-bca4-01e59acf0767")
sc.hadoopConfiguration.set("parquet.encryption.key.material.store.internally", "false")
sc.hadoopConfiguration.set("parquet.encryption.kms.client.class" "com.ibm.parquet.key.management.KeyProtectClient")
sc.hadoopConfiguration.set("parquet.crypto.factory.class","com.ibm.parquet.key.management.IBMKeyToolsFactory")

KeyToolkit.rotateMasterKeys("<path to encrypted files>", sc.hadoopConfiguration)
Add the .literal property to the step variable. Use the session variable in the assistant's response to display the customer's input.

For example, suppose you have an option called plant that has fern as a synonym. A customer might say buy a fern. In this case, you can use the .literal property so the assistant's response uses the customer's input. Your assistant might respond, Great! I see you want to buy a fern.





 11 July 2022 

Ability to duplicate an action
: You can duplicate an action to reuse information in a new action. When you duplicate an action, the new action includes everything except example phrases. Click the overflow menu on the action you want and select Duplicate.

New demo site
: Explore our [interactive demo site](https://www.ibm.com/products/watson-assistant/demos/lendyr/demo.html) to learn how Watson Assistant can be used to build powerful, scalable experiences for your users.





 24 June 2022 

Algorithm version options available in more languages
: Algorithm version options are now available in Chinese (Traditional), Japanese, and Korean. This allows you to choose which Watson Assistant algorithm to apply to your future trainings. For more information, see [Algorithm version and training](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-algorithm-version).





 16 June 2022 

Algorithm version
: Algorithm version allows you to choose which Watson Assistant algorithm to apply to your future trainings. For more information, see [Algorithm version and training](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-algorithm-version).

Algorithm beta version (2022-06-10)
: Algorithm beta version (2022-06-10) includes a new irrelevance detection algorithm to improve off-topic detection accuracy. Utterances with similar meanings are expected to have more similar confidences in comparison to previous irrelevance detection algorithms. For example, the training utterance please suggest route from times square has 100% confidence at runtime.
Select any synonyms you want to include, and then click Add selected.

You must click the Add selected button for any synonyms you selected to be added. If you move to the next set without clicking this button first, your selections will be lost.

The synonyms are added to your entity, and Watson suggests more synonyms.

If you receive no additional synonym recommendations, it could be because your entity is already well defined, or it contains content that the recommender is not currently able to expand upon.

If you choose not to select a recommended synonym, the system will treat that as a term you are not interested in, and will alter the next set of recommendations you see when you press Add selected or Next set. This inference only persists while you are choosing synonyms; information about skipped synonyms is not used for any other purpose by your assistant.

![Shows a set of synonym recommendations that will be added to the entity value](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/entities-synonyms-added.png)
2. Continue adding synonyms as desired. When you're finished accepting recommendations, click the X to close the recommendations panel.



4. If you want your assistant to recognize terms with syntax that is similar to the entity value and synonyms you specify, but without requiring an exact match, click the Fuzzy Matching toggle to turn it on.

For example, if you add apple as a value for a @fruit entity, and a user enters apples or appel, if fuzzy matching is enabled, your assistant will recognize the word as a @fruit mention. For more information, see [How fuzzy matching works](https://cloud.ibm.com/docs/assistant-data?topic=assistant-data-entitiesentities-fuzzy-matching).
5. Click Add value and repeat the process to add more entity values.

If you are adding many values, one after another, press Shift+Enter to finish adding the current value, and keep focus in the value field so you can add the next value.
6.