vania-janet/multiturn-rag-retrieval-data huggingface dataset:
Because the peers will be unable to progress beyond this configuration block, it will not be possible to reverse this configuration block and submit another one to "fix" the problem. A channel in this state is unrepairable.









 Tuning your ordering service 

Performance of a blockchain platform can be affected by many variables such as transaction size, block size, network size, as well as limits of the hardware. The orderer node includes a set of tuning parameters that together can be used to control orderer throughput and performance. You can use these parameters to customize how your orderer processes transactions depending on whether you have many small frequent transactions, or fewer but large transactions that arrive less frequently. Essentially, you have the control to decide when the blocks are cut based on your transaction size, quantity, and arrival rate.

The following parameters are available in the console by clicking the orderer node in the Nodes tab and then clicking its Settings icon. Click the Advanced button to open the Advanced channel configuration for the orderer.



 Block cutting parameters 

The following three parameters work together to control when a block is cut, based on a combination of setting the maximum number of transactions in a block as well as the block size itself.



* Absolute max bytes Set this value to the largest block size in bytes that can be cut by the orderer. No transaction may be larger than the value of Absolute max bytes. Usually, this setting can safely be two to ten times larger than your Preferred max bytes. Note: The maximum size permitted is 99MB.
* Max message count Set this value to the maximum number of transactions that can be included in a single block.
* Preferred max bytes Set this value to the ideal block size in bytes, but it must be less than Absolute max bytes. A minimum transaction size, one that contains no endorsements, is around 1KB. If you add 1KB per required endorsement, a typical transaction size is approximately 3-4KB. Therefore, it is recommended to set the value of Preferred max bytes to be around Max message count * expected averaged tx size. At run time, whenever possible, blocks will not exceed this size. If a transaction arrives that causes the block to exceed this size, the block is cut and a new block is created for that transaction.
To better understand the full order of operations for a node with slots, see [Slot usage tips](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-slotsdialog-slots-node-level-handler).
* Strings that begin with a number sign (#) in the context or output objects of a message are no longer treated as intent references.

Previously, these strings were treated as intents automatically. For example, if you specified a context variable, such as "color":"FFFFFF", then the hex color code (FFFFFF) would be treated as an intent. Your assistant would check whether an intent named FFFFFF was detected in the user's input, and if not, would replace FFFFFF with false. This replacement no longer occurs.

Similarly, if you included a number sign (#) in the text string in a node response, you used to have to escape it by preceding it with a back slash (). For example, We are the #1 seller of lobster rolls in Maine. You no longer need to escape the symbol in a text response.

This change does not apply to node or condtional response conditions. Any strings that begin with a number sign (#) which are specified in conditions continue to be treated as intent references. Also, you can use SpEL expression syntax to force the system to treat a string in the context or output objects of a message as an intent. For example, specify the intent as <? intent-name ?>.







 25 February 2019 

Slack integration enhancement
: You can now choose the type of event that triggers your assistant in a Slack channel. Previously, when you integrated your assistant with Slack, the assistant interacted with users through a direct message channel. Now, you can configure the assistant to listen for mentions, and respond when it is mentioned in other channels. You can choose to use one or both event types as the mechanism through which your assistant interacts with users.





 11 February 2019 

Integrate with Intercom
: Intercom, a leading customer service messaging platform, has partnered with IBM to add a new agent to the team, a virtual Watson Assistant.
The service normalizes the string 3/4/2016 as march fourth two thousand sixteen. The word timing information for the string reflects the start time of march and the end time of sixteen".

The following example indicates that the word Hello is to be spelled out:

<say-as interpret-as="letters">Hello</say-as>.

The service returns timing information for the string "Hello.. The service spells the word letter-by-letter during the normalization step. The word timing information in the response reflects the start time of the letter h and the end time of the letter o".
* <phoneme> provides a pronunciation for the text that is enclosed in the opening and closing <phoneme> tags. But both the text and the closing tag are optional. The following example includes embedded text and a closing tag:

The <phoneme alphabet="ibm" ph=".0tx.1me.0fo">tomato</phoneme> was ripe.

The service returns timing information for the following strings: "The, tomato, was, ripe.

Conversely, the following example provides a unary <phoneme> element with no embedded text and no closing tag:

The <phoneme alphabet="ibm" ph=".0tx.1me.0fo"/> was ripe.

In this case, the service returns timing information for the following strings: "The, <phoneme>, was, ripe.
* <sub> substitutes the text that is included in the element's alias attribute for the text that is enclosed between the opening and closing <sub> tags in the spoken audio. For example, the following input includes a single <sub> tag:

I work at <sub alias="International Business Machines">IBM</sub>.

The service produces timing information for the following strings: "I, work, at, IBM.. The service normalizes the string IBM as International Business Machines. The timing information for the string reflects the start time of International and the end time of Machines".
* <break> inserts a pause in the spoken text.
Based on the definition of Span, the different scenarios of arguments to the CombineSpans function are as follows:



* Span 2 is always after span 1. In other words, left-to-right order is maintained:

CombineSpans([0,7], [3,7]) returns the span [0,7]
CombineSpans([0,7], [8,10]) returns the span [0,10]
CombineSpans([0,7], [3,6]) returns the span [0,7]
CombineSpans([0,7], [0,7]) returns the span [0,7]
* Span 2 is not after span 1. In other words, left-to-right order is not maintained:

CombineSpans(‘IgnoreOrder’, [0,10], [0,7]) returns the span [0,10]
CombineSpans(‘IgnoreOrder’, [3,6], [0,7]) returns the span [0,7]
CombineSpans(‘IgnoreOrder’, [3,7], [0,7]) returns the span [0,7]
CombineSpans(‘IgnoreOrder’, [8,10], [0,7]) returns the span [0,10]
CombineSpans([3,6], [0,7]) will result in Runtime error as the IgnoreOrder flag has not been specified.







 GetBegin and GetEnd 

The GetBegin function takes a single span argument and returns the begin offset of the input span.

For example,

GetBegin([5, 10])

returns the value 5.

Likewise, the GetEnd function returns the end offset of its input span.

The following example illustrates the use of the GetBegin and GetEnd function.

create view PersonOffsets as
select GetBegin(P.name) as offsetBegin, GetEnd(P.name) as offsetEnd
from Person P;

For both of these functions, if the argument is null, the function returns null.





 GetLanguage
While IBM Cloudant strives to keep indexes updated in the background, no guarantee exists about how out-of-date the view is when queried with update=false or update=lazy.

The stable option indicates whether you would prefer to get results from a single, consistent set of shards. The false value means that all available shard replicas are queried and IBM Cloudant uses the fastest response. By contrast, setting stable=true forces the database to use just one replica of the index.

Using stable=true can cause high latency as it consults only one of the copies of the index, even if the other copies would respond faster.





 Combining parameters 

If you specify stable=false and update=false, you see greater inconsistency between results, even for the same query and without making database changes. We recommend against this combination unless you are sure that your system can tolerate this behavior.







 Sorting returned rows 

The data that is returned by a view query is in the form of an array. Each element within the array is sorted by using standard [UTF-8](https://en.wikipedia.org/wiki/UTF-8) sorting. The sort is applied to the key defined in the view function.

The basic order of the output is shown in the following table:



Table 2. Order of returned rows

 Value Order 

 null First 
 false 
 true 
 Numbers 
 Text (lowercase) 
 Text (uppercase) 
 Arrays (according to the values of each element, by using the order given in this table) 
 Objects (according to the values of keys, in key order by using the order given in this table) Last 



You can reverse the order of the returned view information by setting the descending query value true.

When you issue a view request that specifies the keys parameter, the results are returned in the same order as the supplied keys array.

See the example of using HTTP to request the records in reversed sort order:

GET $SERVICE_URL/$DATABASE/_design/$DDOC/_view/$VIEW_NAME?descending=true HTTP/1.1
Accept: application/json

See the example of requesting the records in reverse sort order.
--sort ([]string)
: Optional. The sorting order. The default value is ["-updated_at"]. The list items must match the regular expression /^-?[a-z0-9_.\[\],-]+$/.

--limit (int64)
: Optional. The number of key templates to retrieve. The value must be between 1 and 1000.

--offset (int64)
: Optional. The number of keys to skip. The minimum value is 0.

--all-pages (bool)
: Invoke multiple requests to display all pages of the collection for key templates.
* Example

ibmcloud hpcs uko key-templates --output json
* Output

The command returns the output similar to the following example:

{
"total_count": 3,
"limit": 20,
"offset": 0,
"first": {
"href": "https://uko.us-south.hs-crypto.cloud.ibm.com:9549/api/v4/templates?vault.id=5295ad47-2ce9-43c3-b9e7-e5a9482c362b&limit=20"
},
"last": {
"href": "https://uko.us-south.hs-crypto.cloud.ibm.com:9549/api/v4/templates?vault.id=5295ad47-2ce9-43c3-b9e7-e5a9482c362b&limit=20&offset=0"
},
"templates": [
{
"vault": {
"id": "5295ad47-2ce9-43c3-b9e7-e5a9482c362b",
"name": "Test Vault Name",
The text message that contains the timing information always arrives before the audio chunk that contains the mark's location.





 Requesting word timings for all words 

The optional timings parameter of the JSON object that you pass to the service for a request returns timing information for all strings of the input text. This convenience eliminates the need to specify the SSML <mark> element for each word of the input. Pass an array that includes the string words to request word timings. Pass an empty array or omit the parameter to receive no timing information.

The service returns word timings over the WebSocket connection in the same way that it returns timing information for individual <mark> elements. It returns one or more JSON text messages. Each message contains an array of words and their start and end times in seconds from the beginning of the synthesized audio. For example, the following example requests word timing information:

function onOpen(evt) {
var message = {
text: 'I have a pet bird.',
accept: '/',
timings: ['words']
};
websocket.send(JSON.stringify(message));
}

In response, the service can return the following text messages:

{
"words": [

"I", 0.0, 0.157
],

"have", 0.157, 0.321
],

"a", 0.321, 0.406
]
]
}
{
"words": [

"pet", 0.406, 0.731
],

"bird.", 0.731, 1.049
]
]
}
Show more

The response is just an example. The service can return one or more text messages with timing information for the input. It can also return a separate text message for each word of the input. Moreover, the messages can be interspersed with responses that contain binary chunks of audio. But the text message that contains the timing information for a word always arrives before the audio chunk that contains that word.



 Timings for plain text
File type Text extraction support Smart Document Understanding (SDU) support Optical Character Recognition (OCR) support 

 CSV ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 DOC, DOCX ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 GIF ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 HTML ![checkmark icon](https://cloud.ibm.com/docs-content/v1/content/f16b1f78a92498247223b337bd9303c2758b9ba8/icons/checkmark-icon.svg) 
 JPG !
For example, if the user enters boook, and your training data contains a @reading_material entity with a book value, then fuzzy matching recognizes that the two terms (boook and book) mean the same thing.

When you enable both autocorrection and fuzzy matching, the fuzzy matching function runs before autocorrection is triggered. If it finds a term that it can match to an existing dictionary entity value or synonym, it adds the term to the list of words that belong to the skill, and does not correct it.

For example, if a user enters a sentence like I wnt to buy a boook, fuzzy matching recognizes that the term boook means the same thing as your entity value book, and adds it to the protected words list. Your assistant corrects the input to be, I want to buy a boook. Notice that it corrects wnt but does not correct the spelling of boook. If you see this type of result when you are testing your dialog, you might think your assistant is misbehaving. However, your assistant is not. Thanks to fuzzy matching, it correctly identifies boook as a @reading_material entity mention. And thanks to autocorrection revising the term to want, your assistant is able to map the input to your buy_something intent. Each feature does its part to help your assistant understand the meaning of the user input.





 How autocorrection works 

Normally, user input is saved as-is in the text field of the input object of the message. If, and only if the user input is corrected in some way, a new field is created in the input object, called original_text. This field stores the user's original input that includes any misspelled words in it. And the corrected text is added to the input.text field.

If you want to ask users to confirm the assistant's understanding of their meaning, you can do so in a way that takes into account that their input might have been corrected. Set the condition for the dialog node or conditional response that is asking for confirmation to original_text. This means that if the user's input was automatically corrected, show the corresponding response. And the response can contain the expression: You said: <?
If there are misspelled terms that you expected your assistant to correct, but it did not, then review the rules that your assistant uses to decide whether to correct a word to see if the word falls into the category of words that your assistant intentionally does not change.





 Autocorrection rules 

To avoid overcorrection, your assistant does not correct the spelling of the following types of input:



* Capitalized words
* Emojis
* Locations, such as states and street addresses
* Numbers and units of measurement or time
* Proper nouns, such as common first names or company names
* Text within quotation marks
* Words containing special characters, such as hyphens (-), asterisks (*), ampersands (&), or at signs (@), including those used in email addresses or URLs.
* Words that belong, meaning words that have implied significance because they occur in your action steps or dialog entity values, entity synonyms, or intent user examples.





 How is spelling autocorrection related to fuzzy matching? 

In dialog, fuzzy matching helps your assistant recognize dictionary-based entity mentions in user input. It uses a dictionary lookup approach to match a word from the user input to an existing entity value or synonym in the skill's training data. For example, if the user enters boook, and your training data contains a @reading_material entity with a book value, then fuzzy matching recognizes that the two terms (boook and book) mean the same thing.

In dialog, when you enable both autocorrection and fuzzy matching, the fuzzy matching function runs before autocorrection is triggered. If it finds a term that it can match to an existing dictionary entity value or synonym, it adds the term to the list of words that belong to the skill, and does not correct it.

For example, if a user enters a sentence like I wnt to buy a boook, fuzzy matching recognizes that the term boook means the same thing as your entity value book, and adds it to the protected words list. Your assistant corrects the input to be, I want to buy a boook. Notice that it corrects wnt but does not correct the spelling of boook.
You can use the parameter to direct the service to spell out individual characters more slowly, in groups of one, two, or three characters. Use the parameter with the SSML <say-as> element to control how the characters of a string are synthesized. For more information, see [Specifying how strings are spelled out](https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-synthesis-paramsparams-spell-out-mode).

The spell_out_mode parameter is beta functionality that is supported only for German voices.





 Word timings 

With the WebSocket interface, you can obtain timing information about the location of words in the audio that the service returns. Timing information is useful for synchronizing the input text and the audio.

You can use the SSML <mark> element to identify specific locations, such as word boundaries, in the audio. For languages other than Japanese, you can also request word timing information for all words of the input text. For more information, see [Generating word timings](https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-timing).







 Using speech synthesis features with expressive neural voice 

With expressive neural voices, the service supports additional features that modify how the text that you pass is synthesized into audio.



 Using speaking styles 

The expressive neural voices determine the sentiment of the text from the context of its words and phrases. The speech that they produce, in addition to having a very conversational style, reflects the mood of the text. You can embellish the voices' natural tendencies by indicating that all or some of the text is to emphasize a specific style: cheerful, empathetic, neutral, or uncertain. You use SSML to indicate the style and the text to which it is to be applied. For more information, see [Using speaking styles](https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-synthesis-expressivesyntheses-expressive-styles).





 Emphasizing interjections 

When you use expressive neural voices, the service automatically detects a collection of common interjections based on context.
In this example, an input of cancl transaction is autocorrected to cancel transaction.

This change applies to the following languages: English and French. For more information, see [Correcting user input](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-runtime-spell-checkdialog-runtime-spell-check-rules).





 1 March 2022 

Enhanced irrelevance detection update
: We revised the enhanced irrelevance detection classification algorithm. Now, enhanced irrelevant detection uses any provided counterexamples in training. This change does not affect workspaces without counterexamples. This update applies to the following languages: English, French, Spanish, Italian, and the universal language model. For more information, see [Defining what's irrelevant](https://cloud.ibm.com/docs/assistant?topic=assistant-irrelevance-detection).





 9 February 2022 

All instances now default to new experience
: All new instances of Watson Assistant now direct users to the new product experience by default.

Watson Assistant has been completely overhauled to simplify the end-to-end process of building and deploying a virtual assistant, reducing time to launch and enabling nontechnical authors to create virtual assistants without involving developers. For more information about the new Watson Assistant, and instructions for switching between the new and old experiences, see [Welcome to the new Watson Assistant](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-welcome-new-assistant).

If you would like to send us feedback on the new experience, please use [this form](https://form.asana.com/?k=vvRdQAmGMFAeEGRryhTA2w&d=8612789739828).





 4 February 2022 

Fuzzy matching updates
: Interactions between the stemming and misspelling fuzzy matching features are not allowed. Improve fuzzy matching behavior by limiting the interactions between different fuzzy matching features. This change applies to the following languages: English, French, German, and Czech.
By specifying offset, you retrieve a subset of items that starts with the offset value. Use offset with limit to page through your available resources.

Usage: If you have 100 secrets in your instance, and you want to retrieve secrets 26 through 50, use ..?offset=25&limit=25.

The minimum value is 0.

--limit (int64)
: The number of secrets to list.

The maximum value is 1000. The minimum value is 1.

--sort (string)
: Sort a collection of secrets by the specified field in ascending order. To sort in descending order use the - character

Available values: id | created_at | updated_at | expiration_date | secret_type | name

Usage: To sort a list of secrets by their creation date, use ../secrets?sort=created_at.

The maximum length is 17 characters. The minimum length is 2 characters. The value must match regular expression /^-?(id|created_at|updated_at|expiration_date|secret_type|name)$/.

--search (string)
: Filter secrets that contain the specified string in one or more of these fields: "id", "name", "description","labels", "secret_type".

The maximum length is 128 characters. The minimum length is 2 characters. The value must match regular expression /(.?)/.

--groups ([]string)
: Filter secrets by groups.

The list items must match regular expression /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|default)$/. The maximum length is 201 items. The minimum length is 0 items.

--all-pages (bool)
: Invoke multiple requests to display all pages of the collection for secrets.





 Example
/video/123456?title=0&byline=0&portrait=0&color=987654

And another user requests:

/video/123456?byline=0&color=987654&portrait=0&title=0

CIS goes back to the origin, even though we have the file in our cache.

Query String Sort sorts the query strings before they hit our cache, resulting in a higher cache hit rate. Enable Query String Sort using the toggle in the Caching page.





 Serving stale content 

Serve stale content keeps a limited version of the site online if the server goes down. Even if the content has expired, CIS continues serving cached content to users when origin servers are offline.