vania-janet/multiturn-rag-retrieval-data huggingface dataset:
No, you do not need to run your app in the same IBM Cloud space as the Secure Gateway service.





 Can a Secure Gateway client handle two gateways on the same machine? 

Yes. For a client to handle two gateways, you can specify multiple connections through the command line as shown in this excerpt from [Startup Argument Examples](https://cloud.ibm.com/docs/SecureGateway?topic=SecureGateway-client-interactingstartup-examples):

node lib/secgwclient.js <gateway_id_1> <gateway_id_2> -t <security_token_1>--<security_token_2>





 Can I retrieve error level logs for the Secure Gateway server? 

Error level logs on the server cannot be retrieved. Only errors that are made at the time of the request can be seen.





 Where can I find the client logs for the Secure Gateway client? 

By default, the client logs can be found at the following locations:



* Windows: %Installation_directory%/ibm/securegateway/client/logs/securegw_win_service.log
* Linux: /var/log/securegateway/client_console.log
* AIX: /opt/ibm/securegateway/client_console.log



You can change the location by using the -p option when starting the Secure Gateway client. See also [Startup Arguments and Options](https://cloud.ibm.com/docs/SecureGateway?topic=SecureGateway-client-interactingstartup-args).

For Docker, please run docker logs <container id> to get the logs





 What are the functional states of Secure Gateway? 

The different lifecycle states of gateways and destinations are as follows:



 Non-functional State 

The 1.7.0 release introduced a new tiered plan pricing model. With this model came the ability to mark both Gateways and Destinations as 'Active' or 'Inactive'. Part of the new plan billing structure charges the user for the number of Gateways and Destinations that they have.



* Inactive items are not billed
* Inactive Destinations do not have a provisioned cloud port.
* provenance_ids: An array that contains zero or more keys. Each key is a hashed value that you can send to IBM to provide feedback or receive support.



* termination_dates: An array that identifies the date or dates on which the document is to be terminated.



* confidence_level: The confidence level of the identification of the termination date. Possible values include High, Medium, and Low.
* text: A termination date, which is listed as a string.
* text_normalized: The normalized form of the termination date, which is listed as a string. This element is optional; it is returned only if normalized text exists.
* location: The location of the date as defined by its begin and end indexes.
* provenance_ids: An array that contains zero or more keys. Each key is a hashed value that you can send to IBM to provide feedback or receive support.



* contract_types: An array that identifies the document's contract type or types.



* confidence_level: The confidence level of the identification of the contract type. Possible values include High, Medium, and Low.
* text: A contract type, which is listed as a string.
* provenance_ids: An array that contains zero or more keys. Each key is a hashed value that you can send to IBM to provide feedback or receive support.
* location: The location of the contract type as defined by its begin and end indexes.



* contract_terms: An array that identifies the duration or durations of the contract.



* confidence_level: The confidence level of the identification of the contract term. Possible values include High, Medium, and Low.
* text: A contract term, which is listed as a string.
* text_normalized: The normalized text, if applicable.
* interpretation: The details of the normalized text, if applicable.



* value: A string listing the value that was found in the normalized text.
* numeric_value: An integer or float expressing the numeric value of the value key.
* unit**: A string listing the unit of the value that was found in the normalized text.
[More options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon on the General_Greetings node, and then select Add node below.

![Shows the Add node below menu opened from the #General_Greetings dialog node.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/gs-ass-dialog-add-about-restaurant.png)
4. Start to type about_restaurant into the If assistant recognizes field of this node. Then select the about_restaurant option.
5. Add the following text as the response.

To copy the text, click the ![Indicates you can copy the code block.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/cloud-copy.png) copy icon that is associated with the text block:

Truck Stop Gourmand is the brainchild of Gloria and Fred Smith. What started out as a food truck in 2004 has expanded into a thriving restaurant. We now have one brick-and-mortar restaurant in downtown Portland. The bigger kitchen brought with it new chefs, but each one is faithful to the philosophy that made the Smith food truck so popular to begin with: deliver fresh, local produce in inventive and delicious ways. Join us for lunch or dinner seven days a week. Or order a cake from our bakery.
6. Let's add an image to the response also.

Click Add response type. Select Image from the drop-down list.
Classify text 

Define categories by which text in your documents can be classified.

This topic describes how to classify text. If you want to classify documents, use the Content Mining application. For more information, see [Classifier types](https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-domain-classifierdomain-classifier-difs).

Add a text classifier to assign text from documents in your collection into categories. Discovery uses the labels and text examples that you provide to predict the categories of text in your collection.

To create a text classifier, complete the following steps:



1. Create a CSV file that contains example text followed by its category label per line.

The CSV file must be in UTF-8 encoding format and must meet the following requirements:



* The format must be text,label. The text is the example text, and the label is the category name.

Add complete sentences as text entries. Do not include any blank lines in the CSV file.

You can add more label columns if you need to apply more than one label to the sentence in the text column. For example, text,label,label.
* The file must have at least two columns with no headers.
* Add 10 or more entries for each category that you want to define. The minimum number of entries that are required per category is 3. The more examples that you provide for each category, the better the classifier can predict the categories of other content in your collection.



The following example is a CSV file that defines two categories, named facility_temperature and catering. The example text consists of feedback from conference attendees.

The rooms were too cold.,facility_temperature
Breakfast did not include gluten-free options.,catering
The rooms were too warm.,facility_temperature
I was very comfortable in the session rooms.,facility_temperature
The awards dinner was delicious.,catering
Coffee ran out during one of the breaks.,catering
The temperature was not comfortable.,facility_temperature
I was very happy with the selection at lunch.,catering
It was nice that you provided tea and coffee.
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 

The GetLanguage function takes a single span argument and returns the two-letter language code of the source text of the span. If the argument is null, the function returns null.

This statement produces meaningful results only if the data source is tagging text fields with the appropriate languages.





 GetLemma 

The GetLemma function takes a single Span or Text object as an argument and returns a string that contains the lemmatized form of the input span. If the argument is null, the function returns null. With dictionary entries for lemma match, this function can determine the lemmatized form of various tokens as returned by the tokenizer. For example, for the span went shopping GetLemma returns the lemma string go shop.

The results of this function follow these rules:



* If the input span starts at the beginning of a token and ends at the end of a token, the result contains the sequence of lemmas that begins with the lemma of the first token, followed by a white space, followed by the lemma of the second token, followed by a white space, and so on (for example, dog cat fish bird ...). If the lemma for a token consists of white spaces, escape the white space by using the backslash character ( \ ).
* If the input span starts or ends with white space (for example, it starts between two tokens or ends between two tokens), the function ignores the beginning and trailing white space.
* If the input span starts in the middle of a token or ends in the middle of a token, then the output consists of the following content, in this order, and separated by a white space:



* The surface form of the first partial token if it exists.
* The sequence of lemmas that correspond to the first to last complete tokens.
Only present in a development workload account. 
 Application operations access group n Access groups to enable applications teams to operate their development tools and monitor their app 





 Rationale for shared application infrastructure 

Benefits of using shared application infrastructure:



* Less over-provisioning reduces cost

Application hosting infrastructure must be sized to handle burst loads for an application. With a single application, it might be necessary to provision as much as 10x the steady state capability to handle bursts. However, when many applications are hosted in the cloud, the net load across many applications tends to smooth out as bursts rarely coincide. As a result, it might be necessary to only provision 10-50% extra capacity when you are hosting 10 or 20 applications thus providing considerable cost savings.
* Fixed cost elements can be shared across applications

Application hosting infrastructure typically includes that certain resources can be considered a fixed cost per cluster or per VPC. Consolidating many applications onto the same infrastructure allows this cost to be spread across many applications for further cost savings.
* Operations savings

Monitoring and maintaining an instance of application hosting infrastructure is approximately the same cost regardless of the size of that infrastructure. For example, maintaining a Kubernetes cluster is a fixed cost regardless of how many worker nodes it contains. Consolidating many applications onto the same infrastructure allows the cost of monitoring and maintaining infrastructure to be spread across many applications for operations savings.







 Other considerations 

Consider the following items when you are using shared application infrastructure:



* Application isolation is not binary

Applications can be network that is isolated but still share resources such as compute, RAM, and storage within a cluster. Policy around allocation of such shared resources must be considered with tradeoffs between cost and isolation in mind. For more information about network isolation, see [FS Cloud Boundary Protection](https://cloud.ibm.com/docs/framework-financial-services?topic=framework-financial-services-best-practicesbest-practices-boundary-protection).
* Not all application models can share infrastructure

Shared application infrastructure makes sense only for sets of applications that have similar architectures. For example, sets of applications that use stateless microservices, containers, and managed database services can easily be deployed together.
1,... 300000 (5 minutes) 



Many more configuration settings are available, but read the [Apache Kafka documentation](http://kafka.apache.org/documentation/) before you start to experiment with them.





 Consumer groups 

A consumer group is a group of consumers that cooperates to consume messages from one or more topics. The consumers in a group all use the same value for the group.id configuration. If you need more than one consumer to handle your workload, you can run multiple consumers in the same consumer group. Even if you need one consumer only, it's usual to also specify a value for group.id.

Each consumer group has a server in the cluster that is called the coordinator responsible for assigning partitions to the consumers in the group. This responsibility is spread across the servers in the cluster to even the load. The assignment of partitions to consumers can change at every group rebalance.

When a consumer joins a consumer group, it discovers the coordinator for the group. The consumer then tells the coordinator that it wants to join the group and the coordinator starts a rebalance of the partitions across the group to include the new member.

The messages from a single partition are processed by only one consumer in each group. This mechanism ensures that the messages on each partition are processed in order. See the following diagram for an example where a consumer group contains three consumers, and each consumer handles one topic partition that is produced to a topic.

Zoom

![Consumer groups diagram.](https://cloud.ibm.com/docs-content/v1/content/e0c3acba1296ff980e76d5db456d53adefaabba4/EventStreams/consumer_groups.png)

Figure 1. Consumer group example

When one of the following changes takes place in a consumer group, the group rebalances by shifting the assignment of partitions to the group members to accommodate the change:



* A consumer joins the group.
* A consumer leaves the group.
* A consumer is considered as no longer live by the coordinator.
* New partitions are added to an existing topic.
Baseline input/output operations per second (IOPS) performance for disk is 10 IOPS for each GB. Scale disk to increase the IOPS that your deployment can handle.

You cannot scale down storage.





 RAM 

If you find that your deployment is suffering from performance issues due to a lack of memory, you can scale the amount of RAM allocated to it. The amount of memory you allocate to your deployment is split between both members. Adding memory to the total allocation adds memory to both members equally.

[work_mem](https://www.postgresql.org/docs/current/runtime-config-resource.htmlGUC-WORK-MEM), [maintenance_work_mem](https://www.postgresql.org/docs/current/runtime-config-resource.htmlGUC-MAINTENANCE-WORK-MEM), and [effective_cache_size](https://www.postgresql.org/docs/current/runtime-config-query.htmlGUC-EFFECTIVE-CACHE-SIZE) are auto-tuned based on the deployment's total memory. They are also set when you scale memory on your deployment. When you scale, the values are adjusted without outage to the running deployment.

The amount of memory allocated to the database's shared buffer pool is not adjusted automatically when you scale your deployment. Setting it to 25% of the deployment's total memory is recommended. You can manually tune the shared buffer pool through the [shared_buffer](https://www.postgresql.org/docs/current/runtime-config-resource.htmlGUC-SHARED-BUFFERS) setting in your [PostgreSQL's configuration](https://cloud.ibm.com/docs/databases-for-postgresql?topic=databases-for-postgresql-changing-configuration). It is not auto-tuned because changing the shared_buffer requires a database restart.





 Dedicated Cores 

You can enable or increase the CPU allocation to the deployment.
Usage: slcli block access-revoke [OPTIONS] VOLUME_ID

Options:
-h, --hardware-id TEXT The ID of a hardware server to revoke authorization.
-v, --virtual-id TEXT The ID of a virtual server to revoke authorization.
-i, --ip-address-id TEXT The ID of an IP address to revoke authorization.
-p, --ip-address TEXT An IP address to revoke authorization.
--help Show this message and exit.





 Deleting a storage LUN in the UI 

If you no longer need a specific LUN, you can delete it at any time.

To cancel a storage LUN, it's necessary to revoke access from any hosts first.



1. Click Storage > Block Storage for Classic.
2. Select the volume to be canceled, click Actions, and select Delete Block Storage for Classic.
3. Confirm if want to delete the volume immediately or on the anniversary date of when the LUN was provisioned.

If you select the option to delete the LUN on its anniversary date, you can void the cancellation request before its anniversary date.
4. Click the Acknowledgment checkbox and click Delete.



When the volume is canceled, the request is followed by a 24-hour reclaim wait period. You can still see the volume in the console during those 24 hours (immediate cancellation) or until the anniversary date. Billing for the volume stops immediately. When the reclaim-period expires, the data is destroyed and the volume is removed from the console, too. For more information, see the [FAQ](https://cloud.ibm.com/docs/BlockStorage?topic=BlockStorage-block-storage-faqs).

Active replicas and dependent duplicates can block reclamation of the Storage volume. Make sure that the volume is no longer mounted, host authorizations are revoked, replication is canceled, and no dependent duplicates exist before you attempt to cancel the original volume.





 Deleting a storage LUN from the SLCLI 

If you no longer need a specific LUN, you can cancel it at any time.
Spread the default worker pool across zones to increase the availability of your [classic](https://cloud.ibm.com/docs/containers?topic=containers-add_workersadd_zone) or [VPC](https://cloud.ibm.com/docs/containers?topic=containers-add_workersvpc_add_zone) cluster. Ensure that at least 2 worker nodes exist in each zone, so that the private ALBs that you configure in subsequent steps are highly available and can properly receive version updates.
5. Set the IBM Cloud Kubernetes Service cluster as the context for this session.

ibmcloud ks cluster config --cluster <cluster_name_or_ID>
6. Create a namespace for the NGINX reverse proxy.

kubectl create ns dl-reverse-proxy







 Step 2: Set up private Ingress ALBs in the cluster 

Set up the private Ingress application load balancers (ALBs) for the IBM Cloud Kubernetes Service cluster, which expose the service for an NGINX reverse proxy on the private network. For more information, you can review the [considerations for exposing an app in your cluster to the private network only](https://cloud.ibm.com/docs/containers?topic=containers-cs_network_planningprivate_access) and specific guidance for [privately exposing apps with Ingress ALBs](https://cloud.ibm.com/docs/containers?topic=containers-managed-ingress-setupingress-custom-domain-private).



1. Verify that at least one ALB with a Type of private exists in each zone.

ibmcloud ks alb ls -c <cluster_name_or_ID>
2. Ensure that the private ALBs have a Status of enabled. If they are disabled, run the following command to enable each private ALB.

ibmcloud ks ingress alb enable classic --alb <ALB_ID> -c <cluster_name_or_ID> --version 0.45.0_1228_iks
3. Optional: Disable each public ALB.
For example, you can enter a note to help you identify associated instances.
6. Specify the number of virtual machines (VMs) you want to license.
7. Click the link or links of the terms that apply to your order. Ensure that you agree with these terms before you order the license.
8. Click Add to estimate or Create.







 Results 

The ordering of the Caveonix RiskForesight license starts automatically. You receive confirmation that the order is being processed and you can check the status of the order by viewing the license details.

When the license is ready to use, the status of the license is changed to Installed and you receive a notification by email.





 Related links 



* [Managing Caveonix RiskForesight licenses](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-caveonix_license_managing)
value A string that lists the value that was found in the normalized text. 
 numeric_value An integer or float expressing the numeric value of the value key. 
 unit A string that lists the unit of the value that was found in the normalized text. 
 location The location of the payment term as defined by its begin and end indexes. 
 provenance_ids An array of hashed values that you can send to IBM to provide feedback or receive support. 







 Contract currencies 

The contract_currencies array identifies the contract currency or currencies as declared in the document.



Contract currency values

 contract_currencies Description 

 confidence_level The confidence level of the identification of the contract currency. Possible values include High, Medium, and Low. 
 text The contract currency, listed as a string. 
 text_normalized The normalized text of the text if applicable, listed as a string in [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) format. 
 location The location of the contract currency as defined by its begin and end indexes. 
 provenance_ids An array of hashed values that you can send to IBM to provide feedback or receive support. 







 Provenance 

Each object in the types and categories arrays includes a provenance_ids array. The provenance_ids array has one or more keys. Each key is a hashed value that you can send to IBM to provide feedback or receive support.
For example, you might want to distinguish references to military or law enforcement personnel from references to civilians. When designing an extractor, several methods are available to identify and extract information on the basis of patterns in text. These methods can be used in a single extractor, or you can combine extractors.

Before defining your own pattern to meet your needs, check to see if a provided extractor can give you the desired results.

To create a sequence pattern:



1. Create individual extractors for all needed terms by extending provided extractors, or creating [dictionaries](https://cloud.ibm.com/docs/watson-knowledge-studio?topic=watson-knowledge-studio-managing-projects-and-extractorscreating-a-dictionary), [regular expressions](https://cloud.ibm.com/docs/watson-knowledge-studio?topic=watson-knowledge-studio-managing-projects-and-extractorscreating-a-regular-expression), [literals](https://cloud.ibm.com/docs/watson-knowledge-studio?topic=watson-knowledge-studio-managing-projects-and-extractorscreating-a-literal).
2. Drag and drop one extractor to another extractor on the canvas, aligning your cursor to reflect the order in which the term appears in the text pattern. A dark, bold blue line to the left or right of the extractor on which you are dropping the new extractor indicates the relative positions of the extractors. After you drop the new extractor, a box surrounds the two extractors to indicate the sequence. The box has a temporary title, Sequence n.
3. Optional: Select the sequence on the canvas and rename it in Extractor Properties under General.
4. Optional: If needed, repeat steps 1 and 2 to add additional elements to the pattern.





 Sequence pattern example 

To select references to military personnel:



1. Create a dictionary called Military Ranks that includes terms such as Warrant Officer, Sergeant, and Lieutenant.
2. Drag the Person extractor onto the canvas following the Military Ranks dictionary to indicate that the new sequence finds ranks then names.