vania-janet/multiturn-rag-retrieval-data huggingface dataset:
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 Integrating with phone and Twilio Flex 

You can use the phone integration to help your customers over the phone and transfer them to live agents inside of Twilio Flex. If, in the course of a conversation with your assistant, a customer asks to speak to a person, you can transfer the conversation directly to a Twilio Flex agent.



 Before you begin 

To use this integration pattern, make sure you have the following:



* Watson Assistant Plus or Enterprise Plan (required for phone integration)
* A Twilio account with the following products:



* Twilio Flex
* Twilio Voice with Programmable Voice API
* Twilio Studio









 Adding the Watson Assistant phone integration 

If you have not already added the phone integration to your assistant, follow these steps:



1. From the Assistants page, click to open the assistant tile that you want to deploy.
2. From the Integrations section, click Add integration.
3. Click Phone.
4. Click Create.
5. Click Close.



For now, this is all you need to do. For more information about configuring the phone integration, see [Integrating with phone](https://cloud.ibm.com/docs/assistant?topic=assistant-deploy-phone).





 Adding the Twilio Flex Project 

If you don't already have a Twilio Flex project, you can create one by following these steps:



1. From the project drop-down menu, click Create New Project. Specify a name for the project and verify your account information.
2. On the welcome page, select Flex as the Twilio product for your new project. Fill out the questionnaire and then click Get Started with Twilio.

After your Flex project has been provisioned, return to the [Twilio console](https://www.twilio.com/console). Make sure you have selected the correct project from the drop-down list.
If this automation is not needed, you can use the upgrade process that is documented.
* A workaround for the add nodes and add cluster features is to use the VMware vSphere offering. For more information, see [VMware vSphere overview](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-vs_vsphereclusteroverview). You must complete a number of manual tasks after the automated deployment.
* A workaround for add-on services is to deploy them manually using the documented reference architectures, see the Solution architectures on Classic and Solution Guides sections at [Getting started with VMware Solutions](https://cloud.ibm.com/docs/vmwaresolutions).







 Can I reuse the portable subnets that are deployed for my existing NSX-V vCenter Server instance? 

When you delete a VMware vCenter Server® instance, the networking (VLANs with private and public subnets) is cancelled together with the IBM Cloud bare metal servers. If you have networking assets in your migration, open a support ticket to ensure that IBM Support decouples the VLANs and related subnets from the original instance. Then, these assets are not cancelled when the vCenter Server instance is deleted.

The following recommendations apply:



* Design your migration so that you avoid the use of assets from the existing vCenter Server instance, which is to be deleted.
* If you need any existing assets, note and list all assets carefully.
* Open the support ticket before you delete the instance. List all assets that you want to maintain to ensure that these assets are decoupled from the original instance. If this process is not followed, the assets cannot be recovered after deletion.



However, if you have overlapping IP addressing challenges, the note the following guidance:



* You can still continue to use your existing instance management subnet, if it has IP addresses available and you don't use any IP addresses for your own use. The new instance uses new IP addresses for the vCenter server, NSX-T managers, and Active Directory servers (if AD servers are running on the VMware VMs) from the new instance management subnet.
(https://cloud.ibm.com/docs?tab=faqsfaq-ac-metrics) Rely on your own domain knowledge, business metrics, and usage forecasts to predict cost.
* Can you give some example pricing scenarios?



 Pricing Scenario 1: Mobile App with Feature Flags 

Assume you have a mobile app and you want feature flags and targeted segments to roll out features incrementally to different sets of users. Your historical metrics show 200,000 users but only about 50% are active in a month. An average active user opens the app or brings it to the foreground once every day. You expect to roll out a new feature twice per month.

You need the App Configuration Enterprise plan to support both feature flags and segmentation.

For this example, assume an Enterprise plan instance is $500 per month, active entity IDs are $0.01 each, and API calls are $10 per 100,000. NOTE: These prices are assumed for this example only. Current pricing may be different from the amounts shown in the example. See the App Configuration catalog page for current pricing.

App Configuration Enterprise instances: 1 @ $500 per month Active Entity IDs: 200,000 total app instances (users) * 50% active = 100,000 Included Active Entity IDs: 10,000 Net Active Entity IDs: 100,000 - 10,000 = 90,000 @ $0.01 per Active Entity ID = $900

API Calls: 100,000 Active Entity IDs * 30 app invocations per month = 3,000,000 Included API Calls: 1,000,000 Net API Calls: 3,000,000 - 1,000,000 = 2,000,000 @ $10/ 100,000 API Calls = $200 TOTAL COST: $500 + $900 + $200 = $1600 per month





 Pricing Scenario 2: Microservice with Feature Flags 

Assume you have five backend microservices that support your mobile app. To fully test new microservice features, you want to dark launch them into production and target them only to testers. The mobile app is used worldwide, so you have the set of five microservices in each of 3 regions worldwide, and you want to test in your app in each region before going live.
Using Knative with Code Engine 

IBM Cloud® Code Engine is designed so that you do not need to interact with the underlying technology it is built upon. However, if you have existing tools that are based on Knative, you can still use it with Code Engine. Code Engine supports the Knative APIs (and Kubernetes) and their CLI commands. For more information about Kubernetes, see [Using Kubernetes with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kubernetes).



 What is the supported version of Knative? 

Code Engine supports the version 1.6 Knative APIs and its CLI commands.





 Installing the Knative command-line interface 

To install Knative (kn), download and install the [Knative CLI](https://github.com/knative/client/blob/main/docs/README.md).

To use Knative with Code Engine, you must first set up your environment to interact with the Kubernetes API of Code Engine. For more information, see [Installing the Kubernetes command-line interface](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kuberneteskubernetes-kubectl).

For more information about Kubernetes and Knative and how they work with Code Engine architecture, see [Learning about Code Engine architecture and workload isolation](https://cloud.ibm.com/docs/codeengine?topic=codeengine-architecture).





 Interacting with Kubernetes API 

To interact with your project from the Kubernetes command-line interface, kubectl, or with Knative, kn you must set up your environment to interact with the Kubernetes API of Code Engine.

Before you begin



* You must [create your project](https://cloud.ibm.com/docs/codeengine?topic=codeengine-manage-projectcreate-a-project) and the project must be in active status.
The build size option is allowed only if the --build-source option is set on this app update command, or your application currently has an associated build. This value is optional. The default value is medium.

--build-source, --source, --bsrc, --src
: The URL of the Git repository or the path to local source that contains your source code; for example https://github.com/IBM/CodeEngine or .. This value is optional.

--build-strategy, --strategy, --bstr, --str
: The strategy to use for building the image. Valid values are dockerfile and buildpacks. The build strategy option is allowed only if the --build-source option is set on this app update command, or your application currently has an associated build. If not specified, the build strategy is determined by Code Engine if --build-source is specified and the source is on your local machine. This value is optional. The default value is dockerfile.

--build-timeout, --bto
: The amount of time, in seconds, that can pass before the build must succeed or fail. The build timeout option is allowed only if the --build-source option is set on this app update command, or your application currently has an associated build. This value is optional. The default value is 600.

--cluster-local, --cl
: Deploy the application with a project-only endpoint. Setting a project-only endpoint means that your app is not accessible from the public internet and network access is only possible from other Code Engine components that are running in the same project. This value is optional. The default value is false.

--command, --cmd, -c
: Set commands for the application. Specify one command per --command option; for example, --cmd cmdA --cmd cmdB. This value overrides the default command that is specified within the container image. This value is optional.

--commands-clear, --cc
: Clear application commands.
* Download the latest config file google-services.json under Your apps.







 Step 4: Add a generic API source 

Take the following steps:



* Go to the Sources section of the Event Notifications dashboard.
* Click Add and select an API Source.
* Type a name and an optional description and click Add.







 Step 5: Create an Event Notifications destination 

Click Destinations in the Event Notifications console and add the following destination details:



* Name: add a name for the Destination.
* Description: add an optional description for the destination.
* Type: select Android Push Notifications (FCM) type from the dropdown list.
* Select a destination plan: Pre-production destination or Production destination.



* Pre-production destination - select this destination as low-cost push destination, for your development and test environments.
* Production destination - use the full capability of this destination. Unlimited devices and outbound messages allowed.



* Update the FCM Push Credentials with the project_id, private_key, and client_email from the file downloaded earlier.
* Click Add.







 Step 6: Create an Event Notifications topic 

Select Topics in the Event Notifications console and click Create. Enter the following topic details:



* Name: enter a name for the topic.
* Description: add an optional description for the topic.
* Source: select a source from the dropdown list.
* Event type: select event type from the dropdown list.
* Event sub type: select event sub type from the event sub type dropdown list.
* Severity: select severity from the severity dropdown list.
* Advanced conditions: write your own custom conditions, which must follow [jsonpath specifications](https://jsonpath.com/).







 Step 7: Create an Event Notifications subscription 

Click Subscriptions in the Event Notifications console. Enter the following subscription details:



* Click Create to display subscription wizard.
* Complete the following subscription details:



* Subscription name: name of the subscription.
* Subscription description: add an optional description.



* Under the Subscribe to a topic section, select a topic from the drop-down list and select a destination from the destination drop-down list.
For more information, see [Extend base image and create a new custom image](https://github.ibm.com/hybrid-cloud-infrastructure-research/tracker/wiki/Extend-base-image-and-create-a-new-custom-image).





 Step 8: (Optional) Set up hybrid connectivity 

If you want to set up a hybrid connectivity environment by using VPN, see the instructions [Installing a VPN to an HPC cluster](https://cloud.ibm.com/docs/ibm-spectrum-lsf?topic=ibm-spectrum-lsf-install-vpn-hpc-cluster).

If you would like to use Direct Link, see the instructions for [Installing Direct Link to an HPC cluster](https://cloud.ibm.com/docs/ibm-spectrum-lsf?topic=ibm-spectrum-lsf-installing-direct-link-cluster).
The smart contract package file must be less than 25 MB in size. You can use the IBM Blockchain Visual Studio Code extension to [create a smart contract package](https://cloud.ibm.com/docs/blockchain?topic=blockchain-develop-vscodepackaging-a-smart-contract). When you install the package from the Smart contracts tab, you can select one or more peer nodes to install the smart contracts on.



If only one peer exists in the console, the smart contract will be installed on it. You are not prompted to select a peer to install the smart contract on. You can navigate to the nodes tab and click a peer that is managed by your console to view the list of smart contracts installed on an individual peer.

You can return to the Smart contracts tab later to install the smart contract on additional peers, even after the smart contract was instantiated on the channel. If the version of the smart contract that you install is the same as the instantiated version, these additional peers can process transactions just like the existing peers.

This console cannot be used to install Hyperledger Composer .bna files.





 Step three: Instantiate a smart contract 

Smart contracts are instantiated on a channel. Any console member with peers joined to a channel can instantiate a smart contract and specify the associated [endorsement policy](https://cloud.ibm.com/docs/blockchain?topic=blockchain-glossaryglossary-endorsement-policy).

Use your console to perform these steps:



1. On the smart contracts tab, find the smart contract from the list of smart contracts that are installed on your peers and click Instantiate from the overflow menu on the right side of the row.
2. On the side panel that opens, select a channel to instantiate the smart contract on. You can select the channel, named channel1, which you created. Then, click Next.
3. Specify the [endorsement policy for the smart contract](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-smart-contracts-v14ibp-console-smart-contracts-endorse), described in the following section.
Alternatives for your Direct Link Connect deployment 

Describes alternatives that you can choose for your Direct Link Connect deployments.

The default deployments of Direct Link Connect do not include redundant configuration, although they can be deployed diversely on discrete routers.

Many customers choose to create redundant deployments by setting up an additional Direct Link connection. The following diagrams illustrate some schematic representations of alternative Direct Link deployments

IBM Cloud Direct Link also makes it easy to establish diverse Connect deployments, as shown in Figure 1.

Zoom

![Diverse Connect](https://cloud.ibm.com/docs-content/v1/content/b698ea8660e1f51664f7479f870bbf8840335d06/dl//images/connect_alt_2.png)

Figure 1. A diverse IBM Cloud Direct Link Connect deployment to enable redundancy via Customer BGP schema



  Using Connect along with other clouds 

Some customers want to use Direct Link Connect along with other cloud providers, such as AWS, Azure, or Google Cloud. The following schematic shows an overview of how to establish this type of connection with a Telco (service provider).

Zoom

![Other Clouds Connect](https://cloud.ibm.com/docs-content/v1/content/b698ea8660e1f51664f7479f870bbf8840335d06/dl//images/connect_alt_3.png)

Figure 2. Using Direct Link Connect in conjunction with other clouds
The idea would be to allow for higher availability requirement apps to immediately become available with enough capacity to run them if a failure occurs. But to save money, the cluster would be scaled up to match only the primary cluster and support the lower requirement workloads when needed. These apps have longer RTO in which the scaling operation would complete.

The same technique can be applied to updates to the Code Engine applications or Kubernetes Service clusters. The first step would be to scale up the backup cluster to full capacity, matching the primary cluster, before starting the upgrade. Then, do some sort of blue/green update where workload can be switched to the backup while the primary cluster is upgraded. After the primary cluster is upgraded and verified, the workload would be switched back, the backup cluster could be scaled back down, and then upgraded.

How does the failover happen? For example, using Code Engine:

There are two Code Engine projects that are provisioned, one in US South (primary MZR) and the other in US East (backup MZR). During normal operation, all traffic is routed to the project in US South. To manage traffic between the two MZRs, follow the [Code Engine instructions](https://cloud.ibm.com/docs/codeengine?topic=codeengine-deploy-multiple-regions).

Zoom

![Code Engine example application architecture](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/overview/images/BCDR-Code-Engine.svg)

Figure 6. An architecture diagram showing a Code Engine example application architecture

Any configuration that is mentioned on the Code Engine project is performed on both projects to maintain consistency between the primary and backup instances.

In the event that a failover needs to be triggered, these are the basic steps to follow.



1. Make sure that the app is deployed in Code Engine in the backup MZR.
2. Make sure that any data that is needed by the app is available in the backup MZR.
We must choose a region for our automated deployment CD toolchain. Select the option referencing the same region as chosen earlier, '5'.

--------------------------------------------------------------------------------
Select a region for your toolchain from the following options:
--------------------------------------------------------------------------------
1. eu-de (Frankfurt)
2. eu-gb (London)
3. jp-tok
4. us-east (Washington DC)
5. us-south (Dallas)
--------------------------------------------------------------------------------
0. Return to the previous selection
--------------------------------------------------------------------------------
? Enter selection number:> 5

Generating a new application reminds us that the toolchain used to deploy your app needs some additional configuration.
* [CREATIVE COMMONS ATTRIBUTION 2.5 GENERIC](https://cloud.ibm.com/docs/codeengine?topic=codeengine-noticescca25gen)
* [CREATIVE COMMONS ATTRIBUTION 3.0 GENERIC](https://cloud.ibm.com/docs/codeengine?topic=codeengine-noticescca3gen)
* [CREATIVE COMMONS ATTRIBUTION 4.0 GENERIC](https://cloud.ibm.com/docs/codeengine?topic=codeengine-noticescca4gen)







 Using Kubernetes with Code Engine 

[Using Kubernetes with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kuberneteskubernetes)



* [Installing the Kubernetes command-line interface](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kuberneteskubernetes-kubectl)
* [Interacting with Kubernetes API](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kuberneteskubectl-kubeconfig)
* [Required access authorities to work with Kubernetes API](https://cloud.ibm.com/docs/codeengine?topic=codeengine-kuberneteskubectl-api)







 Using Knative with Code Engine 

[Using Knative with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative)



* [What is the supported version of Knative?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative-version)
* [Installing the Knative command-line interface](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative-kubectl)
Select the service and the required service and platform access.



* The service access role allows access for using the service and performing service API calls.
* The platform access role enables actions to be performed on platform resources, such as creating an instance, connecting instances to apps, and assigning user access.



4. Click Save.







 Importing existing IAM access 

Complete the following steps if you previously defined IAM access for an existing version and want to import the values to your current version.

Imported IAM access doesn't replace any IAM access that you already added to your current version.



1. Click Configure version > Next > Next.
2. Click Add.
3. Click Import IAM access from a previous version.
4. Select the version that contains the IAM access that you want to import.
5. Click Add.











 Adding license agreements 

If users are required to accept any license agreements beyond the IBM Cloud Services Agreement when they install the software, provide the URL to each agreement or import licenses from an existing version.



 Adding new license agreements 



1. Click Add license agreements > Add license.
2. Enter the name and URL, and click Add license.
3. After entering all additional license agreements, click Next.







 Importing license agreements 

Complete these steps if you previously added license agreements for an existing version and want to import the licenses to your current version.

Imported licenses don't replace any license agreements that you already added to your current version.



1. Click Add license agreements > Add license.
2. Click Import licenses from a previous version.
3. Select the version that contains the licenses that you want to import.
4. Click Import.









 Reviewing your readme file 

When users install the software, they can view product information by clicking the Readme file link. This information is generated from the readme file that you uploaded to your source repository.



1. From the Edit readme tab, click the Edit icon !
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
* Add kotlin-android plugin to the App level build.gradle

plugins {
id 'com.android.application'
id 'kotlin-android'
}



4. Initialize the SDK.

AppConfiguration appConfiguration = AppConfiguration.getInstance();
appConfiguration.init(getApplication(), "region", "guid", "apikey");

// To start the configuration fetching operation, set the collectionId in the following way.
appConfiguration.setContext("collectionId", "environmentId");

Where:



* region - Region name where the service instance is created. Use AppConfiguration.REGION_US_SOUTH for Dallas, AppConfiguration.REGION_US_EAST for Washington DC, AppConfiguration.REGION_EU_GB for London, and AppConfiguration.REGION_AU_SYD for Sydney.
* guid - GUID of the App Configuration service. Get it from the service credentials section of the dashboard.
* apikey - ApiKey of the App Configuration service. Get it from the service credentials section of the dashboard.
* collectionId - ID of the collection created in App Configuration service instance.
* environmentId- ID of the environment created in App Configuration service instance under the Environments section.



5. Listen to the feature changes

appConfiguration.registerConfigurationUpdateListener(new ConfigurationUpdateListener() {
@Override
public void onConfigurationUpdate() {
// ADD YOUR CODE
}
});





 Examples for using property and feature-related APIs for Android apps written in Java 

Refer to the examples for using the property and feature-related APIs.



* Get single feature

Feature feature = appConfiguration.getFeature("featureId");
* Get all features