vania-janet/multiturn-rag-retrieval-data huggingface dataset:
![Search icon in the Intents page header](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/entities-search-icon.png)

System entities are not searchable.
2. Enter a search term or phrase.

The first time you search for something, you might get a message that says the skill is being indexed. If so, wait a minute, and then resubmit the search term.

![Entity search term](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/entities-search-index.png)



Entities containing your search term, with corresponding examples, are shown.

![Entity search return](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/entities-search-results.png)





 Downloading entities 

You can download a number of entities to a CSV file, so you can then upload and reuse them in another Watson Assistant application.



* Pattern information is included in the downloaded CSV file. Any string wrapped with / will be considered a pattern (as opposed to a synonym).
* Annotations associated with contexual entities are not downloaded. You must download the entire dialog skill to capture both the entity value and any associated annotations.





1. Go to the Entities page



* To download all entities, meaning the entities that are listed on this and any additional pages, do not select any individual entities. Instead, click the Download icon !
If the problem continues, go to [IBM Cloud Support](https://cloud.ibm.com/unifiedsupport/supportcenter).





 BXNUI0018E 

Message: The instances for the '{0}' app weren't retrieved because a problem occurred contacting Cloud Foundry.

Try again later. If you see this message again, go to the [IBM Cloud status page](https://cloud.ibm.com/status?selected=status) to check whether a service or component has an issue. If the problem continues, go to [IBM Cloud Support](https://cloud.ibm.com/unifiedsupport/supportcenter).





 BXNUI0019E 

Message: The instances for your app weren't retrieved because a problem occurred contacting Cloud Foundry.

Try again later. If you see this message again, go to the [IBM Cloud status page](https://cloud.ibm.com/status?selected=status) to check whether a service or component has an issue. If the problem continues, go to [IBM Cloud Support](https://cloud.ibm.com/unifiedsupport/supportcenter).





 BXNUI0020E 

Message: The settings for the '{0}' app weren't updated because a problem occurred contacting Cloud Foundry.

Try again later. If you see this message again, go to the [IBM Cloud status page](https://cloud.ibm.com/status?selected=status) to check whether a service or component has an issue. If the problem continues, go to [IBM Cloud Support](https://cloud.ibm.com/unifiedsupport/supportcenter).





 BXNUI0021E 

Message: The environment variables for the '{0}' app weren't updated because a problem occurred contacting Cloud Foundry.

Try again later. If you see this message again, go to the [IBM Cloud status page](https://cloud.ibm.com/status?selected=status) to check whether a service or component has an issue.
Troubleshooting 

If you have problems with Natural Language Understanding, the following troubleshooting tips might help.



 Entities and relations entity types are not consistent 

The entity type systems for the entities and relations features are not always consistent. For some languages and version dates, relations results will contain entity types that are different from the entity types that appear in entities results. See [Entity types and subtypes](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-entity-type-systems) and [Relation types](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-relation-type-systems) for more details.





 Incorrect language detection 

The automatic language detection might not be accurate for text that contains fewer than 100 characters. If the service doesn't detect the correct language of your text, you can [override automatic language detection](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-overriding-language-detection).





 Too many requests 

If you are seeing a "429: Too many requests" error, your service instance is likely hitting the concurrent requests limit. View the [Usage limits](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-usage-limitsconcurrent-requests) page for more information.





 Unable to analyze more than one URL 

You can specify only one publicly accessible URL in your API request, therefore you cannot extract sentiment scoring from several URLs. You could, however, compile the text from multiple web pages and then pass that entire compiled text for sentiment analysis.





 Unexpected results from webpage analysis 

Analyzing a webpage might return unexpected results in some cases. To investigate, try setting the return_analyzed_text parameter to true to inspect the actual text that is being analyzed in your request.
* For the [WebSocket interface](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-websockets), use the /v1/recognize method. The specified custom model is used for all requests that are sent over the connection.

var access_token = {access_token};
var wsURI = '{ws_url}/v1/recognize'
+ '?access_token=' + access_token
+ '&model=en-US_Telephony'
+ '&language_customization_id={customization_id}';
var websocket = new WebSocket(wsURI);
* For the [synchronous HTTP interface](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-http), use the POST /v1/recognize method. The specified custom model is used for that request.

IBM Cloud

curl -X POST -u "apikey:{apikey}" --header "Content-Type: audio/flac" --data-binary @audio-file.flac "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"

IBM Cloud Pak for Data

curl -X POST --header "Authorization: Bearer {token}" --header "Content-Type: audio/flac" --data-binary @audio-file.flac "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
* For the [asynchronous HTTP interface](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-async), use the POST /v1/recognitions method. The specified custom model is used for that request.

IBM Cloud
"voice_telephony": {
"private":{
"user_phone_number":"+18595553456",
"sip_request_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com",
"sip_from_uri":"sips:+18565558576@twilio.com",
"sip_to_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com"
},
"sip_call_id": "Aob2-2743-5678-1234",
"assistant_phone_number":"+18885556789",
"sip_custom_invite_headers": {
"custom-header1": "123",
"custom-header2": "456"
}
}





 Request properties (set by the assistant) 



Request properties of the voice_telephony object

 Name Type Description 

 final_utterance_timeout_count Integer The time (in milliseconds) to wait for a final utterance from the Speech to Text service. If no final utterance is received before the timeout occurs, the phone integration sends a message to the assistant with the final_utterance_timeout_occurred property set to true. 
 post_response_timeout_count Integer The time (in milliseconds) to wait for a new utterance after the last response is played. If no utterance is received before the timeout occurs, the phone integration sends a message to the assistant that includes the post_response_timeout_occurred property set to true. 
 cdr_custom_data Object A JSON object containing key/value pairs to be stored in the CDR record for the call. Each time this object is sent, its contents are merged with data sent previously during the call. 
 turn_settings.timeout_count Integer The time (in milliseconds) to wait for Watson Assistant to finish processing each conversation turn. 







 Example request JSON
* Enter a time range such as yesterday 10am to yesterday 11am, last fri 4:30pm to 11/12 1 AM, last wed 4:30pm to 23/05 1 AM, or May 20 10am to May 22 10am. Make sure to include to to separate the initial timestamp from the end timestamp.



5. Press ENTER.

You might get the error message: Your request is taking longer than expected, try refreshing your browser in a bit as we try to catch up. Retry. You might get this error when the timeframe that you have specified does not have any events available to show. Change the time query, and retry.







 View an event in context 

At any time, you can view each event line in context.

Complete the following steps:



1. In the web UI, click the Views icon ![Views icon](https://cloud.ibm.com/docs-content/v1/content/6f3c07c34058f637b1c86044ca4f9b24214330a7/activity-tracker/images/views.png).
2. Select Everything or a custom view.
3. Identify a line that you want to explore.
4. Expand the event line.

Information about line identifiers, tags, and labels is displayed.
5. Click View in Context to see the event line in context of other entries from that host, app, or both.



When you finish exploring the event, click Close to close the line.





 Copy an event to the clipboard 

Complete the following steps to copy an event to the clipboard:



1. In the web UI, click the Views icon ![Views icon](https://cloud.ibm.com/docs-content/v1/content/6f3c07c34058f637b1c86044ca4f9b24214330a7/activity-tracker/images/views.png).
2. Select Everything or a custom view.
3. Identify a line that you want to explore.
If you want to add them there, you can create a new credential with the existing user information.

Enter the username and password in the JSON field Add Inline Configuration Parameters, or specify a file where the JSON information is stored. For example, putting {"existing_credentials":{"username":"Robert","password":"supersecure"}} in the field generates Service Credentials with the username "Robert" and password "supersecure" filled into connection strings.

Generating credentials from an existing user does not check for or create that user.







 Connection String Breakdown 



 The HTTPS Section 

The "https" section contains information that is suited to applications that make connections to Elasticsearch.



Table 1. https/URI connection information

 Field Name Index Description 

 Type Type of connection - for Elasticsearch, it is "uri" 
 Scheme Scheme for a URI - for Elasticsearch, it is "https" 
 Path Path for a URI 
 Authentication Username The username that you use to connect. 
 Authentication Password A password for the user - might be shown as $PASSWORD 
 Authentication Method How authentication takes place; "direct" authentication is handled by the driver. 
 Hosts 0... A hostname and port to connect to 
 Composed 0... A URI combining Scheme, Authentication, Host, and Path 
 Certificate Name The allocated name for the self-signed certificate for database deployment 
 Certificate Base64 A base64 encoded version of the certificate. 





* 0... indicates that may be one or more of these entries in an array.







 The CLI Section 

The "CLI" section contains information that is suited for connecting with cURL.



Table 2. curl connection information

 Field Name Index Description 

 Bin The recommended binary to create a connection; in this case it is curl. 
 Composed A formatted command to establish a connection to your deployment. The command combines the Bin executable, Environment variable settings, and uses Arguments as command-line parameters. 
 Environment A list of key/values you set as environment variables. 
 Arguments 0... The information that is passed as arguments to the command shown in the Bin field.
Add a user or service ID to the access group 

Continue to set up your group by adding users or service IDs.



 Add a user to the access group 

Complete the following steps to add a user:



1. From the menu bar, click Manage > Access (IAM), and select Access Groups.
2. Select the name of the group that you want to assign access to.
3. Click Add users on the Users tab.
4. Select the users that you want to add from the list, and click Add to group.







 Add a service ID to the access group 

Complete the following steps to add a service ID:



1. From the menu bar, click Manage > Access (IAM), and select Access Groups.
2. Select the name of the group that you want to assign access to.
3. Click the Service IDs tab, and click Add service ID.
4. Select the IDs that you want to add from the list, and click Add to group.
A user's predefined attributes are empty until their first authentication. Although they're empty, the user is still fully authenticated. You can use their profile ID just as you would someone who has already signed in. For instance, you can modify, search, or delete the profile.



 Before you begin 

Before you get started, you must have the following information:



* Which identity provider that the user will sign in with.
* The email of the user that you want to add or their [unique identifier](https://cloud.ibm.com/docs/appid?topic=appid-preregisterpreregister-idp-provide).
* The [custom attribute](https://cloud.ibm.com/docs/appid?topic=appid-profiles) information that you want to assign.







 With the GUI 

You can add a future user and their custom attributes by using the GUI.

The ability to add future users is disabled for the user name and password configuration of Cloud Directory.



1. Go to the User Profiles tab of the App ID dashboard.
2. Click Future users. If you already have future users, you see a table with a list of the user's that you already added. To add another user, click Build a profile. If you don't have any users yet, click Get Started. A screen opens.
3. Enter your user's email.
4. Select the identity provider that they sign in with from the Identity Provider drop down.
5. Add custom attributes by entering the information in a JSON object as shown in the following example.

{
"food": "Pizza",
"preference": "Vegetarian",
"points": "37"
}
6. Click Save. The table displays and the user is assigned an identifier.







 With the API 

You can add a future user and their custom attributes by using the API.



1. Log in to IBM Cloud.

ibmcloud login
2. Find your IAM token by running the following command.
If you want to add them there, you can create a new credential with the existing user information. Enter the username and password in the JSON field under Add Inline Configuration Parameters. For example, {"existing_credentials":{"username":"Robert","password":"supersecure"}}. Basically, you send in the username and password, and Service Credentials generates the connection strings with the credentials filled in.

Generating credentials from an existing user does not check for or create that user.

Users that you [create through Service Credentials](https://cloud.ibm.com/docs/databases-for-mongodb?topic=databases-for-mongodb-connection-strings) are given the roles [readWriteAnyDatabase](https://docs.mongodb.com/manual/reference/built-in-roles/readWrite) and [dbAdminAnyDatabase](https://docs.mongodb.com/manual/reference/built-in-roles/dbAdmin).

If you need users that are created from Service Credentials to have a different role, you can use the admin user to change their role.





 Managing Users and Roles through the CLI 

Users that are created in the CLI are given the roles [readWriteAnyDatabase](https://docs.mongodb.com/manual/reference/built-in-roles/readWrite) and [dbAdminAnyDatabase](https://docs.mongodb.com/manual/reference/built-in-roles/dbAdmin).

If you need users to have a different role, you can use the admin user to change their role.

Users that are created directly from the CLI do not appear in Service Credentials, but you can add them.

If you manage your service through the [Cloud Databases CLI plug-in](https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli), create a new user with cdb user-create. For example, to create a new user for an "example-deployment", use the following command:
Step 3: Integrate the App ID instance as the ID provider for the administrator's account 



1. Go to [Manage → Access (IAM) → Identity Providers](https://cloud.ibm.com/iam/identity-providers). For Type, choose IBM Cloud App ID, then click Create.
2. Specify a name and select the App ID instance from the drop-down list.
3. Select the checkbox to enable the ID provider.

Zoom

![Create identity provider](https://cloud.ibm.com/docs-content/v1/content/5f399fa794584e8a662591b494b9a99aa927c74c/quantum-computing/images/org-guide-idp-reference.png)

Figure 3. Create identity provider page
4. The default IdP URL is shown. Share this URL with users when they need to log in.







 Step 4: Add Users 

When you use App ID as ID provider with the Cloud directory, you can create users in the IBM Cloud user interface.



1. Open the App ID instance page from the [resource list](https://cloud.ibm.com/resources) Services and software section.
2. Go to Manage Authentication → Cloud Directory → Users, and click Create User. Enter the user details.







 Step 5: Create or modify users' project assignments 



1. Go to [Manage → Access (IAM) → Users](https://cloud.ibm.com/iam/users) and click the user.

Zoom

![Change User Access](https://cloud.ibm.com/docs-content/v1/content/5f399fa794584e8a662591b494b9a99aa927c74c/quantum-computing/images/org-guide-manage-user.png)

Figure 11. Change User Access

If you don't see the user that you want to manage, verify that they logged in to IBM Cloud at least once.
Let's get started!

Be sure that you have the following prerequisites before you begin:



* An instance of the App ID service
* A set of service credentials







 Step 1: Configuring your App ID instance 

Before you can start adding attributes for your users, you need to configure your instance of App ID.



1. In the Identity Providers tab of the service dashboard, enable Cloud Directory. Although this tutorial focuses [Cloud Directory](https://cloud.ibm.com/docs/appid?topic=appid-cloud-directory), you might also choose to use any of the other IdP's such as [SAML](https://cloud.ibm.com/docs/appid?topic=appid-enterprise), [Facebook](https://cloud.ibm.com/docs/appid?topic=appid-socialfacebook), [Google](https://cloud.ibm.com/docs/appid?topic=appid-socialgoogle), or a [custom provider](https://cloud.ibm.com/docs/appid?topic=appid-custom-identity).
2. In the Cloud Directory > Email Verification tab, enable verification and set Allow users to sign-in to your app without first verifying their email address to Yes.
3. Optionally, in the Profiles tab, set Change custom attributes from the app to Enabled. This action allows users to update their attributes after they answer your initial questionnaire.



Excellent! Your dashboard is configured and you're ready to start setting attributes.





 Step 2: Creating user attributes 

When your users interact with your questionnaire, you can map their answers to specific attributes, then add those attributes to their file.

Your application is responsible for mapping the answers to the specific attributes that you want to add to the profile.



1. Update the profile with the attribute.
"preference": "Vegetarian",
"points": "37"
}
6. Click Save. The table displays and the user is assigned an identifier.







 With the API 

You can add a future user and their custom attributes by using the API.



1. Log in to IBM Cloud.

ibmcloud login
2. Find your IAM token by running the following command.

ibmcloud iam oauth-tokens
3. Make a POST request to the /users endpoint that contains a description of the user and the attributes that you want to set as a JSON object.

Header:

POST <managementUrl>/management/v4/<tenantID>/users
Host: <managementServerURL>
Authorization: 'Bearer <IAMToken>'
Content-Type: application/json

Body:

{
"idp": "<identityProvider>",
"idp-identity": "<userUniqueIdentifier>",
"profile": {
"attributes": {
"mealPreference":"vegeterian"
}
}
}



Table 2. The components of the POST request

 Components Description 

 idp The identity provider that the user authenticates with. Options include: saml, cloud_directory, facebook, google, appid_custom, ibmid. 
 idp-identity The unique identifier provided by the identity provider. 
 profile The user's profile that contains the custom attribute JSON mapping. 



Example request:

$ curl --request POST --url 'https://<managementURI>/users --header 'Authorization: Bearer <IAMToken>' --header 'Content-Type: application/json' --data '{"idp": "saml", "idp-identity": "user@ibm.com", "profile": { "attributes": { "role": "admin",
"frequent_flyer_points": 1000 }}}'
4. Verify that registration was successful.
"width": 50
}
},
"first_name": "David",
"last_name": "Test-user",
"email": "dave.test@domain.com",
"idpType": "facebook"
}
}
],
"attributes": {
"role": "admin"
}
}

To see the full user data set that App ID supports, check out [the SCIM core schema](https://datatracker.ietf.org/doc/html/rfc7643section-8.2).







 Setting custom attributes with the UI 

You can add custom information about your users to their profile such a role that they hold or preference that they have by setting a custom attribute. To set an attribute, you can use the App ID UI.

By default, custom attributes are modifiable and can be updated by using an App ID access token from a client application. Without taking proper precautions, either the user or the application can update custom attributes immediately following the first user sign-in, if they have an access token. This can potentially lead to unintended consequences. For example, a user might change their role from user to admin, which might expose administrative privileges to malicious users.



1. Go to the User profiles > Settings tab of the App ID dashboard.
2. Toggle custom attributes to Enabled.
3. Click View profile in the overflow menu of the row for the user that you want set the attribute for.
4. In the Custom attributes section, click Edit.
5. Enter the attributes that you want to add as a JSON object. For example, {"role":"admin"}.







 Setting custom attributes with the API 

As an administrator, you can add custom information about your users to their profile such a role that they hold or preference that they have by setting a custom attribute. To set an attribute, you can use the App ID API to call the /users endpoint.
To assign custom attributes for future users, you can use either [the GUI](https://cloud.ibm.com/docs/appid?topic=appid-preregisterpreregister-gui) or the [preregistration endpoint](https://cloud.ibm.com/docs/appid?topic=appid-preregisterpreregister-api).



 How are users identified? 

You can identify your users by using one of the following:



* The email address with which the user signs in to your app.
* If available, the user's unique ID, called the GUID, in the identity provider. Although this identifier always exists and is guaranteed to be unique, it is not always readily available or easy to understand. For instance, Cloud Directory uses a random 16-byte GUID.







 What information do the identity providers provide? 

Check out the following table to see which type of identity information that you can use.



Table 1. Types of identity information that can be used with each provider

 Identity provider GUID Email Sub 

 Cloud Directory ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) 
 Facebook ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) 
 Google ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) ![Checkmark icon](https://cloud.ibm.com/docs-content/v1/content/icons/checkmark-icon.svg) 
 SAML !