From 87862686f74b3210f82abf8d8c45a38f8a1d9e5f Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 30 Oct 2025 18:26:57 +0530 Subject: [PATCH 01/26] Lightspeed Core Developer Lightspeed --- artifacts/attributes.adoc | 4 +- ...mbly-customizing-developer-lightspeed.adoc | 4 +- assemblies/assembly-developer-lightspeed.adoc | 2 +- ...bout-lightspeed-stack-and-llama-stack.adoc | 17 + .../con-about-road-core-service.adoc | 11 - .../con-rag-embeddings.adoc | 4 +- .../con-supported-architecture.adoc | 7 +- .../proc-configuring-mcp-components.adoc | 41 ++ .../proc-gathering-feedback.adoc | 6 +- ...installing-and-configuring-lightspeed.adoc | 368 ++++++++++-------- .../proc-using-question-validation.adoc | 36 +- 11 files changed, 306 insertions(+), 194 deletions(-) create mode 100644 modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc delete mode 100644 modules/developer-lightspeed/con-about-road-core-service.adoc create mode 100644 modules/developer-lightspeed/proc-configuring-mcp-components.adoc diff --git a/artifacts/attributes.adoc b/artifacts/attributes.adoc index 0d3281d975..8647b308d7 100644 --- a/artifacts/attributes.adoc +++ b/artifacts/attributes.adoc @@ -53,8 +53,8 @@ :odf-name: OpenShift Data Foundation :osd-brand-name: Red Hat OpenShift Dedicated :osd-short: OpenShift Dedicated -:rcs-name: Road-Core Service -:rcs-short: RCS +:lcs-name: Lightspeed Core Service +:lcs-short: LCS :rhacs-brand-name: Red Hat Advanced Cluster Security :rhacs-short: Advanced Cluster Security :rhacs-very-short: ACS diff --git a/assemblies/assembly-customizing-developer-lightspeed.adoc b/assemblies/assembly-customizing-developer-lightspeed.adoc index ee82abb321..9046290a70 100644 --- a/assemblies/assembly-customizing-developer-lightspeed.adoc +++ b/assemblies/assembly-customizing-developer-lightspeed.adoc @@ -14,4 +14,6 @@ include::modules/developer-lightspeed/proc-updating-the-system-prompt.adoc[level include::modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc[leveloffset=+1] -include::modules/developer-lightspeed/proc-changing-your-llm-provider.adoc[leveloffset=+1] \ No newline at end of file +include::modules/developer-lightspeed/proc-changing-your-llm-provider.adoc[leveloffset=+1] + +include::modules/developer-lightspeed/proc-configuring-mcp-components.adoc[leveloffset=+1] \ No newline at end of file diff --git a/assemblies/assembly-developer-lightspeed.adoc b/assemblies/assembly-developer-lightspeed.adoc index 33d581a58d..99013ad668 100644 --- a/assemblies/assembly-developer-lightspeed.adoc +++ b/assemblies/assembly-developer-lightspeed.adoc @@ -8,7 +8,7 @@ include::modules/developer-lightspeed/con-about-developer-lightspeed.adoc[levelo include::modules/developer-lightspeed/con-supported-architecture.adoc[leveloffset=+1] -include::modules/developer-lightspeed/con-about-road-core-service.adoc[leveloffset=+2] +include::modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc[leveloffset=+2] include::modules/developer-lightspeed/con-rag-embeddings.adoc[leveloffset=+1] diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc new file mode 100644 index 0000000000..68af17b0ca --- /dev/null +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -0,0 +1,17 @@ +:_mod-docs-content-type: CONCEPT + +[id="con-about-lightspeed-stack-and-llama-stack_{context}"] += About {lcs-name} and Llama Stack + +The **{lcs-name} ({lcs-short})** and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. + +{lcs-short} acts as an intermediary service layer for interfacing with Large Language Model (LLM) providers. {lcs-short} handles LLM provider setup, authentication, and includes key functionalities such as question validation, user feedback collection, and Retrieval Augmented Generation (RAG). + +Llama Stack provides the model server functionality that {lcs-short} uses to process requests. This service requires a Kubernetes Secret to securely store environment variables for the chosen LLM provider. + +The {ls-brand-name} plugin within {rhdh-short} communicates with the {lcs-short} sidecar to send prompts and receives responses from the configured LLM service. The {lcs-short} sidecar centralizes the LLM interaction logic and configuration alongside your {rhdh-short} instance. + +[NOTE] +==== +{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and then install the {ls-brand-name} plugin on your {rhdh-short} instance. +==== \ No newline at end of file diff --git a/modules/developer-lightspeed/con-about-road-core-service.adoc b/modules/developer-lightspeed/con-about-road-core-service.adoc deleted file mode 100644 index 615529bd5d..0000000000 --- a/modules/developer-lightspeed/con-about-road-core-service.adoc +++ /dev/null @@ -1,11 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="con-about-rcs_{context}"] -= About {rcs-name} - -The {rcs-name} ({rcs-short}) acts as an intermediary and service layer for interfacing with LLM providers. {rcs-short} handles LLM provider setup, authentication, and includes functionalities such as question validation, feedback, and Retrieval Augmented Generation (RAG). The {ls-short} plugin within {product-very-short} communicates with the {rcs-short} sidecar to send prompts and receives responses from the configured LLM service. The {rcs-short} sidecar is used to centralize the LLM interaction logic and configuration alongside your {product-very-short} instance. - -[NOTE] -==== -{ls-brand-name} is a Developer Preview release. You must manually deploy the {rcs-name} as a sidecar container, and then install the {ls-short} plugin on your {product-very-short} instance. -==== diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index 854c47078a..eb115f300e 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -3,4 +3,6 @@ [id="con-rag-embeddings_{context}"] = Retrieval Augmented Generation embeddings -The {product} documentation set has been added to the {rcs-name} as a RAG embedding. +The {product} documentation set has been added as a Retrieval-Augmented Generation (RAG) data source. + +The {lcs-name} ({lcs-short}) sidecar handles the RAG process, using specialized Llama Stack components to manage the documentation data and generate vector embeddings. \ No newline at end of file diff --git a/modules/developer-lightspeed/con-supported-architecture.adoc b/modules/developer-lightspeed/con-supported-architecture.adoc index f217e6fd93..4f743505c1 100644 --- a/modules/developer-lightspeed/con-supported-architecture.adoc +++ b/modules/developer-lightspeed/con-supported-architecture.adoc @@ -3,13 +3,14 @@ [id="con-supported-architecture_{context}"] = Supported architecture for {ls-brand-name} -{ls-short} is available as a plugin on all platforms that host {product-very-short}, and it requires the use of {rcs-name} ({rcs-short}) as a sidecar container. +{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires the use of {lcs-name}, which runs as a sidecar container. {lcs-short} acts as the intermediary layer for interfacing with Large Language Model (LLM) providers. +{ls-short} handles functionalities like question validation, feedback, and Retrieval-Augmented Generation (RAG) by leveraging components often built with Llama Stack. [NOTE] ==== -Currently, the provided {rcs-short} image is built for x86 platforms. To use other platforms (for example, arm64), ensure that you enable emulation. +Currently, the provided {lcs-short} image is built for x86 platforms. To use other platforms (for example, arm64), you must ensure that you enable emulation. ==== .Additional resources -* link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] +* link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc new file mode 100644 index 0000000000..db50731bd2 --- /dev/null +++ b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc @@ -0,0 +1,41 @@ +:_mod-docs-content-type: PROCEDURE + +[id="proc-configure-mcp-components_{context}"] += Configuring the Model Context Protocol (MCP) + +You can configure the Model Context Protocol (MCP) to leverage {ls-short}. With MCP configuration, the deployed {lcs-short} and Llama Stack server utilize external tools and retrieve real-time data. This allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. You must synchronize settings across three components: the Llama Stack tool definition, the {lcs-short} server endpoint definition, and the {ls-brand-name} Plugin authorization token. + +.Procedure +. Configure the {llama-name} tool definition. +Define the MCP provider in the `tool_runtime` section of the Llama Stack configuration file (`run.yaml`). ++ +[source,yaml] +---- +providers: + tool_runtime: + - provider_id: model-context-protocol + provider_type: remote::model-context-protocol + config: {} +---- + +. Configure the {lcs-short} server endpoint. +In the {lcs-short} configuration file (`lightspeed-stack.yaml`), define the MCP server endpoints. The `provider_id` must** match the Llama Stack definition (`model-context-protocol`). + +[source,yaml] +---- +mcp_servers: + - name: mcp::backstage + provider_id: model-context-protocol + url: https://rhdh-mcp-proxy-apicast-production.apps.rosa.redhat-ai-dev.m6no.p3.openshiftapps.com:443/api/mcp-actions/v1 +---- + +. Configure the {ls-brand-name} plugin authorization token. +In the {ls-brand-name} plugin configuration file (`lightspeed-app-config.yaml`), specify the MCP servers and provide the token for authorization. This token is used when the plugin makes requests to the {lcs-short} `/v1/streaming_query` endpoint. ++ +[source,yaml] +---- +lightspeed: + mcpServers: + - name: mcp::backstage + token: ${MCP_TOKEN} +---- \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-gathering-feedback.adoc b/modules/developer-lightspeed/proc-gathering-feedback.adoc index d8693da449..f77219f6e1 100644 --- a/modules/developer-lightspeed/proc-gathering-feedback.adoc +++ b/modules/developer-lightspeed/proc-gathering-feedback.adoc @@ -3,17 +3,17 @@ [id="proc-gathering-feedback_{context}"] = Gathering feedback in {ls-short} -Feedback collection is an optional feature configured on the {rcs-short}. This feature gathers user feedback by providing thumbs-up/down ratings and text comments directly from the chat window. {rcs-short} gathers the feedback, along with the user's query and the response of the model, and stores it as a JSON file within the local file system of the Pod for later collection and analysis by the platform administrator. This can be useful for assessing model performance and improving your users' experience. The collected feedback is stored in the cluster where {product-very-short} and {rcs-short} are deployed, and as such, is only accessible by the platform administrators for that cluster. For users that intend to have their data removed, they must request their respective platform administrator to perform that action as {company-name} does not collect (or have access to) any of this data. +Feedback collection is an optional feature configured on the {lcs-short}. This feature gathers user feedback by providing thumbs-up/down ratings and text comments directly from the chat window. {lcs-short} gathers the feedback, along with the user's query and the response of the model, and stores it as a JSON file within the local file system of the Pod for later collection and analysis by the platform administrator. This can be useful for assessing model performance and improving your users' experience. The collected feedback is stored in the cluster where {product-very-short} and {lcs-short} are deployed, and as such, is only accessible by the platform administrators for that cluster. For users that intend to have their data removed, they must request their respective platform administrator to perform that action as {company-name} does not collect (or have access to) any of this data. .Procedure -* To enable or disable feedback, in your {rcs-short} configuration file, add the following settings: +* To enable or disable feedback, in your {lcs-short} configuration file, add the following settings: + [source,yaml] ---- llm_providers: ....... -ols_config: +lightspeed_stack: ...... user_data_collection: feedback_disabled: diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 449e8d9c7c..bda6346791 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,7 +3,7 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -You must install and configure both the {ls-short} and the {rcs-short} sidecar container manually. +You must install and configure the {ls-short}, {lcs-short}, and Llama Stack container manually. .Prerequisites * You are logged into your {ocp-short} account. @@ -13,7 +13,7 @@ You must install and configure both the {ls-short} and the {rcs-short} sidecar c .Procedure -. Create the {rcs-short} ConfigMap. +. Create the {lcs-short} ConfigMap (`lightspeed-stack.yaml`). .. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. .. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: @@ -23,70 +23,73 @@ You must install and configure both the {ls-short} and the {rcs-short} sidecar c kind: ConfigMap apiVersion: v1 metadata: - name: rcsconfig - namespace: __ # Enter your namespace (For example, `rhdh`) -data: - rcsconfig.yaml: | - llm_providers: - # Start: Do not remove this block - - name: dummy - type: openai - url: https://dummy.com - models: - - name: dummymodel - # End: Do not remove this block - ols_config: - user_data_collection: - log_level: "DEBUG" - feedback_disabled: false - feedback_storage: "/tmp/feedback" - reference_content: - product_docs_index_path: "./vector_db/rhdh_product_docs/1.7" - product_docs_index_id: rhdh-product-docs-1_7 - embeddings_model_path: "./embeddings_model" - conversation_cache: - type: memory - memory: - max_entries: 1000 - logging_config: - app_log_level: info - lib_log_level: warning - uvicorn_log_level: info - suppress_metrics_in_log: false - suppress_auth_checks_warning_in_log: false - authentication_config: - module: "noop" - default_provider: dummy - default_model: dummymodel - query_validation_method: disabled - dev_config: - enable_dev_ui: false - disable_auth: false - disable_tls: true - enable_system_prompt_override: true - user_data_collector_config: - user_agent: "example-user-agent" - ingress_url: "https://example.ingress.com/upload" ----- -+ -[IMPORTANT] -==== -Do not remove the block in the `llm_providers` section. This requirement is crucial when working with {ls-short} because of limitations discovered in Road Core. If you decide to use an alternative LLM provider, you should refer to additional information in the guide. For more information, see {developer-lightspeed-link}#proc-changing-your-llm-provider_customizing-developer-lightspeed[Changing your LLM provider]. -==== -.. Optional: Configure the number of workers that scale the REST API by specifying the following example to the `ols_config.max_workers` parameter in the {rcs-short} ConfigMap. + name: Lightspeed Core Service (LCS) +service: + host: 0.0.0.0 + port: 8080 + auth_enabled: false + workers: 1 + color_log: true + access_log: true +llama_stack: + use_as_library_client: false + url: http://localhost:8321 +user_data_collection: + feedback_enabled: true + feedback_storage: "/tmp/data/feedback" + transcripts_enabled: true + transcripts_storage: "/tmp/data/transcripts" +authentication: + module: "noop" +conversation_cache: + type: "sqlite" + sqlite: + db_path: "./lcs_cache.db" +mcp_servers: + - name: mcp::backstage + provider_id: model-context-protocol + url: https://rhdh-mcp-proxy-apicast-production.apps.rosa.redhat-ai-dev.m6no.p3.openshiftapps.com:443/api/mcp-actions/v1 +---- +where: +`mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. + +.. Click *Create*. + +. Create a Llama Stack ConfigMap. +.. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. +.. Click *Create ConfigMaps*. +.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: + [source,yaml] ---- -ols_config: - max_workers: __ ----- -.. Click *Create*. +models: + - model_id: sentence-transformers/all-mpnet-base-v2 + metadata: + embedding_dimension: 768 + model_type: embedding + provider_id: sentence-transformers + provider_model_id: "/app-root/embeddings_model" +providers: + inference: + - provider_id: team-cluster + provider_type: remote::vllm + config: + url: __/v1 + api-token: + - provider_id: openai + provider_type: remote::openai + config: + api_key: __ +---- +where: +`__`:: Enter your LLM server details. +`__`:: Enter your OpenAI API key. . Create the {ls-short} ConfigMap. + [NOTE] ==== -Create a dedicated {ls-short} ConfigMap instead of adding an additional section to your existing {product-very-short} custom application configuration file (for example, `lightspeed-app-config.yaml`). Creating two files prevents the entire {product-very-short} ConfigMap from being loaded into {rcs-short}. +Create a dedicated {ls-short} ConfigMap instead of adding an additional section to your existing {product-very-short} custom application configuration file (for example, `lightspeed-app-config.yaml`). Creating two files prevents the entire {product-very-short} ConfigMap from being loaded into {lcs-short}. ==== .. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMap*. @@ -115,11 +118,9 @@ data: - https://cdn.jsdelivr.net lightspeed: - # REQUIRED: Configure LLM servers with OpenAI API compatibility - servers: - - id: ${LLM_SERVER_ID} - url: ${LLM_SERVER_URL} - token: ${LLM_SERVER_TOKEN} + mcpServers: + - name: mcp::backstage + token: ${MCP_TOKEN} # OPTIONAL: Enable/disable question validation (default: true) # When enabled, restricts questions to RHDH-related topics for better security @@ -157,6 +158,30 @@ type: Opaque ---- .. Click *Create*. +. Create the Llama Stack secret file. +.. In the {ocp-short} web console, go to *Secrets*. +.. Click *Create > Key/value secret*. +.. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: ++ +[source,yaml] +---- +apiVersion: v1 +kind: Secret +metadata: + name: llama-stack-secrets +type: Opaque +stringData: + VLLM_URL: "" # Set this if you are using redhat-ai-dev Llama Stack image + VLLM_API_KEY: "" # Set this if you are using redhat-ai-dev Llama Stack + VLLM_MAX_TOKENS: "" # Optional + VLLM_TLS_VERIFY: "" # Optional + OLLAMA_URL: "" # Set if you altered the run.yaml to use it + OPENAI_API_KEY: "" # Set if you altered the run.yaml to use it + VALIDATION_PROVIDER: "" # One of vllm, ollama, openai depending on above + VALIDATION_MODEL_NAME: "" # Name of model you want used for validation +---- +.. Click *Create*. + . To your existing dynamic plugins ConfigMap (for example, `dynamic-plugins-rhdh.yaml`), add the {ls-short} plugin image as shown in the following example: + [source,yaml,subs="+attributes"] @@ -205,7 +230,7 @@ includes: . Update your deployment configuration based on your installation method: .. For an Operator-installed {product-very-short} instance, update your {product-custom-resource-type} custom resource (CR). -... In the `spec.application.appConfig.configMaps` section, add the {ls-short} custom app configuration as shown in the following example: +... In the `spec.application.appConfig.configMaps` section, add the {ls-short} and Llama Stack custom app configurations as shown in the following example: + [source,yaml] ---- @@ -213,120 +238,119 @@ includes: configMaps: - name: lightspeed-app-config mountPath: /opt/app-root/src + configMaps: + - name: llama-stack + mountPath: /opt/app-root/src ---- -... Update the `extraVolumes` specification to include the {rcs-short} ConfigMap as shown in the following example: +... Update the `extraVolumes` specification to include the {lcs-short} and Llama Stack ConfigMaps as shown in the following example: + [source,yaml] ---- volumes: - configMap: - name: rcsconfig - name: rcsconfig + name: lightspeed-stack + - configMap: + name: llama-stack ---- -... Update the `volumeMounts` specification to mount the {rcs-short} ConfigMap as shown in the following example: +... Update the `volumeMounts` specification to mount the {lcs-short} and Llama Stack ConfigMaps as shown in the following example: + [source,yaml] ---- volumeMounts: - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig - subPath: rcsconfig.yaml + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml - mountPath: /app-root/config/app-config-rhdh.yaml name: lightspeed-app-config subPath: app-config.yaml + - mountPath: /app-root-config/llama-stack/run.yaml + subPath: llama-stack/run.yaml ---- -... Add the {ls-short} Secret file as shown in the following example: +... Add the {ls-short} and Llama Stack Secret file as shown in the following example: + [source,yaml] ---- envFrom: - secretRef: name: lightspeed-secrets + - secretRef: + name: llama-stack-secrets ---- -... In your `deployment.patch.spec.template.spec.containers.env` section, set the {rcs-short} environment variables as shown in the following example: +... In your `deployment.patch.spec.template.spec.containers.env` section, set the {lcs-short} and Llama Stack environment variables as shown in the following example: + [source,yaml] ---- - name: PROJECT value: rhdh - - name: RCS_CONFIG_FILE - value: /app-root/config/rcsconfig.yaml + - name: LCS_CONFIG_FILE + value: /app-root/config/lightspeed-stack.yaml - name: RHDH_CONFIG_FILE value: /app-root/config/app-config-rhdh.yaml + - name: LLAMA_CONFIG_FILE + value: /app-root/config/llama-stack/run.yaml ---- + [NOTE] ==== -Your {product-very-short} container is typically already present in your CR. You are adding the second container definition `road-core-sidecar` as the {rcs-short} sidecar. +Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. The Pods are automatically restarted. + -.Example of a Backstage CR with the {rcs-short} container +.Example of a Backstage CR with the {lcs-short} container [source,yaml,subs=+attributes] ---- -apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: - name: backstage - namespace: __ # your {product-very-short} instance namespace +... +name: name +namespace: namespace spec: - application: - appConfig: - configMaps: -# Adding the Developer Lightspeed custom app config file - - name: lightspeed-app-config - mountPath: /opt/app-root/src - dynamicPluginsConfigMapName: dynamic-plugins-rhdh - extraEnvs: -# Adding the Developer Lightspeed secrets file - secrets: - - name: lightspeed-secrets - replicas: 1 - extraFiles: - mounthPath: /opt/app-root/src - replicas: 1 - route: - enabled: true - database: - enableLocalDb: true - deployment: - patch: - spec: - template: - spec: - containers: - - env: - - name: PROJECT - value: rhdh -# Mounting the RCS sidecar to your {product-very-short} instance - - name: RCS_CONFIG_FILE - value: /app-root/config/rcsconfig.yaml -# Your existing {product-very-short} ConfigMap - - name: RHDH_CONFIG_FILE - value: /app-root/config/app-config-rhdh.yaml - envFrom: - - secretRef: - name: lightspeed-secrets - image: 'quay.io/redhat-ai-dev/road-core-service:rcs-06302025-rhdh-1.7' - name: road-core-sidecar - ports: - - containerPort: 8080 - name: rcs-backend - protocol: TCP - volumeMounts: -# Mounting the RCS sidecar to your {product-very-short} instance - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig - subPath: rcsconfig.yaml -# Mounting the Lightspeed app config file to your RCS container - - mountPath: /app-root/config/app-config-rhdh.yaml - name: lightspeed-app-config - subPath: app-config.yaml - volumes: - - configMap: - name: rcsconfig - name: rcsconfig - + deployment: + patch: + spec: + template: + spec: + initContainers: + - name: init-rag-data + image: 'quay.io/redhat-ai-dev/rag-content:release-1.7-lcs' + command: + - "sh" + - "-c" + - "echo 'Copying RAG data...'; cp -r /rag/vector_db/rhdh_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" + volumeMounts: + - mountPath: /data + name: rag-data-volume + containers: + - envFrom: + - secretRef: + name: llama-stack-secrets + image: 'quay.io/redhat-ai-dev/llama-stack:latest' + name: llama-stack + volumeMounts: + - mountPath: /app-root/.llama + name: shared-storage + - mountPath: /app-root/embeddings_model + name: rag-data-volume + subPath: embeddings_model + - mountPath: /app-root/vector_db/rhdh_product_docs + name: rag-data-volume + subPath: rhdh_product_docs + - image: + name: lightspeed-core + volumeMounts: + - mountPath: /app-root/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml + - mountPath: /tmp/data/feedback + name: shared-storage + volumes: + - configMap: + name: lightspeed-stack + name: lightspeed-stack + - emptyDir: {} + name: shared-storage + - emptyDir: {} + name: rag-data-volume ---- .. For a Helm-installed {product-very-short} instance, update your Helm chart. ... Add your dynamic plugins configuration in the`global.dynamic` property as shown in the following example: @@ -383,31 +407,31 @@ dynamic: - configMapRef: lightspeed-app-config filename: app-config.yaml ---- -... Update the `extraVolumes` section to include the {rcs-short} ConfigMap as shown in the following example: +... Update the `extraVolumes` section to include the {lcs-short} ConfigMap as shown in the following example: + [source,yaml] ---- extraVolumes: - configMap: - name: rcsconfig - name: rcsconfig + name: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack ---- -... Update the `extraVolumeMounts` section to mount the {rcs-short} ConfigMap as shown in the following example: +... Update the `extraVolumeMounts` section to mount the {lcs-short} and Llama Stack ConfigMap as shown in the following example: + [source,yaml] ---- extraVolumeMounts: - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack ---- -... Add the {ls-short} Secret file as shown in the following example: +... Add the {ls-short} and Llama Stack Secret file as shown in the following example: + [source,yaml] ---- extraEnvVarsSecrets: - lightspeed-secrets ---- -... Add the {rcs-short} image as shown in the following example: +... Add the {lcs-short} image as shown in the following example: + [source,yaml,subs="+attributes"] ---- @@ -415,36 +439,39 @@ extraVolumes: - env: - name: PROJECT value: rhdh - - name: RCS_CONFIG_FILE - value: /app-root/config/rcsconfig.yaml + - name: LCS_CONFIG_FILE + value: /app-root/config/lightspeed-stack.yaml - name: RHDH_CONFIG_FILE value: /app-root/config/lightspeed-app-config.yaml envFrom: - secretRef: name: lightspeed-secrets - image: 'quay.io/redhat-ai-dev/road-core-service:rcs-06302025-rhdh-1.7' + image: 'quay.io/redhat-ai-dev/llama-stack:latest' name: road-core-sidecar ports: - containerPort: 8080 - name: rcs-backend + name: lcs-backend protocol: TCP volumeMounts: - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig - subPath: rcsconfig.yaml + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml - mountPath: /app-root/config/lightspeed-app-config.yaml name: lightspeed-app-config subPath: app-config.yaml + - mountPath: /app-root/run.yaml + name: llama-stack-config + subPath: run.yaml ---- + [NOTE] ==== -Your {product-very-short} container is typically already present in your Helm chart. You are adding the second container definition `road-core-sidecar` as the {rcs-short} sidecar. +Your {product-very-short} container is typically already present in your Helm chart. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. ... Click *Helm upgrade*. + -.Example of a Helm chart with the RCS container +.Example of a Helm chart with the LCS and Llama Stack container [source,yaml,subs="+attributes"] ---- global: @@ -458,27 +485,34 @@ upstream: extraAppConfig: - configMapRef: lightspeed-app-config filename: app-config.yaml + - configMapRef: llama-stack-config + filename: run.yaml extraContainers: - env: - name: PROJECT value: rhdh - - name: RCS_CONFIG_FILE - value: /app-root/config/rcsconfig.yaml + - name: LCS_CONFIG_FILE + value: /app-root/config/lcsconfig.yaml + - name: LLAMA_STACK_CONFIG_FILE + value: /app-root/run.yaml - name: RHDH_CONFIG_FILE value: /app-root/config/lightspeed-app-config.yaml envFrom: - secretRef: name: lightspeed-secrets - image: 'quay.io/redhat-ai-dev/road-core-service:rcs-06302025-rhdh-1.7' - name: road-core-sidecar + image: 'quay.io/redhat-ai-dev/llama-stack:latest' + name: lightspeed-core-sidecar ports: - containerPort: 8080 - name: rcs-backend + name: lcs-backend protocol: TCP volumeMounts: - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig - subPath: rcsconfig.yaml + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml + - mountPath: /app-root/run.yaml + name: llama-stack-config + subPath: run.yaml - mountPath: /app-root/config/lightspeed-app-config.yaml name: lightspeed-app-config subPath: lightspeed-app-config.yaml @@ -487,12 +521,14 @@ upstream: extraEnvVarsSecrets: - lightspeed-secrets extraVolumeMounts: - - mountPath: /app-root/config/rcsconfig.yaml - name: rcsconfig + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack + - mountPath: /app-root/run.yaml + name: llama-stack-config extraVolumes: - configMap: - name: rcsconfig - name: rcsconfig + name: lightspeed-stack + name: lightspeed-stack ... image: ... diff --git a/modules/developer-lightspeed/proc-using-question-validation.adoc b/modules/developer-lightspeed/proc-using-question-validation.adoc index 0d2c7271e4..eaf7df0b85 100644 --- a/modules/developer-lightspeed/proc-using-question-validation.adoc +++ b/modules/developer-lightspeed/proc-using-question-validation.adoc @@ -3,18 +3,42 @@ [id="proc-using-question-validation_{context}"] = Using Question Validation in {ls-short} -{ls-short} utilizes *Question Validation* to validate the query to check if it relates to {product}. +Question Validation is a feature utilized by {ls-short} to validate user queries, making sure they relate specifically to {product-very-short} and related topics. When enabled, this feature restricts questions to {product-very-short}-related topics for enhanced security. -When a user asks a question that falls outside of these restricted topics, {ls-short} provides a general response to notify the user that the question is out of scope. -If you want to disable the *Question Validation* feature to allow for broader questioning, you can set `questionValidation` to `false` in your {ls-short} app config file. +. Prerequisites + +* The Developer Lightspeed for RHDH plugin must be configured in your {product-very-short} instance. +* The {lcs-short} and Llama Stack sidecars must be deployed, as LCS handles question validation by implementing it as a safety shield on the Llama Stack side. .Procedure -* To disable the *Question Validation* feature, in your {ls-short} `{my-app-config-file}` file, add the following example: +The Question Validation feature is controlled through configuration settings in both the frontend plugin configuration and the Llama Stack backend. + +. Make sure the feature is configured in the {ls-short} plugin. + +To make sure the feature is explicitly enabled or to confirm its state, verify the setting in the {ls-short} application configuration file (`lightspeed-app-config.yaml`) as showin the following code: + [source,yaml] ---- lightspeed: - # ... other lightspeed configurations - questionValidation: false +# OPTIONAL: Enable/disable question validation (default: true) +# When enabled, restricts questions to RHDH-related topics for better security + questionValidation: true +---- +[NOTE] +==== +* By default, `Question Validation` is typically enabled, restricting queries to {product-very-short}-related topics. + +* The configuration of the LLM servers must also be present in this file, referencing the appropriate environment variables sourced from a Kubernetes Secret. +==== +. Verify backend safety shield configuration. + +For `Question Validation` to function, the Llama Stack sidecar (which handles the AI logic) must have the `lightspeed_question_validity` provider configured as a safety shield in its `run.yaml`. This shield defines the allowed topics (Backstage, {product-very-short}, Kubernetes, Openshift, CI/CD, and GitOps Pipelines). ++ +.Llama Stack Safety Shield Definition (Example Snippet from run.yaml) +[source,yaml] ---- +shields: + - shield_id: lightspeed_question_validity-shield + provider_id: lightspeed_question_validity +---- \ No newline at end of file From a8410ad3caf9f1d62f8c8e7c115a9a3d2ca8eb0f Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 31 Oct 2025 15:23:44 +0530 Subject: [PATCH 02/26] Incorporated some of the comments --- ...bout-lightspeed-stack-and-llama-stack.adoc | 12 +- .../con-rag-embeddings.adoc | 4 +- .../con-supported-architecture.adoc | 9 +- .../proc-configuring-mcp-components.adoc | 27 +- .../proc-gathering-feedback.adoc | 14 +- ...installing-and-configuring-lightspeed.adoc | 258 +++++++++++++++--- .../proc-using-question-validation.adoc | 92 ++++++- 7 files changed, 341 insertions(+), 75 deletions(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 68af17b0ca..431de6fb11 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -3,15 +3,17 @@ [id="con-about-lightspeed-stack-and-llama-stack_{context}"] = About {lcs-name} and Llama Stack -The **{lcs-name} ({lcs-short})** and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. +The {lcs-name} ({lcs-short}) and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. -{lcs-short} acts as an intermediary service layer for interfacing with Large Language Model (LLM) providers. {lcs-short} handles LLM provider setup, authentication, and includes key functionalities such as question validation, user feedback collection, and Retrieval Augmented Generation (RAG). +{lcs-short} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the Large Language Model (LLM), inference providers, tool runtime providers, safety providers, and Retrieval Augmented Generation (RAG) settings. -Llama Stack provides the model server functionality that {lcs-short} uses to process requests. This service requires a Kubernetes Secret to securely store environment variables for the chosen LLM provider. +* **{lcs-short}** manages authentication, user feedback collection, MCP server configuration, and caching. -The {ls-brand-name} plugin within {rhdh-short} communicates with the {lcs-short} sidecar to send prompts and receives responses from the configured LLM service. The {lcs-short} sidecar centralizes the LLM interaction logic and configuration alongside your {rhdh-short} instance. +* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. The service requires a **Kubernetes Secret** to securely store environment variables for the chosen LLM provider. + +* The {ls-brand-name} plugin in {rhdh-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP tool calling. [NOTE] ==== -{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and then install the {ls-brand-name} plugin on your {rhdh-short} instance. +{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {rhdh-short} instance. ==== \ No newline at end of file diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index eb115f300e..6b7d289577 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -3,6 +3,6 @@ [id="con-rag-embeddings_{context}"] = Retrieval Augmented Generation embeddings -The {product} documentation set has been added as a Retrieval-Augmented Generation (RAG) data source. +The {product} documentation set serves as the Retrieval-Augmented Generation (RAG) data source. -The {lcs-name} ({lcs-short}) sidecar handles the RAG process, using specialized Llama Stack components to manage the documentation data and generate vector embeddings. \ No newline at end of file +RAG initialization occurs through an init container, which copies the RAG data to a shared volume. The Llama Stack sidecar then mounts this volume to access the data. The Llama Stack service uses the resulting RAG embeddings in the vector database as a tool. This tool allows the service to provide references to production documentation during the inference process. \ No newline at end of file diff --git a/modules/developer-lightspeed/con-supported-architecture.adoc b/modules/developer-lightspeed/con-supported-architecture.adoc index 4f743505c1..98c04fe482 100644 --- a/modules/developer-lightspeed/con-supported-architecture.adoc +++ b/modules/developer-lightspeed/con-supported-architecture.adoc @@ -3,14 +3,9 @@ [id="con-supported-architecture_{context}"] = Supported architecture for {ls-brand-name} -{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires the use of {lcs-name}, which runs as a sidecar container. {lcs-short} acts as the intermediary layer for interfacing with Large Language Model (LLM) providers. +{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires two sidecar containers: the {lcs-name} and the Llama Stack service. -{ls-short} handles functionalities like question validation, feedback, and Retrieval-Augmented Generation (RAG) by leveraging components often built with Llama Stack. - -[NOTE] -==== -Currently, the provided {lcs-short} image is built for x86 platforms. To use other platforms (for example, arm64), you must ensure that you enable emulation. -==== +The {lcs-short} container acts as the intermediary layer, which interfaces with and manages the Llama Stack service. .Additional resources * link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc index db50731bd2..bbd1b333d9 100644 --- a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc +++ b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc @@ -3,11 +3,12 @@ [id="proc-configure-mcp-components_{context}"] = Configuring the Model Context Protocol (MCP) -You can configure the Model Context Protocol (MCP) to leverage {ls-short}. With MCP configuration, the deployed {lcs-short} and Llama Stack server utilize external tools and retrieve real-time data. This allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. You must synchronize settings across three components: the Llama Stack tool definition, the {lcs-short} server endpoint definition, and the {ls-brand-name} Plugin authorization token. +To leverage Model Context Protocol (MCP) servers, you must configure them within the Llama Stack service. Configuring the MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. + +Configuration requires synchronizing settings across three components: the Llama Stack tool definition, the {lcs-short} MCP server endpoint definition, and the {ls-brand-name} plugin MCP authorization token. .Procedure -. Configure the {llama-name} tool definition. -Define the MCP provider in the `tool_runtime` section of the Llama Stack configuration file (`run.yaml`). +. Configure the Llama Stack tool definition by defining the MCP provider in the `tool_runtime` section of the Llama Stack configuration file (`run.yaml`), as shown in the following code: + [source,yaml] ---- @@ -18,9 +19,8 @@ providers: config: {} ---- -. Configure the {lcs-short} server endpoint. -In the {lcs-short} configuration file (`lightspeed-stack.yaml`), define the MCP server endpoints. The `provider_id` must** match the Llama Stack definition (`model-context-protocol`). - +. Configure the {lcs-short} MCP server endpoint by defining the MCP server endpoints in the {lcs-short} configuration file (`lightspeed-stack.yaml`), as shown in the following code: ++ [source,yaml] ---- mcp_servers: @@ -28,9 +28,13 @@ mcp_servers: provider_id: model-context-protocol url: https://rhdh-mcp-proxy-apicast-production.apps.rosa.redhat-ai-dev.m6no.p3.openshiftapps.com:443/api/mcp-actions/v1 ---- ++ +[IMPORTANT] +==== +`provider_id` must match the Llama Stack definition (`model-context-protocol`). +==== -. Configure the {ls-brand-name} plugin authorization token. -In the {ls-brand-name} plugin configuration file (`lightspeed-app-config.yaml`), specify the MCP servers and provide the token for authorization. This token is used when the plugin makes requests to the {lcs-short} `/v1/streaming_query` endpoint. +. Configure the {ls-brand-name} plugin authorization token by specifying the MCP servers and providing the token for authentication in the {ls-brand-name} plugin configuration file (`lightspeed-app-config.yaml`), as shown in the following code: + [source,yaml] ---- @@ -38,4 +42,9 @@ lightspeed: mcpServers: - name: mcp::backstage token: ${MCP_TOKEN} ----- \ No newline at end of file +---- ++ +[IMPORTANT] +==== +`name` must match the {lcs-name} definition (`mcp::backstage`). +==== \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-gathering-feedback.adoc b/modules/developer-lightspeed/proc-gathering-feedback.adoc index f77219f6e1..0d386641dd 100644 --- a/modules/developer-lightspeed/proc-gathering-feedback.adoc +++ b/modules/developer-lightspeed/proc-gathering-feedback.adoc @@ -3,11 +3,15 @@ [id="proc-gathering-feedback_{context}"] = Gathering feedback in {ls-short} -Feedback collection is an optional feature configured on the {lcs-short}. This feature gathers user feedback by providing thumbs-up/down ratings and text comments directly from the chat window. {lcs-short} gathers the feedback, along with the user's query and the response of the model, and stores it as a JSON file within the local file system of the Pod for later collection and analysis by the platform administrator. This can be useful for assessing model performance and improving your users' experience. The collected feedback is stored in the cluster where {product-very-short} and {lcs-short} are deployed, and as such, is only accessible by the platform administrators for that cluster. For users that intend to have their data removed, they must request their respective platform administrator to perform that action as {company-name} does not collect (or have access to) any of this data. +Feedback collection is an optional feature configured on the {lcs-short}. This feature gathers user feedback by providing thumbs-up/down ratings and text comments directly from the chat window. + +{lcs-short} collects the feedback, the user's query, and the response of the model, storing the data as a JSON file on the local file system of the Pod. A platform administrator must later collect and analyze this data to assess model performance and improve the user experience. + +The collected data resides in the cluster where {product-very-short} and {lcs-short} are deployed, making it accessible only to platform administrators for that cluster. For data removal, users must request this action from their platform administrator, as {company-name} neither collects nor accesses this data. .Procedure -* To enable or disable feedback, in your {lcs-short} configuration file, add the following settings: +. To enable or disable feedback collection, in the {lcs-short} configuration file (`lightspeed-stack.yaml`), add the following settings: + [source,yaml] ---- @@ -16,6 +20,8 @@ llm_providers: lightspeed_stack: ...... user_data_collection: - feedback_disabled: - feedback_storage: "/app-root/tmp/data/feedback" + feedback_enabled: true + feedback_storage: "/tmp/data/feedback" + transcripts_enabled: true + transcripts_storage: "/tmp/data/transcripts" ---- diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index bda6346791..ad6f4f54f1 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,7 +3,7 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -You must install and configure the {ls-short}, {lcs-short}, and Llama Stack container manually. +You must install and configure the {ls-short}, {lcs-short}, and Llama Stack containers manually. .Prerequisites * You are logged into your {ocp-short} account. @@ -14,6 +14,11 @@ You must install and configure the {ls-short}, {lcs-short}, and Llama Stack cont .Procedure . Create the {lcs-short} ConfigMap (`lightspeed-stack.yaml`). ++ +[IMPORTANT] +==== +You must name the {lcs-short} ConfigMap as `lightspeed-stack.yaml`. +==== .. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. .. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: @@ -48,10 +53,11 @@ conversation_cache: mcp_servers: - name: mcp::backstage provider_id: model-context-protocol - url: https://rhdh-mcp-proxy-apicast-production.apps.rosa.redhat-ai-dev.m6no.p3.openshiftapps.com:443/api/mcp-actions/v1 + url: https:///api/mcp-actions/v1 ---- where: `mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. +`model-context-protocol`:: This is the tool runtime provider defined and configured in the llama-stack `run.yaml` configuration for use in {lcs-short}. .. Click *Create*. @@ -62,24 +68,224 @@ where: + [source,yaml] ---- +version: '2' +image_name: minimal-viable-llama-stack-configuration + +apis: + - agents + - datasetio + - eval + - inference + - post_training + - safety + - scoring + - telemetry + - tool_runtime + - vector_io +benchmarks: [] +container_image: null +datasets: [] +external_providers_dir: "/app-root/config/providers.d" +inference_store: + db_path: .llama/distributions/ollama/inference_store.db + type: sqlite +logging: null +metadata_store: + db_path: .llama/distributions/ollama/registry.db + namespace: null + type: sqlite models: - - model_id: sentence-transformers/all-mpnet-base-v2 - metadata: +- model_id: sentence-transformers/all-mpnet-base-v2 + metadata: embedding_dimension: 768 - model_type: embedding - provider_id: sentence-transformers - provider_model_id: "/app-root/embeddings_model" + model_type: embedding + provider_id: sentence-transformers + provider_model_id: "/app-root/embeddings_model" providers: + agents: + - config: + persistence_store: + db_path: .llama/distributions/ollama/agents_store.db + namespace: null + type: sqlite + responses_store: + db_path: .llama/distributions/ollama/responses_store.db + type: sqlite + provider_id: meta-reference + provider_type: inline::meta-reference + datasetio: + - config: + kvstore: + db_path: .llama/distributions/ollama/huggingface_datasetio.db + namespace: null + type: sqlite + provider_id: huggingface + provider_type: remote::huggingface + - config: + kvstore: + db_path: .llama/distributions/ollama/localfs_datasetio.db + namespace: null + type: sqlite + provider_id: localfs + provider_type: inline::localfs + eval: + - config: + kvstore: + db_path: .llama/distributions/ollama/meta_reference_eval.db + namespace: null + type: sqlite + provider_id: meta-reference + provider_type: inline::meta-reference inference: - - provider_id: team-cluster - provider_type: remote::vllm - config: - url: __/v1 - api-token: - - provider_id: openai - provider_type: remote::openai + - provider_id: vllm + provider_type: remote::vllm + config: + url: ${env.VLLM_URL} + api_token: ${env.VLLM_API_KEY} + max_tokens: ${env.VLLM_MAX_TOKENS:=4096} + tls_verify: ${env.VLLM_TLS_VERIFY:=true} + - provider_id: sentence-transformers + provider_type: inline::sentence-transformers + config: {} + post_training: + - config: + checkpoint_format: huggingface + device: cpu + distributed_backend: null + dpo_output_dir: "." + provider_id: huggingface + provider_type: inline::huggingface + safety: + - config: + excluded_categories: [] + provider_id: llama-guard + provider_type: inline::llama-guard + - provider_id: lightspeed_question_validity + provider_type: inline::lightspeed_question_validity + config: + model_id: ${env.VALIDATION_PROVIDER:=vllm}/${env.VALIDATION_MODEL_NAME} + model_prompt: |- + Instructions: + + You area question classification tool. You are an expert in the following categories: + - Backstage + - Red Hat Developer Hub (RHDH) + - Kubernetes + - Openshift + - CI/CD + - GitOps + - Pipelines + - Developer Portals + - Deployments + - Software Catalogs + - Software Templates + - Tech Docs + + Your job is to determine if a user's question is related to the categories you are an expert in. If the question is related to those categories, \ + or any features that may be related to those categories, you will answer with ${allowed}. + + If a question is not related to your expert categories, answer with ${rejected}. + + You do not need to explain your answer. + + Below are some example questions: + Example Question: + Why is the sky blue? + Example Response: + ${rejected} + + Example Question: + Can you help configure my cluster to automatically scale? + Example Response: + ${allowed} + + Example Question: + How do I create import an existing software template in Backstage? + Example Response: + ${allowed} + + Example Question: + How do I accomplish a task in RHDH? + Example Response: + ${allowed} + + Example Question: + How do I explore a component in RHDH catalog? + Example Response: + ${allowed} + + Example Question: + How can I integrate GitOps into my pipeline? + Example Response: + ${allowed} + + Question: + ${message} + Response: + invalid_question_response: |- + Hi, I'm the Red Hat Developer Hub Lightspeed assistant, I can help you with questions about Red Hat Developer Hub or Backstage. + Please ensure your question is about these topics, and feel free to ask again! + scoring: + - config: {} + provider_id: basic + provider_type: inline::basic + - config: {} + provider_id: llm-as-judge + provider_type: inline::llm-as-judge + - config: + openai_api_key: '********' + provider_id: braintrust + provider_type: inline::braintrust + telemetry: + - config: + service_name: 'lightspeed-stack-telemetry' + sinks: sqlite + sqlite_db_path: .llama/distributions/ollama/trace_store.db + provider_id: meta-reference + provider_type: inline::meta-reference + tool_runtime: + - provider_id: model-context-protocol + provider_type: remote::model-context-protocol + config: {} + - provider_id: rag-runtime + provider_type: inline::rag-runtime + config: {} + vector_io: + - config: + kvstore: + db_path: .llama/distributions/ollama/faiss_store.db + namespace: null + type: sqlite + provider_id: faiss + provider_type: inline::faiss + - provider_id: rhdh-docs + provider_type: inline::faiss config: - api_key: __ + kvstore: + type: sqlite + namespace: null + db_path: /app-root/vector_db/rhdh_product_docs/1.7/faiss_store.db +scoring_fns: [] +server: + auth: null + host: null + port: 8321 + quota: null + tls_cafile: null + tls_certfile: null + tls_keyfile: null +shields: + - shield_id: lightspeed_question_validity-shield + provider_id: lightspeed_question_validity +tool_groups: +- provider_id: rag-runtime + toolgroup_id: builtin::rag + description: "Only use for questions specifically about Red Hat Developer Hub (RHDH). Searches technical documentation for RHDH installation, discovery, configuration, release, upgrade, control access, integration, observability, and extending with plugins. Do not use for any other topic outside RHDH." +vector_dbs: +- embedding_dimension: 768 + embedding_model: sentence-transformers/all-mpnet-base-v2 + provider_id: rhdh-docs + vector_db_id: rhdh-product-docs-1_7 ---- where: `__`:: Enter your LLM server details. @@ -282,21 +488,17 @@ includes: ---- - name: PROJECT value: rhdh - - name: LCS_CONFIG_FILE - value: /app-root/config/lightspeed-stack.yaml - - name: RHDH_CONFIG_FILE - value: /app-root/config/app-config-rhdh.yaml - name: LLAMA_CONFIG_FILE value: /app-root/config/llama-stack/run.yaml ---- + [NOTE] ==== -Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. +* Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. The Pods are automatically restarted. + -.Example of a Backstage CR with the {lcs-short} container +.Example of a Backstage CR with the {lcs-short} and Llama Stack container [source,yaml,subs=+attributes] ---- kind: Backstage @@ -439,10 +641,6 @@ extraVolumes: - env: - name: PROJECT value: rhdh - - name: LCS_CONFIG_FILE - value: /app-root/config/lightspeed-stack.yaml - - name: RHDH_CONFIG_FILE - value: /app-root/config/lightspeed-app-config.yaml envFrom: - secretRef: name: lightspeed-secrets @@ -456,9 +654,6 @@ extraVolumes: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack subPath: lightspeed-stack.yaml - - mountPath: /app-root/config/lightspeed-app-config.yaml - name: lightspeed-app-config - subPath: app-config.yaml - mountPath: /app-root/run.yaml name: llama-stack-config subPath: run.yaml @@ -491,12 +686,8 @@ upstream: - env: - name: PROJECT value: rhdh - - name: LCS_CONFIG_FILE - value: /app-root/config/lcsconfig.yaml - name: LLAMA_STACK_CONFIG_FILE value: /app-root/run.yaml - - name: RHDH_CONFIG_FILE - value: /app-root/config/lightspeed-app-config.yaml envFrom: - secretRef: name: lightspeed-secrets @@ -513,9 +704,6 @@ upstream: - mountPath: /app-root/run.yaml name: llama-stack-config subPath: run.yaml - - mountPath: /app-root/config/lightspeed-app-config.yaml - name: lightspeed-app-config - subPath: lightspeed-app-config.yaml extraEnvVars: ... extraEnvVarsSecrets: diff --git a/modules/developer-lightspeed/proc-using-question-validation.adoc b/modules/developer-lightspeed/proc-using-question-validation.adoc index eaf7df0b85..5b3853874d 100644 --- a/modules/developer-lightspeed/proc-using-question-validation.adoc +++ b/modules/developer-lightspeed/proc-using-question-validation.adoc @@ -5,18 +5,16 @@ Question Validation is a feature utilized by {ls-short} to validate user queries, making sure they relate specifically to {product-very-short} and related topics. When enabled, this feature restricts questions to {product-very-short}-related topics for enhanced security. -. Prerequisites +.Prerequisites -* The Developer Lightspeed for RHDH plugin must be configured in your {product-very-short} instance. -* The {lcs-short} and Llama Stack sidecars must be deployed, as LCS handles question validation by implementing it as a safety shield on the Llama Stack side. +* The {ls-brand-name} plugin must be configured in your {product-very-short} instance. +* The {lcs-short} and Llama Stack sidecars must be deployed, as LCS implements `Question Validation` as a safety shield on the Llama Stack. .Procedure -The Question Validation feature is controlled through configuration settings in both the frontend plugin configuration and the Llama Stack backend. +The `Question Validation` feature is controlled through configuration settings in both the frontend plugin configuration and the Llama Stack backend. -. Make sure the feature is configured in the {ls-short} plugin. - -To make sure the feature is explicitly enabled or to confirm its state, verify the setting in the {ls-short} application configuration file (`lightspeed-app-config.yaml`) as showin the following code: +. To ensure the feature is explicitly enabled or to confirm its state, in the {ls-short} application configuration file (`lightspeed-app-config.yaml`), verify the setting as shown in the following code: + [source,yaml] ---- @@ -29,15 +27,83 @@ lightspeed: ==== * By default, `Question Validation` is typically enabled, restricting queries to {product-very-short}-related topics. -* The configuration of the LLM servers must also be present in this file, referencing the appropriate environment variables sourced from a Kubernetes Secret. +* This file must also include the LLM server configuration, referencing environment variables sourced from a Kubernetes Secret. ==== -. Verify backend safety shield configuration. - -For `Question Validation` to function, the Llama Stack sidecar (which handles the AI logic) must have the `lightspeed_question_validity` provider configured as a safety shield in its `run.yaml`. This shield defines the allowed topics (Backstage, {product-very-short}, Kubernetes, Openshift, CI/CD, and GitOps Pipelines). +. Verify backend safety shield configuration by configuring the `lightspeed_question_validity` provider in the Llama Stack sidecar `run.yaml` file. This shield defines the allowed topics (Backstage, {product-very-short}, Kubernetes, Openshift, CI/CD, and GitOps Pipelines). For example: + -.Llama Stack Safety Shield Definition (Example Snippet from run.yaml) -[source,yaml] +[source,yaml,subs=+attributes] ---- +safety: + - config: + excluded_categories: [] + provider_id: llama-guard + provider_type: inline::llama-guard + - provider_id: lightspeed_question_validity + provider_type: inline::lightspeed_question_validity + config: + model_id: ${env.VALIDATION_PROVIDER:=vllm}/${env.VALIDATION_MODEL_NAME} + model_prompt: |- + Instructions: + + You area question classification tool. You are an expert in the following categories: + - {backstage} + - {product} ({product-very-short}) + - Kubernetes + - Openshift + - CI/CD + - GitOps + - Pipelines + - Developer Portals + - Deployments + - Software Catalogs + - Software Templates + - Tech Docs + + Your job is to determine if a user's question is related to the categories you are an expert in. If the question is related to those categories, \ + or any features that may be related to those categories, you will answer with ${allowed}. + + If a question is not related to your expert categories, answer with ${rejected}. + + You do not need to explain your answer. + + Below are some example questions: + Example Question: + Why is the sky blue? + Example Response: + ${rejected} + + Example Question: + Can you help configure my cluster to automatically scale? + Example Response: + ${allowed} + + Example Question: + How do I create import an existing software template in Backstage? + Example Response: + ${allowed} + + Example Question: + How do I accomplish a task in {product-very-short}? + Example Response: + ${allowed} + + Example Question: + How do I explore a component in {product-very-short} catalog? + Example Response: + ${allowed} + + Example Question: + How can I integrate GitOps into my pipeline? + Example Response: + ${allowed} + + Question: + ${message} + Response: + invalid_question_response: |- + Hi, I'm the Red Hat Developer Hub Lightspeed assistant, I can help you with questions about Red Hat Developer Hub or Backstage. + Please ensure your question is about these topics, and feel free to ask again! +... shields: - shield_id: lightspeed_question_validity-shield provider_id: lightspeed_question_validity From 8988b70d75d387b827fcda5905debb97613a30e8 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 5 Nov 2025 17:48:53 +0530 Subject: [PATCH 03/26] Fixed merge conflict --- .../con-about-lightspeed-stack-and-llama-stack.adoc | 10 +++++----- modules/developer-lightspeed/con-rag-embeddings.adoc | 4 ++-- .../con-supported-architecture.adoc | 2 +- .../proc-installing-and-configuring-lightspeed.adoc | 10 ++++++++-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 431de6fb11..881420e8bb 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -3,15 +3,15 @@ [id="con-about-lightspeed-stack-and-llama-stack_{context}"] = About {lcs-name} and Llama Stack -The {lcs-name} ({lcs-short}) and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. +The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. -{lcs-short} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the Large Language Model (LLM), inference providers, tool runtime providers, safety providers, and Retrieval Augmented Generation (RAG) settings. +The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the Large Language Model (LLM) inference providers, Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers, safety providers, and vector database settings. -* **{lcs-short}** manages authentication, user feedback collection, MCP server configuration, and caching. +* {lcs-name} manages authentication, user feedback collection, MCP server configuration, and caching. -* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. The service requires a **Kubernetes Secret** to securely store environment variables for the chosen LLM provider. +* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. -* The {ls-brand-name} plugin in {rhdh-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP tool calling. +* The {ls-brand-name} plugin in {rhdh-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. [NOTE] ==== diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index 6b7d289577..af01c9b15d 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -3,6 +3,6 @@ [id="con-rag-embeddings_{context}"] = Retrieval Augmented Generation embeddings -The {product} documentation set serves as the Retrieval-Augmented Generation (RAG) data source. +The {product} documentation serves as the Retrieval-Augmented Generation (RAG) data source. -RAG initialization occurs through an init container, which copies the RAG data to a shared volume. The Llama Stack sidecar then mounts this volume to access the data. The Llama Stack service uses the resulting RAG embeddings in the vector database as a tool. This tool allows the service to provide references to production documentation during the inference process. \ No newline at end of file +RAG initialization occurs through an initialization container, which copies the RAG data to a shared volume. The Llama Stack sidecar then mounts this shared volume to access the RAG data. The Llama Stack service uses the resulting RAG embeddings in the vector database as a reference. This allows the service to provide citations to production documentation during the inference process. \ No newline at end of file diff --git a/modules/developer-lightspeed/con-supported-architecture.adoc b/modules/developer-lightspeed/con-supported-architecture.adoc index 98c04fe482..e8c67d70ca 100644 --- a/modules/developer-lightspeed/con-supported-architecture.adoc +++ b/modules/developer-lightspeed/con-supported-architecture.adoc @@ -3,7 +3,7 @@ [id="con-supported-architecture_{context}"] = Supported architecture for {ls-brand-name} -{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires two sidecar containers: the {lcs-name} and the Llama Stack service. +{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires two sidecar containers: the {lcs-name} ({lcs-short}) and the Llama Stack service. The {lcs-short} container acts as the intermediary layer, which interfaces with and manages the Llama Stack service. diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index ad6f4f54f1..cd550f7ea1 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,7 +3,7 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -You must install and configure the {ls-short}, {lcs-short}, and Llama Stack containers manually. +You must install and configure the {ls-short}, the {lcs-name}, and Llama Stack containers manually. .Prerequisites * You are logged into your {ocp-short} account. @@ -56,6 +56,8 @@ mcp_servers: url: https:///api/mcp-actions/v1 ---- where: + +`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. `mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. `model-context-protocol`:: This is the tool runtime provider defined and configured in the llama-stack `run.yaml` configuration for use in {lcs-short}. @@ -64,7 +66,7 @@ where: . Create a Llama Stack ConfigMap. .. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. -.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: +.. Skip this step if you have configured the Llama Stack image (quay.io/redhat-ai-dev/llama-stack) in your CR: From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: + [source,yaml] ---- @@ -344,6 +346,10 @@ data: # OPTIONAL: Override default RHDH system prompt # systemPrompt: "You are a helpful assistant focused on {product} development." ---- +where: + +`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. + . Create {ls-short} secret file. .. In the {ocp-short} web console, go to *Secrets*. .. Click *Create > Key/value secret*. From 1efda9438ef8cadb460c181ceda23465df6a4cf0 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Tue, 4 Nov 2025 14:44:19 +0530 Subject: [PATCH 04/26] Incorporated the remaining tech comments --- ...mbly-customizing-developer-lightspeed.adoc | 2 +- .../proc-changing-your-llm-provider.adoc | 73 ++++------------ .../proc-configuring-mcp-components.adoc | 17 +++- ...installing-and-configuring-lightspeed.adoc | 86 +++++-------------- .../proc-using-question-validation.adoc | 2 +- 5 files changed, 54 insertions(+), 126 deletions(-) diff --git a/assemblies/assembly-customizing-developer-lightspeed.adoc b/assemblies/assembly-customizing-developer-lightspeed.adoc index 9046290a70..e0f70afc5a 100644 --- a/assemblies/assembly-customizing-developer-lightspeed.adoc +++ b/assemblies/assembly-customizing-developer-lightspeed.adoc @@ -4,7 +4,7 @@ [id="{context}"] = Customizing {ls-short} -You can customize {ls-short} functionalities, such as, question validation, gathering feedback, and storing chat history in PostgreSQL. +You can customize {ls-short} functionalities such as question validation, gathering feedback, and storing chat history in PostgreSQL. include::modules/developer-lightspeed/proc-using-question-validation.adoc[leveloffset=+1] diff --git a/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc b/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc index dee81aabbe..2e2cea835a 100644 --- a/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc +++ b/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc @@ -3,66 +3,25 @@ [id="proc-changing-your-llm-provider_{context}"] = Changing your LLM provider in {ls-short} -{ls-short} operates on a {developer-lightspeed-link}#con-about-bring-your-own-model_appendix-about-user-data-security[_Bring Your Own Model_] approach, meaning you must provide and configure access to your preferred Large Language Model (LLM) provider for the service to function. The Road-Core Service (RCS) acts as an intermediary layer that handles the configuration and setup of these LLM providers. - -[IMPORTANT] -==== -The LLM provider configuration section includes a mandatory dummy provider block. Due to limitations of Road Core, this dummy provider must remain present when working with Lightspeed. This block is typically marked with comments (# Start: Do not remove this block and # End: Do not remove this block) and must not be removed from the configuration file. -==== - -.Prerequisites - -* The path to the file containing your API token must be accessible by the RCS container, requiring the file to be mounted to the RCS container. +{ls-short} operates on a {developer-lightspeed-link}#con-about-bring-your-own-model_appendix-about-user-data-security[_Bring Your Own Model_] approach, meaning you must provide and configure access to your preferred Large Language Model (LLM) provider for the service to function. Llama Stack acts as an intermediary layer that handles the configuration and setup of these LLM providers. .Procedure -You can define additional LLM providers using either of following methods: - -* Recommended: In your Developer Lightspeed plugin configuration (the `lightspeed` section within the `lightspeed-app-config.yaml` file), define the new provider or providers under the `lightspeed.servers` key as shown in the following code: -+ -[source,yaml] ----- -lightspeed: - servers: - - id: __ - url: __ - token: __ ----- -+ -[NOTE] -==== -In Developer preview, only one LLM server is supported at a time. -==== -** Optional: You can set the `id`, `url`, and `token` values in a Kubernetes Secret and reference them as environment variables using the `envFrom` section. -[source,yaml] ----- -containers: - - name: my-container - image: my-image - envFrom: - - secretRef: - name: my-secret ----- - -* You can add new LLM providers by updating the `rcsconfig.yaml` file. -.. In the `llm_providers` section within your `rcsconfig.yaml` file, add your new provider configuration below the mandatory dummy provider block as shown in the following code: +You can define additional LLM providers by updating your Llama Stack app config (`llama-stack`) file. In the `inference` section within your `llama-stack.yaml` file, add your new provider configuration as shown in the following code: + [source,yaml] ---- -llm_providers: - # Start: Do not remove this block - - name: dummy - type: openai - url: https://dummy.com - models: - - name: dummymodel - # END: Do not remove this block - - name: __ - type: openai - url: __ - credentials_path: path/to/token - disable_model_check: true ----- -.. If you need to define a new provider in `rcsconfig.yaml`, you must configure the following critical parameters: -** `credentials_path`: Specifies the path to a `.txt` file that contains your API token. This file must be mounted and accessible by the RCS container. -** `disable_model_check`: Set this field to `true` to allow the RCS to locate models through the `/v1/models` endpoint of the provider. When you set this field to `true`, you avoid the need to define model names explicitly in the configuration. \ No newline at end of file + #START - Adding your LLM provider + inference: + - provider_id: vllm + provider_type: remote::vllm + config: + url: ${env.VLLM_URL} + api_token: ${env.VLLM_API_KEY} + max_tokens: ${env.VLLM_MAX_TOKENS:=4096} + tls_verify: ${env.VLLM_TLS_VERIFY:=true} + - provider_id: sentence-transformers + provider_type: inline::sentence-transformers + config: {} +#END - Adding your LLM provider +---- \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc index bbd1b333d9..8fb45bba82 100644 --- a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc +++ b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc @@ -3,10 +3,14 @@ [id="proc-configure-mcp-components_{context}"] = Configuring the Model Context Protocol (MCP) -To leverage Model Context Protocol (MCP) servers, you must configure them within the Llama Stack service. Configuring the MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. +To leverage Model Context Protocol (MCP) servers like the {model-context-protocol-link}[server in {product-very-short} with {ls-short}], you must first integrate them into the Llama Stack service. Configuring the MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. Configuration requires synchronizing settings across three components: the Llama Stack tool definition, the {lcs-short} MCP server endpoint definition, and the {ls-brand-name} plugin MCP authorization token. +.Prerequisites + +* You have configured {model-context-protocol-link}[MCP tools in your {product} instance]. + .Procedure . Configure the Llama Stack tool definition by defining the MCP provider in the `tool_runtime` section of the Llama Stack configuration file (`run.yaml`), as shown in the following code: + @@ -26,8 +30,12 @@ providers: mcp_servers: - name: mcp::backstage provider_id: model-context-protocol - url: https://rhdh-mcp-proxy-apicast-production.apps.rosa.redhat-ai-dev.m6no.p3.openshiftapps.com:443/api/mcp-actions/v1 + url: https:///api/mcp-actions/v1 ---- + +where: + +``:: Hostname of your {product-very-short} instance + [IMPORTANT] ==== @@ -47,4 +55,9 @@ lightspeed: [IMPORTANT] ==== `name` must match the {lcs-name} definition (`mcp::backstage`). +==== + +[NOTE] +==== +Self-hosted models might provide inconsistent or poor performance when using tool calling features, such as the Model Context Protocol (MCP). It is recommended to use the latest foundation models from providers like `OpenAI`` when experimenting with this integration to ensure the most reliable functionality. ==== \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index cd550f7ea1..c08a977aad 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -138,6 +138,7 @@ providers: type: sqlite provider_id: meta-reference provider_type: inline::meta-reference + #START - Adding your LLM provider inference: - provider_id: vllm provider_type: remote::vllm @@ -149,6 +150,7 @@ providers: - provider_id: sentence-transformers provider_type: inline::sentence-transformers config: {} + #END - Adding your LLM provider post_training: - config: checkpoint_format: huggingface @@ -350,26 +352,6 @@ where: `mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. -. Create {ls-short} secret file. -.. In the {ocp-short} web console, go to *Secrets*. -.. Click *Create > Key/value secret*. -.. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: -+ -[source,yaml] ----- -kind: Secret -apiVersion: v1 -metadata: - name: lightspeed-secrets - namespace: __ # Enter your rhdh instance namespace -stringData: - LLM_SERVER_ID: __ # Enter your server ID (for example, `ollama` or `granite`) - LLM_SERVER_TOKEN: __ # Enter your server token value - LLM_SERVER_URL: __ # Enter your server URL -type: Opaque ----- -.. Click *Create*. - . Create the Llama Stack secret file. .. In the {ocp-short} web console, go to *Secrets*. .. Click *Create > Key/value secret*. @@ -401,7 +383,7 @@ stringData: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed + - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 disabled: false pluginConfig: lightspeed: @@ -426,16 +408,9 @@ includes: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend + - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 disabled: false pluginConfig: - lightspeed: - # REQUIRED: Configure LLM servers with OpenAI API compatibility - servers: - - id: ${LLM_SERVER_ID} - url: ${LLM_SERVER_URL} - token: ${LLM_SERVER_TOKEN} - # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} ---- @@ -469,38 +444,28 @@ includes: [source,yaml] ---- volumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /app-root/config/app-config-rhdh.yaml - name: lightspeed-app-config - subPath: app-config.yaml - - mountPath: /app-root-config/llama-stack/run.yaml - subPath: llama-stack/run.yaml + - mountPath: /app-root/.llama + name: shared-storage + - mountPath: /app-root/embeddings_model + name: rag-data-volume + subPath: embeddings_model + - mountPath: /app-root/vector_db/rhdh_product_docs + name: rag-data-volume + subPath: rhdh_product_docs + ---- ... Add the {ls-short} and Llama Stack Secret file as shown in the following example: + [source,yaml] ---- envFrom: - - secretRef: - name: lightspeed-secrets - secretRef: name: llama-stack-secrets ---- -... In your `deployment.patch.spec.template.spec.containers.env` section, set the {lcs-short} and Llama Stack environment variables as shown in the following example: -+ -[source,yaml] ----- - - name: PROJECT - value: rhdh - - name: LLAMA_CONFIG_FILE - value: /app-root/config/llama-stack/run.yaml ----- + [NOTE] ==== -* Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. +* Your {product-very-short} container is typically already present in your Kubernetes CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. The Pods are automatically restarted. + @@ -551,6 +516,10 @@ spec: subPath: lightspeed-stack.yaml - mountPath: /tmp/data/feedback name: shared-storage + # OPTIONAL: `llama-stack-config mount path configuration is only needed if you want to override the custom configuration + - mountPath: /app-root/run.yaml + name: llama-stack-config + subPath: run.yaml volumes: - configMap: name: lightspeed-stack @@ -570,7 +539,7 @@ dynamic: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed + - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 disabled: false pluginConfig: lightspeed: @@ -595,15 +564,9 @@ dynamic: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend + - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 disabled: false pluginConfig: - lightspeed: - # REQUIRED: Configure LLM servers with OpenAI API compatibility - servers: - - id: ${LLM_SERVER_ID} - url: ${LLM_SERVER_URL} - token: ${LLM_SERVER_TOKEN} # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} ---- @@ -644,9 +607,6 @@ extraVolumes: [source,yaml,subs="+attributes"] ---- extraContainers: - - env: - - name: PROJECT - value: rhdh envFrom: - secretRef: name: lightspeed-secrets @@ -689,11 +649,6 @@ upstream: - configMapRef: llama-stack-config filename: run.yaml extraContainers: - - env: - - name: PROJECT - value: rhdh - - name: LLAMA_STACK_CONFIG_FILE - value: /app-root/run.yaml envFrom: - secretRef: name: lightspeed-secrets @@ -707,6 +662,7 @@ upstream: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack subPath: lightspeed-stack.yaml + # OPTIONAL: `llama-stack-config mount path configuration is only needed if you want to override the custom configuration - mountPath: /app-root/run.yaml name: llama-stack-config subPath: run.yaml diff --git a/modules/developer-lightspeed/proc-using-question-validation.adoc b/modules/developer-lightspeed/proc-using-question-validation.adoc index 5b3853874d..12f5ff6cbc 100644 --- a/modules/developer-lightspeed/proc-using-question-validation.adoc +++ b/modules/developer-lightspeed/proc-using-question-validation.adoc @@ -45,7 +45,7 @@ safety: model_prompt: |- Instructions: - You area question classification tool. You are an expert in the following categories: + You are a question classification tool. You are an expert in the following categories: - {backstage} - {product} ({product-very-short}) - Kubernetes From e93179dcb2a39ad84f07fcb08d80b79e5650c7e7 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Tue, 4 Nov 2025 18:34:57 +0530 Subject: [PATCH 05/26] Incorporated Ben's comments --- .../developer-lightspeed/con-about-bring-your-own-model.adoc | 2 +- modules/developer-lightspeed/con-rag-embeddings.adoc | 2 +- .../developer-lightspeed/proc-configuring-mcp-components.adoc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/developer-lightspeed/con-about-bring-your-own-model.adoc b/modules/developer-lightspeed/con-about-bring-your-own-model.adoc index a427616a43..7bde3adc85 100644 --- a/modules/developer-lightspeed/con-about-bring-your-own-model.adoc +++ b/modules/developer-lightspeed/con-about-bring-your-own-model.adoc @@ -3,7 +3,7 @@ [id="con-about-bring-your-own-model_{context}"] = About Bring Your Own Model -{ls-short} does not provide its own inference services, but uses a _Bring Your Own Model_ approach. This means that you can configure the {rcs-name} to talk to the inference server or service of your choice. This also means that you are responsible for ensuring that the configured service meets your particular company policies and legal requirements, including any applicable terms with the third-party model provider. +{ls-short} does not provide its own inference services, but uses a _Bring Your Own Model_ approach. This means that you can configure the {lcs-name} to talk to the inference server or service of your choice. This also means that you are responsible for ensuring that the configured service meets your particular company policies and legal requirements, including any applicable terms with the third-party model provider. //Add the cross reference to "Bring your own model" The only technical requirements for inference services are: diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index af01c9b15d..a567df3888 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -1,7 +1,7 @@ :_mod-docs-content-type: CONCEPT [id="con-rag-embeddings_{context}"] -= Retrieval Augmented Generation embeddings += Retrieval Augmented Generation (RAG) embeddings The {product} documentation serves as the Retrieval-Augmented Generation (RAG) data source. diff --git a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc index 8fb45bba82..f2baf569a4 100644 --- a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc +++ b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc @@ -1,9 +1,9 @@ :_mod-docs-content-type: PROCEDURE [id="proc-configure-mcp-components_{context}"] -= Configuring the Model Context Protocol (MCP) += Configuring the {product-very-short} Model Context Protocol (MCP) tools for {ls-short} (Optional) -To leverage Model Context Protocol (MCP) servers like the {model-context-protocol-link}[server in {product-very-short} with {ls-short}], you must first integrate them into the Llama Stack service. Configuring the MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. +To leverage Model Context Protocol (MCP) servers like, the {model-context-protocol-link}[server in {product-very-short} with {ls-short}], you must first integrate them into the Llama Stack service. Configuring MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. Configuration requires synchronizing settings across three components: the Llama Stack tool definition, the {lcs-short} MCP server endpoint definition, and the {ls-brand-name} plugin MCP authorization token. From c85a1dfd9aaffe3ac56ae5413a5638c84b9e9ef9 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 5 Nov 2025 14:41:46 +0530 Subject: [PATCH 06/26] Added some comments --- ...mbly-customizing-developer-lightspeed.adoc | 8 +- .../proc-configuring-mcp-components.adoc | 63 ---------- ...installing-and-configuring-lightspeed.adoc | 37 +++--- .../proc-using-question-validation.adoc | 110 ------------------ 4 files changed, 18 insertions(+), 200 deletions(-) delete mode 100644 modules/developer-lightspeed/proc-configuring-mcp-components.adoc delete mode 100644 modules/developer-lightspeed/proc-using-question-validation.adoc diff --git a/assemblies/assembly-customizing-developer-lightspeed.adoc b/assemblies/assembly-customizing-developer-lightspeed.adoc index e0f70afc5a..9c6816dce3 100644 --- a/assemblies/assembly-customizing-developer-lightspeed.adoc +++ b/assemblies/assembly-customizing-developer-lightspeed.adoc @@ -4,9 +4,7 @@ [id="{context}"] = Customizing {ls-short} -You can customize {ls-short} functionalities such as question validation, gathering feedback, and storing chat history in PostgreSQL. - -include::modules/developer-lightspeed/proc-using-question-validation.adoc[leveloffset=+1] +You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and configuring Model Context Protocol (MCP) tools. include::modules/developer-lightspeed/proc-gathering-feedback.adoc[leveloffset=+1] @@ -14,6 +12,4 @@ include::modules/developer-lightspeed/proc-updating-the-system-prompt.adoc[level include::modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc[leveloffset=+1] -include::modules/developer-lightspeed/proc-changing-your-llm-provider.adoc[leveloffset=+1] - -include::modules/developer-lightspeed/proc-configuring-mcp-components.adoc[leveloffset=+1] \ No newline at end of file +include::modules/developer-lightspeed/proc-changing-your-llm-provider.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc b/modules/developer-lightspeed/proc-configuring-mcp-components.adoc deleted file mode 100644 index f2baf569a4..0000000000 --- a/modules/developer-lightspeed/proc-configuring-mcp-components.adoc +++ /dev/null @@ -1,63 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="proc-configure-mcp-components_{context}"] -= Configuring the {product-very-short} Model Context Protocol (MCP) tools for {ls-short} (Optional) - -To leverage Model Context Protocol (MCP) servers like, the {model-context-protocol-link}[server in {product-very-short} with {ls-short}], you must first integrate them into the Llama Stack service. Configuring MCP in {lcs-short} enables the deployed {lcs-short} and Llama Stack to use external tools and retrieve real-time data. This integration allows the virtual assistant to execute complex actions and incorporate current operational context into its responses. - -Configuration requires synchronizing settings across three components: the Llama Stack tool definition, the {lcs-short} MCP server endpoint definition, and the {ls-brand-name} plugin MCP authorization token. - -.Prerequisites - -* You have configured {model-context-protocol-link}[MCP tools in your {product} instance]. - -.Procedure -. Configure the Llama Stack tool definition by defining the MCP provider in the `tool_runtime` section of the Llama Stack configuration file (`run.yaml`), as shown in the following code: -+ -[source,yaml] ----- -providers: - tool_runtime: - - provider_id: model-context-protocol - provider_type: remote::model-context-protocol - config: {} ----- - -. Configure the {lcs-short} MCP server endpoint by defining the MCP server endpoints in the {lcs-short} configuration file (`lightspeed-stack.yaml`), as shown in the following code: -+ -[source,yaml] ----- -mcp_servers: - - name: mcp::backstage - provider_id: model-context-protocol - url: https:///api/mcp-actions/v1 ----- - -where: - -``:: Hostname of your {product-very-short} instance -+ -[IMPORTANT] -==== -`provider_id` must match the Llama Stack definition (`model-context-protocol`). -==== - -. Configure the {ls-brand-name} plugin authorization token by specifying the MCP servers and providing the token for authentication in the {ls-brand-name} plugin configuration file (`lightspeed-app-config.yaml`), as shown in the following code: -+ -[source,yaml] ----- -lightspeed: - mcpServers: - - name: mcp::backstage - token: ${MCP_TOKEN} ----- -+ -[IMPORTANT] -==== -`name` must match the {lcs-name} definition (`mcp::backstage`). -==== - -[NOTE] -==== -Self-hosted models might provide inconsistent or poor performance when using tool calling features, such as the Model Context Protocol (MCP). It is recommended to use the latest foundation models from providers like `OpenAI`` when experimenting with this integration to ensure the most reliable functionality. -==== \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index c08a977aad..36d3244e8e 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -55,9 +55,11 @@ mcp_servers: provider_id: model-context-protocol url: https:///api/mcp-actions/v1 ---- ++ where: -`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. + +(Optional) `mcp_servers`:: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. `mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. `model-context-protocol`:: This is the tool runtime provider defined and configured in the llama-stack `run.yaml` configuration for use in {lcs-short}. @@ -268,7 +270,7 @@ providers: kvstore: type: sqlite namespace: null - db_path: /app-root/vector_db/rhdh_product_docs/1.7/faiss_store.db + db_path: /app-root/vector_db/rhdh_product_docs/1.8/faiss_store.db scoring_fns: [] server: auth: null @@ -289,11 +291,8 @@ vector_dbs: - embedding_dimension: 768 embedding_model: sentence-transformers/all-mpnet-base-v2 provider_id: rhdh-docs - vector_db_id: rhdh-product-docs-1_7 + vector_db_id: rhdh-product-docs-1_8 ---- -where: -`__`:: Enter your LLM server details. -`__`:: Enter your OpenAI API key. . Create the {ls-short} ConfigMap. + @@ -350,7 +349,7 @@ data: ---- where: -`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. +`lightspeed:mcpServers`:: Optional: Set this configuration if you want to integrate MCP. . Create the Llama Stack secret file. .. In the {ocp-short} web console, go to *Secrets*. @@ -383,7 +382,7 @@ stringData: includes: - dynamic-plugins.default.yaml plugins: - - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 disabled: false pluginConfig: lightspeed: @@ -408,7 +407,7 @@ includes: menuItem: icon: LightspeedIcon text: Lightspeed - - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 disabled: false pluginConfig: # OPTIONAL: Port for lightspeed service (default: 8080) @@ -454,7 +453,7 @@ includes: subPath: rhdh_product_docs ---- -... Add the {ls-short} and Llama Stack Secret file as shown in the following example: +... Add the Llama Stack Secret file as shown in the following example: + [source,yaml] ---- @@ -465,7 +464,7 @@ includes: + [NOTE] ==== -* Your {product-very-short} container is typically already present in your Kubernetes CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. +* Your {product-very-short} container is typically already present in your Kubernetes custom resource (CR). You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. The Pods are automatically restarted. + @@ -539,7 +538,7 @@ dynamic: includes: - dynamic-plugins.default.yaml plugins: - - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 disabled: false pluginConfig: lightspeed: @@ -564,7 +563,7 @@ dynamic: menuItem: icon: LightspeedIcon text: Lightspeed - - package: ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 disabled: false pluginConfig: # OPTIONAL: Port for lightspeed service (default: 8080) @@ -595,12 +594,12 @@ extraVolumes: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack ---- -... Add the {ls-short} and Llama Stack Secret file as shown in the following example: +... Add the Llama Stack Secret file as shown in the following example: + [source,yaml] ---- extraEnvVarsSecrets: - - lightspeed-secrets + - llama-stack-secrets ---- ... Add the {lcs-short} image as shown in the following example: + @@ -609,9 +608,9 @@ extraVolumes: extraContainers: envFrom: - secretRef: - name: lightspeed-secrets + name: llama-stack-secrets image: 'quay.io/redhat-ai-dev/llama-stack:latest' - name: road-core-sidecar + name: llama-stack ports: - containerPort: 8080 name: lcs-backend @@ -662,10 +661,6 @@ upstream: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack subPath: lightspeed-stack.yaml - # OPTIONAL: `llama-stack-config mount path configuration is only needed if you want to override the custom configuration - - mountPath: /app-root/run.yaml - name: llama-stack-config - subPath: run.yaml extraEnvVars: ... extraEnvVarsSecrets: diff --git a/modules/developer-lightspeed/proc-using-question-validation.adoc b/modules/developer-lightspeed/proc-using-question-validation.adoc deleted file mode 100644 index 12f5ff6cbc..0000000000 --- a/modules/developer-lightspeed/proc-using-question-validation.adoc +++ /dev/null @@ -1,110 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="proc-using-question-validation_{context}"] -= Using Question Validation in {ls-short} - -Question Validation is a feature utilized by {ls-short} to validate user queries, making sure they relate specifically to {product-very-short} and related topics. When enabled, this feature restricts questions to {product-very-short}-related topics for enhanced security. - -.Prerequisites - -* The {ls-brand-name} plugin must be configured in your {product-very-short} instance. -* The {lcs-short} and Llama Stack sidecars must be deployed, as LCS implements `Question Validation` as a safety shield on the Llama Stack. - -.Procedure - -The `Question Validation` feature is controlled through configuration settings in both the frontend plugin configuration and the Llama Stack backend. - -. To ensure the feature is explicitly enabled or to confirm its state, in the {ls-short} application configuration file (`lightspeed-app-config.yaml`), verify the setting as shown in the following code: -+ -[source,yaml] ----- -lightspeed: -# OPTIONAL: Enable/disable question validation (default: true) -# When enabled, restricts questions to RHDH-related topics for better security - questionValidation: true ----- -[NOTE] -==== -* By default, `Question Validation` is typically enabled, restricting queries to {product-very-short}-related topics. - -* This file must also include the LLM server configuration, referencing environment variables sourced from a Kubernetes Secret. -==== -. Verify backend safety shield configuration by configuring the `lightspeed_question_validity` provider in the Llama Stack sidecar `run.yaml` file. This shield defines the allowed topics (Backstage, {product-very-short}, Kubernetes, Openshift, CI/CD, and GitOps Pipelines). For example: -+ -[source,yaml,subs=+attributes] ----- -safety: - - config: - excluded_categories: [] - provider_id: llama-guard - provider_type: inline::llama-guard - - provider_id: lightspeed_question_validity - provider_type: inline::lightspeed_question_validity - config: - model_id: ${env.VALIDATION_PROVIDER:=vllm}/${env.VALIDATION_MODEL_NAME} - model_prompt: |- - Instructions: - - You are a question classification tool. You are an expert in the following categories: - - {backstage} - - {product} ({product-very-short}) - - Kubernetes - - Openshift - - CI/CD - - GitOps - - Pipelines - - Developer Portals - - Deployments - - Software Catalogs - - Software Templates - - Tech Docs - - Your job is to determine if a user's question is related to the categories you are an expert in. If the question is related to those categories, \ - or any features that may be related to those categories, you will answer with ${allowed}. - - If a question is not related to your expert categories, answer with ${rejected}. - - You do not need to explain your answer. - - Below are some example questions: - Example Question: - Why is the sky blue? - Example Response: - ${rejected} - - Example Question: - Can you help configure my cluster to automatically scale? - Example Response: - ${allowed} - - Example Question: - How do I create import an existing software template in Backstage? - Example Response: - ${allowed} - - Example Question: - How do I accomplish a task in {product-very-short}? - Example Response: - ${allowed} - - Example Question: - How do I explore a component in {product-very-short} catalog? - Example Response: - ${allowed} - - Example Question: - How can I integrate GitOps into my pipeline? - Example Response: - ${allowed} - - Question: - ${message} - Response: - invalid_question_response: |- - Hi, I'm the Red Hat Developer Hub Lightspeed assistant, I can help you with questions about Red Hat Developer Hub or Backstage. - Please ensure your question is about these topics, and feel free to ask again! -... -shields: - - shield_id: lightspeed_question_validity-shield - provider_id: lightspeed_question_validity ----- \ No newline at end of file From 71ef82b08783e65cd60127f03bf057605fe11956 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 5 Nov 2025 18:18:31 +0530 Subject: [PATCH 07/26] Incorporated some comments and added architecture image --- ...eveloper-lightspeed-architecture-1-8-0.png | Bin 0 -> 112706 bytes .../con-llm-requirements.adoc | 7 +- .../con-rag-embeddings.adoc | 2 +- .../con-supported-architecture.adoc | 2 + ...installing-and-configuring-lightspeed.adoc | 121 +++++++++++++----- 5 files changed, 95 insertions(+), 37 deletions(-) create mode 100644 images/rhdh-plugins-reference/developer-lightspeed-architecture-1-8-0.png diff --git a/images/rhdh-plugins-reference/developer-lightspeed-architecture-1-8-0.png b/images/rhdh-plugins-reference/developer-lightspeed-architecture-1-8-0.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0b5ef9e3772a20d1418143c33b7a60403059e0 GIT binary patch literal 112706 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�-TS} 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 R;*qOhK4$Fbv&OUj`9H>^w5|XE literal 0 HcmV?d00001 diff --git a/modules/developer-lightspeed/con-llm-requirements.adoc b/modules/developer-lightspeed/con-llm-requirements.adoc index 6ecffddcfd..743214ef3e 100644 --- a/modules/developer-lightspeed/con-llm-requirements.adoc +++ b/modules/developer-lightspeed/con-llm-requirements.adoc @@ -5,11 +5,10 @@ {ls-short} follows a _Bring Your Own Model_ approach. This model means that to function, {ls-short} requires access to a large language model (LLM) which you must provide. An LLM is a type of generative AI that interprets natural language and generates human-like text or audio responses. When an LLM is used as a virtual assistant, the LLM can interpret questions and provide answers in a conversational manner. -LLMs are usually provided by a service or server. Since {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. -You can use {ls-short} with a number of LLM providers that offer the OpenAI API interface including the following LLMS: +LLMs are usually provided by a service or server. Since {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers`` that offer compatibility with the OpenAI API including the following LLMs: * OpenAI (cloud-based inference service) -* Red Hat OpenShift AI (enterprise model builder & inference server) -* Red Hat Enterprise Linux AI (enterprise inference server) +* {rhoai-brand-name} (enterprise model builder & inference server) +* {rhel} AI (enterprise inference server) * Ollama (popular desktop inference server) * vLLM (popular enterprise inference server) diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index a567df3888..af01c9b15d 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -1,7 +1,7 @@ :_mod-docs-content-type: CONCEPT [id="con-rag-embeddings_{context}"] -= Retrieval Augmented Generation (RAG) embeddings += Retrieval Augmented Generation embeddings The {product} documentation serves as the Retrieval-Augmented Generation (RAG) data source. diff --git a/modules/developer-lightspeed/con-supported-architecture.adoc b/modules/developer-lightspeed/con-supported-architecture.adoc index e8c67d70ca..ecb43c36a0 100644 --- a/modules/developer-lightspeed/con-supported-architecture.adoc +++ b/modules/developer-lightspeed/con-supported-architecture.adoc @@ -7,5 +7,7 @@ The {lcs-short} container acts as the intermediary layer, which interfaces with and manages the Llama Stack service. +image::rhdh-plugins-reference/developer-lightspeed-architecture-1-8-0.png[] + .Additional resources * link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 36d3244e8e..6c85657bc1 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,7 +3,13 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -You must install and configure the {ls-short}, the {lcs-name}, and Llama Stack containers manually. +{ls-short} operates on a _Bring Your Own Model_ approach, meaning you must provide and configure access to your preferred Large Language Model (LLM) provider for the service to function. The {lcs-name} ({lcs-short}) acts as an intermediary and service layer for interfacing with LLM providers, relying on the Llama Stack service for core operations. {lcs-short} handles LLM provider setup, authentication, feedback, and Retrieval Augmented Generation (RAG). The {lcs-short} is designed to run as a sidecar container within the {product-very-short} Pod. + +[NOTE] +==== +If you have already installed the previous {ls-short} (Developer Preview) with Road-Core Service (RCS), remove the previous {ls-short} configurations and settings and reinstall. +This step is necessary as {ls-short} originally required the use of the {rcs-name} as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new Lightspeed Core Service (LCS) and Llama Stack, which require a new configuration for volumes, containers, and secrets. +==== .Prerequisites * You are logged into your {ocp-short} account. @@ -13,6 +19,8 @@ You must install and configure the {ls-short}, the {lcs-name}, and Llama Stack c .Procedure +You must install and configure the {ls-short}, the {lcs-name}, and Llama Stack containers manually. + . Create the {lcs-short} ConfigMap (`lightspeed-stack.yaml`). + [IMPORTANT] @@ -55,11 +63,9 @@ mcp_servers: provider_id: model-context-protocol url: https:///api/mcp-actions/v1 ---- -+ where: - -(Optional) `mcp_servers`:: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. +`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. `mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. `model-context-protocol`:: This is the tool runtime provider defined and configured in the llama-stack `run.yaml` configuration for use in {lcs-short}. @@ -140,7 +146,6 @@ providers: type: sqlite provider_id: meta-reference provider_type: inline::meta-reference - #START - Adding your LLM provider inference: - provider_id: vllm provider_type: remote::vllm @@ -152,7 +157,6 @@ providers: - provider_id: sentence-transformers provider_type: inline::sentence-transformers config: {} - #END - Adding your LLM provider post_training: - config: checkpoint_format: huggingface @@ -270,7 +274,7 @@ providers: kvstore: type: sqlite namespace: null - db_path: /app-root/vector_db/rhdh_product_docs/1.8/faiss_store.db + db_path: /app-root/vector_db/rhdh_product_docs/1.7/faiss_store.db scoring_fns: [] server: auth: null @@ -291,8 +295,11 @@ vector_dbs: - embedding_dimension: 768 embedding_model: sentence-transformers/all-mpnet-base-v2 provider_id: rhdh-docs - vector_db_id: rhdh-product-docs-1_8 + vector_db_id: rhdh-product-docs-1_7 ---- +where: +`__`:: Enter your LLM server details. +`__`:: Enter your OpenAI API key. . Create the {ls-short} ConfigMap. + @@ -349,7 +356,27 @@ data: ---- where: -`lightspeed:mcpServers`:: Optional: Set this configuration if you want to integrate MCP. +`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. + +. Create {ls-short} secret file. +.. In the {ocp-short} web console, go to *Secrets*. +.. Click *Create > Key/value secret*. +.. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: ++ +[source,yaml] +---- +kind: Secret +apiVersion: v1 +metadata: + name: lightspeed-secrets + namespace: __ # Enter your rhdh instance namespace +stringData: + LLM_SERVER_ID: __ # Enter your server ID (for example, `ollama` or `granite`) + LLM_SERVER_TOKEN: __ # Enter your server token value + LLM_SERVER_URL: __ # Enter your server URL +type: Opaque +---- +.. Click *Create*. . Create the Llama Stack secret file. .. In the {ocp-short} web console, go to *Secrets*. @@ -382,7 +409,7 @@ stringData: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed disabled: false pluginConfig: lightspeed: @@ -407,9 +434,16 @@ includes: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend disabled: false pluginConfig: + lightspeed: + # REQUIRED: Configure LLM servers with OpenAI API compatibility + servers: + - id: ${LLM_SERVER_ID} + url: ${LLM_SERVER_URL} + token: ${LLM_SERVER_TOKEN} + # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} ---- @@ -443,28 +477,38 @@ includes: [source,yaml] ---- volumeMounts: - - mountPath: /app-root/.llama - name: shared-storage - - mountPath: /app-root/embeddings_model - name: rag-data-volume - subPath: embeddings_model - - mountPath: /app-root/vector_db/rhdh_product_docs - name: rag-data-volume - subPath: rhdh_product_docs - + - mountPath: /app-root/config/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml + - mountPath: /app-root/config/app-config-rhdh.yaml + name: lightspeed-app-config + subPath: app-config.yaml + - mountPath: /app-root-config/llama-stack/run.yaml + subPath: llama-stack/run.yaml ---- -... Add the Llama Stack Secret file as shown in the following example: +... Add the {ls-short} and Llama Stack Secret file as shown in the following example: + [source,yaml] ---- envFrom: + - secretRef: + name: lightspeed-secrets - secretRef: name: llama-stack-secrets ---- +... In your `deployment.patch.spec.template.spec.containers.env` section, set the {lcs-short} and Llama Stack environment variables as shown in the following example: ++ +[source,yaml] +---- + - name: PROJECT + value: rhdh + - name: LLAMA_CONFIG_FILE + value: /app-root/config/llama-stack/run.yaml +---- + [NOTE] ==== -* Your {product-very-short} container is typically already present in your Kubernetes custom resource (CR). You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. +* Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. ==== ... Click *Save*. The Pods are automatically restarted. + @@ -515,10 +559,6 @@ spec: subPath: lightspeed-stack.yaml - mountPath: /tmp/data/feedback name: shared-storage - # OPTIONAL: `llama-stack-config mount path configuration is only needed if you want to override the custom configuration - - mountPath: /app-root/run.yaml - name: llama-stack-config - subPath: run.yaml volumes: - configMap: name: lightspeed-stack @@ -538,7 +578,7 @@ dynamic: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.0 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed disabled: false pluginConfig: lightspeed: @@ -563,9 +603,15 @@ dynamic: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1 + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend disabled: false pluginConfig: + lightspeed: + # REQUIRED: Configure LLM servers with OpenAI API compatibility + servers: + - id: ${LLM_SERVER_ID} + url: ${LLM_SERVER_URL} + token: ${LLM_SERVER_TOKEN} # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} ---- @@ -594,23 +640,26 @@ extraVolumes: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack ---- -... Add the Llama Stack Secret file as shown in the following example: +... Add the {ls-short} and Llama Stack Secret file as shown in the following example: + [source,yaml] ---- extraEnvVarsSecrets: - - llama-stack-secrets + - lightspeed-secrets ---- ... Add the {lcs-short} image as shown in the following example: + [source,yaml,subs="+attributes"] ---- extraContainers: + - env: + - name: PROJECT + value: rhdh envFrom: - secretRef: - name: llama-stack-secrets + name: lightspeed-secrets image: 'quay.io/redhat-ai-dev/llama-stack:latest' - name: llama-stack + name: road-core-sidecar ports: - containerPort: 8080 name: lcs-backend @@ -648,6 +697,11 @@ upstream: - configMapRef: llama-stack-config filename: run.yaml extraContainers: + - env: + - name: PROJECT + value: rhdh + - name: LLAMA_STACK_CONFIG_FILE + value: /app-root/run.yaml envFrom: - secretRef: name: lightspeed-secrets @@ -661,6 +715,9 @@ upstream: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack subPath: lightspeed-stack.yaml + - mountPath: /app-root/run.yaml + name: llama-stack-config + subPath: run.yaml extraEnvVars: ... extraEnvVarsSecrets: From 5d1ec9171558ed60859fe1c05ef0a52b59199446 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 5 Nov 2025 18:42:00 +0530 Subject: [PATCH 08/26] Minor change --- .../proc-installing-and-configuring-lightspeed.adoc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 6c85657bc1..36b5cf1291 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -338,10 +338,6 @@ data: - name: mcp::backstage token: ${MCP_TOKEN} - # OPTIONAL: Enable/disable question validation (default: true) - # When enabled, restricts questions to RHDH-related topics for better security - questionValidation: true - # OPTIONAL: Custom users prompts displayed to users # If not provided, the plugin uses built-in default prompts prompts: From bfdcd61c43d719cf24e2adadeadc97f713c690f8 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 5 Nov 2025 22:24:29 +0530 Subject: [PATCH 09/26] Added the new heading for install and configure --- ...installing-and-configuring-lightspeed.adoc | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 36b5cf1291..269fdbfdbf 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,12 +3,20 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -{ls-short} operates on a _Bring Your Own Model_ approach, meaning you must provide and configure access to your preferred Large Language Model (LLM) provider for the service to function. The {lcs-name} ({lcs-short}) acts as an intermediary and service layer for interfacing with LLM providers, relying on the Llama Stack service for core operations. {lcs-short} handles LLM provider setup, authentication, feedback, and Retrieval Augmented Generation (RAG). The {lcs-short} is designed to run as a sidecar container within the {product-very-short} Pod. +{ls-short} includes three main components that work together to provide virtual assistant (chat) functionality to your developers. + +* Llama Stack server (container sidecar):: This server, based on open source Llama Stack, operates as the main gateway to your LLM inferencing provider for chat services. Its modular nature allows you to integrate other services, such as the Model Context Protocol (MCP). You must integrate your LLM provider with the Llama Stack server to support the chat functionality. This dependency on external LLM providers is called *Bring Your Own Model* (BYOM). + +* {lcs-name} (container sidecar):: This service, based on the open source Lightspeed Core, enables features that complement the Llama Stack server, including maintaining chat history and gathering user feedback. + +* {ls-short} (dynamic plugins):: These plugins are required to enable the {ls-short} user interface within your {product-very-short} instance. + +Configuring these components to initialise correctly and communicate with each other is essential in order to provide {ls-short} to your users. [NOTE] ==== -If you have already installed the previous {ls-short} (Developer Preview) with Road-Core Service (RCS), remove the previous {ls-short} configurations and settings and reinstall. -This step is necessary as {ls-short} originally required the use of the {rcs-name} as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new Lightspeed Core Service (LCS) and Llama Stack, which require a new configuration for volumes, containers, and secrets. +If you have already installed the previous {ls-short} (Developer Preview) with Road-Core Service (RCS), you must remove the previous {ls-short} configurations and settings and reinstall. +This step is necessary as {ls-short} has a new architecture. In the previous release, {ls-short} required the use of the {rcs-name} as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new {lcs-name} and Llama Stack server, and requires new configurations for the plugins, volumes, containers, and secrets. ==== .Prerequisites @@ -636,12 +644,12 @@ extraVolumes: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack ---- -... Add the {ls-short} and Llama Stack Secret file as shown in the following example: +... Add the Llama Stack Secret file as shown in the following example: + [source,yaml] ---- extraEnvVarsSecrets: - - lightspeed-secrets + - llama-stack-secrets ---- ... Add the {lcs-short} image as shown in the following example: + @@ -717,7 +725,7 @@ upstream: extraEnvVars: ... extraEnvVarsSecrets: - - lightspeed-secrets + - llama-stack-secrets extraVolumeMounts: - mountPath: /app-root/config/lightspeed-stack.yaml name: lightspeed-stack From 0019f8dd11aab53fa5229db5e328667ebb1ded87 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 15:00:02 +0530 Subject: [PATCH 10/26] Incorporated Tim's suggestions --- .../assembly-customizing-developer-lightspeed.adoc | 2 +- ...con-about-lightspeed-stack-and-llama-stack.adoc | 4 ++-- .../developer-lightspeed/con-llm-requirements.adoc | 2 +- .../developer-lightspeed/con-rag-embeddings.adoc | 2 +- .../proc-changing-your-llm-provider.adoc | 4 ++-- ...proc-installing-and-configuring-lightspeed.adoc | 14 +++++++------- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/assemblies/assembly-customizing-developer-lightspeed.adoc b/assemblies/assembly-customizing-developer-lightspeed.adoc index 9c6816dce3..89cd8d1c95 100644 --- a/assemblies/assembly-customizing-developer-lightspeed.adoc +++ b/assemblies/assembly-customizing-developer-lightspeed.adoc @@ -4,7 +4,7 @@ [id="{context}"] = Customizing {ls-short} -You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and configuring Model Context Protocol (MCP) tools. +You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and xref:proc-configure-mcp-tools-for-developer-lightspeed[configuring Model Context Protocol (MCP) tools]. include::modules/developer-lightspeed/proc-gathering-feedback.adoc[leveloffset=+1] diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 881420e8bb..8c20e794d9 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -3,9 +3,9 @@ [id="con-about-lightspeed-stack-and-llama-stack_{context}"] = About {lcs-name} and Llama Stack -The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {rhdh-short} functionality. +The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {rhdh-very-short} functionality. -The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the Large Language Model (LLM) inference providers, Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers, safety providers, and vector database settings. +The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the large language model (LLM) inference providers, Model Context Protocol (MCP) or retrieval augmented generation (RAG) tool runtime providers, safety providers, and vector database settings. * {lcs-name} manages authentication, user feedback collection, MCP server configuration, and caching. diff --git a/modules/developer-lightspeed/con-llm-requirements.adoc b/modules/developer-lightspeed/con-llm-requirements.adoc index 743214ef3e..51c323e677 100644 --- a/modules/developer-lightspeed/con-llm-requirements.adoc +++ b/modules/developer-lightspeed/con-llm-requirements.adoc @@ -5,7 +5,7 @@ {ls-short} follows a _Bring Your Own Model_ approach. This model means that to function, {ls-short} requires access to a large language model (LLM) which you must provide. An LLM is a type of generative AI that interprets natural language and generates human-like text or audio responses. When an LLM is used as a virtual assistant, the LLM can interpret questions and provide answers in a conversational manner. -LLMs are usually provided by a service or server. Since {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers`` that offer compatibility with the OpenAI API including the following LLMs: +LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers`` that offer compatibility with the OpenAI API including the following LLMs: * OpenAI (cloud-based inference service) * {rhoai-brand-name} (enterprise model builder & inference server) diff --git a/modules/developer-lightspeed/con-rag-embeddings.adoc b/modules/developer-lightspeed/con-rag-embeddings.adoc index af01c9b15d..9084e17383 100644 --- a/modules/developer-lightspeed/con-rag-embeddings.adoc +++ b/modules/developer-lightspeed/con-rag-embeddings.adoc @@ -1,7 +1,7 @@ :_mod-docs-content-type: CONCEPT [id="con-rag-embeddings_{context}"] -= Retrieval Augmented Generation embeddings += Retrieval augmented generation (RAG) embeddings The {product} documentation serves as the Retrieval-Augmented Generation (RAG) data source. diff --git a/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc b/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc index 2e2cea835a..5e4d6b8313 100644 --- a/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc +++ b/modules/developer-lightspeed/proc-changing-your-llm-provider.adoc @@ -3,11 +3,11 @@ [id="proc-changing-your-llm-provider_{context}"] = Changing your LLM provider in {ls-short} -{ls-short} operates on a {developer-lightspeed-link}#con-about-bring-your-own-model_appendix-about-user-data-security[_Bring Your Own Model_] approach, meaning you must provide and configure access to your preferred Large Language Model (LLM) provider for the service to function. Llama Stack acts as an intermediary layer that handles the configuration and setup of these LLM providers. +{ls-short} operates on a {developer-lightspeed-link}#con-about-bring-your-own-model_appendix-about-user-data-security[_Bring Your Own Model_] approach, meaning you must provide and configure access to your preferred large language model (LLM) provider for the service to function. Llama Stack acts as an intermediary layer that handles the configuration and setup of these LLM providers. .Procedure -You can define additional LLM providers by updating your Llama Stack app config (`llama-stack`) file. In the `inference` section within your `llama-stack.yaml` file, add your new provider configuration as shown in the following code: +* You can define additional LLM providers by updating your Llama Stack app config (`llama-stack`) file. In the `inference` section within your `llama-stack.yaml` file, add your new provider configuration as shown in the following example: + [source,yaml] ---- diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 269fdbfdbf..6d36cf011f 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -5,9 +5,9 @@ {ls-short} includes three main components that work together to provide virtual assistant (chat) functionality to your developers. -* Llama Stack server (container sidecar):: This server, based on open source Llama Stack, operates as the main gateway to your LLM inferencing provider for chat services. Its modular nature allows you to integrate other services, such as the Model Context Protocol (MCP). You must integrate your LLM provider with the Llama Stack server to support the chat functionality. This dependency on external LLM providers is called *Bring Your Own Model* (BYOM). +* Llama Stack server (container sidecar):: This service (based on open source https://github.com/llamastack/llama-stack[Llama Stack]) operates as the main gateway to your LLM inferencing provider for chat services. Its modular nature allows you to integrate other services, such as the Model Context Protocol (MCP). You must integrate your LLM provider with the Llama Stack server to support the chat functionality. This dependency on external LLM providers is called *Bring Your Own Model* (BYOM). -* {lcs-name} (container sidecar):: This service, based on the open source Lightspeed Core, enables features that complement the Llama Stack server, including maintaining chat history and gathering user feedback. +* {lcs-name} (container sidecar):: This service (based on the open source https://github.com/lightspeed-core[Lightspeed Core]) enables features that complement the Llama Stack server, including maintaining chat history and gathering user feedback. * {ls-short} (dynamic plugins):: These plugins are required to enable the {ls-short} user interface within your {product-very-short} instance. @@ -16,7 +16,7 @@ Configuring these components to initialise correctly and communicate with each o [NOTE] ==== If you have already installed the previous {ls-short} (Developer Preview) with Road-Core Service (RCS), you must remove the previous {ls-short} configurations and settings and reinstall. -This step is necessary as {ls-short} has a new architecture. In the previous release, {ls-short} required the use of the {rcs-name} as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new {lcs-name} and Llama Stack server, and requires new configurations for the plugins, volumes, containers, and secrets. +This step is necessary as {ls-short} has a new architecture. In the previous release, {ls-short} required the use of the Road-Core Service as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new {lcs-name} and Llama Stack server, and requires new configurations for the plugins, volumes, containers, and secrets. ==== .Prerequisites @@ -413,7 +413,7 @@ stringData: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed disabled: false pluginConfig: lightspeed: @@ -438,7 +438,7 @@ includes: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend disabled: false pluginConfig: lightspeed: @@ -582,7 +582,7 @@ dynamic: includes: - dynamic-plugins.default.yaml plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed disabled: false pluginConfig: lightspeed: @@ -607,7 +607,7 @@ dynamic: menuItem: icon: LightspeedIcon text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.39.1__0.5.7!red-hat-developer-hub-backstage-plugin-lightspeed-backend + - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend disabled: false pluginConfig: lightspeed: From 636393fdbb094a8cbdbf91b81bb7ca2f1522a9bd Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 15:17:14 +0530 Subject: [PATCH 11/26] Fixing build error --- assemblies/assembly-customizing-developer-lightspeed.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assemblies/assembly-customizing-developer-lightspeed.adoc b/assemblies/assembly-customizing-developer-lightspeed.adoc index 89cd8d1c95..f3b54ef7d0 100644 --- a/assemblies/assembly-customizing-developer-lightspeed.adoc +++ b/assemblies/assembly-customizing-developer-lightspeed.adoc @@ -4,7 +4,7 @@ [id="{context}"] = Customizing {ls-short} -You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and xref:proc-configure-mcp-tools-for-developer-lightspeed[configuring Model Context Protocol (MCP) tools]. +You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and {model-context-protocol-link}#proc-configure-mcp-tools-for-developer-lightspeed_assembly-model-context-protocol-tools[configuring Model Context Protocol (MCP) tools]. include::modules/developer-lightspeed/proc-gathering-feedback.adoc[leveloffset=+1] From d17cc97c1d34c214f1c79c8213888dab11da613f Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 18:41:18 +0530 Subject: [PATCH 12/26] Minor changes and rebase --- .../con-about-lightspeed-stack-and-llama-stack.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 8c20e794d9..a24f4ecf28 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -3,7 +3,7 @@ [id="con-about-lightspeed-stack-and-llama-stack_{context}"] = About {lcs-name} and Llama Stack -The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {rhdh-very-short} functionality. +The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {product-very-short} functionality. The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the large language model (LLM) inference providers, Model Context Protocol (MCP) or retrieval augmented generation (RAG) tool runtime providers, safety providers, and vector database settings. @@ -11,9 +11,9 @@ The {lcs-name} serves as the Llama Stack service intermediary, managing configur * Llama Stack provides the inference functionality that {lcs-short} uses to process requests. -* The {ls-brand-name} plugin in {rhdh-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. +* The {ls-brand-name} plugin in {product-very-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. [NOTE] ==== -{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {rhdh-short} instance. +{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {rhdh-very-short} instance. ==== \ No newline at end of file From 609785d9de8cb40ce8cd08db8a18c06c0a450025 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 18:45:08 +0530 Subject: [PATCH 13/26] updating rcs --- .../proc-customizing-the-chat-history-storage.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc index a7f7321f89..d3ededb76a 100644 --- a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc +++ b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc @@ -3,7 +3,7 @@ [id="proc-customizing-the-chat-history-storage_{context}"] = Customizing the chat history storage in {ls-short} -By default, the {rcs-short} service stores chat history using an in-memory database. This means that if you restart the Pod containing the server, the chat history is lost. You can manually configure {ls-short} to store the chat history persistently as a long-term backup with PostgreSQL by any of the following methods: +By default, the {ls-short} service stores chat history using an in-memory database. This means that if you restart the Pod containing the server, the chat history is lost. You can manually configure {ls-short} to store the chat history persistently as a long-term backup with PostgreSQL by any of the following methods: * {product-very-short} Operator * {product-very-short} Helm chart From 394c713e4c36e2de241bde3527bac554fa283413 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 18:57:47 +0530 Subject: [PATCH 14/26] Minor change --- .../con-about-lightspeed-stack-and-llama-stack.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index a24f4ecf28..3e535bd46c 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -15,5 +15,5 @@ The {lcs-name} serves as the Llama Stack service intermediary, managing configur [NOTE] ==== -{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {rhdh-very-short} instance. +{ls-brand-name} is a Developer Preview release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {product-very-short} instance. ==== \ No newline at end of file From 5fbe97f380d7c66ae583045ceb63a381ed80914a Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 19:46:45 +0530 Subject: [PATCH 15/26] minor change --- .../proc-installing-and-configuring-lightspeed.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 6d36cf011f..227db28411 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -356,7 +356,7 @@ data: # servicePort: ${LIGHTSPEED_SERVICE_PORT} # OPTIONAL: Override default RHDH system prompt - # systemPrompt: "You are a helpful assistant focused on {product} development." + # systemPrompt: "You are a helpful assistant focused on Red Hat Developer Hub development." ---- where: From 58d202473f20efcd5c51663a73f6cad173310718 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 21:44:38 +0530 Subject: [PATCH 16/26] Minor change --- .../developer-lightspeed/proc-updating-the-system-prompt.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/developer-lightspeed/proc-updating-the-system-prompt.adoc b/modules/developer-lightspeed/proc-updating-the-system-prompt.adoc index 79859cda51..16d8809608 100644 --- a/modules/developer-lightspeed/proc-updating-the-system-prompt.adoc +++ b/modules/developer-lightspeed/proc-updating-the-system-prompt.adoc @@ -13,7 +13,7 @@ You can override the default system prompt that {ls-short} uses to better frame ---- lightspeed: # ... other lightspeed configurations - systemPrompt: "You are a helpful assistant focused on {product} development." + systemPrompt: "You are a helpful assistant focused on Red Hat Developer Hub development." ---- Set `systemPrompt` to prefix all queries sent by {ls-short} to the LLM with this instruction, guiding the model to generate more tailored responses. From 107ea58756c1c691673aa2c087493a1f81daf002 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 6 Nov 2025 23:48:29 +0530 Subject: [PATCH 17/26] Incorporated Jordan and Ben's comments --- .../assembly-using-developer-lightspeed.adoc | 8 + ...bout-lightspeed-stack-and-llama-stack.adoc | 2 +- ...installing-and-configuring-lightspeed.adoc | 837 +++++------------- 3 files changed, 246 insertions(+), 601 deletions(-) diff --git a/assemblies/assembly-using-developer-lightspeed.adoc b/assemblies/assembly-using-developer-lightspeed.adoc index 7bfa027f84..0fa80e63d3 100644 --- a/assemblies/assembly-using-developer-lightspeed.adoc +++ b/assemblies/assembly-using-developer-lightspeed.adoc @@ -13,6 +13,14 @@ endif::[] {ls-brand-name} is designed to support you when performing various tasks during your development workflow. +[NOTE] +==== +The `Question Validation` feature is enabled by default if you are using the `quay.io/redhat-ai-dev/llama-stack` image without overriding the `run.yaml` configuration file in the image. To disable `Question Validation`, you must mount a `run.yaml` file to the container with the following sections removed: +* `Safety` +* `Shields` +* `External_providers_dir` set to `null` +==== + With `Question Validation` enabled, you can ask {ls-short} the following types of questions: * “Tell me about {product}.” diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 3e535bd46c..9dc9c58f09 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -9,7 +9,7 @@ The {lcs-name} serves as the Llama Stack service intermediary, managing configur * {lcs-name} manages authentication, user feedback collection, MCP server configuration, and caching. -* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. +* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. For more information, see https://llamastack.github.io/docs#what-is-llama-stack[What is Llama Stack]. * The {ls-brand-name} plugin in {product-very-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 227db28411..e0017bb06b 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -3,48 +3,44 @@ [id="proc-installing-and-configuring-lightspeed_{context}"] = Installing and configuring {ls-brand-name} -{ls-short} includes three main components that work together to provide virtual assistant (chat) functionality to your developers. +{ls-short} consists of several components which work together to deliver virtual assistant (chat) functionality to your developers. The following list main components: -* Llama Stack server (container sidecar):: This service (based on open source https://github.com/llamastack/llama-stack[Llama Stack]) operates as the main gateway to your LLM inferencing provider for chat services. Its modular nature allows you to integrate other services, such as the Model Context Protocol (MCP). You must integrate your LLM provider with the Llama Stack server to support the chat functionality. This dependency on external LLM providers is called *Bring Your Own Model* (BYOM). +* *Llama stack server (container sidecar):* This service (based on open source https://github.com/llamastack/llama-stack[Llama Stack]) operates as the main gateway to your LLM inferencing provider for chat services. It also allows you to integrate other services such as Model Context Protocol (MCP) thanks to its modular nature. You must integrate your LLM provider with the Llama Stack server in order to support the chat functionality of {ls-short}. We call this dependency on external LLM providers _Bring Your Own Model_ or BYOM. -* {lcs-name} (container sidecar):: This service (based on the open source https://github.com/lightspeed-core[Lightspeed Core]) enables features that complement the Llama Stack server, including maintaining chat history and gathering user feedback. +* *{lcs-name} ({lcs-short}) (container sidecar):* This service (based on the open source https://github.com/lightspeed-core[Lightspeed Core]) enables additional features in addition to those that the Llama Stack server provides, such as maintaining your chat history and gathering user feedback. -* {ls-short} (dynamic plugins):: These plugins are required to enable the {ls-short} user interface within your {product-very-short} instance. +* *{ls-brand-name} (dynamic plugins):* These plugins are required to enable the {ls-short} user interface within your {product-very-short} instance. -Configuring these components to initialise correctly and communicate with each other is essential in order to provide {ls-short} to your users. +Configuring these components to initialise correctly and communicate with each other is essential in order to provide {ls-short} to your users. [NOTE] ==== -If you have already installed the previous {ls-short} (Developer Preview) with Road-Core Service (RCS), you must remove the previous {ls-short} configurations and settings and reinstall. -This step is necessary as {ls-short} has a new architecture. In the previous release, {ls-short} required the use of the Road-Core Service as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces RCS with the new {lcs-name} and Llama Stack server, and requires new configurations for the plugins, volumes, containers, and secrets. +If you have already installed the previous {ls-short} Developer Preview with Road-Core Service, you must remove the previous {ls-short} configurations and settings and reinstall. + +This step is necessary as {ls-short} has a new architecture. In the previous release, {ls-short} required the use of the Road-Core Service as a sidecar container for interfacing with LLM providers. The updated architecture removes and replaces {rcs-short} with the new {lcs-name} and Llama Stack server, and requires new configurations for the plugins, volumes, containers, and secrets. ==== .Prerequisites -* You are logged into your {ocp-short} account. -* You have an {product-very-short} instance installed either of the following ways: -** {installing-on-ocp-book-link}#assembly-install-rhdh-ocp-operator[Using the Operator] -** {installing-on-ocp-book-link}#assembly-install-rhdh-ocp-helm[Using the Helm chart] + +* You are logged in to your {ocp-short} account. +* You have an existing {product-very-short} instance installed using either the Operator or the Helm chart. .Procedure -You must install and configure the {ls-short}, the {lcs-name}, and Llama Stack containers manually. +You must manually install and configure the {ls-short} plugin, the {lcs-name} ({lcs-short}) sidecar container, and the Llama Stack sidecar container. -. Create the {lcs-short} ConfigMap (`lightspeed-stack.yaml`). -+ -[IMPORTANT] -==== -You must name the {lcs-short} ConfigMap as `lightspeed-stack.yaml`. -==== -.. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. +. Create the {lcs-name} ({lcs-short}) ConfigMap: The {lcs-short} ConfigMap stores the configuration for the {lcs-name} and is mounted to the {lcs-short} container. + +.. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. -.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: +.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via* and edit the file using the following structure. This example demonstrates the configuration for the LCS ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: + -[source,yaml] +[source,yaml,subs=+attributes] ---- kind: ConfigMap apiVersion: v1 metadata: - name: Lightspeed Core Service (LCS) + name: {lcs-name} ({lcs-short}) service: host: 0.0.0.0 port: 8080 @@ -69,257 +65,27 @@ conversation_cache: mcp_servers: - name: mcp::backstage provider_id: model-context-protocol - url: https:///api/mcp-actions/v1 + url: https://<{product-very-short}_HOST>/api/mcp-actions/v1 ---- -where: - -`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. See {model-context-protocol-link}[{model-context-protocol-title}]. -`mcp_servers:name`:: This value must match the entry in the {ls-short} app config file for MCP servers. -`model-context-protocol`:: This is the tool runtime provider defined and configured in the llama-stack `run.yaml` configuration for use in {lcs-short}. - -.. Click *Create*. - -. Create a Llama Stack ConfigMap. -.. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. -.. Click *Create ConfigMaps*. -.. Skip this step if you have configured the Llama Stack image (quay.io/redhat-ai-dev/llama-stack) in your CR: From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and edit the file as shown in the following example: + -[source,yaml] ----- -version: '2' -image_name: minimal-viable-llama-stack-configuration - -apis: - - agents - - datasetio - - eval - - inference - - post_training - - safety - - scoring - - telemetry - - tool_runtime - - vector_io -benchmarks: [] -container_image: null -datasets: [] -external_providers_dir: "/app-root/config/providers.d" -inference_store: - db_path: .llama/distributions/ollama/inference_store.db - type: sqlite -logging: null -metadata_store: - db_path: .llama/distributions/ollama/registry.db - namespace: null - type: sqlite -models: -- model_id: sentence-transformers/all-mpnet-base-v2 - metadata: - embedding_dimension: 768 - model_type: embedding - provider_id: sentence-transformers - provider_model_id: "/app-root/embeddings_model" -providers: - agents: - - config: - persistence_store: - db_path: .llama/distributions/ollama/agents_store.db - namespace: null - type: sqlite - responses_store: - db_path: .llama/distributions/ollama/responses_store.db - type: sqlite - provider_id: meta-reference - provider_type: inline::meta-reference - datasetio: - - config: - kvstore: - db_path: .llama/distributions/ollama/huggingface_datasetio.db - namespace: null - type: sqlite - provider_id: huggingface - provider_type: remote::huggingface - - config: - kvstore: - db_path: .llama/distributions/ollama/localfs_datasetio.db - namespace: null - type: sqlite - provider_id: localfs - provider_type: inline::localfs - eval: - - config: - kvstore: - db_path: .llama/distributions/ollama/meta_reference_eval.db - namespace: null - type: sqlite - provider_id: meta-reference - provider_type: inline::meta-reference - inference: - - provider_id: vllm - provider_type: remote::vllm - config: - url: ${env.VLLM_URL} - api_token: ${env.VLLM_API_KEY} - max_tokens: ${env.VLLM_MAX_TOKENS:=4096} - tls_verify: ${env.VLLM_TLS_VERIFY:=true} - - provider_id: sentence-transformers - provider_type: inline::sentence-transformers - config: {} - post_training: - - config: - checkpoint_format: huggingface - device: cpu - distributed_backend: null - dpo_output_dir: "." - provider_id: huggingface - provider_type: inline::huggingface - safety: - - config: - excluded_categories: [] - provider_id: llama-guard - provider_type: inline::llama-guard - - provider_id: lightspeed_question_validity - provider_type: inline::lightspeed_question_validity - config: - model_id: ${env.VALIDATION_PROVIDER:=vllm}/${env.VALIDATION_MODEL_NAME} - model_prompt: |- - Instructions: - - You area question classification tool. You are an expert in the following categories: - - Backstage - - Red Hat Developer Hub (RHDH) - - Kubernetes - - Openshift - - CI/CD - - GitOps - - Pipelines - - Developer Portals - - Deployments - - Software Catalogs - - Software Templates - - Tech Docs - - Your job is to determine if a user's question is related to the categories you are an expert in. If the question is related to those categories, \ - or any features that may be related to those categories, you will answer with ${allowed}. - - If a question is not related to your expert categories, answer with ${rejected}. - - You do not need to explain your answer. - - Below are some example questions: - Example Question: - Why is the sky blue? - Example Response: - ${rejected} - - Example Question: - Can you help configure my cluster to automatically scale? - Example Response: - ${allowed} - - Example Question: - How do I create import an existing software template in Backstage? - Example Response: - ${allowed} - - Example Question: - How do I accomplish a task in RHDH? - Example Response: - ${allowed} - - Example Question: - How do I explore a component in RHDH catalog? - Example Response: - ${allowed} - - Example Question: - How can I integrate GitOps into my pipeline? - Example Response: - ${allowed} - - Question: - ${message} - Response: - invalid_question_response: |- - Hi, I'm the Red Hat Developer Hub Lightspeed assistant, I can help you with questions about Red Hat Developer Hub or Backstage. - Please ensure your question is about these topics, and feel free to ask again! - scoring: - - config: {} - provider_id: basic - provider_type: inline::basic - - config: {} - provider_id: llm-as-judge - provider_type: inline::llm-as-judge - - config: - openai_api_key: '********' - provider_id: braintrust - provider_type: inline::braintrust - telemetry: - - config: - service_name: 'lightspeed-stack-telemetry' - sinks: sqlite - sqlite_db_path: .llama/distributions/ollama/trace_store.db - provider_id: meta-reference - provider_type: inline::meta-reference - tool_runtime: - - provider_id: model-context-protocol - provider_type: remote::model-context-protocol - config: {} - - provider_id: rag-runtime - provider_type: inline::rag-runtime - config: {} - vector_io: - - config: - kvstore: - db_path: .llama/distributions/ollama/faiss_store.db - namespace: null - type: sqlite - provider_id: faiss - provider_type: inline::faiss - - provider_id: rhdh-docs - provider_type: inline::faiss - config: - kvstore: - type: sqlite - namespace: null - db_path: /app-root/vector_db/rhdh_product_docs/1.7/faiss_store.db -scoring_fns: [] -server: - auth: null - host: null - port: 8321 - quota: null - tls_cafile: null - tls_certfile: null - tls_keyfile: null -shields: - - shield_id: lightspeed_question_validity-shield - provider_id: lightspeed_question_validity -tool_groups: -- provider_id: rag-runtime - toolgroup_id: builtin::rag - description: "Only use for questions specifically about Red Hat Developer Hub (RHDH). Searches technical documentation for RHDH installation, discovery, configuration, release, upgrade, control access, integration, observability, and extending with plugins. Do not use for any other topic outside RHDH." -vector_dbs: -- embedding_dimension: 768 - embedding_model: sentence-transformers/all-mpnet-base-v2 - provider_id: rhdh-docs - vector_db_id: rhdh-product-docs-1_7 ----- where: -`__`:: Enter your LLM server details. -`__`:: Enter your OpenAI API key. -. Create the {ls-short} ConfigMap. +`{product-very-short}_HOST`:: Enter the hostname for {product-very-short}. + [NOTE] ==== -Create a dedicated {ls-short} ConfigMap instead of adding an additional section to your existing {product-very-short} custom application configuration file (for example, `lightspeed-app-config.yaml`). Creating two files prevents the entire {product-very-short} ConfigMap from being loaded into {lcs-short}. +The {lcs-short} ConfigMap can optionally include configuration for `mcp_servers` to enable MCP integration. ==== -.. In the {ocp-short} web console, go to your {product-very-short} instance and select the *ConfigMaps* tab. + +.. Click *Create*. + +. Create the {ls-short} ConfigMap: Create a dedicated {ls-short} ConfigMap (`lightspeed-app-config`) to hold specific plugin configurations. + +.. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMap*. .. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and add the following example: + -[source,yaml,subs="+attributes"] +[source,yaml] ---- kind: ConfigMap apiVersion: v1 @@ -330,21 +96,21 @@ data: app-config.yaml: |- backend: csp: - upgrade-insecure-requests: false - img-src: + upgrade-insecure-requests: false + img-src: - "'self'" - "data:" - https://img.freepik.com - https://cdn.dribbble.com - https://avatars.githubusercontent.com # This is to load GitHub avatars in the UI - script-src: - - "'self'" - - https://cdn.jsdelivr.net + script-src: + - "'self'" + - https://cdn.jsdelivr.net lightspeed: mcpServers: - name: mcp::backstage - token: ${MCP_TOKEN} + token: ${MCP_TOKEN} # OPTIONAL: Custom users prompts displayed to users # If not provided, the plugin uses built-in default prompts @@ -355,36 +121,16 @@ data: # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} - # OPTIONAL: Override default RHDH system prompt - # systemPrompt: "You are a helpful assistant focused on Red Hat Developer Hub development." + # OPTIONAL: Override default {product-very-short} system prompt + # systemPrompt: "You are a helpful assistant focused on {product} development." ---- -where: - -`mcp_servers`:: Optional: Set this configuration if you want to integrate MCP. -. Create {ls-short} secret file. -.. In the {ocp-short} web console, go to *Secrets*. -.. Click *Create > Key/value secret*. -.. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: -+ -[source,yaml] ----- -kind: Secret -apiVersion: v1 -metadata: - name: lightspeed-secrets - namespace: __ # Enter your rhdh instance namespace -stringData: - LLM_SERVER_ID: __ # Enter your server ID (for example, `ollama` or `granite`) - LLM_SERVER_TOKEN: __ # Enter your server token value - LLM_SERVER_URL: __ # Enter your server URL -type: Opaque ----- .. Click *Create*. -. Create the Llama Stack secret file. +. Create Llama Stack Secret file: This Secret file holds sensitive configuration data for your LLM provider and Llama Stack environment variables. This secret is typically named `llama-stack-secrets`. + .. In the {ocp-short} web console, go to *Secrets*. -.. Click *Create > Key/value secret*. +.. Click *Create* -> *Key/value secret*. .. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: + [source,yaml] @@ -392,369 +138,238 @@ type: Opaque apiVersion: v1 kind: Secret metadata: - name: llama-stack-secrets + name: llama-stack-secrets type: Opaque stringData: - VLLM_URL: "" # Set this if you are using redhat-ai-dev Llama Stack image - VLLM_API_KEY: "" # Set this if you are using redhat-ai-dev Llama Stack - VLLM_MAX_TOKENS: "" # Optional - VLLM_TLS_VERIFY: "" # Optional - OLLAMA_URL: "" # Set if you altered the run.yaml to use it - OPENAI_API_KEY: "" # Set if you altered the run.yaml to use it - VALIDATION_PROVIDER: "" # One of vllm, ollama, openai depending on above - VALIDATION_MODEL_NAME: "" # Name of model you want used for validation + VLLM_URL: "" + VLLM_API_KEY: "" + VLLM_MAX_TOKENS: "" + VLLM_TLS_VERIFY: "" + OLLAMA_URL: "" + OPENAI_API_KEY: "" + VALIDATION_PROVIDER: "" + VALIDATION_MODEL_NAME: "" ---- ++ +where: + +`VLLM_URL`:: Set this if you are using the `redhat-ai-dev` Llama Stack image +`VLLM_API_KEY`:: Set this if you are using the `redhat-ai-dev` Llama Stack image +`VLLM_MAX_TOKENS`:: Optional +`VLLM_TLS_VERIFY`:: Optional +`OLLAMA_URL`:: Set this if you altered the `run.yaml` file +`OPENAI_API_KEY`:: Set this if you altered the `run.yaml` file +`VALIDATION_PROVIDER`:: Set this as `vllm`, `ollama`, `openai`, depending on the key you have set in this configuration file +`VALIDATION_MODEL_NAME`:: Set the name of the model you want to use for validation + .. Click *Create*. -. To your existing dynamic plugins ConfigMap (for example, `dynamic-plugins-rhdh.yaml`), add the {ls-short} plugin image as shown in the following example: +. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-{product-very-short}.yaml`). + -[source,yaml,subs="+attributes"] +[source,yaml] ---- includes: - - dynamic-plugins.default.yaml - plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed - disabled: false - pluginConfig: - lightspeed: - # OPTIONAL: Custom users prompts displayed to users - # If not provided, the plugin uses built-in default prompts - prompts: - - title: 'Getting Started with {product}' - message: Can you guide me through the first steps to start using {product-short} - as a developer, like exploring the Software Catalog and adding my - service? - dynamicPlugins: - frontend: - red-hat-developer-hub.backstage-plugin-lightspeed: - appIcons: - - name: LightspeedIcon - module: LightspeedPlugin - importName: LightspeedIcon - dynamicRoutes: - - path: /lightspeed - importName: LightspeedPage - module: LightspeedPlugin - menuItem: - icon: LightspeedIcon - text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend - disabled: false - pluginConfig: - lightspeed: - # REQUIRED: Configure LLM servers with OpenAI API compatibility - servers: - - id: ${LLM_SERVER_ID} - url: ${LLM_SERVER_URL} - token: ${LLM_SERVER_TOKEN} - - # OPTIONAL: Port for lightspeed service (default: 8080) - # servicePort: ${LIGHTSPEED_SERVICE_PORT} ----- - -. Update your deployment configuration based on your installation method: -.. For an Operator-installed {product-very-short} instance, update your {product-custom-resource-type} custom resource (CR). -... In the `spec.application.appConfig.configMaps` section, add the {ls-short} and Llama Stack custom app configurations as shown in the following example: +- dynamic-plugins.default.yaml +plugins: +- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed + disabled: false + pluginConfig: + lightspeed: + # OPTIONAL: Custom users prompts displayed to users + prompts: + - title: 'Getting Started with Red Hat Developer Hub' + message: Can you guide me through the first steps to start using Developer Hub as a developer, like exploring the Software Catalog and adding my service? + dynamicPlugins: + frontend: + red-hat-developer-hub.backstage-plugin-lightspeed: + appIcons: + - name: LightspeedIcon + module: LightspeedPlugin + importName: LightspeedIcon + dynamicRoutes: + - path: /lightspeed + importName: LightspeedPage + module: LightspeedPlugin + menuItem: + icon: LightspeedIcon + text: Lightspeed +- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend + disabled: false + pluginConfig: + lightspeed: + # OPTIONAL: Port for lightspeed service (default: 8080) + # servicePort: ${LIGHTSPEED_SERVICE_PORT} +---- + +. Update your deployment configuration: Update the deployment configuration based on how your {product-very-short} instance was installed. You must add two sidecar containers: `llama-stack` and `lightspeed-core`. + +** For an Operator-installed {product-very-short} instance (Update {backstage} Custom Resource (CR)): + +... In the `spec.application.appConfig.configMaps` section of your {backstage} CR, add the {ls-short} custom app configuration: + [source,yaml] ---- - appConfig: - configMaps: - - name: lightspeed-app-config - mountPath: /opt/app-root/src - configMaps: - - name: llama-stack - mountPath: /opt/app-root/src + appConfig: + configMaps: + - name: lightspeed-app-config + mountPath: /opt/app-root/src ---- -... Update the `extraVolumes` specification to include the {lcs-short} and Llama Stack ConfigMaps as shown in the following example: +... Update the `spec.deployment.patch.spec.template.spec.volumes` specification to include volumes for {lcs-short} configuration (`lightspeed-stack`), shared storage for feedback (`shared-storage`), and RAG data (`rag-data-volume`): + [source,yaml] ---- - volumes: - - configMap: - name: lightspeed-stack - - configMap: - name: llama-stack + volumes: + - configMap: + name: lightspeed-stack + name: lightspeed-stack + - emptyDir: {} + name: shared-storage + - emptyDir: {} + name: rag-data-volume ---- -... Update the `volumeMounts` specification to mount the {lcs-short} and Llama Stack ConfigMaps as shown in the following example: -+ +... Add the `initContainers` section to initialize RAG data: [source,yaml] ++ ---- + initContainers: + - name: init-rag-data + image: 'quay.io/redhat-ai-dev/rag-content:release-1.7-lcs' + command: + - "sh" + - "-c" + - "echo 'Copying RAG data...'; cp -r /rag/vector_db/{product-very-short}_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" volumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /app-root/config/app-config-rhdh.yaml - name: lightspeed-app-config - subPath: app-config.yaml - - mountPath: /app-root-config/llama-stack/run.yaml - subPath: llama-stack/run.yaml + - mountPath: /data + name: rag-data-volume ---- -... Add the {ls-short} and Llama Stack Secret file as shown in the following example: +... Add the Llama Stack and {lcs-short} containers to the `spec.deployment.patch.spec.template.spec.containers` section: + [source,yaml] ---- - envFrom: - - secretRef: - name: lightspeed-secrets + containers: + # ... Your existing {product-very-short} container definition ... + - envFrom: - secretRef: name: llama-stack-secrets + image: 'quay.io/redhat-ai-dev/llama-stack:0.1.0' # Llama Stack image + name: llama-stack + volumeMounts: + - mountPath: /app-root/.llama + name: shared-storage + - mountPath: /app-root/embeddings_model + name: rag-data-volume + subPath: embeddings_model + - mountPath: /app-root/vector_db/{product-very-short}_product_docs + name: rag-data-volume + subPath: rhdh_product_docs + - image: 'quay.io/lightspeed-core/lightspeed-stack:dev-20251021-ee9f08f' # Lightspeed Core Service image + name: lightspeed-core + volumeMounts: + - mountPath: /app-root/lightspeed-stack.yaml + name: lightspeed-stack + subPath: lightspeed-stack.yaml + - mountPath: /tmp/data/feedback + name: shared-storage ---- -... In your `deployment.patch.spec.template.spec.containers.env` section, set the {lcs-short} and Llama Stack environment variables as shown in the following example: -+ -[source,yaml] ----- - - name: PROJECT - value: rhdh - - name: LLAMA_CONFIG_FILE - value: /app-root/config/llama-stack/run.yaml ----- -+ -[NOTE] -==== -* Your {product-very-short} container is typically already present in your CR. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. -==== ... Click *Save*. The Pods are automatically restarted. -+ -.Example of a Backstage CR with the {lcs-short} and Llama Stack container -[source,yaml,subs=+attributes] ----- -kind: Backstage -metadata: -... -name: name -namespace: namespace -spec: - deployment: - patch: - spec: - template: - spec: - initContainers: - - name: init-rag-data - image: 'quay.io/redhat-ai-dev/rag-content:release-1.7-lcs' - command: - - "sh" - - "-c" - - "echo 'Copying RAG data...'; cp -r /rag/vector_db/rhdh_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" - volumeMounts: - - mountPath: /data - name: rag-data-volume - containers: - - envFrom: - - secretRef: - name: llama-stack-secrets - image: 'quay.io/redhat-ai-dev/llama-stack:latest' - name: llama-stack - volumeMounts: - - mountPath: /app-root/.llama - name: shared-storage - - mountPath: /app-root/embeddings_model - name: rag-data-volume - subPath: embeddings_model - - mountPath: /app-root/vector_db/rhdh_product_docs - name: rag-data-volume - subPath: rhdh_product_docs - - image: - name: lightspeed-core - volumeMounts: - - mountPath: /app-root/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /tmp/data/feedback - name: shared-storage - volumes: - - configMap: - name: lightspeed-stack - name: lightspeed-stack - - emptyDir: {} - name: shared-storage - - emptyDir: {} - name: rag-data-volume ----- -.. For a Helm-installed {product-very-short} instance, update your Helm chart. -... Add your dynamic plugins configuration in the`global.dynamic` property as shown in the following example: -+ -[source,yaml,subs="+attributes"] ----- -global: -dynamic: - includes: - - dynamic-plugins.default.yaml - plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed - disabled: false - pluginConfig: - lightspeed: - # OPTIONAL: Custom users prompts displayed to users - # If not provided, the plugin uses built-in default prompts - prompts: - - title: 'Getting Started with {product}' - message: Can you guide me through the first steps to start using {product-short} - as a developer, like exploring the Software Catalog and adding my - service? - dynamicPlugins: - frontend: - red-hat-developer-hub.backstage-plugin-lightspeed: - appIcons: - - name: LightspeedIcon - module: LightspeedPlugin - importName: LightspeedIcon - dynamicRoutes: - - path: /lightspeed - importName: LightspeedPage - module: LightspeedPlugin - menuItem: - icon: LightspeedIcon - text: Lightspeed - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend - disabled: false - pluginConfig: - lightspeed: - # REQUIRED: Configure LLM servers with OpenAI API compatibility - servers: - - id: ${LLM_SERVER_ID} - url: ${LLM_SERVER_URL} - token: ${LLM_SERVER_TOKEN} - # OPTIONAL: Port for lightspeed service (default: 8080) - # servicePort: ${LIGHTSPEED_SERVICE_PORT} ----- -... Add your {ls-short} custom app config file as shown in the following example: + +** For a Helm-installed {product-very-short} instance (Update Helm Chart): + +... Add your dynamic plugins configuration in the `global.dynamic` property. +... Add your {ls-short} custom app config file to `extraAppConfig`: + [source,yaml] ---- - extraAppConfig: + extraAppConfig: - configMapRef: lightspeed-app-config filename: app-config.yaml ---- -... Update the `extraVolumes` section to include the {lcs-short} ConfigMap as shown in the following example: +... Add the Llama Stack Secret file to `extraEnvVarsSecrets`: + [source,yaml] ---- -extraVolumes: - - configMap: - name: /app-root/config/lightspeed-stack.yaml - name: lightspeed-stack + extraEnvVarsSecrets: + - llama-stack-secrets ---- -... Update the `extraVolumeMounts` section to mount the {lcs-short} and Llama Stack ConfigMap as shown in the following example: +... Update the `extraVolumes` section to include the {lcs-short} ConfigMap (`lightspeed-stack`), shared storage, and RAG data volume: + [source,yaml] ---- - extraVolumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml + extraVolumes: + - configMap: + name: lightspeed-stack name: lightspeed-stack + - emptyDir: {} + name: shared-storage + - emptyDir: {} + name: rag-data-volume ---- -... Add the Llama Stack Secret file as shown in the following example: +... Update the `initContainers` section (if supported by your Helm chart structure) to initialize RAG data. + [source,yaml] ---- - extraEnvVarsSecrets: - - llama-stack-secrets + initContainers: + - name: init-rag-data + image: 'quay.io/redhat-ai-dev/rag-content:release-1.7-lcs' + command: + - "sh" + - "-c" + - "echo 'Copying RAG data...'; cp -r /rag/vector_db/{product-very-short}_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" + volumeMounts: + - mountPath: /data + name: rag-data-volume ---- -... Add the {lcs-short} image as shown in the following example: +... Add the Llama Stack and {lcs-short} container definitions to `extraContainers` ++ +[NOTE] +==== +You must replace the older single container configuration found in source with the two sidecars. +==== + -[source,yaml,subs="+attributes"] +[source, yaml] ---- - extraContainers: - - env: - - name: PROJECT - value: rhdh - envFrom: + extraContainers: + # Llama Stack Container + - envFrom: - secretRef: - name: lightspeed-secrets - image: 'quay.io/redhat-ai-dev/llama-stack:latest' - name: road-core-sidecar - ports: - - containerPort: 8080 - name: lcs-backend - protocol: TCP + name: llama-stack-secrets + image: 'quay.io/redhat-ai-dev/llama-stack:0.1.0' + name: llama-stack volumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml + - mountPath: /app-root/.llama + name: shared-storage + - mountPath: /app-root/embeddings_model + name: rag-data-volume + subPath: embeddings_model + - mountPath: /app-root/vector_db/{product-very-short}_product_docs + name: rag-data-volume + subPath: rhdh_product_docs + # Lightspeed Core Service Container + - image: 'quay.io/lightspeed-core/lightspeed-stack:dev-20251021-ee9f08f' + name: lightspeed-core + volumeMounts: + - mountPath: /app-root/lightspeed-stack.yaml name: lightspeed-stack subPath: lightspeed-stack.yaml - - mountPath: /app-root/run.yaml - name: llama-stack-config - subPath: run.yaml + - mountPath: /tmp/data/feedback + name: shared-storage ---- +... Click *Save* and then Helm upgrade. + +. Manage authorization (RBAC): If you have users who are not administrators, you must define permissions and roles for them to use {ls-short}. The Lightspeed Backend plugin uses {backstage} RBAC for authorization. + +** For an Operator-installed {product-very-short} instance: + +... Configure the required RBAC permission by defining an `rbac-policies.csv` file, including `lightspeed.chat.read`, `lightspeed.chat.create`, and `lightspeed.chat.delete` permissions: + -[NOTE] -==== -Your {product-very-short} container is typically already present in your Helm chart. You are adding the two additional container definitions for {lcs-short} and Llama Stack as the {lcs-short} sidecar. -==== -... Click *Save*. -... Click *Helm upgrade*. -+ -.Example of a Helm chart with the LCS and Llama Stack container -[source,yaml,subs="+attributes"] ----- -global: - ... -upstream: - backstage: - appConfig: - ... - args: - ... - extraAppConfig: - - configMapRef: lightspeed-app-config - filename: app-config.yaml - - configMapRef: llama-stack-config - filename: run.yaml - extraContainers: - - env: - - name: PROJECT - value: rhdh - - name: LLAMA_STACK_CONFIG_FILE - value: /app-root/run.yaml - envFrom: - - secretRef: - name: lightspeed-secrets - image: 'quay.io/redhat-ai-dev/llama-stack:latest' - name: lightspeed-core-sidecar - ports: - - containerPort: 8080 - name: lcs-backend - protocol: TCP - volumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /app-root/run.yaml - name: llama-stack-config - subPath: run.yaml - extraEnvVars: - ... - extraEnvVarsSecrets: - - llama-stack-secrets - extraVolumeMounts: - - mountPath: /app-root/config/lightspeed-stack.yaml - name: lightspeed-stack - - mountPath: /app-root/run.yaml - name: llama-stack-config - extraVolumes: - - configMap: - name: lightspeed-stack - name: lightspeed-stack - ... - image: - ... - initContainers: - ... ----- - -. Define permissions and roles for your users who are not administrators by completing the following steps: -.. Configure the required RBAC permission by defining an `rbac-policies.csv` file as shown in the following example: -+ -[source,yaml] +[source,csv] ---- p, role:default/__, lightspeed.chat.read, read, allow p, role:default/__, lightspeed.chat.create, create, allow p, role:default/__, lightspeed.chat.delete, delete, allow - g, user:default/__, role:default/__ ---- -.. Upload your `rbac-policies.csv` and `rbac-conditional-policies.yaml` files to an `rbac-policies` config map in your {ocp-short} project containing {product-very-short}. -.. Update your {product-custom-resource-type} custom resource to mount in the {product-very-short} filesystem your files from the `rbac-policies` ConfigMap: +... Upload your `rbac-policies.csv` file to an `rbac-policies` ConfigMap in your {ocp-short} project containing {product-very-short} and update your Backstage CR: + [source,yaml] ---- @@ -767,11 +382,33 @@ spec: configMaps: - name: rbac-policies ---- -For detailed information, see {authorization-book-link}managing-authorizations-by-using-external-files[Managing authorizations by using external files]. + +** For a Helm-installed {product-very-short} instance: + +... Configure the required RBAC permission by defining an `rbac-policies.csv` file: ++ +[source,csv] +---- +p, role:default/__, lightspeed.chat.read, read, allow +p, role:default/__, lightspeed.chat.create, create, allow +p, role:default/__, lightspeed.chat.delete, delete, allow +g, user:default/__, role:default/__ +---- +... Optional: Declare policy administrators by editing your custom {product-very-short} ConfigMap (`app-config.yaml`) and adding the following code to enable selected authenticated users to configure RBAC policies through the REST API or Web UI: ++ +[source,yaml] +---- + permission: + enabled: true + rbac: + policies-csv-file: /opt/app-root/src/rbac-policies.csv + policyFileReload: true + admin: + users: + - name: user:default/ +---- .Verification . Log in to your {product-very-short} instance. -. In your {product} navigation menu, you are able to see and access the *Lightspeed* menu item. Clicking this menu takes you to the {ls-short} screen. - -image::rhdh-plugins-reference/developer-lightspeed.png[] +. In your {product-very-short} navigation menu, you are able to see and access the *Lightspeed* menu item. Clicking this menu item takes you to the {ls-short} screen. \ No newline at end of file From 79c6afcbf627e3fafc0c15123f3f05367dafa19e Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 7 Nov 2025 13:55:27 +0530 Subject: [PATCH 18/26] Maysuns comments and updated screenshots --- .../developer-lightspeed-1-8-0.png | Bin 0 -> 135136 bytes ...eveloper-lightspeed-architecture-1-8-0.png | Bin 112706 -> 103071 bytes .../developer-lightspeed.png | Bin 158138 -> 0 bytes .../con-about-developer-lightspeed.adoc | 4 +-- ...-customizing-the-chat-history-storage.adoc | 25 +++++++++--------- .../proc-gathering-feedback.adoc | 4 --- 6 files changed, 14 insertions(+), 19 deletions(-) create mode 100644 images/rhdh-plugins-reference/developer-lightspeed-1-8-0.png delete mode 100644 images/rhdh-plugins-reference/developer-lightspeed.png diff --git a/images/rhdh-plugins-reference/developer-lightspeed-1-8-0.png b/images/rhdh-plugins-reference/developer-lightspeed-1-8-0.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c2598748fa5a7c195aa53942dfddf76bb5742a GIT binary patch literal 135136 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�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%0D)`B^c3RnZ?`wxs- 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 ZqIGSb5jVDn{-p34J$$^!QTLhO{V&5WVHE%X literal 112706 zcmd?Rg;!N=7d?7N3F#E+5)h=MyBnnxK~hR70g(pjE(Ik7q*GE#x+N481QY}WrIhZz zYx{lQ9rynJh2I&&@xJ0Y`|SNZ>sf2AIp-qswzdiZ9t|D}g(6T>Rn$eHF!NC;v`rjr z_=!jFbP@aq(@kDY9|vB(I93tx_bX4744>#Z+dT2GaJ5F+IypO9^SC{5wYGM0vvYp3 zfzc)nZ{k7Tq~L08@#LYi6Qlk^M{CqwYb!=RAx3TIr;Gx80z!;@!s7fw;(Yv!x3w76 z^z_TWadx9nj3_llIepL9e}A~&PhL8?v^k8H$I7OUiAy3!LV=HgK_PM5_G5~W+fxsZ zp*XFjFae208?D!t%v|PZ=s~1hbm5}UHcuAtm#$^H-6j_8UOMw$6Kcs^YR!sfDJ)+i zl+)JMCXD#sOFc2DnT(P7Kd+pDa3#+F{y#I9JGVN?e_uMq4|Jmb-;dBm>ni^DrN3&J z^uG_}==SB1|L+sY;*|OS`#{lH6^GLQK9L{yf9Y2w{mMY;coEak;0X!}Mjl3zU8{7S zl}=szlqEw%N0;Ht@9gY6^jb{MCS5CCI9n;2^2ky?o4Cb$@A)^I)5ER9^OFs>`K~Ym z1uLt(G2ykT`o4kW>umGa@0NE5T%292jZI7>nVz0zop*9_67}4CGjw{xv>8WB>!WX# zN<6*Ar`KWvQw~4gQ^3_fQfX*vD$ch0S=XhCx-f@bzQRnxAnC~`?R&^r8~fq~*-IW{ zb`rBXhbxkjl6iIf{QQBXrKO6~U%yg>6Vg3To&7!dD!ZWICGX*SD_`>QDS1t~Nz57^Gp*0I@z%zs zre2Ao6=Nomas3rB=9!r;;;i1i{-Y@z9>3qA#(v_)O@~Q7Gj4Hlqt)S5+wbol>M~rT zqN3{V>(g)?eQPYjZCEMGEbTlaDd~H7`%${M`>N`hhs=}Zgt6Hdl3(b`P015fQ&XeZtnuo`hoPaQ?>2MofhpqdC5pb=zxq9ow)4k?V`+ps zch3MVwv_3Bx6o z3biv>=ONL2`1I-Jcbm<*j+C1ZpDX%yhTuXHP59nBGebXB=lCMR83K}u*EH$7vVsBz zgmJy%=|2&^SF@h$r2G zz+>XzP<@oX_%Z##&f-VXEeP_TU-C6{r|j(Q7dk`nNw@H+ZkV6!uLUpY?0<1>(4oeA?~$muxOz9fH?49Ebzs$lKJ{)EX6DA0NN#t#Q58KFeCLqrAL)pyT}fJgeosd-t&FR=(Gkjx`h( zUNdd;=h;hXZEYPp9DK!VZTe@2SH^3m)z8@6AKpk>b$ED)KBan{#>&QqaDFq(?j%5-pGK>g9_$8-^_#e=N{l}N+;_wNTfl9H0LT3)$w1*^re;z^q+$;G z)MaWu*+-`{Ej|%ZQO~_Kjkd0!GNt{vc8sd=?nA&}End^o)YJ@g%%e#BGCGRyAn3Vi zUc3bXr|#E+hSJc`D0VS3GfSON*VcYX6L5Cyp3M-xyu1t#)O5$l$SBa!ilS_Nx{;+u z)Yj3FM`(Rvfn~?&;lqcz3mqLDq5iZvIXQR^EN@d@rllE~r|aY@tHnZUx>{UZtQ-IB z`*-zNA0M9u2y)%{ey+cmSXdOtE{B^x72t+`XFPwdYku{iSq|FV@!lVSDPR9!#^D#& zZq2Q%aPApuYsZawnwvu=EV=WROX&Rk>;yf4{b8Gre0F8Ka5bJ#wUaiQY>mywyj})4 z@ilgDi;6ge&R4%)Pd$2QZ?6&C=5w$fy}_TQp{;$RGPdlXCg{7UsHkeJjQ1`MY^H8} zaZ!?KUh56v$#Gc(6Lt*op9k0KSBBMo(Rb>YE(G;kGZL7?aNW@KbAkw)@8o|C;y za}#HOe_!B)F=s$4f#uJS=S8IN11_ZZH)i8y&JPu6N56cLe|5veYUUdoQd)B^MC?Ww z?>9Zw^406_?ZuWk+a*(ur{{5b5Ea2C0#(-a?D$UwwT!)#gY@s(+q0Rqnq})Wp zt56xKy85vAZkMjz%Iq#TX?iwI^0@76|0+bzuM8TJWD+Ryztz>$1qUBrVelo-*7^^L z-9HmVwx3=H2BH6{{`Zk>QZlk&$O0@kZ<1dXc4$96+WDP9N|MY>nO~&)VPHTWc6;v6 zpJ;k1?>R^dw{>-&dl>!a%S_G98I9^3B11wjryE=_=)|8Sc&IDttBY!eaD_rf?VOmP zx^w4_sN3RY{Quw|YemS+KUY_yUcaWjd{y|enwlE2ZtA!y>N=rR^z?*eWMrsz$kXQb z_SZL({=uPTK`7x}SpnyfBrM8vu;B^tu=;qS_d~cOA3S(~d^4O1ZqEGTV+xLG0uae5e;jDOA`T+@o zf3S@!$75rrUjmDnOYXj26j$Ev?vtY8;%wzu8ebO3fXvKXwh%oSDk>^SU_kzSf!waV zs4l!WoQMG(^}WvVI@}rZDoQ9TD?_0maV2oMh!cIJ>9sOsqG zpq|kPJ^CO)@t<2qhuEBZF}$y+zXb`JLifp&o2WP5d#gyKAg?IoIGF2170K&8_dr)< z>lhfoOG``pFRD$}`~Lkqa%&W6jMuJRQ<+gCrl>cneZ(XnKzh2z{_okdm|0l1ARQPQ z8oqhD_I+DBJVG5lqR;fT>>krCjP%rSSUYYfRBNJ0a81okPrnY zC#UMITf-i{`+vXPzIzvN$j&0c`QZXlsvjYQj{E9ZKh@xe5AD6NSFP(@TwUeiJhIOF z?EjU!fB*HEFubTmAHPvNg%jbqH6J=AEG{m7xKfzKIu9Gz6MI#}YEi^v{eDqN$zpV9 zNXXps=UjoQ%M8-Ai;Ig#mMbeOlg(Z=L&6yn9?GS6-m=a^U_r488WSdbe#SOm zcq=O`D=TYE_-lzlR}!Zl>wLZQY%dfW>qU`(b6<|@*O#KPE?w&S_)*IyJ&{GFb8PIU z88_aY)o(u))g4NZ4y`OlvRU-HyQ zU5JQ?rr*13*!TlfNRGh5#-2aiS`e5z-RvUbe{ce0-x(bv)x1ci~loGF*tPZ`%=Ql$nA#r?*|-M*4#e4nhCJ>BmCClBQn3RkYAU$Czki- zzzn`kGeg{f*)(aGslu$S7vPFjUE;pjFO7}1YU%L5(~V@2k&(JnAC76C9~_sImlJAf zX#oyWxOIz2Sy{Qrp!B6D&o$asX4&8059PnQx*E@6^xZ?f z;w^Z8s*?IWtXDzw;b}tl>amb_s8Y<7mBSQ2|I~RLVa02>=ycL7U^5b*EsYK~+GyR(ynuHoTZ^Sxv!NE)h+RIp|T z8?zcx`(BA0w-gmahWc)eZ$) zLwt!rsXPGcM~@!44kkyae*!2>LQDIacf8flXLn=PZ1GjzHZ(1QA3l6|78;5La5y_R z7Xt#zt5E5;{>;e(0J}j!L2pV+qXBpgO1x!GmG%?Y)zh=EwY>yzY^+EJ15m>Jfq%~P zr036r^72?&*^!)yZed};$HylNxB464g#js&-}T3%b&)K!wb0k&QM;WG;`tO&=m*x0ch? zj2Y5NQnc=ex;j#6(WTq62+)<^dVsvlxSkMDKKEC9GM$yVU8#};q%U(feAf)*!`v$~ zf8=nYP%mG;T!v=P=$#!}pe*CYZiH$az*}=m%OJQ83pe-WfU`X+dP&b`&^!%D)K<)| zt;I_D>?28he0;p}-Mb_Yb^U%Xz@*S`c^>a_Lem)nXK;Y$6;#jr@1LlxewXG}g;pQ- z9$L;^fIcabUarNns=t@4a-yP@I7DUOJU$o*E|D^XEV)WQzb_`3S+kZ&+wuxoX~7tgJ)$9?#q zT8!`Z>fQ3Pox^kkNn&DRk!j2OF|4M@0dYS+zngX=C|=X%cBmfwe#cLW)5Vg=wbz+S z8p!XK8CJW4Li~actf^%+HCi zyspXWr#@Mqz5>t7wb%4cQQrl!iaGSw4X(eVn)Ny$u73XhjRgn1>|TwsWx7XB^&8|a zTYbe~XNf5(!;s1};6B^z6%1gC8FmtCNDsvSpeBE6Q4wHaK9_k#R6B4oc++fY5zF=f zC;*4Vg@lF4bCAyiOl$wqg3J?l}NG>3Rh?tn} zlYtKzR-4h&27a@Y8*Ow{f^QO2MS3;smcerb0gcxbAU0nqVS@as;l$Xb) z3fjuwyLaXN`}b_#Zyl%Vm~Px4eERe$wSbjsq-nG&eVVW%7ya4Y7H@a2LIuU&DU9Kz zy*gOXri384&rzov;}YTA_*-KrZ&YCfSJ_|DMig1@?Ctdc4$02R38J`ur+sWpe}|>e`2_0Q5ph4ZXeOU0v zzdn#4wI6gU3O-uwhJ*TcZTK%is9k$~_jl-FNpyLRmX zpykOHpLztgx`rvi<2HbLKN1C}q#!_9LBdlNcxix<;V@ zj9UKLfgWgiBpU;G!>G5nn7ND*%wB9zdgrmLE7#ti@87;99}7iBNZ%#(DBe+46MFb1 zZ}NowITe%uR69VHw&E-xE6`49Ws~m%tVE%p4D;4Wv#_wZ{2AwI_B*MYJZ8hE!rYxenCMDRCjN$zn+Yj5~s28lx2T(k)(i#NO(!fqbkY-S6A2Vv#bcNOnHiY z*kB+#gCPMS1qt{SwpUjSMDg(OM#jgLk^XOfJ_s6|ehD__96Tj0Edu659DradkSnTY zP^wy5SSbCsMzwI~&qV+ky`hfM{rU4J3ZSu)>;HcTn>~)0VQlX5L4s}rJNE0$R0 zJZNUQMMbHB86w6D{r4pwOm@@&ZNS;-`R?rUmSqK6VrUR3HOv&VN}U~J^=v=A@jp8@ zn=K$-Qhy;*YjF4OLHaRgnO>o`#mF1Ed~dCi`@VjD_${7ofq`h3FJD&YzQ$bQ+4`O% z`NfN1KxfZChH=FLq9--s2mqckB0fI6smUkO1fx-j6IBG4i8O`f<%4%_o*ubDmM9<6 zdI3=$_Mpbb@TPxrvtBk{(Mbp{5M0NL@_H8ECMVzAd25vK{SmmwH%j&@FvE3dzN&|MUWKyy++$zARy|qKZ8T}ScU`5?B)uqa59nRP2^BaL zg@#eOVPRp*lT{CjiHr-Xd4QhdHEZn#BKUWPdZenVsw@CsPl<=jIn_Dtf5!PB?4Tct zeme|jrsMnfH2e%QU3z3i*i1+9w4WzerH@5C_f?|Lt=m30zeDwMu~}p$CIZ2oGi0;w=Q^ zEo8!+YR2o=qjNJO2a1}R@48SmMHKzzsLdH8k~u{M$|h{I0p>IRJ6SbvGBgnN>z5T| zCd%S9;ArQTmm>g@bxuxF_r)_@Sf)dI%r6;tiOAYSB}4jd+ax6+=~pX`OZxua{W?5Q!oLHdNh|&Y2M!>J z40j$DY$-vxL2n_%R>wULl*Ck8j$K zUj}ww6bL_(fT)U{(OWVd>-+hS#oGqt>jRuC6@jJ(UjM1h#HMIyGeibPTN_ z9E5UD4?z?TF0P!XXM>^)bcKolN}x#v92N>Fn9+me5yY6J-|@}apb4)D=rh`ZmW6uD zDE%@a;Tb$MGh{7)e}6<&fmS7Onkg5`DTpPUn>SpbN<%V!HZ6n=N6b1iJtZXqmyCUG z`}g1^ECX~aXedBDhP96?P!|uH~`o_ zYCdz+>iAoP;wpNba3a41tn_UI11uEMWg|T&+$xZUxFG3CdTnDOvPw=4GXmKuC@35z zE75>(!A8Yg6(NL98A^jJV4$sGnTvK{5}>fF02e?E+$Z$R2=fP=&Saz8HRy(dfCflO zPX`JP9h#2GCJ$cVH7cRrBhSXkiCgdVqZ6=Lc2N-ykXHbnyQZgUMVzMFfh~;>#ivp~ zl?0Zr7Z~r)Ej}KaS<-Z%3JL`51ER_XZN%=!``WPu5P0OXr2RIRvH~oD8=0)O#{avv z#_zRlwIzlSF3HIhP`W~a%g{^}z=E#~ij2hV?CPqr`^>y`gb>Ypt6!m71VS~1H66f{uxj>`joA;bvD#E&x>;@5Nw_SlitzYjR|*gTle`%1thLyzVbhE6v@%igCey{ zZo$hJ_l%4>zkJa}Ah4Kj$=48w7T?i%2r7QJMNQ3gVJ+Ihp`noadJzbUpG!;OaL(qT zv9%j7yMmg7CtaSZ=Y{%*f}Rp33lw;_Uzt%Y9_V+yxhnCu>zz!jY;AKPe@)gqXEj7X zV!#9~2iQ(D6i8VS8?7gV@$^!iZ5QYG5C#Z!hJk$<r-gcj=Q~6r;uHg!AmHnQ1T?a12b=qM98-p+4Qj`G#7|MLRS)0^7h>q7IT1b6|o zu{)L%c0i;BDyjTqLXV%)Myl$&BtKI62`b3u!2#7pi+VDb;rl0?y>WEc;|M_Dk^KD; zLheCt3<*^p>J1<~L{E14JIT*&@}3;E9ea}o^j{>)(+iZmdGib~^*k);yc_g(JU3L) zkhXAZ%DJs$bd(GVE2&p{dinxDo(A_nl&cdJL>L$t)K{*kz4q9glLPu{ey$@JIi4VK z;lt5@wSEH{G}KJ@)*USLz%fqOtO3}|pw3se_wYjH?>Bpr00N`Ra<;RJfUbH0=)n1$ zF-Xo)W9OiC%EKuuH*LX#ogI5?Oa*j{*^q{5ox`^v(3wbi)JY83M+>xqv$7ZvFogjf zKDD6DWd{cb^}lJOg}3@fvK8`MZ;+8BQvm1Ntfr(d&weZOwew3H5(CM6qa+#`f8T6M zAtKNfK&xS!huYHv*($HD*r=8ZI=G!4sN-ywSv6Hv9gw;5{Er~zTt=A#-?X{A8v=&{ zZUx=e)^e|26Z>3#eOK~f(@sxsFSDQ^nb4!L zc8Jbx6P1@h6DhEgs+o{=%*>ppPZ=8}@aqflj*lu7lkFmSN%Y;HT?3KOXm~b^Ka|7W z)4$W-oPYDcV9psRa`@CTVD02|qxLXKM5v-64{AE>wPCYo)sP!B^TGTNdKo1ot|F-| zfk|N#cMZ)6-xC!C`(M2xY zEx+FZhoH)FN_e_0fI%gW7R|NIDlacj^4qw$=a`NMBc1hb%P;QK%4pC?+Omq|wb5>D^{$86c{P z?$s1DK>5J|WuxQE7gAu{8@%_pfX0G$10C9k;t2x48=%C;f<%!G{Kx!C7oe12h@Nt@ zwm2YecHxOD>|7zBJ^TaCsoOfHziB=B&K)P^nmci- zBA)}!1RQen^A$bzouE{#b ztKc62YNea`z-MDdYU`6fxI+-=2xX>c6cY><&?2!)UjX)+uT3H+CpWjSK%<~Y_SM^f zA`gi&5Z23twx+gL38LanP7XR`>`0Rn;L9pKHcSyD1$9M9Qxgs&^aV(agX^Knc9`Do z(IfQ6&~iBZ(I;L|g39kVqW{t^yjN|7>woz3(iUL|aKgT)8m(h9(0fCaknqkww6+c{ zE8{NOiR019H>iDNaG6e={1Op8ChGL;VAc+LH)v8odbR)!IAS6vUC>s$wGQ%*f~+hG z1pZi{Oc0QYq=c3hDR?hid9DAMHvkHJ*h8o~3~3_HH~c@|2VV_vi($Z3GV<{e148KK zZ97Fr0Z5Vs;-S*%hd8L**-)v#+#vI8`iBOHHBmsKL2V_1M8XxS5({8mTicM&iIy^s zA>ITUzE7WXAFqtzwiIf1OnGel%AltRh8E0!bV;2ni>cN?SgT!(elZ>Y9pZ$!V z0#C@t*AFQ)ME(Xve!GbJ)cK3`zPN|(%*xBFAY>yzSW*fYTs)FwGV9})l|cA|nJ5Az zOLHjl2y0wb#gEvFOiX?-AC#7qM1fW!Z(>3RA4d2f_#3M;iK9}VQ)0)UoqfK6~%_}o|Z5pesUFRlmdO;yn9_&TkWWaxk&%%B(31=4P!#MOaNsWm%06RK2y2Jk1hOxrwN)C}>YX*GD)SEXp$rKs z06n45B%Pj}>9qO#iHeE&eSH!g^c@Oz*N-1`ptA*noC8t>LImCfiQvNp;qQ#w9NmC} z5YP^ZRbgg@xIgsmTOOy`R)R#;5XfEdQIqD5E+F-)-2dF+Hf^Sc#NP|L=xrd}Lc+sA z3Luj5-ff2hP-WSJcln9{CTi~I&%k>%HXZO$-&p7lI>1x~_!*c+Y?L{mL!@jzU7yB9 z8P+?|K?Xvh;31WOTp4NdaDFZBjt7{l3s}Kt)3Mhfp5nk$gpPXR?hbw;)8c}>&-FUG z`rT2SdI`^8hKZ$%ELg2CG6A=Ac(SN9?RiMdSzNsQYwj7^r%y#Wc_Cf4!#RnyLTTd_ zSrrx0BF;G_X*92m>J%+q1+-0CqMBxAipmSa*W=>sW}6#_Br}_RBd>d`&v}_M(o9Xh zxqGr-WL8L+Ao0U_YNPGJ?TK&%KsN+o7w#LiXnO@oy}P&r06I*dSLPA7kWONxi0-uZsd!X*#lJ!#T$0ve0C zh^nFjTNFz4U}>Xh;ti9NNn6a^U4OeD<$}kAG;#3^HIKK3vNqrQ;D4NYr!p(om7TZS z##!r9^|`_2H*==6KaP$!Oi9c&IWwyIHf^P((@;d#6TDbGQOKPLndyYh=cJugCr{@qV^Ke{BEti=-JM2gobAKD!B0cCvLd-=qO_sR2YZL)H^`wpa9aj zv(erD^55?i2hA<~PuA}bT@}O@RE|q(*w3!9<@eaJiTOK475v`4>uZz8XKyf{wfajP zi;FP;vgSiXJQXpQe(XMYJL`gog_FheZ33IqF1U_KjR zrg*4HU);}`ss|&VzjOv4a$vRgcOKBdr z^1k-jQwdhy=c_QjmE&oU)O?nCVm|HhW2D(Y;)%zVn2-j;Q}mkh?@3z2m*5d-Ab06dBhF(cdDKUG{LaCI^ml)Z+1)gEneZD55WJX4aODlTcwD( zv1?~ZBQzaGW5p|IVvg_>Kx8_~Y=fJ@AtD-{aF&-xe^*;;y$BQq3en7gp9bFYXnhhI z^BgE(o;!op`(~{bBO7v!c~T|x=#MyD=G$~xbp5w@EwKl`Td1HY6)|c zFr9eFvjpO?!81v>`2mWt@_S@FYkw5cb45cuCsS?pqxT%Dnrqcv))G2PGSRLu#bI zmGF+kOtiMtxyXF2-_rWBmDwd{(@Py=ouqn8Ji{Kb+CPrpxCv@lMSRIF%i)T<&cQYR zitJ);nYU@{Pq|jaqL$#Y zonM&%4-u&4MI%bZfdBu_wlP5KdPHC7>~ga2sHmirZ9h>?D&okMn>416dRAA!e*fYa zpXaJjXYRD6eJ178rwy)4gtY0xJqh$ul^4I%9I`IjcBZX;c!M~PG7dMTb+!oa}5yiX&oQcHYyi}Cu0A>xit ztyq^!CKMf>Bpo&syo@^>9^fkBD|aNMFffRmY>KF#@BCEyYIt+G!;xCQBJ%j@evz)y zl`WU5BGZ~Xt@d}nj&z5l;`3W9$}5JoDcx?@IFxJ-x2|C~A4>X0&3|4fzm$>oJV-*M z+;T0>Y$qeDe$;g4RU?6hEerc924PksHjg7+@x+^Ig*$TZ6o9h%Oxw8yi|$dL1tPIbVb7@c1|fT6b{eP=at(pp|~dAvCR; z3vx5CqqqC%YV~NLiQ1g+!GHH~6ck0&IuZSw%to=2KPyaPLKH5zxD9{SGB#+h3ktdf z+6|0kKc?kJFD=jxb(TfVlah|KX;7hLpWluciNNtawZfo4QP2I2NyElIvW)ESA9*G4 z$e5A1{f&_jYri2E3PnyqZvLh;S}~irpOf=2C4(o?ZN~jN83^>PuLk?~G?rW*_bKnv zi(XdlEf8Hf#+P)y2w(SWd+|+KM-4aY!k&|hGg5@{*y{)Bq12vSmfS3h5=VD$eobQL z%j2H=F){XC9~y+eyRTxC)rdEE9;XcD=*xK(;=FiMmUG-A|6*2($Ak;J#N79ZbF0DFX{B)0ZY|*I+**0gf2l- zas3>;?SgQ6w?Ga88a4OPI^B}wRS~Bou{BT721%PP{`r0%Z_W4cp5Ir@!oS!=yMD0V zGc>)&wN_R}e1(FI-h@?4%FXSa(-%yYPg#ArRJ?pnbFv)2we=jW9An=X6zERGcV5e_ z-YysN7^KY0%g=tazAS_CWFQNMlz%g!YMl+$>~}!u%*>+GrcF0CGNA&f+9r+`m!iB> z*|pkdRK0A<3ukZbFB&T2{ej$2_<_>;hDoDD6Yaet9iYs(dNCn9WCB zynnb5tFYo|=hZPI*B?AReNr4u(w^cR@&d#%n&a9vK7MD0Q{U)y^<^s?>z|#mR}Cv2 zuO5qvS?I6dh(oZBlZc4J(VEEV;SZ0IFC((|EtxZ0ypx?TwJ@}u5V{FFD?3;+*L_UC z7IzC_Ol^jq6(^E-d;G;=Q&MWiBTyReizjXR{Z&vz*UHWSg(pqvbyfYfT>1 zEuQ>H#iThto@X9kJv-s|7^2pn814E~$roev4(Gw8%d$d_j{2kH%GWMk(!AeDdc8n1 z5Uwv!Q~h{v-DLOCZ0i{PXmxu}58G_g&(3+b+-1N+Ooz!?4GlZ|*YQ8=Fhosfm6V9< zhR8R^$2@acyI8}#O14LTFEy2Psdd{YOpGk-!DNcsvV@)J?&Xr`VVUz2wB4(c%pxjU zR@T%iTl)%E3wBjfsc30vFcmD7u{%&yBW z%NY5vX-j8Gu^wBLE~?V`o4{$M9Z8wbz9Mi)huE0ridoW=qCQVscjjL_H~&#{ZFQnJ z_`|Xtf`iE}5m7SCwpiiz-Y|*6_B(!)pFuaHq|%jVqa`}|O)Z1jP^Yn>!B_8O;CMQr zXKmB8fo|qHiAa4}c#R1C?`WQT7lL&aCP8htE+YTFcF4mCZ5NS@gS9nmeJDbCc9Uk+ zK!{0GJIKXRusAo9M#QZ>vF5^ZE$7N)tqazwk;t<;Cm~k$?yk?p*RkW%P^giSG5O(h z1%9X79?Ms#E$7R6%!Yh6ix?8A8Nx~Y#5)HHn3763vg;bz(r!8@ZyYG8731A;oQiKT zo-p4<+5UBxA|exvX1+MJmP1UM)%m}0swPi|Mb(mOk-@Up*gCjrxQ3;pf&Fg`M+aeNYmGM@7+VQ zvmG+D_MorERpxu+=)zAt?p+lQD@l8Qm~t@n%XdjTvjy{oEpK9~tu=dmVnj9G zM~#=8vk`W{Y<%eNPkfItyM$F-!J|o`p~D4~C5(ZnYMpH}2btx(d4mF{4hQ+DHZSPw zAlQ=rNzo^VZV_Cq-qpa5(@OW>JJND+X!VSP>;Z&#Ya_#REo0-WV0R$d*i;L( zwX{KdVfptKBXLCGM?Zo=Z?kjByMx{O%=`Jxv05K393Gv2^-9PCt_ApXY)Z;}!Jx7? zN<&ADSzJx8c+JoohohS>q+vK+-Z2g0=6~s3JD2873u<77#fLL z{nwy^gLWDS-7-*Ktzz}nss;uWpwSnZwMhde+1K(Qfk_(@N=j@HQDN3C+Jm371T;dJ z==qy|%uxaelY_ESmW@P5si33;4`hav6!N7BN#^IFW_Kdh!+_|DX}xX8i~BlGgVh+u zJ;839KTaQ2J?B+Lo{w;qFkeTZau>>Ib70R{%EmfVzrra$8+Xt0(#TT|V1Sw1m5fS?sAmZY#Gr74jk&n^$UtEw zRNf+x#Q>&ABEgp9ub0`g0)oJ{c3_11H$+GPo0?aloIaDMx3?uwZ@}&*d2ofYJMwT+ z7DTZ6iTiEr?B(a39cc{bR?u^@5#vNTW)xPytPf&v`}OOWIn2D7NuhJ_^OFReA6=sa zW&+d*-Tqo`Rdw~C^z^H+)BJFIV9}f_trO8!Q|o|*uL7nNNMOI6q?QV}W`nzcj#vTs z48fxpb&;8vhz3M>v;P?l_!yybV5a$33&*v!$w2=S2Ha~7ur)A05f&bP2?EgK;loIf z0f4oh0}~?>l_mPcK`?I94gm=rG(rdg)J3EfYyz4$aLJ?bFB-RQ^}&6B^9%)QD0ISp zU#ps%0nUDgRnqnP8&Tx2wX*}(kmI|r)fCN0uU^HMk!kbILK|RNFHvJPp4n}=^+zE~ z`YxV?(Q0X_CRkU2AmVmtomB*C3KZw_RT4cgNs2!GOARwAX2p2AUO-hn-v4{g;afEp zm{kwwBMKqr?}P6ZsPG=}AE>`p1)`lywfQUnVtl+4oa>O7Z}!|mhv@|{uy!=KEFcjE!g>z0dqButaxF{%(VZF@L4qkiMAfjT zrF_B-!$*+sf&t{ijKxS>KmagkgKPXS&XsctBPA|CBQ(ZX*~mqy)(r!jIEd2)p_5-w zfDIZVGF+Jd-mU?hf3TB?-vg!(I>3Xu8u1pE)rc$%5>yXj$%YXIP@fp6g&vW^Xe%Kq1!jg(h^q#20Z8W!OzUn( z+rJUf06aKhSooCY;O9XIOjLVU7Y1@`O-(0M@oV2}@e!@f)l3BV8}&7p-0Ev=LKIEY z(|nGHkBdr6)TOQoaN!a8`h9NGcvZ2wV_?S-cXlRnM?1r4=-YtGll!!HV2r*2 zoF)*Qg21~DJO<0g6Rw!cI^yMK?@<*e^dHU-NeI@A-#Dt+j`4BL+MnzEd@U0|kIW;3 z>{1E-O46pdvP2zjO%k=|cM=A!(uLlll(;xeDNEEdGfC1lFi=8V5zuj+f-uojEiqLH z5+rgG5>;7UG+9Y4fcAtu*#Q$HYx^1c?}JG*Z`io*S|S| z9E31e)zEk$3ImQ&ph)F{Hjl(0a0Ra_WLe1ZT)^^NX3|6n4WGaTU8zASwvbS*WxCBZ zVw^WX7aZ@=kQz(;&kOKp0Rm+BAiuUDL&}E|T2Hod8EKzt5(69X`*a}|`+&Q;xFDl*L=?qZ#8U*Jn#`CMLH~?p()(wJ3g)T0SVS_w15EF zLXfcAq1S~YN6B!oy)6$|Hn2~67*KF_r{+&J7>xm!L^RA|y#czr=gSi8DhUNeC}bZv zSGk7A-1Z?49~#yK$n+A?a@27A2I66yUUU+{x@sLz>qD3>~5fGw$(n8?`3&M}g+&v{Dr?^Z^z&~Y}|S#e|tS0eAMiCfG>Y28k8 z9ZlxSY+fpm%*=&xIkkg_I$RZVyAMAXSK?<-J<{R?OF|j644*!I0^flU>|pf1o@yd& z0r*xIAYUM(+M+igPs5ZsI75&bLq0*l;GiIM$jFFMY$!{H0m``U$sK+D5ExWPsCAf1 zp)~%qjm$iN%rg&?pRP(6Zm2wRECHv$1T`1fh47V>lvuA_TL5>;WTgd$X|pGjTU0tI zy}Q|Zs(dv?k~y_I$GK{pkGR_FE8ULDfOVob8>LV za**HofUW_2A7Y7x+odwr8Gu6x`BfGs%(#9%*sl%ST@GY|DQ^3$^9r*Cx%GFtTz=~6 z>b|#lAHpA2Tt7C;Tu#nvqQ2|#!A3l2Z5H68kXusOq32abeM4y=g~` zIHbU1gx<(<8|F7PmUVKXn3va#Jte(E_|Hx-8X4Z7Z*8{o@bWgtN6MwMYneZ=2n2e? zPy8u)ebdt+M`-jtiT98QZh6XFM(w0K|i&3J{W=sdMJ%>1!S{2YZw zDvrzZL|!eyRDq0>Ic(d)4n0cs1@oI64xF4IawX#YVvYz#EpJ&JM)l;GJeIs`={!4U zlNtSgZOC+mu~JUnGd68ByDes@34ilje7&^k@Mj$J61LIXz0IwK)9L^jstU8E)Z@Js zGJ0(n1_m!52Vcoq=h;sk%XaD%yxN6}A0K`zN;HU(xs_?788`BhiDf{CTF$2|LT~_PTBttmI&%05JYn>0L z$6hyVGYSE!0326=zNCaC z_}`CXS+idtL8?|1QO_S5X4nSV?Wa@ zmO+uq45iTGLjn`%+z}ARIv@dZ&!U#cipe053t-j_gz6Ab5202u0G1enN)IQD$YXt) ziJw0arbQMuHiqGhBhEX3SlH$u!o^VY2LW7OSXxqnRm<|-#s#oE_yifKM34X&AYe#M z7l7xr#a<=T+X-ysp^^9#9mYN}g~BynC|`vJc(C7V{p=Oxigp4``M zGD2Ji^FP=$M9Jws*1RH7WmhRr`-`XA7loo`|U`|RaFKxPG8 zNa5e9SR7gXdPvTrF0V`a@e*O4!f3(n`edTQ=g-Ze7U*OwELQ{{Gol8^D{N2083f>F zmoNU-+;4FSK6uI9UvHmbhPVX$)~E!G+?PAcI3Gkr`>8J28j!>{6sFg&m*$^V zdW*FjE9rviz4hc6zxBwM=}#S9UQs`qprDR95gB97gzSh{yH2pob zW}$n(pLeIFuW9hL`eM-)Jua@5e$9}9NKu0#MNTTjL)znyoh|jTdlkzh+ zB`$i3=Drer2ebLTNLk_de6b*PziS$axzTb!4}VO*+>nV9GKZY}W`NsSN?dDsvtQ#!Kzm94@-rD{md5_KZ-P$g<>C8;oz5Od@ z0q2~`!GYV!=qq1xd54LpgPgZWS=rdDtQvs%j0Q62?*oRa~X2hCH>zSyHQg?bd{f;d*y^fVlEHZlO z)8k{$n@x32mZJxyhE02n0dz-nvzBbC5zz}DoG<-4d-T=*L*|;yV2*xmn!A-8Ui(zv zs~b|L=0EOgq@J#;pvp|DQsj8!(dOFM9pBka^>eYya$X3~9-X0LJBKPF=fnxNe~ZJo zUJ<#ngT_H-%C;1)S_-KW2`pT;Lik@iy(??R1)5jD*E|T|EGz1XgIbFB+1>=e1DMC? za$0$yoOJze9Q+m;e)u&tz<%sJd3&UkDq!81fk5@M(sgPOrCRs@oN=8;h zMk0HsWN$^0y+=y6%ra9HC3{CnvdYR#2r21*T+jFS@AZ0K_j7kAAJ_GMpW`@><2dtM zN2xLt_TF>~h|A4%rZlP{0}}9+BVpxESR(s0yH1sFWatUUGtMOTA4I}0Higv(?fWuC z>hEtVeqWK7)kIlce4kbt%gujh_zdX|FyD=#T&?q#VUi(tn@{;>{F?ma_A{Ze__$~i z(f{iCo(Oh-_tY~dGl-BAGH;#uI7W4(w(xAPtvHBe@O&`Gska?0=Qg?Z_gTX@JZIiL zcQm=zbVt>3S0iWwYebcdq19DsC4q>k_ba&ar&8b zF>bZbBj<~HzkHilb2ztaIW&~v0uM58-ot^SJA=`@LhJ!YPu?)CoP9G?B)@0t@79Z( zi-)<>Vm3&;A^}z5!FijH%F{{=56k2moV@$MO@5|dIL_wbz}LpIGs+Rs4VGfme_JwL z|G3U1ZT_k7msg_d%_Ys|t?fF)`;TY+>wl+QPb5$BG`FlSJ?psdAh7S0`@CYC_Ta7B zqRFUlX+BY3zL?${A?ZF~Z(SOu+TB|5-DfkBjf`O6;s6j87~G+vH1d2VWw*DtUqN|^ zQf0D$GKULHIZ)#Fg5X|nDOLt8(aYTED!5n#L-(DMZ0y}uc>T{rRGa0wq8CTkB~3pH z(g+(re0_)g=`O0e!_y;T7ssw$O4frsoWr&IczU90Q&ss&9w0zkd2K+W+u2PVXcT;Jgf-2J@+X6@=oXf` z{qt|$e|Yl8r^ssqkDV4jn|isNH2ZEu_vC7aPf4w{$M!SB=P$fhdFlfK5|Fz-{qi(s zl@w{{d|cCCbSd{7>EM}mx`QWA@^n5@!-z7?V4--kavWtX@5zER>nLVfwe>;{0aD#;xrxVHFV>H0{B=wCwud72^l#k~-Q=*u zqLtUli?2V%E$DFNPcq|!L%u@uQ%pxkXC>y`QB||ehWDBBdr)!%kswsoXVX=Z?t#V+ zlBosg76vyiY;%2GSWpMcmP(N-ySEh(gIJdc?7&R%pYfiqB=+RfP-JnR=E?RE>n-5e zw|!i+P4i9#+q;&lrq^GEs=a}E(Pit|&k4L_f#-CnzW#P|vAgO}?DewVv^zwMq0>d3 zBUN^9ARUGG&AzvH{!9zz-72|L5nk=P)P23;hwHz(XAGBK-K|#dvE<+L%B3Y$#ci?B z;Pxr!M#12b7uLoPh59)bl;@jHy;P$v7CW3w#Y`z*eIS?L`@6;E(4@dMXI-5HA|AoT zOj3LrvR~%IODbQ2e%z!hHtwp_JY%&|YUcT(n#yf~VeH0;>YXoN1Y7vWXWJhA*_irf zBXo7#)Ky$~Z6-i3JN8USvR=aPE~E0hdt+l01dLPF21-_6^Iu{ZE~0OGRm(rUcwy+> zMPvUz*GCVZ2qWLQb7ueUDpqObfu!jJ<|S)OnkAwZ`IMArpMQMf)Mqc{F-5*RJNC<) zvxT~a3SeJ)Ic<3+)veKO`}-T!dc_}17WVj|tD~jTQ)so%OY)B_XNxBBmTe!UQYywe z>icV;%xBN+y6NuDUaV+n9dV?-$nllp*})YC3hylUr3~GBLebJn>HqdytXD2KHgC1$ zq^wRZ2Q(_i|K$41w`=s!j%l?W4!V-?R-3M`%;LO) z*5sXovV`c|J*WU+%5k%|B*6z+qwd{1A5i>Egl+GolGod(c3>(}X4tM@L{^@fx` z9~Dl?4joB1x9i`fd*|Bf$6-ZvMw$DA?|CmG&3@BJH~pFOTvtnApV5n(0l*pwW5QdQDI^27H2c*b4y)Q_8mOfGB}t5z_}Cwzeu|dFqtTPGzg$BFV806=`#_CFV4X{ z0ES9$J37MAmK&zL1=I8q{4&t3-h2J}_3z9lFo|!>u#EN^wFcflS5I? z(T7j&DLbB4Z{))~pR-wYb(7@ba%auxV7Qs1w3=wEw7a$Fg6o)CjYst5+O$4CwJnGC zU8_5_XjCp-P%Ih99+($B9C=@TbNWU4vC1pQ2)X6y(;feGbi}fCmdCl6q*hwJzS8Yf z{cJOMdZ~2bk;i0NN;v(YhcRqDy4}eaSz6vV+_9J+aQQv1Sg2PVQW1YB98xA*F{in= zq=ov0To3cqMmA(0NXE``D&73E?Kh`elJ-=+XQV&zgv&Ig-!#Qu6%`^(6w)5O(q(t# zaJ$Kw?bf!{Z@px@_S=7KyxPmu+}{+`CVx-N`pa1jlUK@XVYJIXe|(uxi7$7RVWpRF z_;ee%mw+lQ2Z>z9*cYvzzRTPifBk3ue@sLUQ;0u zKw_#0QEpLILRgq;lBb{ozaXm+lsVB5(Lq)S&ysrp*1`JMgy$yI1*?Zftb|{pfBVsS zyywf};sqEs!E@mxY)VP?>>*r1Pq{DTCoN3HL195?CLyy`Mi1!BtVvUR^pla%)dKyJ zQO?>AE7U3iq9c)VzRQa98jj^`iF)2V8Sh*gD?66(E5)&y+XDKUa3~Ok7Bpjy)OgxrjbtweryIFMwfR#Xp zjo_w~y<8@`qu*8>4J5oqh|yHi%Uy-}mO&3amYl!0(_WFVzsp9}$jei{`h3h2Va2F6}oTwE8?T7jniQ^)&;)B~tL0UgVuf@Y%bi5d-5qI_ptIZb^`i<|-n(`CAkyV>{0PND8@l3$xnQ_~l& zpj%u8jqhil&Pphpw_xijH`Si#wK3wc&s$1BK$8YiU31_yoexfg1L~sx=}Z(Qw_8*b z;`nq6X%K4!W~`(o5(Ew6;utGq{IwZjuo&t!%&bU#j+rOqvx=um5yv5#H1+ndV{P|T zR;1!ST2f_D(sF3JTd=j1O1V6&&T@ErEF^5gK>Oh&1=rD?%{;;Pc}hP;v&+!X)~Rdr z<)*yodQpD&z?3ITW9b@^M!cjdjx@}j`rO#csoQQVPR+`y2}ZI~cyuKCLMUclR9Al; zAJ?9FX*9Ry?RttCQtTPmQ#fGD%gX><@Hp;Z(00h{l6>BKr{!@)xUBH$KTVZ4M_-(X zD}Bc)?pt9YD&LfZ4kZOH3O6E6PG1N3`T{QHU3Jo%Nlm7hNq zN(SO%V$R|TdDo^vrggE>RtrCI+KZC_p+=`hJjQbIbHlcdB0||qxrx` zkT;iA`A}qBn~|ImC!Z?#Xaw(`TzKx9j^b3?)bgffX4VP~+ov`!Dnaw$W)4m}hgXR? zJU0T*1yCm#NS$*x4_UYPRID7MP~=)fe?3hlOYe7e;MD%+Y>Ug&;Z<6V;&xrCo!Su= z-3;-*$qAx;EZ^iQ>Unk#Mw|V0VbAgNVePLH-NO*6bX2art1A+?)EPbVgkynhM6!ZT z=%$Oy1hlvK0|1bB5Ya+TSc|yH|NAvnFj4mF?lO3f1iPX;O{N3+u>)wVvW7;pr5FxK zAb2I{jtIOpPlH)NC;vy|$XfRS2qwN@?EV$;6lS84AX3ENzt3kP4Cf}WGYX8V#ektb z_T5~u*DpMGJ4f;IAZ4iC+nDNv9uAX`Kt&zuDOKU)Sz8JU32HyMRu_t!*sfAkL|6@S zDaN!fT6!sp9q0XP)O6fuqTGlx=t5q_Wotv#9bG0QMSYTT?fKL(=M0~M77WCc=yD)CTV7i`_S4FHu)d+;4vM~2{HPe)wPOr} zW*9UK+5TIn@xuP!ua$>rBxYSt`TzUt0kv2Y!0Kv(RpKs?Fa4kZt|Iz((lSBQ~oG zD!aeKh7T1+(N!be6`Jg}#%}q01pYnPkzAltCD?UDBFFDCgV0=8=B|nPlGj2r-1+&^ zP`M1J0GFfxUr)xuN&bj0cVJ%X=9eAt{UBVbj9&Xc!l1LA=jHlzUQQ0>p+gNwBRdFT zA|Yr5OF9!8HYivBgdXd9H|wf!{(J>8?g18QoGhzkK|}c9g6}*9OIE@uTBpt!dbkV_ z3qX4=Wc)As4XQE>L}A^qlo2u;UP-A~9kPJQprqZS(w_|#T>Z9`3cVcG_a_}VcJ9;? zXKyv^oH(o%=T0LkewZX)D!AVAZ2AKML)p-{n(QB^PidMqGU7BGu z@=u3d-l^&4y{Dq5zsDDbs4KI~JZE(ED#C26+9nJMoZQ|0vw942zexISNoL!0opTg< zSLElj+jXfsomWF-Z6eysrkCTR|1b7LW=qu)2nvW_D=#kQD->X;Uhcc;?7zKf13PI= zT=6LNMM$`-Z+_hcUDQ|fi13z(2Y^NRC`cQ4$N?eT|MBV7j^|_k9h?*3vD(|a6 z5p?O5l~-WaT#r&?J82eQ9E?AZz_WY5OiisRBraIt9_;}?78OSf96pkhlOG(*9lzOa zT-WJRQrF&Ce}}R6x$upo;(@2f48^QIiA?*g(em^+Zj?2l>c^?M_*gw9&=?KDq4U{F zkp!gz;HmITF3`hCsvsqllVRgTp&ic9>BpO z`pG*EGqDs&c!RRu+7bl`=o_>e2da&gvSUFPfPd#z+>(|ed@MEL+Mk#G&&I2sW<5$G zdgr@OoI}FL6PlIF)T)j$LVR^$gHdKI`s?4+p7Rxb$Q2h={TiRpt%`g=(JL^)ckEHC zy^-+?TQ?>b-ZS&+{PTVCxhveCJ*BMJgPq%?LfNg)C_M=p@vta--=*OF6^Bo|{}vz0 z$|7LjHTw_5+yVpJT``3NtG(@suGa_Sa>xAcy?l7Y1#TUH%Dk40-Ty7`2~|<4+`m6p z|K0(~GtK+SS?DpfXYz?xMb3GQvq(r{Gm_z(5_ga0*J)ZUnn4Wq;ehcCy*U>*x6~E` zh-9!Fia;X1iKhiKqJN+KzlbqVFad;wcETCK6l6yxe~L#ME%TyMST8`MJd}&_M#!3cf`@~9(`qXEZiJ!7N{o`Ke zxQ$g@7qAfyHu}uFso3_1%+AU&j6wNrimu1$UM9nj6*&$?C`_I5GQTK4Q4^&ks+p2f0o|YUO4j8 zTV_ef;BE8OmotNPGW)N6Br%1@Y|e};bX)=V%F14CYqE4#DCdMmZXCZC89+V=po8m4xkAUvWYQif1;W$Ksaanc*9WmX+@Fvo1bm#iqn#EBe^ z1kEl*xb9aV9FAf>eE1-JTF=-_{IHbsBpI+b3+PO}IFwaFvRZM&4B-BV(OcSew;WydPTZ>%m(S6z zO%)vxV9qopo7KcLqQ|S1qnYbQUTJi?noIN49yJQXRrmkpJGmNPJ5ieXiYU1%^VahT zonMa?KAK@$RBn%Rc5~};k^kE%a`mOscx&toq&mJ^GK&za#&c&Yhib#im#mXy5j zeBdWv;l<2d=pspfuP#ecA7Rz>H8)S%%8GM4HEK{9qFZ6Jx}2jTJy3NF&Gol<{!5;# z@tPt6JUyZ++Ycm}DNb*!=oc zVb-u)!g18-UB^W&FAmQiUv`2MJ6(Tg4{0q8?LNE-D>!GbxYQc=fJk8bE@LN>K)34{ z%oPc5rF$i9O-(_tPzC$aa^SQ#2%}6=&Rk<8V8rmD?d^g8FleVau#tjE&>a*x1a%Sd zDOq^l^9uhv^#Y9T%VDVsJLzb_a0MU@;2TbW%m~sWau#y<)$Oy1jNlg@p*9uiUB$XN&p~uHOJKQBhWIjT`Gj^|iTB(Zgq0 zC5ZoftN7`_MDX>mk2XUM-rRI@v-wwg|ADXfaiZ{ZcdzBT# z@n5=M(#Dy8sTO&fhfoIZ*iYk;^juM~H|NIHs8ngYXC@P;+&Lb*Jyic0fNIFUvGZ7atnG0g zvR%JF=+yn%+E;ny!WGWb7inBl?x`pB$0B9tgeuoJl&Z- z8p^4!x{+cY%Kfo+%v)Rs3o7T2T?tzwc_=gW)c3%TL{PgEZ|y;KHYIdfh$=q5>)=ms ztE0`*=P@Qo(FR_S-TUj;W?un~s!{4AyWUcEp98FqRfEV=x+5c_^X`^7);P&g{y3@^ z@q$7uXCgk%lk!jlXiG)Q0L~j!}8qq6yZEt?t91j;Jc;n!anuEG; z|FL>MDTgW}#qPSl>xN(toh$#jv+)3!mhd_WhwX?q95bqq#>oVgn>U3KvPD>Rl_Tze z{H_c;`;iwYt6;E1{IFn48qQp}4y!rrEMhb9-?Vz{@nd9U#13XZoJtV{m4k*~n?zrK zz?HRFK`Y03s=d--Fisz^HJ;}WhzMK|TPZ5?a6MWGP6|3_)_oH$kxCXPX+Ok5JmE6k z$+*X3sH}QB&YqoY=I1Gr+L)wF%M><&h>qNDFFh8`j8<>zCzi#6P09m)nq?B_s~ygC z@wxKJrL^yMuZvqBt_l>PS3dV#ugK3nh(V6ha(UEJ%uIwK?en$FaZjatCPV|mga|Ebz*LkQH4w)d+S%QUsM zsR2-D!(nY!b^$Hfb;+7S;&Pd9Z*5|!Lg0hSCw@bak75`l1gp-rEHg?>1A zj3AU#kpy5YOnayPENX|%wE+_Ycp`!pZ-JMEj_f^TrghuDuNlxFo3Ntsw}Iy?@mk;; z_yZ>zGq`)MSv174C0Yj*xYWcS0;>xy(|7S;0TjTFk_-)}8ThOyntptLxg>_A07x4l zP+Fp1ZW$UHQcbAA-2lcQ1wR`x2<>g)Du;>RkM^S_gr8>7M0i#!IH-fLHV+;svhB?R z$v@oTb7iQ|)fy4l&h0+H1Xle)c3r%T4sAZFRT^g7{td*gZn_d0%0p ziSoY@ec~nor z;rnD|Wx<&b0ttwygAATj-b0iG)%%tu^L4W?aC3o^%YAgc){=S9BH+ygajPZ0tMl_A z;vgXLk%PK{Y?rT=z>}~P20x&Uik;X%Uu&E8_~xm&(o&Hk6OCxnKtDIRs>E|=OUdZ% z7$q{Ox_CavWxn7Om=3e!(7Qq**WJ=?Ordg*da~I=;D7?%ro*d>h0t5&V+mg4A z^ZtA(F46Hox%OyrR-EqVpditeCVIQSeQL#@N&~n$_CIdS;i~)mA~xn*y3JVnE$t`T z+<=i4UWXp4_WLKhW8lU})>vaGh3C3~YBHbMN&oa8H-(H|5-r1|L*bsXvV}jZJ-*T% zdGx4CP>;XBU6d16RLp(j^mD8S-X7&xPKIgg^t%_DM+iD!AY1FnuZSE$8hI8d9racb z=-vRkngwmJ&Rxs{IidaZ(kpowFr`RbKYWNs-83yXw#D)F-)4j^;&LCi?#zH)6Eqj` zW)jTS*NHTT(iJXC323@vLEWXfjad%XClKa%c+cOS4H!>=<&pFFF``GiVERkGFo&Tk z_zx+A4dn3b7!uEm7m|TuFJ?Kl;MW8x0``<01*OOW@C9Mf7!NjkIjng$ZEoRnAuP&` zdcXpO81REV0Z*;-gn2Vg&2zz$e|BtRX957I!hNR=hdAY{@Dq@Z3F-wA(+jk7%iW#> zn?_3j#f%lcOC_9&8>-P?o8#M|fR;M{Eshn9f-@xG2bd&dzNVt-Cb|f)Rn$<gUDa2dGoZbG^GFPbcK#2)22M1x#Bq=!Uvs4So6$!l1+%I?Lg%0dF zU|FBQU;KO1MpfdPQf%;k{{AddlYc)Cx$vsP>|EL(8(ct1x`YX2+U!8|mm4GbSIRgl zS|U3{+^G&8l<@t{KX!dc>7u9PRYdUVik|ZIWRsO;3SB^UOwm8Rv}z3!P8<6yo^ZLu zq19+92D9)Bh*m_%_pUWgqhBFAcn&aK(KnPQ~lSt~R#jt}>Psz*Mdwg>8XKU~^)WRr@b`Uoi zX?gz}nCPhE=f<0`KpBNM5A4K-TUF(cSpf;q;TqpAoz6+0%~7JvfnebH!VU0#`EmH= z5oTScuH&y&NEFb$Txm-Mhnna1clZem0ilYh_$OOqrDXMtozV;v{#8XLbgE#jH{jDT zirZd%+CGPwAd#*Sy#Sv*1j};p*sYgvL&aILKzx>xO$zfLh$kIV~dKJVa8wRa@GZO=1`%FfdufXC*>8_Ck~)(i6*|&h0!>3^K_cna|I%&%boX zAj)}sSPJx?e4VP|ekO23>i*1dX7!}9v-9sA%Tg@R%?*1sg8AfK&hvduPbn$iWS+Pt z3AN09g;-Qi+J&CWzEZ+)Kt*x9M~*UIzk~%3nJ~!r{r7i6N+|M!{WIrgKWuA(Z+?#! zQ(Lm?tR^isH>IbW)Ko(T12d)R8ObWl_y|fiAuB}Vl=Sr#vRoo+(w&qnEZtxOvDuh* zq47niE(g0SLWvU>i$IOG{ zNcsQw=+ASI?b>~(p1ll-Jl@Vt)4jm(xeyY&=E*w5c7s=Fqq%u_c=THsPu^f62so(r z+@HgOIu*92tFQn4Jt(NFim_9<=qu1;Q5;wR3Rw93EF8MDX?qz>&dmq>YgohvSDh|& z9t$_H)`u6ck^D}6Ua$zYFnlofnxY-`+Zb^jid5pn+H4`A838@ z`8tvS;RB93uhFc9h9m$uC2WuDkzC$~x@GZEGc$KViugX)x^R-Z*Fiw&^8o{`6=7wQ}g^=d3~i5J~?sw ziubKqrn{&yrf-^k-WYa&Rcif&F;WToQ6l9)`DiuX80zWe)iy+W@Su32fY~XJ0}Umw z$5CnpJk_7-RZej&6wPaoZw9l>S+}mJPC`eg57{6W2O?qqO(AdXlA0DTinAw{cW?0x zmN7k~BthZqvi0W#7uQ|Ky3JtBjV^&ZjEvs`pW7}}BMP)?bWSj2Bv$Le-wXoX+o*r6 zelbcM2k`thOELU1>?Gl6Ocr>ShzGFy1b+$D<_CL!JPWjBQHdD?sJ#KCg|oLIKtgm!R3bKFLbidv3XPjXy3iB>EbH(!F_ zJn7!PhmN|b&P;)(1s^K)^TGeIGHT7ZW+68*IoXKk>^Ym83=4QZIE{0kIFX3Q_i${B zY?lViP5*sA9nsqx0%b8dr`rFL04exGK#=9YA|UtX$M~Je3Y;e-ar+=8A!3^hm>Ry5 z()@pv+Yp2nWs?ZEO=8nWI-dUn;`QKvN-R*Uedd(O0M~PY{Lj@IS7Me)DDMQ%C5l<> zHO1Y1wf^~9DwYYMJ-|gXdv*(7FD6q(?7E$WJv2sS1fvK|z2&E~#pvQ^x010Ku@ex< z)Hk#@Wj-2E$9DF4r}3Qh}9vXTGli5L9Cm`9-47+EFF&$Ej z1#$;xy0jY)*~k)(87AS5ew#f^d<%Up8pT)wB%dvF=>QtY`qDwDdam1EojQv|q24Hq zH+fcNoN`*U$#{B!pT_0bnf2)rLFP4uYNejOwF`_K$AX{y;9ATaXPE3bYIRm++~V`@ zqN75Q;eDR$+j<`gb;FT8-@~95^aw%@fks#KwI~%y<^Cfazcw>5(alIM1gacofuMXJ zH8}?;MtAIi&9&A8X#0_?Kc7fj1$>4UR!a3k=K(~)%0K3KQUqc>Tb8c0;5K%M)MZ0j zMW0&GSYG>aLYua;O}~?-S&Go*t?ZlwzRndAiWGxS`0g<1<&SJIMd@zHkQk8B(2kMG zDIa~F08iSTa(r7WrchM=0%qw61Vai=^nf~>P#k~MERsZ5~d0r`p8eYT4POO3jtNGI?tux>s&H2GN2~vq?KeERXZ~ZG_E%) zCJvjQpVj(hY)FyWS;5ux*4$W#&9r>vJS8_R|1o(HHBp7|`f83~rqjnx?^E2Jq$*VE zt4Y$P-~MrS)SV*8lRHmyYQmcq^^)_?87+K(8~tzfL)pkcgj!vEKGs)aat8i)^-y8G zvlWj3FEoo=HUEr~*V*1I#aZZ&0)4`(ie|FG}h*6KkJZZv%_RLEmBpuq1!z!4t_ zED5*sCal5%v|^0_EWj%=l5@3N+w`>rICG+SvsM~hSlAd}T6q}C#SVI}TzgVItCSsg zA>q*~jeH0PDlZ^QQe508j$;^1pj6AS-?Zf_DXgSzOVJH{VwxK#-?y+pYPCNvwKhZHPME?+;&>r_e|Z;GM7*&< zD?~+C<=nB{YW1^tYuJhd_*n_H7o9G(|SsqIEJRAwqTBgKZgt;GSElFZa z2;L_$DKS5gk{Yy^#%vW8Q}+AW6+uH)8b#_uhmMP1@o;zVUR8gxkkM-^rjv-3Yt@Ja zY2ltIa1`_2502$gT3t=#T$ryoNMJ;boD~K2zrO=j_2B#gs zqTrOL#M_{Vd{?eGwGD^&c4A@dkw+~ob>5!8@+@8TX>23UL&wB?Ci-IGSI+)B{SPAe z2E*?Tfb+AJ^y61+Rp&g$GT{M`XWjKKfp6zota%`ikN?AdR(sF0f)nx;W$Ea(BQi5A{PxXsF8b3q}3ov$F>I+WVeeIfmu9u=;pBl$4Or z2v*5LS~%w>Y`4LUm~AGNyP2=K_xAE9(YTfbDIlOk#H@3of}ZX;R*GWu{7) z@mS<|>g_geSj9C}(L;G$^tzO;A$OS|tT;9aCQYcdn0;v|dc;6VJfZQTPNC zKMD|qE`cJk&A%HeX_B#xEHWX-u0Htm#gzJd#MxJF;Ru7vK-4Y)(!}{k_O8=adFIlQ z^b4DIzQu8qN%2{rW(z8`3&J2eJ{m|8W^)(_jvR>e`TCX=`GW9JNP)i`tmCwAy)K~f zc5u8O?(scF+FyG4iQ%D3m3&TX^YP;5B)_{JR?sY=E1i7ue3S#H`A@j$VXv8awZ06w zndgo@+uQiP&2x3us)>ABfz;fpCF3dH|34St(;}Y-oa%sq#M&_b!eU<3J<%iA36jXz zm`U9w69!6>ov6^;la6&@@cpDJG^-UP7h=MPDNj%Q#F0oPtavjU_)i_te2Sx?mF{oV zbuQOAOAo`j=riMf)9O_g$iE2$FeY8Uvgdv2tuw)Y|ETy+(Wd(Re3PrmYV`YOz%D*R z8j_vyZBcL8LeFZaOUuo@Om=69ld3YESmjckQ=+p7an{p#FqWWFy7)%_)01bc!hO;W zf&+s}4m66r(>{gwuZgw_EBn1m`xpBDc#rAU#KDMf-E!s}kB{3Z%ed^mev$IVM6(vq zL^w~hBCb)AuwP9oG|ij0(IW<}evM}@7jS`K3 zYC8S^yhl8`47p=eR0>9_D9XXL;=?8G(xMRDe#}U0M?kC73zVwx_rWNT~9bUqVe)V^K2r~(SyRmSr*>YDc%Se0TjNVg) zLkuBm*sw`OWm~A09 z)==#{1_W-E?m(Qe4`)*e0tpNWFPbw-q#@Gb$EuFk8vlNbYoOV*dAxbNklPBl7-qYI<8 zL*I{ZL6irKhS@pwLw}LV!q}OH#mBd{*&kb~_1kE%O4-PcHKyg5T@ zu1+CDKCuXtr~(M)j(dN*&-nfl!8Mh|K!sp0fi?4|;Kcqq%*z~KE$=449@L5M-^c=q zjq+F%Cx9LbI5*dO>P&=Gr_B{B$O;qlMj+jA?!a6NrGsnLI!N7C7>!k*x&a37QwwSG zwm-|nT0pG5^*Gt`dXJ8l6G<~3h|{p-X0_?JD(ktqeo2pokdE6s8JlBAT|T?#cY|`) ze|L6VQQNv(e8{uX?#^ns@HjP9Kuk;8lb}Qt(#xphZ3HB(tTZtHf%-a6A(R@+dp_Q{ z_lp3l;cG9T|I|T0;Q_YJ!Tu!fuL~>(Ht|JXYyJ9Ct}~P;>_4>jS6dVHxd;PAN|^R( z_k|2h1ihSnX^(FTs3r=Vq~Voj_uIcu)Pt#GnbU+4ENZYqD@uNUm4&%EVOIebQrXK| zAmrFq^4_e)g$6N%a7q9Q$3IeqG*)`+pFa*LmcfO}*XANB65}w`%I^PmyZ}-#dEn8n zFFV`ZWd&7iIG7Dyc|C2&|S&z zzt%6hHme;uG^KGZFtwL!qbEMyZpWnuuPmixw7P4kNah)|9i)z)7b~GARUEv}oT5&B zL5C?^JLTMFLkZ=cC+;Hq?vz_y{@R!Grit`Iwe$4v9}iAAd3_~)`JQPpmYRu49bMWc zxNpBOCtqG!8OK=c=C8;oUeej61$1kY9^aXWIT+feyFo$Nf*uwhzh-zBvwCNYkX|xY z3J3%R0dFR_6hMC~UiEBkuA)--AJlis8jTt_#aXVieLs69m4>q6FJcC)Ii=g~Qz<*n z82--XkA{v;3%?4OSTz;7g?k-G?AN5TJ)%SZ+mnU0CQl+SekHrB-hOrMrAPKy?ZX_c z?3Z>E~)SJ$k6#^3$9nS~rkEd0Z%G`xNW&Pm|j<>Jt$_**lBo?9ch0f+t{_$JG! z{ifSK=N`!sAXTdi(?-DO1s?)a5NE)Pu0vR1p^vczruoGU?LsJEk^ROD>U^t57KMa_ zz#OGh)oKSd53>x^?y5NQHH+}#uz^E3VSNCL0IA9Qz&QZmlmd@)4F)A@7OPnX*i)>2 zA2Spg6is`+asKEUR?J}TBpwi8O{GXfb%AHI%yiTKkET?Mz0p^8Zk3(uvO^D_8nIh- zGigtE*7I|b*r<7>KQ?bNN`LJKZAE+&4{Q`dFWND$^xfr>n@hDhB2Qy^n!mVnMNy6a ze$L(df5X(*>o@~z|6Dz5&e6P&o^osJY<4{Zb0iPjjthwbnu}NSi!EAy43E0l-Pk=A z=zG58WL}F6Juh!5e~JWdhNDq|NnD5m z^H|qk#@ol|n`B*>sz1l}AIGF`kA)0_T}q6t|4=-k1CQ|uUF8)3qsgXkHoBQ3;G3P% z&mmBy=5oE|ojuhh?Y@uMp7ht(=mbtAekiFsx6!X}TclH8;Amp>dtEXAN`D#sBtPMZ zBE8yq9M-iT1uppkqgGFoP61WZ`t$@LgvY-z-Udi#4uJaBHsK>@2AT<=IA_!hn3%l< z#(e=JJ|f|uWC0dV(1Vbhzz0d!9oCfHyo)^Kv^J-UW|R4}J4r`mB-Z4V0Z7E*09-9! zbE2uSkx*M;@^KbqhuP21j$#$;&hT{+pLK^CkEL#`2Z1>M3#g;ry=%S?TJ^QaV~%I$ ze0Nes9>yS07{^f%X{_{GSQ;}JOn|s7U>iSN=Qs47>DH}V@ZL$9x0oUYzlAu2FkT@X zb#sPT(6(aWc+S+64HT#HhXN_gC{oeVzgq1+?f&}AWr|OG_8(3tnowqlX72d7)%fpk z4|@yue>+u6y&TFJk2A@HeVx&Y8}s}xZ+(%U`f!*b&-TGVCCc}q6n)Dl4ijhrG>8i? zCI;n722jP?D65EiTuo4IE2ihZocBXHgyXl2k8+wUb7VTJ?K6B2`5zlC1^#}ioE$gp zdpTPCXkdsXRQnGN^uBW02LIW{|Ym4KKU_HYkICTrQMZOrbfp;J} zBE1*Dhi|E$ZiUMg0K3 zXr!hw2xuZ;Ivl*sl@4K11`5}OPlVhC71UjnGsFxVoryJwYZ&1w3XO$FN9Q3Cf|3%7 zLXYrw0q>#>WZM)Gvt9phw2T^tusp$RaiMhn4_EwBmJV#(_U_+51(u`x%a*Iv&Ov}Z zGyCmlvEu|&WU1erB?I$BXOkl1BSCm+oNj4r3k48~g}4v1UD^(UYEFD~z=52QCylIw zVN(Ih7xt~rpgxZ}{unGlUX9c*cnsa8^DJj^hH(XZdPN;XtuAU5F=UQwm<7K!ul z2Y)=#qVo6a9;15)Tl_u>x+F!Af3lBtX3VwKHLx4<(|r1hM(kI08*jv|zd`=*AE#QW z+C5`9$P}XpoJ50YxFlayBw*$Xwjp++r9u~D!BI`GOC0|< zjWuX&4=uSDrfT-sTWEi@%Y>JO8els(I~`46+!7ElUE336<$;86AS_GZUJ0;}2XoXsq{|(|aLp#oD;T?-S784kYX5-`VxW4k zudECMiMR$t+mLymDN;2-RX{{({df?8{*`Xf0B9JhIH#LG-)rvl1ny2ih@kmQ0YOM| z3&&CD#juFU=r`LZy zI5w!G9B_6QS0=A(&fZLwOWuhjG4kib$ocq~5}Pj~)_h(r!vP5aBAo z;jxk4#5dN)XB5-3l|D6LjAS0QoO&GB2nrGYD*+;Jm%eZRi8=;;e+fW3j>9woD$2y7 zhq}hZ=O!jW1jh#VWp=NR#s~WoU>tduCD!xZxx>!dG`ymAZsfUen0RSqS^JU(PxtBGDd_AO zS71DJXt8RDHd0AhmBVG@29r{>(qM+%Q(Q7p;29^coeaE4SVX|{i)8h_bb3D@FhJpJuE*R=OCAglQ7?22LBZB=Yx55#N zgA^1wIM~qq9{_f~y;gFIc9yBVwUvefcAQ{Wn|yvB6YJ%m6C`M%TV;p3S54v0&U)L* z-~Xoe(Mx)5Np?LDXU{j5DRN_=h_QGzCAK^&6G1xDXs1SV>6t^Q^AFPxcXrorZ3apI z*CVw5us9paLt@DG?3z9{JZ`QJIfm056%mO+0=j(l^-1gt&28IemzGXN7FG>RNFf+q zSgoXyCar=POH{$=4vBgK^X~1Xf7{VSPw;sRVJZbnN`-{AJ06=8%?P9)p#2+07Qns@ zLluJKW4iJ$o?kLI?&&*ponQ<#AaMU0(x_d=KZ$)$m;*cpSdAWy1Z$tf4@Y)&@`E!0 z)FSurdvtnfV5@w7bO$^n=2Nbw7o{%N5%gNjxuiV4r|KldfxX0#By7@+5`Sjw^%=~6 zTCk`GkMZF*wUU8D7;1ruhXo)u$XG@g%W0lT#>YM`7X6(eh&wOStXr5w%}LqdrG$`~ z85yZy1=HMwysxkHZhke&uQf&6-(l%J@gvnc3{19DQkX_7L*Kmg zD0AQ2?sRu~nW5xr1;47_N*gb+$#T!0Jv8K`K;ixu2^o*?)}le)%hwSo>ZyQ*80M+` zmmU*$8jw{JI5(aXktY#%vk{F_W&Ivty`Bi#T*9xe-t>*FxT>ZaA#?&T*oJn|7ICgj z!hnx5iPg33uwaYhx$o`W#T$hQFPHd%`FhRvaoDJuIX%7hA-}!_bMQ|o+HgIMRgFkg z8G2v7SD5-Z~eDtjec4W?8ie|qJ=b#IQ>tP@pu~7^V zi5$uwAOXh+qJ{z8b>TE_6hjhADL}e^KyUVA*s7SHR;#_YHx`ZTAxxYJa)`5Yd6yHG zf{w#-(*}?pp_YP?8VimgMk+U5T`@(3u_O#J$H4&wtB4xB1myMAt^cyL3y6h*_&h@N zZog5o5;!`#Gs0W-rP6(f@l0`Hu<9)2|EdKw3@eE3B5iGOlMK+v;{@^y9iub+aEYPi z=IXaaYd8!URPbP+lm})@le^Izi_FcLA^MT3>!uSO^(%dyv+N*5@#>~H#lHg7%{Cnj^@bxIQ)tBaRkofQ{yJR@9}(LKnLP){hc=<{)w|y zYTb1h%R;-r8*qdwQ4PH?VeJTh%s4Dq%s_L2dH@v`c*?ajEh`*v`)q7bT@i#3$fB`8 zy9^wY3Sm88&9{JdvsiSLppRWunXx3wsrkn+2Hj4bF#GZkp+xRT0! zm`uXlvf9BcEaqAF%_SkbF5cJ$TlN?c0;0{P)XWw!8$eyZX-lvK~{B zA2Yq2U|T3)@gt)7x9n(Hf`Lc47P9*P+IjNiNtE!N0AmZ_PmGDA#6N$GFEjLt+B!QE z?k)krg6QX>K;jl~AYipBgZcuAs_kjseV?e)a;DC8cNQ#cWE2|Gj%)p%_#N+_VWZXMfQ~{l)oOCo! zvmlZC(ywm3>`7+=MwfFKrPMd!vw39d~1lNg0lDUh)Kq=IUgGnOjfV3mCr@ zJYF(491xsKlj&7Y+qz%T`Jd0=fRK>nt1agw1}o}rOR7RoLd!k~7GvlY3yfTeRWiE| zvfvY3!xHVUVA&GnVVpY175{roUVx89AX+6QB|q6t^Ac1{(7ZA0e1!7XLi{iobB7Ra zk|Meh)rpM07Zy91AR)U58NIk|TtYNY-0sDir*r2dhQXo&1L7POzGHJ{+et%0Q-|j< ztMs^(kA@s-Vxp-62|@VTk#|`c7x@SR7``Q&j0`-B*AYiLXV$#oXSI;DMN0yvA3>); zzE%@_^6IV0t<0;{)Qia`*5Q{9?{B9&_AcUZko9<@`B>fu{+51Sfu2jriVZ#$wwAF6 zvPD8w`zT#Dle|Lg9<4cRg|S~bbxmzn%is^yLQ`piTIUdhV(Bl6y8Y6-svi3P{*QSl z{aK68f3CBAfBnxYP&;(&=PaM|uj&yLx;Quih^(Ap9EA4}P-2}Ty+~;0(ZEUi{jQv3 zcN=fq%OdRwYy1D4AJsqtG7hdGvPq~&ZuCh|L!i`%jf;DW$LZwZVS_0o!5b!29ImG= z$sTu}=zUw%@pC&|N_grn)1bB$#o~h#w#mXR3`h3S-5SsxsZq(&0m+BBZ{$INPz=y@ zD5~L56Wy&=fsQM-g(L^$Mx21BE_&F4$~<ke9KI;ZmaI>-fXS zCMMSRT_$Za?euHWs_z9Db9cA|{iHiej&h0zmgdNMxL4|ymRzW3iGZ#*0nDJ;Cf%qad|_@?qBRNvt<2Hm-d@V3W;9950p_%Me0U(7UX(=0y2) zb(IQq`arbv0SaDfvY-0YWNT-0B_(og5mS51?@P9gV?up)eREX9%px6X~R_myi z?ihZ0(6B|YV3gxe84XQWj*2bMg>$d`jx;O|v`i`T6-?M@YgVO&3dxVN+x&Bgnxk4RR#Nx~T> znH#ieL=*Rtr?KSU+uv|=UC`WKp! z>y5+BUpc5hLx^QwF4f6rUL@=_ftV`d)#8d}pqpfpym=epJRay=RxG>a6VszsHlOkjzB`>5gVEPCm4UFfg6Kw9}B&$Qg&P7lz{y+G6CI8 zVTO_6VX|1mlO2d;$bg42k0OKvc-$f>_g^y0M%+)0kmcB=+mS@3Sy&cPf4k7|q)G_2 zv~*ghf5%?9yKWkvq_w1Q7wd91X5B{jAn_a@*goL9-5IFTj5@H3X|TraDAv9czSy&~ zD)CHpP4~-Ju6yx*ix@1_J$isuRvqXoTw=h#|3*FO{d1-sco?BJ!hJv&rLxhEQ11Nk zDit4$f$$d5U=X|4i@MKp2e6T8SC4_;Y4@>s@X+f`Un5v}SG&$qgZ+b3!})3Eqh2as zqAEZ|fJlUd-_tN;4|mX)i978H_M4ZTNZ2*syALc5vHGxLoyT;%rfep#1E3A-WfOyQ zb@xIFd^Ixkd(uE_cNtn!8IF{q^ zWFhAmPLC~9FQS*{-&2hLHV@i9d-30Yx0BTkw5Z+~ynlT)K3~eL;~CtK|4;+D{)ugeE?iu44Wc=i8cUuzF43WS5U!yIFi^JfUd}L zW?_E519F-tX){1F2%aH?g9Lc;Z?oqX%b!|7iovB9{2OgKr@{tn%#!r1SR8x(ddhvw z?Fb8Wf~twY(tvs-XLau9s84>{Ef&SKx%@OAjT$oi{aZ`#*p1E;jxV z>|w|cvsuJQl7(L@@F}sLh9!MU+&CZwf&&UVVqaQVgnEJblE21H7x}Aqwcq?dmj$4D z*3TE(S>|N@-c9ye=}php3kK5BCk<*<{eNt|cUaGT8$RBhqD4cc5-p`YNLrHiqMa7n zk|Jf477-0aY41&w3aLbsG$d`Kp{0bDhLPX-dcNQ9e?P}_AJ6f4_}rh~@7L=Z=XIXv z1+}AiWrt@ge;&VHUS8fjIEKuqtU;k7)Ib#CezT?ezI@^Qup}NOh%CSITurw`ZuVZBwH$1q4vs9#PMfe3JZi-jnzZ?8holah=*ZH8Aikc$ zkmccjFMY-~23tgIHELU0EU(RB(=2*4gV|#W94OrSio?*I0_Urj~IpVDk^ft={1890X}eQ?~lUK0T~@b?Pp%pGW*Qg^RRHIRXHpy42;ZB z-0TBgE}RS9K1t;|=Yk{+K`{!ZrU%6+gguXSeZ5(68#x4{Vc{n5W&!58h?a2<|9B#a zVl0wA&Z=W*I0cA4Rq0X`N`kk59Y9ruiyMfbloP2I&s zh{$SjJ!YYOMg8}-=%^GPWpGZ;*w!?Cd&0;I`=P#&Cn|YJwf$3qMl4ILxZ+$`Hhc|A zCW4zk7Kezmm1U3bj|;k09HTPbQlUrFv290Gl>Cvj@LwU@T0TAsYab45^!z289XTtg zAA9xc{hAARk592)7dJh7?AS5y0|6J&68fGqDKHT%x>ydf=_71~DXKpNsWy-|-#3-x z(it|o^A)T21~;_-s^A+~f2w?rgff%`m^ik^WvAW6@t3x%qksXyHIssIj3Zr|LYddj z>^7A}sYZlb0Ii73s+q+bJvp&zA&j+YE3-;w&ZP32#~(;_xd-5qkzc=+WsC_+5vwCJ z@bKo*oOG{C%X5Hu`^ft^t4fglk-;}8E8 z47lKS?uDuW_lWrF(l9WH_xi>OO?I9w3y50$@_ct~Ou2&wRRwLFZpEGIA67lSVeHN) zVhm#w;mGydZXxQbUHeXt<&4(o{yg`$6q;#@@(6$PGv?=0_B+a-ry2YC6pq$vX31Tu})i@*aoexLD?PA)F&qBn43fwhoH z6X220U%rH1Q@5z_g>x2)58^HZY9rJn{x$EcV!$533&!Q(100Pq2O!LEmi^05Zh`>` z#U~k*VbG31o_244j0EVb?&(s8m~t265))fcLRJO+Q^EJ4e$KI%E0VBRabvu(*aZ{G z*AY_BL#uZkex1SQZe~xL%}dK3Y&TQAJK5_rRqi{bilec4G=dj;Hr&dOd6@lDRXp)N zw%73X+`pQwwb^X4^thIQg9!@?6}qEGJ-s(<=kEd%OvrDb$Y5NXfW94|Tg0nh?kGee zQUB`ikPW{JQ8K~H5WU1CwuAf(mfYi{3%zJjp;cD>l=?Yhu%hjqZ0nK9? z6~pc6_VJvjonxV6nMaWaqZk6nLD_g$d0^@H%3VdTUBM~a+17v2XK~AA;{E);Um}Wv zSo-1QWGK2>jZ_o?IAoIskO}EEf#;o9zVNwZE zvhUItX5w!I?k$*=Ay}r0)etdfwGUPd_n=gN3Tifxn0)v+#AtWiReR7+M4`|BEa*e) zWi?`QAX4iZ^nzfb#=bdn#tF=iV zYT3-jjD?v#eq#RkX^|UhqyuDm00=3e@GQYF$OZPMMEH%pO@7}fPz1!K?G|_?*z(_PM91jE-0e&2i*ePJ9 z4XI4fzrXuoz_AOPyrrbz7xnurst@v;z-S1*1PtIDFqI-l0*?bLBY_Bl0F+S3zd6u5 z5NR#IUdWlR!$z@3zAkn1?l{Nf_g}3hb?jx{%^Z;C98c&yIf3*-%vxbxupvaP9%L#G z1uv)gFH+%O1o)YFR5T0@Q+Hq6m{hJ`mLT5N63Yw}XVsEXb$oa;XOcS++tJZo{=8zm zhq}>Dnu(eDDtw3!9XgbEU;!<5!#0Z!Xr^0*QoLX=ug?HvZpdOC2A_ zgo$+d7+)(HF8V@ci7@`uZ$%Q1&k?RC=)G&-zLLBfq8XhI^S}HBN!_b=6sL6KjpExv zX3Hh(KPq${VW8W(Aw>2#lSDNY`{K__M6M5!9KHi_w;-kffE`g{abYf_n6?Eoa=c~Y zsse5o5tBm{MLIOFLDiIpXLc_3uneixV2o?e8J^ zd*3ZwiFly$XHFeW;@UvqD{Q{Vf~tp1QLf;>nORuW(3WsW+o`5!_k_@ITOGa0V+opv zW5=lO{2Qeo(idkfNs@eTS{8Sf@J`W)V^W=S z-Q~nWY^X4aB%Y&luf>LhxGD@ z$l)y!w}6j?&xe1b@B)tn&|?&k$Xv4S19xyd7BTlDR_Ksww}8!v{9C59+uP#x{$c+{ zKs01JljM5SAJG>9FRfkBNs#Eklawxx9<8FfTdjidLLQe1L#5O1?DZ` z!tdmFEUd3eNl+JG5!@FC_#<#IY*bktAvbIlPhuKsa{_2!s7}!Hp3-9}MBmHJ-3}rq zK}->aqZ!iCaUnGZAS~PKknOYjzxpnA>?fTDYSR(eI0;HfL_&wrg_ljJpRmvf zi;NV6dIwFiHSIXqB00z(?@q%e3Ez*{S!m@jBe$cJ7Bmh-*@*UO0bNT4R(B%ww-tB0 zS#ah>T~><{7dib;s$h|yea4;>EjlSiWAy~_a88=NIpfcs9h)~=dken|>hEYuC!M@{ zQe>+PMv7pkLw(Ukxtn9W88q%(rU{}Xpk!r@A%)JNd|@~LJ&is)RTUVu#5GVs3+n&2x)zes3=&4%OuKg9>? zV?zC`R6fE=Fo_&l&ft)&kodP`DvUDkf zKr>9*VH1%7D)1aQJLPbSATAOJk{)M(o&h)@uqv*hOK1AA&uYg52`mfs1WT=*H+*~g z$E)T-<&HbkV)8C-~i;2h2eILPOgzKdKGy^MH66Az~_Be=lICFC)fiTvqBcJ4WW`4i~I_p z-?HV&uZHjM^5~)XU#qhU+?bY{n(OreFYAMfPlRM>sN9jqwG++^NNwnxl4MV@ATm~^ zFL3Z2Xz*DSqHr@6N+L(cHy0_hJx!^y=Z}uFQ@RUQQ-LINr&qo1UfiW2U#t?bL1X%k zCF~!k1pHkLs_A5(;7EXvn}Vp$!pf?FfT8an*nGH5lnc3? zctjC(AoxCmY`L;roACgqpp?i${RT9%q$#r8Tr|#Xs4rJ{D?pZ4_(#EKF7uecJPHd0 zw;R?aF7I-6o7eU6*kCHD1Qh}J6|LXp(V=3_@dnwF5MSUeDH!-12DNAdF**P_eFJep zL5@XCzH&HA`+qtKGG9Op#8t>3gn}>Jiw&-_>`%ul+Ih!S9>iXKdyF&e8W9f2GE0dZq#y89-2a57hhM(sZitnA_mSYiezP7n-A|j)_;1>jU0l*ARrDnK9ms? zH`Tm0jNQRSMWV-D%|dH!@zpS0`8BSVy!Rx7g!Q9Ll*t5_F!=QS#p-AJX~k-sx?9`| zEEu|zGXp6V4xajhep3*)ur<&$(~-Cl5s(5Pcpi#U6X)v(2&WG`8M3PmxE+~(BC6}M z2_quD1PvWDYckg)Ge5|)^1fj&M-!kYw46>D!=vhcS9(l|P?Jsa=qO+%GKHT3Y=5oy zM;`POONOD#UnNdiK|zjUW^!SojZiS~_w}aQSRhKlF=@v~=WeQjy3YwvF$UmVz^{>T z8vx)_0ALy){YDK0I4Z= zz435+oQz|SLZShG4`YttaYn}oXa))MF%X`P=;0$SNRpZt4Zbg(2`~aDRF#BY1Li1B z%A!VR0xu0YuAqm+OCBQw_@tA^PJ=!ST-pV`F3SF^b738er&O6dW=z=CsPoGu#INtJ z;H=`E)(BP5ufEPLldE!u`d0K}cBRvwTmW8Ls3idhLgc%c@$b(~be|?K0s|)Bq>0gH zU^bwYXF>!MDu0(uv7ZrKjXbb03=*ZUV!i<;8u7BimOK-M8F<1F4F%H1IFc@f>10e! zjsOrG5Ha2rnC`~AR)@F*su?e=6#z443LZB3VL z_W6n5{xg0n{Ntu#|8jkj_3XiYZ-3^yxKL{(#sCK~Ng&HP=Iq&+-d2QE`(65ol`!iH z=V=o5oi<8-EFd-~{{bq1enbHFRZO>1SXkYm* zrt56o>|A@fZ)$u%#`efpaq6EZ)M-M6AbLImPOXM#jTPBuo2lylA7PCUHy z<2a^#26*33ede>{R2?J!L`|b0B;sT;L;ytEjY?SM*B1e?+eh_*^qlH~cLzi<@W3N! z8#O`~R&Km@a7DNvE<5hS&(n?`_oZIp?nokfaGSHW%}D*UTejq*0V2*Ds6xHTbkDZr zSWTas5`Hc+?wKe#;P{dOG80m_K{Akqfa(6JdSCyu3y?`cj*3>4!XG6Z)uv6}Xj0*U z0uCl4R?n3cK0^HF!C4@^SEsivyGXnNVf3Kxz||80$oE7{rx$Gp5Pi6csUgzo@4HK~ zJ|SQ5@bF-1*Bes59yS%xJ%VDBAR5qB+JlEIucUNvd425j=R|DkymvTVQ~~BlWC#v> zAz}g!%7L+P_+fQ%S=?kqf0$;gqa|1!xyI;z(Ns2J;qUOjzdS=jL+yz&IRp9(85SB| zC!0g_W%G)~h04p*+o=Qc4TQzxZTc?iI(ogVON}#~BvxSThj?r8d-_byvtne* zD!2ZQee=Z6F8#7)lK%&_U2U$%Sq;!MXc4Avq?(cx31KBaY^ci_mnD=(S>i}rk&|DY+^C%lPT|vI#%cJTR)+S zqw9Ej&dKuQNKy6qdQ8NaH23`bvo$8h=!tt++l|dMruVY{&J@Kc-EbI3geUG202Eqo zOob3ha!mjIBx3miNR4!66u&U@D^UW$62<-)W+Eojb0GhaHH64%Am>z2sR#u( zPR{hFno3rwgZ}>hI396Jis+aLt;>7T0FenL5h1L-dxni6P~l4>eamgw$Y6)kQQY>a zQF0sD19_H!uLR`e*wI&`eJ~wyybQ7msMFzb`@7Nl<(2j+5N9;-hln)DgzQP|Mwkp- z9o+H$T)V^hNjHwXlLgp_Fz{{*GQmL`Mjgj6 zhI3yOGGd}a@sR}0A|cfO*09xo8K-O9=+-9}K@f+jP@?F?dsVa;d1_L@9y!Gx_92iovU-yeo*fdgcWo?y>PBUpWDkeJGcMrnm zwzdtgPBP1=q~9_;sM%YqRCwl7%f}}rZ)F(3AOD-GbW`7wL$~uFqqRrZZf9AC&`{n3 z{FE|+)JP3F)7{$EB{T2Y%xf-wX>6>ZlBQ=hFU;Jj$Xfq8ti9F`=JmYtirG75X>dL` zva?%0mSg_0um8+mcsw#hY@eWGW|n8*a+1(HoT@X)6U2+64rK{T9;=GV)8bt{4dF(2pN(%M{%h329CAWS1}Z?gVZ$k0q4dGNwH>BpGGFC=FHZjYbalsZ!7f|`H2(3uKd~u{jhHfE z+8L)&0B+z!lJwn*!C1Ad5sdJ&Fk=m2$@6+iWC=W2uz-w^hu1AvNz2Gcgo#ye9_R5o z=Ocv?+7NZRq19-aW&x@|VjzePaaUf#L@sKJXKRxw*jd#%`C9BSAS#4cuu~WwTX%pw z4nIYQ(sQr|KrvQ^DhelW(LF1P2OWz8kR3T{%IuwP zW;PCGKF~d zYl>g&M9)H4$H8#Jq@z__Lc_SpP8wD-6L0Pw(bCe&f8^<@YE{JkQn}h@8`a;g9FDU? zO`{VDT@z2I#YNvsJ+DJ;Vcb&^;q#RpF%~E`fUR@uD=%b*o*&kGaNO!9Ggo-GHc!?; zAEx?_&9BxLb*G1RAdm|G`STVP`}d(8Kd=0k%l^nFQFD{mg@5b9fBx!bC~U3&v}5Y* z3(ZgW7?VC!j!Ap%qC0WIL_4yaC6{6kyQFx$xAF0?hzPQc8m1BS2M@k@mwqJ7PL>Po z{WlYhgJ|*z)`l6#AehrQQlG1)(uvm(M)laRP*>00;AUr+*)cfkKzDL=Y@h)a4A2#;^r;`qGYJFl44jp6rI$l80}UM=-v+nl;SB@t*oMFH=qryI zid!MWbOV@nEiRoA^-xw;COc+fGytEzfp&^_ZjT}Ajs!vk)%Iil9i8~mha`Nvr8oJDcdbEp4n zNUh3Mt^3rtBP6qh<@&Cia}|uS!p?n(nskR)rITyJ%CoH!lc#P)$F1!O=LfvOv1ApT z&P&HZ&3t`!r@u>thq3T*l8G~|_fS%txJY7KOZ!B8cC%M~?4hH|^78VTW}@Kp0=_?J zJY1bhBPnV1@2#ts@447rS~>#X7eE)G1Si&^u8!agM3gCu-?&Pw=ZwUz=WjNBw zOWDN#Y-px7zjx%z6ZbH)(*ETcfJ|{Bo-6MUxD)`+n zkFyR9-oeGbSiO)BS2wr{9nsjvexv(jM)b#mty-qN*Bgd;#v->r{WJV8+Ok%W;(c$? zx9|FUFNnICTD=(g9+j=fCN{6PH&FTIQ~C2La(wdgBTKJ$TP2wSd`WEe#pp+W?9=kM z4U3ofGhu`FD5Ryu$C^M`NpSxIUY2Dx`STI5b)c7EFiZCTb#`^Vzx1Q0$Beuez-lDB zld%MHvDiZ30cGVcILFaXJn-8%q5}K&v2Ba!oJK?qi;Btz%gt4m3+RYYNeyN`nA#8* zOS$b16PFBt1{xX~BEi{?EIh&=fd=TR?HEii3_-)R4i$LQfhj5J`sqR_wY6XIuZax9 zZ5b@NL0P5!jz4Ta@XN_Pv6b8CBW^4Tt~EN4BW}IvcQFClODx8=?6A(K7TJqLOAHNh zn2F1O%8gTm=?g#=wm^?mPesQg=A-^UySIYoZf7rszi)t6v_0Z=ehDHIDxWz3(tCho zh;7}!7Xv2(=|BMd#4>Vaf!xS1=c`#hX@|wGjLXHfzE4m))OaH@_ZIv1yRVl6V&bEZ zEenPYS{dm)9{g$h|F{7A?BbV=Lus7cE@-5N^LE_%c|1H=VYBwbp`*0thy5mHYB!mj zN*B3%ST=5n*5b$2<`2gVeq2Rpnx3A9?_&JS@ac~0v>bP1j4Dsx%r?o}{p7^8dfqS- z1=FH70gQzR8iko6)U~$aGWc0rpdR;uI|{l?iTK1ldz}BPJua0n%T768e@(noK$VUA z7RNU2YRxAhiSb(Ho2B?}Q^t;q6q*Zk_bA|Cj^8?UE26Q?X8#`Xy|PP}AD!^OdU?+7 zR)4AeGk+_@vs?SmP-Oo7<1Lyhe^o|h=U-4~`by*atQ>BI)q8&D4t^lDMg3-soa4r% znv2dISr!sKQnlAtzc8QCj&kzg4ZrWVtTFoIw$G296s^C0$|Uc+^%ZhG&-3IrFOR66 zx3>>b{CHNnsH#Rf-_1FQ*PwbefV3RSm1yuq!8!1prtNtWIlr#y9Xu(fFMl-@4&DU@KdzI zmhE!losK5Ltc3mp4_#Cd2fIOx0^Me9rszTOXUm1jl(U2OkVjCPg~{UNKV^sL#mU5(jOPkWlyS>uqHnYDfR}iV*0D%8zItU}uSP z1Vy9n#${@SegsljGs&F$tbtKu$s`ejY+HTWN~g)52UZQiHgFl`+Hzr(LKIQJq~Dm| zwvHz&WMJ9Li-|Wb#~YWhPhbPCVVDW}=kcsqLd{M?Z#<}c0<9NTa)!YXEyo}pY$nK& z{@bw86PS?78WcZYp<4vMgA5c1Zlq`UMW}+zyq@3w9H=H@X?E6Gs=YOwd9xN~8cr;? z4Jbog%j@Ffolm|^G~e7dL02a%cr?t!!hA@k*zI-urgXNk>F07j4vB_2uB8>SCrgw5 zG_^a#nOCKYY^ise!Qh*la&viwb_)#n^4^_)z57dFiTYsv=I|>N zAD4gZE<3WL#kgF+SFgZ~FtT3tpU|%H_w7>_I!t+}g(cn~W1qSPRr2e*T?Wb5&-}fd z$}aWtTo?ZyMsA94ciNKo*-2;ar?u_mia)HA?m}!^VQ$uB7jY&61=AQND-)#D zL#6;Jm$1NebAREbeZiYWa`}uACL!uDaLIlN3pJtm|K)-viQFXytsw27dxkLY!r)P2uI$(E-(>hk=9qv3aRY&0qS<1cwgeW{f*~Q9yP?FXIJI>FhJ?5v zt^k{Wc#?T1(E(5^_7gK{)Tuxt?j|Sepi!XDfA-j??{d&eZ4r8#o%nL>e*XZ>7Q0Oa%1x6>__*^hnHtVr1@iQ0BieMl+axoaq+2^Qr(lpJPGoj0W zT$e8IQTatPg#{|%E8i+z;md>%dzWum$yMm~iR)(2pKD8(h6NqF__^WI`(C!>n8W+9#Z++!pQGmOchCndrCEb9aZQCT84}mxN1WQ*z4un^T&*jUAfm=`g z1+@~p&bVO~i~84;*j8JDjy;J14Xoo1y_bC9NXa4NK!pW6go`&dm2lSdAwJc6{<9{U zv`s=;t>vQAMC88W54s9L;9)daZ)TFP*Y5$!VkpewU|@{HL@X%8B1)4cy(`h)oPp0G z3;<95WE$x0?Vb5EsoW1dcoK*Eos8x2dvNE092TBZdj)?ySkQ=eNd;C7Mgg`kWpw<6 z#}XLYvBbEf%}hVfL>Jr?QWAp!iCs|>T;6bf0i>XgQJ;HX)1(vd6CmR6UE*W4a_onm z`GQ^YU?6H#Hyd1iFaS9|z6#c5~M6ewRh^Pc=_`K%9V*7H-MB7#oFb&e*Yaj>>8uk&77SP*^mGfDz8xAdvYhnRf6S4}N&14g&|xz2tANYR9~ zP&hwvv%#z}WKXG-KC5o5o{r84+8BO#%=Ig3Yiomb(1}q;Yo6Xot(-1Gl_W-RWE|IK zK5QpV_MCyAknlj*S(b}rc+w0$K7#2t5G;UVCZ!cDV3m*x8p|V0TJr@l2LNhD93R9Q zRg&DPy0lgfh}qMg)fNS72&cn zRBfM<(_T4H@k}_h%1toOU7;e>oM9o8mxd^CoZWE)U1gKK{$5f(2rA;fedfO;F)j`$ zyuEVn{~n5Ti^cI6)s@B0Dr%OrC=Gh02!Tn5dB9YhyE9tr>#s7Ztb(a^&mrZ~snLlE;vpuuw-4?dMT9^4Q(1@j1>KkgksG|B)KT`Z zQqmim9!wk7xGOKn@AB`%!i6^zlShK&5~i3NhZJoNvVX1X^KyUX-ymb)!NN>!toXuW z`Iw1Z?9VB+N2@{S0)L`M9r^w}ikAk0J&>JT_tq?)I)p_r5EBT8-|uxpJ=pfM@jn3n zoJoI}ySux1lwAdNCT`;Cx1R{=5Y&ldeYt&qYaXxQ;wt)~Sfs?ZU^C8a%pgHhefH>{ zeFBjwv9nv0e%nnK@G}kWai9R(S9B+1lMU?Ja>=~TBCkRN#}q@1;A_`BcHYJ_hAi18 zUy^fq;F)j5;r#)Jn7$yZKNq<@K@Bzx$VU&JErfUcR7{Hk53Yc{au*>pgavH`!em{X z9UCIFi|<0)-YEm!mt(;NyE=>YXsU{y8MJj!`%jK$2wLVKziR|1l+F(rv85{e(DG@fQi?71@20{;Y zIXVSMmUrK4muYW{_~1Fz+^jkCJOOEo&?e|+CU(HL0G5mA-M@eTzFcDiop;OlRm|QH z8Ur0B8!#JYA?P#!58%hykM1or-6^4RqPv!oVpA1#-}=koZXu!f`*e$-cSFS$P&l(t zTU!fed(N>->)^2<{QtC_2ypqoMn4`dn`ndUkV=e2YESN7Z#cX} zCEAR}^J?XkeM~#5ztwARwkwOHMm_&Yp${Fl(qX2&E(yN6XQunws4FN!TwC89ni)wr z!9bPsGxyFC%d}wj1+Ck{$zv&d!;2Z)^$cSSYBlL!{dDipl78_}mO}ec&s4j9@rsM6 zl5D4-*bUyaliu-`eQ&OR4&$qR6w1eXU?aP8pv6?LxFx%{U>q-v*?pr!3wQBAM(_DU=H0daqkznZT~cNPzQya921` z6Ix^8MFtG7kSjy?aBj3FxsEUgIYQ$EL1sXu35EG}B3rl4z{exEf@@cDcta�-TS} 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 R;*qOhK4$Fbv&OUj`9H>^w5|XE diff --git a/images/rhdh-plugins-reference/developer-lightspeed.png b/images/rhdh-plugins-reference/developer-lightspeed.png deleted file mode 100644 index bf15e9773fb7b01800e350ebeb7f497b6b687efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158138 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⋘^G9K)lBD)T5QJCxV*QrUMkTcT9v1LCu>DgKNB-} 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 O-wkzbwZdywVgCVWOVpYG diff --git a/modules/developer-lightspeed/con-about-developer-lightspeed.adoc b/modules/developer-lightspeed/con-about-developer-lightspeed.adoc index fb440177e3..a7b73ffe1c 100644 --- a/modules/developer-lightspeed/con-about-developer-lightspeed.adoc +++ b/modules/developer-lightspeed/con-about-developer-lightspeed.adoc @@ -14,7 +14,7 @@ This early access program enables customers to share feedback on the user experi You can experience {ls-short} Developer Preview by installing the Developer Lightspeed for {product} plugin within an existing {product-very-short} instance. Alternatively, if you prefer to test it locally first, you can try {ls-short} using {product-local-very-short}. -image::rhdh-plugins-reference/developer-lightspeed.png[] +image::rhdh-plugins-reference/developer-lightspeed-1-8-0.png[] .Additional resources -* link:https://github.com/redhat-developer/rhdh-local/blob/main/README.md[{product-local-very-short}] +* link:https://github.com/redhat-developer/rhdh-local/blob/main/README.md[{product-local-very-short}] \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc index d3ededb76a..02dbb5929f 100644 --- a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc +++ b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc @@ -15,8 +15,12 @@ If you configure {ls-short} to store chat history using PostgreSQL, prompts and ==== .Procedure -* When you are using {ls-short} on an Operator-installed {product-very-short} instance, in your {product-very-short} instance ConfigMap, update the `conversation-cache` field as shown in the following example: -+ +Customize the chat history storage using any of the following methods: + +* Update your {product-very-short} config file. +** If you are using {ls-short} on an Operator-installed {product-very-short} instance, update `conversation_cache` in your {product-very-short} ConfigMap. +** If you are using {ls-short} on a Helm-installed {product-very-short} instance, update `conversation_cache` in your `values.yaml` file. ++ [source,yaml] ---- conversation_cache: @@ -24,24 +28,19 @@ If you configure {ls-short} to store chat history using PostgreSQL, prompts and postgres: host: __ port: __ - dbname: __ + db: __ user: __ - password_path: postgres_password.txt + password: __ ca_cert_path: postgres_cert.crt ssl_mode: "require" ---- -* When you are using {ls-short} on a Helm-installed {product-very-short} instance, in your {product-very-short} instance `values.yaml` file, update the `conversation-cache` field as shown in the following example: +* Update `conversation_cache` in your {lcs-short} config file: + [source,yaml] ---- conversation_cache: - type: postgres - postgres: - host: __ - port: __ - dbname: __ - user: __ - password_path: postgres_password.txt - ca_cert_path: postgres_cert.crt + type: "sqlite" + sqlite: + db_path: "/tmp/cache.db" ---- diff --git a/modules/developer-lightspeed/proc-gathering-feedback.adoc b/modules/developer-lightspeed/proc-gathering-feedback.adoc index 0d386641dd..49de7ea7ae 100644 --- a/modules/developer-lightspeed/proc-gathering-feedback.adoc +++ b/modules/developer-lightspeed/proc-gathering-feedback.adoc @@ -15,10 +15,6 @@ The collected data resides in the cluster where {product-very-short} and {lcs-sh + [source,yaml] ---- -llm_providers: - ....... -lightspeed_stack: - ...... user_data_collection: feedback_enabled: true feedback_storage: "/tmp/data/feedback" From 04f289ed89a8b22e000efabdb6381aec96fad90c Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 7 Nov 2025 15:07:38 +0530 Subject: [PATCH 19/26] rhdhbugs-2225 --- .../proc-installing-and-configuring-lightspeed.adoc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index e0017bb06b..78636df2ee 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -23,7 +23,8 @@ This step is necessary as {ls-short} has a new architecture. In the previous rel .Prerequisites * You are logged in to your {ocp-short} account. -* You have an existing {product-very-short} instance installed using either the Operator or the Helm chart. +* You have an {product-very-short} instance installed using either the Operator or the Helm chart. +* You have created a {installing-and-viewing-plugins-book-link}##rhdh-installing-rhdh-plugins_title-plugins-rhdh-about[custom dynamic plugins ConfigMap]. .Procedure @@ -33,7 +34,7 @@ You must manually install and configure the {ls-short} plugin, the {lcs-name} ({ .. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. -.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via* and edit the file using the following structure. This example demonstrates the configuration for the LCS ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: +.. From the *Create ConfigMap* page, select the *YAML view* option and edit the file using the following structure. This example demonstrates the configuration for the LCS ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: + [source,yaml,subs=+attributes] ---- @@ -83,7 +84,7 @@ The {lcs-short} ConfigMap can optionally include configuration for `mcp_servers` .. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMap*. -.. From the *Create ConfigMap* page, select the *YAML view* option in *Configure via*, and add the following example: +.. From the *Create ConfigMap* page, select the *YAML view* option and add the following example: + [source,yaml] ---- @@ -131,7 +132,7 @@ data: .. In the {ocp-short} web console, go to *Secrets*. .. Click *Create* -> *Key/value secret*. -.. In the *Create key/value secret* page, select the *YAML view* option in *Configure via*, and add the following example: +.. In the *Create key/value secret* page, select the *YAML view* option and add the following example: + [source,yaml] ---- @@ -164,7 +165,7 @@ where: .. Click *Create*. -. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-{product-very-short}.yaml`). +. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-rhdh.yaml`). + [source,yaml] ---- From 1ce4f2849b0d8f6b3f9aedfd82b4e988580b3401 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 7 Nov 2025 16:02:38 +0530 Subject: [PATCH 20/26] Minor changes and rebase --- .../proc-installing-and-configuring-lightspeed.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 78636df2ee..5c823218e3 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -238,7 +238,7 @@ plugins: command: - "sh" - "-c" - - "echo 'Copying RAG data...'; cp -r /rag/vector_db/{product-very-short}_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" + - "echo 'Copying RAG data...'; cp -r /rag/vector_db/rhdh_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" volumeMounts: - mountPath: /data name: rag-data-volume @@ -260,7 +260,7 @@ plugins: - mountPath: /app-root/embeddings_model name: rag-data-volume subPath: embeddings_model - - mountPath: /app-root/vector_db/{product-very-short}_product_docs + - mountPath: /app-root/vector_db/rhdh_product_docs name: rag-data-volume subPath: rhdh_product_docs - image: 'quay.io/lightspeed-core/lightspeed-stack:dev-20251021-ee9f08f' # Lightspeed Core Service image @@ -315,7 +315,7 @@ plugins: command: - "sh" - "-c" - - "echo 'Copying RAG data...'; cp -r /rag/vector_db/{product-very-short}_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" + - "echo 'Copying RAG data...'; cp -r /rag/vector_db/rhdh_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" volumeMounts: - mountPath: /data name: rag-data-volume @@ -342,7 +342,7 @@ You must replace the older single container configuration found in source with t - mountPath: /app-root/embeddings_model name: rag-data-volume subPath: embeddings_model - - mountPath: /app-root/vector_db/{product-very-short}_product_docs + - mountPath: /app-root/vector_db/rhdh_product_docs name: rag-data-volume subPath: rhdh_product_docs # Lightspeed Core Service Container From 9b3a164b98863b1b67a3848b32bf099547a0a39c Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 7 Nov 2025 17:45:40 +0530 Subject: [PATCH 21/26] Incorporated Karthik's comments --- ...installing-and-configuring-lightspeed.adoc | 99 +++++++++++-------- 1 file changed, 59 insertions(+), 40 deletions(-) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 5c823218e3..65a98fb774 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -36,37 +36,40 @@ You must manually install and configure the {ls-short} plugin, the {lcs-name} ({ .. Click *Create ConfigMaps*. .. From the *Create ConfigMap* page, select the *YAML view* option and edit the file using the following structure. This example demonstrates the configuration for the LCS ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: + -[source,yaml,subs=+attributes] +[source,yaml] ---- kind: ConfigMap apiVersion: v1 metadata: - name: {lcs-name} ({lcs-short}) -service: - host: 0.0.0.0 - port: 8080 - auth_enabled: false - workers: 1 - color_log: true - access_log: true -llama_stack: - use_as_library_client: false - url: http://localhost:8321 -user_data_collection: - feedback_enabled: true - feedback_storage: "/tmp/data/feedback" - transcripts_enabled: true - transcripts_storage: "/tmp/data/transcripts" -authentication: - module: "noop" -conversation_cache: - type: "sqlite" - sqlite: - db_path: "./lcs_cache.db" -mcp_servers: - - name: mcp::backstage - provider_id: model-context-protocol - url: https://<{product-very-short}_HOST>/api/mcp-actions/v1 + name: lightspeed-stack +data: + lightspeed-stack.yaml: | + name: Lightspeed Core Service (LCS) + service: + host: 0.0.0.0 + port: 8080 + auth_enabled: false + workers: 1 + color_log: true + access_log: true + llama_stack: + use_as_library_client: false + url: http://localhost:8321 + user_data_collection: + feedback_enabled: true + feedback_storage: "/tmp/data/feedback" + transcripts_enabled: true + transcripts_storage: "/tmp/data/transcripts" + authentication: + module: "noop" + conversation_cache: + type: "sqlite" + sqlite: + db_path: "./lcs_cache.db" + mcp_servers: + - name: mcp::backstage + provider_id: model-context-protocol + url: https:///api/mcp-actions/v1 ---- + where: @@ -80,8 +83,24 @@ The {lcs-short} ConfigMap can optionally include configuration for `mcp_servers` .. Click *Create*. -. Create the {ls-short} ConfigMap: Create a dedicated {ls-short} ConfigMap (`lightspeed-app-config`) to hold specific plugin configurations. +. Create an MCP_TOKEN. +.. https://backstage.io/docs/auth/service-to-service-auth/#static-tokens[Generate the external static token]. +.. Create a secret file as shown in the following example: ++ +[source,yaml] +---- +apiVersion: v1 +kind: Secret +metadata: + name: lightspeed-secrets + namespace: <_your_namespace_> +type: Opaque +stringData: + MCP_TOKEN: <_your_static_token> +---- +. Create the {ls-short} ConfigMap: Create a dedicated {ls-short} ConfigMap (`lightspeed-app-config`) to hold specific plugin configurations. +.. Create a .. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMap*. .. From the *Create ConfigMap* page, select the *YAML view* option and add the following example: @@ -92,7 +111,7 @@ kind: ConfigMap apiVersion: v1 metadata: name: lightspeed-app-config - namespace: <__namespace__> # Enter your {product-very-short} instance namespace + namespace: <__namespace__> # Enter your RHDH instance namespace data: app-config.yaml: |- backend: @@ -116,14 +135,14 @@ data: # OPTIONAL: Custom users prompts displayed to users # If not provided, the plugin uses built-in default prompts prompts: - - title: 'Getting Started with {product}' + - title: `Getting Started with Red Hat Developer Hub` message: Can you guide me through the first steps to start using {product-short} as a developer, like exploring the Software Catalog and adding my service? # OPTIONAL: Port for lightspeed service (default: 8080) # servicePort: ${LIGHTSPEED_SERVICE_PORT} - # OPTIONAL: Override default {product-very-short} system prompt - # systemPrompt: "You are a helpful assistant focused on {product} development." + # OPTIONAL: Override default RHDH system prompt + # systemPrompt: "You are a helpful assistant focused on Red Hat Developer Hub development." ---- .. Click *Create*. @@ -165,7 +184,7 @@ where: .. Click *Create*. -. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-rhdh.yaml`). +. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-rhdh`). + [source,yaml] ---- @@ -196,10 +215,6 @@ plugins: text: Lightspeed - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:next__1.0.1!red-hat-developer-hub-backstage-plugin-lightspeed-backend disabled: false - pluginConfig: - lightspeed: - # OPTIONAL: Port for lightspeed service (default: 8080) - # servicePort: ${LIGHTSPEED_SERVICE_PORT} ---- . Update your deployment configuration: Update the deployment configuration based on how your {product-very-short} instance was installed. You must add two sidecar containers: `llama-stack` and `lightspeed-core`. @@ -213,7 +228,6 @@ plugins: appConfig: configMaps: - name: lightspeed-app-config - mountPath: /opt/app-root/src ---- ... Update the `spec.deployment.patch.spec.template.spec.volumes` specification to include volumes for {lcs-short} configuration (`lightspeed-stack`), shared storage for feedback (`shared-storage`), and RAG data (`rag-data-volume`): + @@ -243,12 +257,17 @@ plugins: - mountPath: /data name: rag-data-volume ---- -... Add the Llama Stack and {lcs-short} containers to the `spec.deployment.patch.spec.template.spec.containers` section: +... Add the Llama Stack, {lcs-short} containers, and the MCP_TOKEN secret file to the `spec.deployment.patch.spec.template.spec.containers` section: + [source,yaml] ---- + spec: + application: + - extraEnvs: + secrets: + - name: lightspeed-secrets containers: - # ... Your existing {product-very-short} container definition ... + # ... Your existing RHDH container definition ... - envFrom: - secretRef: name: llama-stack-secrets From 8d246af416e69058fe3279ac328a47b9975b35b8 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Fri, 7 Nov 2025 23:46:24 +0530 Subject: [PATCH 22/26] Added Maysun's and Stephanie's comments --- ...bout-lightspeed-stack-and-llama-stack.adoc | 2 +- ...-customizing-the-chat-history-storage.adoc | 33 ++++++++----------- ...installing-and-configuring-lightspeed.adoc | 6 ++-- ...ed-to-start-a-chat-for-the-first-time.adoc | 2 +- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index 9dc9c58f09..ac6096fdd4 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -7,7 +7,7 @@ The {lcs-name} and Llama Stack deploy together as sidecar containers to augment The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the large language model (LLM) inference providers, Model Context Protocol (MCP) or retrieval augmented generation (RAG) tool runtime providers, safety providers, and vector database settings. -* {lcs-name} manages authentication, user feedback collection, MCP server configuration, and caching. +* {lcs-name} manages user feedback collection, MCP server configuration, and conversation history. * Llama Stack provides the inference functionality that {lcs-short} uses to process requests. For more information, see https://llamastack.github.io/docs#what-is-llama-stack[What is Llama Stack]. diff --git a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc index 02dbb5929f..23db06e13e 100644 --- a/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc +++ b/modules/developer-lightspeed/proc-customizing-the-chat-history-storage.adoc @@ -3,23 +3,17 @@ [id="proc-customizing-the-chat-history-storage_{context}"] = Customizing the chat history storage in {ls-short} -By default, the {ls-short} service stores chat history using an in-memory database. This means that if you restart the Pod containing the server, the chat history is lost. You can manually configure {ls-short} to store the chat history persistently as a long-term backup with PostgreSQL by any of the following methods: - -* {product-very-short} Operator -* {product-very-short} Helm chart +By default, the {ls-short} service stores chat history in a non-persistent local SQL database within in the {lcs-short} container. This means that chat history is lost if you create and use a new {lcs-short} sidecar. You can manually configure {ls-short} to store the chat history persistently as a long-term backup with PostgreSQL by updating your {lcs-short} service configuration. + [WARNING] ==== -If you configure {ls-short} to store chat history using PostgreSQL, prompts and responses are recorded and can be reviewed by your platform administrators. If any of your user's chat history contains any private, sensitive, or confidential information, this might have data privacy and security implications that you need to assess. For users that wish to have their chat data removed, they must request their respective platform administrator to perform this action. {company-name} does not collect (or have access to) any of this chat history data. +Configuring {ls-short} to use PostgreSQL records prompts and responses, which platform administrators can review. You must assess any data privacy and security implications if user chat history contains private, sensitive, or confidential information. For users that wish to have their chat data removed, they must request their respective platform administrator to perform this action. {company-name} does not collect or access this chat history data. ==== .Procedure -Customize the chat history storage using any of the following methods: - -* Update your {product-very-short} config file. -** If you are using {ls-short} on an Operator-installed {product-very-short} instance, update `conversation_cache` in your {product-very-short} ConfigMap. -** If you are using {ls-short} on a Helm-installed {product-very-short} instance, update `conversation_cache` in your `values.yaml` file. +. Configure the chat history storage type in the {lcs-short} configuration file (`lightspeed-stack.yaml`) using any of the relevant options: +** To enable persistent storage with PostgreSQL, add the following configuration: + [source,yaml] ---- @@ -29,18 +23,17 @@ Customize the chat history storage using any of the following methods: host: __ port: __ db: __ - user: __ - password: __ - ca_cert_path: postgres_cert.crt - ssl_mode: "require" + user: __ + password: __ ---- - -* Update `conversation_cache` in your {lcs-short} config file: +* To retain the default, non-persistent SQLite storage, make sure the configuration is set as shown in the following example: + [source,yaml] ---- - conversation_cache: - type: "sqlite" - sqlite: - db_path: "/tmp/cache.db" +conversation_cache: + type: "sqlite" + sqlite: + db_path: "/tmp/cache.db" ---- + +. Restart your {lcs-short} service to apply the new configuration. \ No newline at end of file diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 65a98fb774..642ef035db 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -34,7 +34,7 @@ You must manually install and configure the {ls-short} plugin, the {lcs-name} ({ .. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMaps*. -.. From the *Create ConfigMap* page, select the *YAML view* option and edit the file using the following structure. This example demonstrates the configuration for the LCS ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: +.. From the *Create ConfigMap* page, select the *YAML view* option and edit the file using the following structure. This example demonstrates the configuration for the {lcs-short} ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: + [source,yaml] ---- @@ -47,7 +47,7 @@ data: name: Lightspeed Core Service (LCS) service: host: 0.0.0.0 - port: 8080 + port: ${LIGHTSPEED_SERVICE_PORT} auth_enabled: false workers: 1 color_log: true @@ -376,7 +376,7 @@ You must replace the older single container configuration found in source with t ---- ... Click *Save* and then Helm upgrade. -. Manage authorization (RBAC): If you have users who are not administrators, you must define permissions and roles for them to use {ls-short}. The Lightspeed Backend plugin uses {backstage} RBAC for authorization. +. Optional: Manage authorization (RBAC): If you have users who are not administrators, you must {authorization-book-link}##enabling-and-giving-access-to-rbac[define permissions and roles] for them to use {ls-short}. The Lightspeed Backend plugin uses {backstage} RBAC for authorization. ** For an Operator-installed {product-very-short} instance: diff --git a/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc b/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc index 4060c9149e..620e4fcde2 100644 --- a/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc +++ b/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc @@ -5,7 +5,7 @@ You can start a chat with {ls-short} for quick answers on a number of topics depending on your settings. You can manually start a chat with the {ls-short} or use the following sample prompts we have provided to help you get started: -* *Getting Started with {product-custom-resource-type}* +* *Getting Started with Red Hat Developer Hub* * *Deploy with Tekton* * *Create an OpenShift Deployment* From 0b28b9c5e6e671460d893141f62b0c9ff0327156 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Sun, 9 Nov 2025 17:16:30 +0530 Subject: [PATCH 23/26] Incorporated Jordan's coments --- modules/developer-lightspeed/con-llm-requirements.adoc | 2 +- .../proc-installing-and-configuring-lightspeed.adoc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/developer-lightspeed/con-llm-requirements.adoc b/modules/developer-lightspeed/con-llm-requirements.adoc index 51c323e677..83a0e8b9b6 100644 --- a/modules/developer-lightspeed/con-llm-requirements.adoc +++ b/modules/developer-lightspeed/con-llm-requirements.adoc @@ -5,7 +5,7 @@ {ls-short} follows a _Bring Your Own Model_ approach. This model means that to function, {ls-short} requires access to a large language model (LLM) which you must provide. An LLM is a type of generative AI that interprets natural language and generates human-like text or audio responses. When an LLM is used as a virtual assistant, the LLM can interpret questions and provide answers in a conversational manner. -LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers`` that offer compatibility with the OpenAI API including the following LLMs: +LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers` that offer compatibility with the OpenAI API including the following LLMs: * OpenAI (cloud-based inference service) * {rhoai-brand-name} (enterprise model builder & inference server) diff --git a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc index 642ef035db..c2c8dc1235 100644 --- a/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc +++ b/modules/developer-lightspeed/proc-installing-and-configuring-lightspeed.adoc @@ -100,7 +100,6 @@ stringData: ---- . Create the {ls-short} ConfigMap: Create a dedicated {ls-short} ConfigMap (`lightspeed-app-config`) to hold specific plugin configurations. -.. Create a .. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. .. Click *Create ConfigMap*. .. From the *Create ConfigMap* page, select the *YAML view* option and add the following example: @@ -343,7 +342,7 @@ plugins: + [NOTE] ==== -You must replace the older single container configuration found in source with the two sidecars. +If you have Road-Core Service installed from the previous {ls-brand-name} configuration, you must replace the older single container configuration found in source with the two sidecars. ==== + [source, yaml] From 56d851779c29152f0cde76113e014f986a180997 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Sun, 9 Nov 2025 17:17:54 +0530 Subject: [PATCH 24/26] Minor --- modules/developer-lightspeed/con-llm-requirements.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/developer-lightspeed/con-llm-requirements.adoc b/modules/developer-lightspeed/con-llm-requirements.adoc index 83a0e8b9b6..1a80b9ad9b 100644 --- a/modules/developer-lightspeed/con-llm-requirements.adoc +++ b/modules/developer-lightspeed/con-llm-requirements.adoc @@ -5,7 +5,7 @@ {ls-short} follows a _Bring Your Own Model_ approach. This model means that to function, {ls-short} requires access to a large language model (LLM) which you must provide. An LLM is a type of generative AI that interprets natural language and generates human-like text or audio responses. When an LLM is used as a virtual assistant, the LLM can interpret questions and provide answers in a conversational manner. -LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers` that offer compatibility with the OpenAI API including the following LLMs: +LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers` that offer compatibility with the OpenAI API including the following inference providers: * OpenAI (cloud-based inference service) * {rhoai-brand-name} (enterprise model builder & inference server) From 6c21501163c6112ff0b1e9333e395d3769f855d9 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Mon, 10 Nov 2025 18:08:46 +0530 Subject: [PATCH 25/26] Minor changes --- ...bout-lightspeed-stack-and-llama-stack.adoc | 22 +++++++++++++++---- ...ed-to-start-a-chat-for-the-first-time.adoc | 2 +- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc index ac6096fdd4..99f009fb71 100644 --- a/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc +++ b/modules/developer-lightspeed/con-about-lightspeed-stack-and-llama-stack.adoc @@ -5,13 +5,27 @@ The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {product-very-short} functionality. -The {lcs-name} serves as the Llama Stack service intermediary, managing configurations for key components. These components include the large language model (LLM) inference providers, Model Context Protocol (MCP) or retrieval augmented generation (RAG) tool runtime providers, safety providers, and vector database settings. +The Llama Stack delivers the augmented functionality by integrating and managing core components, which include: -* {lcs-name} manages user feedback collection, MCP server configuration, and conversation history. +* Large language model (LLM) inference providers -* Llama Stack provides the inference functionality that {lcs-short} uses to process requests. For more information, see https://llamastack.github.io/docs#what-is-llama-stack[What is Llama Stack]. +* Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers -* The {ls-brand-name} plugin in {product-very-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. +* Safety providers + +* Vector database settings + +The {lcs-name} serves as the Llama Stack service intermediary. It manages the operational configuration and key data, specifically: + +* User feedback collection + +* MCP server configuration + +* Conversation history + +Llama Stack provides the inference functionality that {lcs-short} uses to process requests. For more information, see https://llamastack.github.io/docs#what-is-llama-stack[What is Llama Stack]. + +The {ls-brand-name} plugin in {product-very-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. [NOTE] ==== diff --git a/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc b/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc index 620e4fcde2..cca792576a 100644 --- a/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc +++ b/modules/developer-lightspeed/proc-using-developer-lightspeed-to-start-a-chat-for-the-first-time.adoc @@ -23,7 +23,7 @@ You can start a chat with {ls-short} for quick answers on a number of topics dep + [NOTE] ==== -The following file types are supported: `yaml`, `json`, `txt`, and `xml`. +The following file types are supported: `yaml`, `json`, and `txt`. ==== *** Click *Open*. ** To start a chat using the existing prompts, in the {ls-short} virtual assistant interface, click any of the relevant prompt tiles. From 3ada57d86ec90e41696ea338c0f22cfbecb87185 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Mon, 10 Nov 2025 19:18:25 +0530 Subject: [PATCH 26/26] Minor changes --- assemblies/assembly-using-developer-lightspeed.adoc | 1 + modules/developer-lightspeed/con-llm-requirements.adoc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/assemblies/assembly-using-developer-lightspeed.adoc b/assemblies/assembly-using-developer-lightspeed.adoc index 0fa80e63d3..d0c604fefd 100644 --- a/assemblies/assembly-using-developer-lightspeed.adoc +++ b/assemblies/assembly-using-developer-lightspeed.adoc @@ -16,6 +16,7 @@ endif::[] [NOTE] ==== The `Question Validation` feature is enabled by default if you are using the `quay.io/redhat-ai-dev/llama-stack` image without overriding the `run.yaml` configuration file in the image. To disable `Question Validation`, you must mount a `run.yaml` file to the container with the following sections removed: + * `Safety` * `Shields` * `External_providers_dir` set to `null` diff --git a/modules/developer-lightspeed/con-llm-requirements.adoc b/modules/developer-lightspeed/con-llm-requirements.adoc index 1a80b9ad9b..da5360622c 100644 --- a/modules/developer-lightspeed/con-llm-requirements.adoc +++ b/modules/developer-lightspeed/con-llm-requirements.adoc @@ -8,7 +8,7 @@ LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with a number of LLM `providers` that offer compatibility with the OpenAI API including the following inference providers: * OpenAI (cloud-based inference service) -* {rhoai-brand-name} (enterprise model builder & inference server) +* {rhoai-brand-name} (enterprise model builder and inference server) * {rhel} AI (enterprise inference server) * Ollama (popular desktop inference server) * vLLM (popular enterprise inference server)