From 4e28c644d5cb52ce10bce7f6652ba42d7eab4a1d Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Tue, 11 Aug 2026 09:11:06 +0530 Subject: [PATCH 01/11] RHIDP-16107: Switch Lightspeed RAG Container to OKP --- ...g-embeddings-for-grounded-ai-responses.adoc | 13 +++++++------ ...ges-for-helm-deployments-on-kubernetes.adoc | 18 ++++++++++-------- ...ror-images-for-helm-deployments-on-ocp.adoc | 10 ++++++---- ...mirror-images-for-operator-deployments.adoc | 8 +++++--- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index ed82dcbeafd..f41357bbb70 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -4,12 +4,13 @@ = Retrieval augmented generation (RAG) embeddings for grounded AI responses [role="_abstract"] -Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in your internal documentation and provide verified citations during user interactions. +Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. -The {product-very-short} documentation serves as the primary data source for RAG operations. To provide accurate citations to production documentation during inference, the system uses RAG embeddings stored within a vector database. +{product-very-short} {ls-short} uses the Online Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. The OKP container is installed and configured as a sidecar automatically as part of the {ls-brand-name} installation — no additional configuration is required. -The system processes RAG data through the following sequence: +The {lcs-name} ({lcs-short}) queries OKP during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. -* An initialization container copies the RAG data to a shared volume. -* The {lcs-name} ({lcs-short}) sidecar container mounts the shared volume to access the data. -* The sidecar layer uses the embeddings to attach precise documentation references to the chat responses. +[NOTE] +==== +The Notebooks feature, which enables you to upload and query your own documents, uses a separate RAG mechanism and is not affected by the OKP integration. +==== diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc index f0125c462c9..6ef61b42e25 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc @@ -12,14 +12,16 @@ Isolate image references, copy them manually to your internal registry, and upda .Procedure +// TODO (RHIDP-16107): Confirm the exact Helm values key for the OKP sidecar image +// (replacing the old global.lightspeed.initContainer.image). Update below. . Extract the image references from the default values file of the chart: + [source,terminal,subs=+attributes] ---- $ helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_RAG_IMAGE=$(yq '.global.lightspeed.initContainer.image | .registry + "/" + .repository' values.default.yaml) -LS_RAG_DIGEST=$(yq '.global.lightspeed.initContainer.image.tag' values.default.yaml) +LS_OKP_IMAGE=$(yq '. | .registry + "/" + .repository' values.default.yaml) +LS_OKP_DIGEST=$(yq '..tag' values.default.yaml) LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) ---- @@ -28,21 +30,21 @@ LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) + [source,terminal] ---- -skopeo copy --all docker://${LS_RAG_IMAGE}:${LS_RAG_DIGEST} docker:///:${LS_RAG_DIGEST} +skopeo copy --all docker://${LS_OKP_IMAGE}:${LS_OKP_DIGEST} docker:///:${LS_OKP_DIGEST} skopeo copy --all docker://${LS_CORE_IMAGE}:${LS_CORE_DIGEST} docker:///:${LS_CORE_DIGEST} ---- . Update your custom Helm values file with the mirrored registry locations and plugin references. Mirror the dynamic plugins to the local registry before you add their package paths to the file. For mirroring instructions, see {installing-and-viewing-plugins-book-link}#mirror-rhdh-dynamic-plugins-in-disconnected-environments_install-dynamic-plugins-in-rhdh[Mirroring {product} dynamic plugins in disconnected environments]: + +// TODO (RHIDP-16107): Replace with the confirmed Helm values path for the OKP sidecar image. [source,yaml] ---- global: lightspeed: - initContainer: - image: - registry: "" - repository: - tag: "${LS_RAG_DIGEST}" + : + registry: "" + repository: + tag: "${LS_OKP_DIGEST}" sidecar: image: registry: "" diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc index 2bae75b02fb..5015360be0f 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc @@ -12,14 +12,16 @@ Mirror the required {ia-name} container images to your local registry by using t .Procedure -. Identify the initialization and sidecar container images from the default values file of the chart: +// TODO (RHIDP-16107): Confirm the exact Helm values key for the OKP sidecar image +// (replacing the old global.lightspeed.initContainer.image). Update below. +. Identify the OKP and {lcs-short} sidecar container images from the default values file of the chart: + [source,terminal,subs=attributes] ---- helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_RAG_IMAGE=$(yq '.global.lightspeed.initContainer.image | .registry + "/" + .repository' values.default.yaml) -LS_RAG_DIGEST=$(yq '.global.lightspeed.initContainer.image.tag' values.default.yaml) +LS_OKP_IMAGE=$(yq '. | .registry + "/" + .repository' values.default.yaml) +LS_OKP_DIGEST=$(yq '..tag' values.default.yaml) LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) ---- @@ -32,7 +34,7 @@ apiVersion: mirror.openshift.io/v2alpha1 kind: ImageSetConfiguration mirror: additionalImages: - - name: ${LS_RAG_IMAGE}:${LS_RAG_DIGEST} + - name: ${LS_OKP_IMAGE}:${LS_OKP_DIGEST} - name: ${LS_CORE_IMAGE}:${LS_CORE_DIGEST} helm: repositories: diff --git a/modules/shared/proc-mirror-images-for-operator-deployments.adoc b/modules/shared/proc-mirror-images-for-operator-deployments.adoc index cec0d8bf862..e7f8c10a594 100644 --- a/modules/shared/proc-mirror-images-for-operator-deployments.adoc +++ b/modules/shared/proc-mirror-images-for-operator-deployments.adoc @@ -24,11 +24,13 @@ podman cp $CONTAINER_ID:/manifests/rhdh-flavour-lightspeed-config_v1_configmap.y podman rm $CONTAINER_ID ---- -. Identify the initialization and sidecar container image tags from the extracted configuration file: +// TODO (RHIDP-16107): Confirm the exact OKP sidecar container name in the operator bundle +// (replacing the old "init-rag-data" init container). Update below. +. Identify the OKP and {lcs-short} sidecar container image tags from the extracted configuration file: + [source,terminal] ---- -LS_RAG_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.initContainers[] | select(.name == "init-rag-data") | .image') +LS_OKP_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "") | .image') LS_CORE_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "lightspeed-core") | .image') ---- @@ -36,7 +38,7 @@ LS_CORE_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec + [source,terminal] ---- -skopeo copy docker://${LS_RAG_IMAGE} docker:///@ +skopeo copy docker://${LS_OKP_IMAGE} docker:///@ skopeo copy docker://${LS_CORE_IMAGE} docker:///@ ---- From c97f9d9572138d9bf4c93ea005ce1a2d41100d96 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Tue, 13 Oct 2026 09:56:12 +0530 Subject: [PATCH 02/11] fix merge conflicts --- ...figured-settings-for-common-use-cases.adoc | 3 +++ ...-embeddings-for-grounded-ai-responses.adoc | 7 ++++++- .../proc-disable-by-using-the-operator.adoc | 3 +++ ...es-for-helm-deployments-on-kubernetes.adoc | 19 ++++++++++--------- ...or-images-for-helm-deployments-on-ocp.adoc | 10 +++++----- ...irror-images-for-operator-deployments.adoc | 11 ++++++----- 6 files changed, 33 insertions(+), 20 deletions(-) diff --git a/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc b/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc index c5979f1f628..8419e80b322 100644 --- a/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc +++ b/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc @@ -102,6 +102,9 @@ spec: - lightspeed-core ---- +// TODO (RHIDP-16107): Confirm the CR flavour name. rhdh-operator PR 3370 renamed the flavour directory +// to "intelligent-assistant" and gates on IsFlavourEnabled(spec, "intelligent-assistant"), but some PR +// comments still say "lightspeed". Verify the exact spec.flavours[].name value once the PR merges. [NOTE] ==== {ia-name} is enabled by default. diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index f41357bbb70..e52a0a1d4d8 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -6,10 +6,15 @@ [role="_abstract"] Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. -{product-very-short} {ls-short} uses the Online Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. The OKP container is installed and configured as a sidecar automatically as part of the {ls-brand-name} installation — no additional configuration is required. +{product-very-short} {ls-short} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ls-brand-name} installation. The {lcs-name} ({lcs-short}) queries OKP during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. +OKP deployment depends on your platform: + +* On {ocp-short}, both the {product} Operator and Helm chart deploy and configure OKP automatically. No additional configuration is required. +* On other Kubernetes platforms, only the Helm chart can deploy OKP, and you must opt in by setting an Ingress host. The Operator does not deploy OKP on non-{ocp-short} platforms; in that case, the assistant runs without a knowledge base, and general chat still works but product-specific responses might be less accurate. + [NOTE] ==== The Notebooks feature, which enables you to upload and query your own documents, uses a separate RAG mechanism and is not affected by the OKP integration. diff --git a/modules/shared/proc-disable-by-using-the-operator.adoc b/modules/shared/proc-disable-by-using-the-operator.adoc index 125938d717c..18ac6c6cd75 100644 --- a/modules/shared/proc-disable-by-using-the-operator.adoc +++ b/modules/shared/proc-disable-by-using-the-operator.adoc @@ -15,6 +15,9 @@ Disable the {ia-name} chat interface and stop associated container processes to . Open your {backstage} custom resource (CR) YAML file. . In the `spec` section, set the `enabled` flag to `false` for the `intelligent-assistant` flavour. This disables the chat interface and prevents the Operator from injecting unconfigured sidecar containers: + +// TODO (RHIDP-16107): Confirm the CR flavour name. rhdh-operator PR 3370 renamed the flavour directory +// to "intelligent-assistant" and gates on IsFlavourEnabled(spec, "intelligent-assistant"), but some PR +// comments still say "lightspeed". Verify the exact spec.flavours[].name value once the PR merges. [source,yaml,subs="+attributes,+quotes"] ---- apiVersion: rhdh.redhat.com/v1alpha5 diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc index 6ef61b42e25..4f5a6a5c289 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc @@ -12,16 +12,17 @@ Isolate image references, copy them manually to your internal registry, and upda .Procedure -// TODO (RHIDP-16107): Confirm the exact Helm values key for the OKP sidecar image -// (replacing the old global.lightspeed.initContainer.image). Update below. +// OKP is deployed as a standalone service (image: registry.redhat.io/offline-knowledge-portal/rhokp-rhel9), +// not a sidecar or init container. Helm values key confirmed against rhdh-chart PR 500 (pending merge). +// On non-OpenShift platforms, OKP is opt-in: the chart deploys it only when you set an Ingress host. . Extract the image references from the default values file of the chart: + [source,terminal,subs=+attributes] ---- $ helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_OKP_IMAGE=$(yq '. | .registry + "/" + .repository' values.default.yaml) -LS_OKP_DIGEST=$(yq '..tag' values.default.yaml) +LS_OKP_IMAGE=$(yq '.global.lightspeed.okp.image | .registry + "/" + .repository' values.default.yaml) +LS_OKP_DIGEST=$(yq '.global.lightspeed.okp.image.tag' values.default.yaml) LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) ---- @@ -36,15 +37,15 @@ skopeo copy --all docker://${LS_CORE_IMAGE}:${LS_CORE_DIGEST} docker:// with the confirmed Helm values path for the OKP sidecar image. [source,yaml] ---- global: lightspeed: - : - registry: "" - repository: - tag: "${LS_OKP_DIGEST}" + okp: + image: + registry: "" + repository: + tag: "${LS_OKP_DIGEST}" sidecar: image: registry: "" diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc index 5015360be0f..3ad1e2441aa 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc @@ -12,16 +12,16 @@ Mirror the required {ia-name} container images to your local registry by using t .Procedure -// TODO (RHIDP-16107): Confirm the exact Helm values key for the OKP sidecar image -// (replacing the old global.lightspeed.initContainer.image). Update below. -. Identify the OKP and {lcs-short} sidecar container images from the default values file of the chart: +// OKP is deployed as a standalone service (image: registry.redhat.io/offline-knowledge-portal/rhokp-rhel9), +// not a sidecar or init container. Helm values key confirmed against rhdh-chart PR 500 (pending merge). +. Identify the OKP and {lcs-short} container images from the default values file of the chart: + [source,terminal,subs=attributes] ---- helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_OKP_IMAGE=$(yq '. | .registry + "/" + .repository' values.default.yaml) -LS_OKP_DIGEST=$(yq '..tag' values.default.yaml) +LS_OKP_IMAGE=$(yq '.global.lightspeed.okp.image | .registry + "/" + .repository' values.default.yaml) +LS_OKP_DIGEST=$(yq '.global.lightspeed.okp.image.tag' values.default.yaml) LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) ---- diff --git a/modules/shared/proc-mirror-images-for-operator-deployments.adoc b/modules/shared/proc-mirror-images-for-operator-deployments.adoc index e7f8c10a594..fed996a7774 100644 --- a/modules/shared/proc-mirror-images-for-operator-deployments.adoc +++ b/modules/shared/proc-mirror-images-for-operator-deployments.adoc @@ -20,17 +20,18 @@ The {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-envir ---- BUNDLE_IMAGE="registry.redhat.io/rhdh/rhdh-operator-bundle:{product-version}" CONTAINER_ID=$(podman create "${BUNDLE_IMAGE}") -podman cp $CONTAINER_ID:/manifests/rhdh-flavour-lightspeed-config_v1_configmap.yaml ./lightspeed-config.yaml +podman cp $CONTAINER_ID:/manifests/rhdh-flavour-intelligent-assistant-config_v1_configmap.yaml ./lightspeed-config.yaml podman rm $CONTAINER_ID ---- -// TODO (RHIDP-16107): Confirm the exact OKP sidecar container name in the operator bundle -// (replacing the old "init-rag-data" init container). Update below. -. Identify the OKP and {lcs-short} sidecar container image tags from the extracted configuration file: +// OKP is deployed as a standalone service, not a sidecar or init container. On non-OpenShift platforms, +// the Operator does not deploy OKP. Config map name, data keys, and OKP container name confirmed against +// rhdh-operator PR 3370 (pending merge): the OKP image lives in the separate "okp-deployment.yaml" key. +. Identify the OKP and {lcs-short} container image tags from the extracted configuration file: + [source,terminal] ---- -LS_OKP_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "") | .image') +LS_OKP_IMAGE=$(yq '.data["okp-deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "okp") | .image') LS_CORE_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "lightspeed-core") | .image') ---- From fb388fd9f8d6b732594a891b9f44168a7dbe3abb Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Tue, 15 Sep 2026 11:06:45 +0530 Subject: [PATCH 03/11] Minor change --- ...ted-generation-rag-embeddings-for-grounded-ai-responses.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index e52a0a1d4d8..d7b7aed3b8d 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -8,7 +8,7 @@ Use retrieval-augmented generation (RAG) embeddings to ground artificial intelli {product-very-short} {ls-short} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ls-brand-name} installation. -The {lcs-name} ({lcs-short}) queries OKP during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. +The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. OKP deployment depends on your platform: From 9ab05d194a5324c2bf71b6270ee951045dfcf425 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 1 Oct 2026 11:27:51 +0530 Subject: [PATCH 04/11] Minor changes based on merged PRs --- ...figured-settings-for-common-use-cases.adoc | 3 - ...-embeddings-for-grounded-ai-responses.adoc | 8 +- .../proc-configure-safety-guards-in-rhdh.adoc | 121 ++++++++++++++++++ .../proc-disable-by-using-the-operator.adoc | 3 - ...es-for-helm-deployments-on-kubernetes.adoc | 12 +- ...or-images-for-helm-deployments-on-ocp.adoc | 2 - ...irror-images-for-operator-deployments.adoc | 17 ++- 7 files changed, 143 insertions(+), 23 deletions(-) diff --git a/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc b/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc index 8419e80b322..c5979f1f628 100644 --- a/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc +++ b/modules/configure_configuring-rhdh/ref-pre-configured-settings-for-common-use-cases.adoc @@ -102,9 +102,6 @@ spec: - lightspeed-core ---- -// TODO (RHIDP-16107): Confirm the CR flavour name. rhdh-operator PR 3370 renamed the flavour directory -// to "intelligent-assistant" and gates on IsFlavourEnabled(spec, "intelligent-assistant"), but some PR -// comments still say "lightspeed". Verify the exact spec.flavours[].name value once the PR merges. [NOTE] ==== {ia-name} is enabled by default. diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index d7b7aed3b8d..f999fea501b 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -10,10 +10,12 @@ Use retrieval-augmented generation (RAG) embeddings to ground artificial intelli The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. -OKP deployment depends on your platform: +OKP is optional and disabled by default on all platforms. The OKP image is large, so enabling it can significantly increase the time of the first installation while the image is downloaded. How you enable OKP depends on your deployment method: -* On {ocp-short}, both the {product} Operator and Helm chart deploy and configure OKP automatically. No additional configuration is required. -* On other Kubernetes platforms, only the Helm chart can deploy OKP, and you must opt in by setting an Ingress host. The Operator does not deploy OKP on non-{ocp-short} platforms; in that case, the assistant runs without a knowledge base, and general chat still works but product-specific responses might be less accurate. +* With the {product} Operator, enable the `intelligent-assistant-okp` add-on flavour alongside the base `intelligent-assistant` flavour. On {ocp-short}, the Operator automatically creates the OKP `Deployment`, `Service`, and `Route`, and sets the OKP service URL for the {lcs-short} sidecar. On other Kubernetes platforms, the Operator deploys OKP, but you must provide the registry credentials, Ingress, TLS, and OKP service URL yourself, because the Operator does not manage Ingress. +* With the Helm chart, set `global.lightspeed.okp.enabled` to `true`. On {ocp-short}, no further configuration is required. On other Kubernetes platforms, you must also set an Ingress host. + +When OKP is not enabled, the assistant runs without a knowledge base: general chat still works, but product-specific responses might be less accurate. [NOTE] ==== diff --git a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc index 28d9ccf7ade..6a9cb9ed83e 100644 --- a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc +++ b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc @@ -17,6 +17,127 @@ The shipped `lightspeed-stack.yaml` file includes the shield in a disabled state .Procedure +. Add the following YAML file as a config map to your namespace: + +[source,yaml] +---- +version: 2 +image_name: redhat-ai-dev-llama-stack-no-guard +apis: + - agents + - inference + - safety + - tool_runtime + - vector_io + - files +container_image: +external_providers_dir: +providers: + agents: + - config: + persistence: + agent_state: + namespace: agents + backend: kv_default + responses: + table_name: responses + backend: sql_default + provider_id: meta-reference + provider_type: inline::meta-reference + inference: + - provider_id: ${env.ENABLE_VLLM:+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: ${env.ENABLE_OPENAI:+openai} + provider_type: remote::openai + config: + api_key: ${env.OPENAI_API_KEY:=} + - provider_id: ${env.ENABLE_VERTEX_AI:+vertexai} + provider_type: remote::vertexai + config: + project: ${env.VERTEX_AI_PROJECT:=} + location: ${env.VERTEX_AI_LOCATION:=us-central1} + - provider_id: sentence-transformers + provider_type: inline::sentence-transformers + config: {} + 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: + - provider_id: faiss + provider_type: inline::faiss + config: + persistence: + namespace: vector_io::faiss + backend: faiss_kv + files: + - provider_id: localfs + provider_type: inline::localfs + config: + storage_dir: /tmp/llama-stack-files + metadata_store: + table_name: files_metadata + backend: sql_files +storage: + backends: + kv_default: + type: kv_sqlite + db_path: /tmp/kvstore.db + sql_default: + type: sql_sqlite + db_path: /tmp/sql_store.db + sql_files: + type: sql_sqlite + db_path: /rag-content/vector_db/rhdh_product_docs/1.9/files_metadata.db + faiss_kv: + type: kv_sqlite + db_path: /rag-content/vector_db/rhdh_product_docs/1.9/faiss_store.db + stores: + metadata: + namespace: registry + backend: faiss_kv + inference: + table_name: inference_store + backend: sql_default + max_write_queue_size: 10000 + num_writers: 4 + conversations: + table_name: openai_conversations + backend: sql_default +registered_resources: + models: + - model_id: sentence-transformers/all-mpnet-base-v2 + metadata: + embedding_dimension: 768 + model_type: embedding + provider_id: sentence-transformers + provider_model_id: /rag-content/embeddings_model + tool_groups: + - provider_id: rag-runtime + toolgroup_id: builtin::rag + vector_dbs: + - vector_db_id: rhdh-product-docs-1_8 + embedding_model: sentence-transformers/all-mpnet-base-v2 + embedding_dimension: 768 + provider_id: faiss +server: + auth: + host: + port: 8321 + quota: + tls_cafile: + tls_certfile: + tls_keyfile: +---- + . To enable query validation, add the following keys to the Secret that {lcs-short} reads: + [source,yaml] diff --git a/modules/shared/proc-disable-by-using-the-operator.adoc b/modules/shared/proc-disable-by-using-the-operator.adoc index 18ac6c6cd75..125938d717c 100644 --- a/modules/shared/proc-disable-by-using-the-operator.adoc +++ b/modules/shared/proc-disable-by-using-the-operator.adoc @@ -15,9 +15,6 @@ Disable the {ia-name} chat interface and stop associated container processes to . Open your {backstage} custom resource (CR) YAML file. . In the `spec` section, set the `enabled` flag to `false` for the `intelligent-assistant` flavour. This disables the chat interface and prevents the Operator from injecting unconfigured sidecar containers: + -// TODO (RHIDP-16107): Confirm the CR flavour name. rhdh-operator PR 3370 renamed the flavour directory -// to "intelligent-assistant" and gates on IsFlavourEnabled(spec, "intelligent-assistant"), but some PR -// comments still say "lightspeed". Verify the exact spec.flavours[].name value once the PR merges. [source,yaml,subs="+attributes,+quotes"] ---- apiVersion: rhdh.redhat.com/v1alpha5 diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc index 4f5a6a5c289..0fe08996c46 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc @@ -12,9 +12,6 @@ Isolate image references, copy them manually to your internal registry, and upda .Procedure -// OKP is deployed as a standalone service (image: registry.redhat.io/offline-knowledge-portal/rhokp-rhel9), -// not a sidecar or init container. Helm values key confirmed against rhdh-chart PR 500 (pending merge). -// On non-OpenShift platforms, OKP is opt-in: the chart deploys it only when you set an Ingress host. . Extract the image references from the default values file of the chart: + [source,terminal,subs=+attributes] @@ -52,11 +49,16 @@ global: repository: tag: "${LS_CORE_DIGEST}" plugins: - - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-lightspeed@" + - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant@" disabled: false - - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-lightspeed-backend@" + - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant-backend@" disabled: false ---- ++ +[NOTE] +==== +OKP is disabled by default. On non-{platform-generic} platforms, enable it by setting `global.lightspeed.okp.enabled` to `true` and providing an Ingress host. +==== .Additional resources * {installing-and-viewing-plugins-book-link}#mirror-rhdh-dynamic-plugins-in-disconnected-environments_install-dynamic-plugins-in-rhdh[Mirror {product} dynamic plugins in disconnected environments] diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc index 3ad1e2441aa..f1a51c78258 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc @@ -12,8 +12,6 @@ Mirror the required {ia-name} container images to your local registry by using t .Procedure -// OKP is deployed as a standalone service (image: registry.redhat.io/offline-knowledge-portal/rhokp-rhel9), -// not a sidecar or init container. Helm values key confirmed against rhdh-chart PR 500 (pending merge). . Identify the OKP and {lcs-short} container images from the default values file of the chart: + [source,terminal,subs=attributes] diff --git a/modules/shared/proc-mirror-images-for-operator-deployments.adoc b/modules/shared/proc-mirror-images-for-operator-deployments.adoc index fed996a7774..da642d60876 100644 --- a/modules/shared/proc-mirror-images-for-operator-deployments.adoc +++ b/modules/shared/proc-mirror-images-for-operator-deployments.adoc @@ -14,33 +14,36 @@ The {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-envir .Procedure -. Extract the deployment configurations from the official Operator bundle: +. Extract the deployment configurations from the official Operator bundle. The {lcs-short} sidecar image is defined in the `intelligent-assistant` flavour config map, and the OKP image is defined in the plugin dependencies config map: + [source,terminal,subs=+attributes] ---- BUNDLE_IMAGE="registry.redhat.io/rhdh/rhdh-operator-bundle:{product-version}" CONTAINER_ID=$(podman create "${BUNDLE_IMAGE}") podman cp $CONTAINER_ID:/manifests/rhdh-flavour-intelligent-assistant-config_v1_configmap.yaml ./lightspeed-config.yaml +podman cp $CONTAINER_ID:/manifests/rhdh-plugin-deps_v1_configmap.yaml ./plugin-deps-config.yaml podman rm $CONTAINER_ID ---- -// OKP is deployed as a standalone service, not a sidecar or init container. On non-OpenShift platforms, -// the Operator does not deploy OKP. Config map name, data keys, and OKP container name confirmed against -// rhdh-operator PR 3370 (pending merge): the OKP image lives in the separate "okp-deployment.yaml" key. -. Identify the OKP and {lcs-short} container image tags from the extracted configuration file: +. Identify the {lcs-short} and OKP container image tags from the extracted configuration files: + [source,terminal] ---- -LS_OKP_IMAGE=$(yq '.data["okp-deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "okp") | .image') LS_CORE_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "lightspeed-core") | .image') +LS_OKP_IMAGE=$(yq '.data["okp.yaml"]' plugin-deps-config.yaml | yq 'select(.kind == "Deployment") | .spec.template.spec.containers[] | select(.name == "okp") | .image' | head -1) ---- ++ +[NOTE] +==== +OKP is an optional add-on that is disabled by default. Mirror the OKP image only if you intend to enable the `intelligent-assistant-okp` flavour. +==== . Mirror the images to your internal registry by running the `skopeo copy` command: + [source,terminal] ---- -skopeo copy docker://${LS_OKP_IMAGE} docker:///@ skopeo copy docker://${LS_CORE_IMAGE} docker:///@ +skopeo copy docker://${LS_OKP_IMAGE} docker:///@ ---- .Additional resources From dd9586766f3f14a66bc42dc53659136ef0bbe1d9 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Mon, 5 Oct 2026 17:41:41 +0530 Subject: [PATCH 05/11] Minor update --- modules/shared/proc-configure-safety-guards-in-rhdh.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc index 6a9cb9ed83e..817461d563c 100644 --- a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc +++ b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc @@ -18,7 +18,7 @@ The shipped `lightspeed-stack.yaml` file includes the shield in a disabled state .Procedure . Add the following YAML file as a config map to your namespace: - ++ [source,yaml] ---- version: 2 From 32bfc1f0d095fb7478002a82654d80d6ffee651c Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 8 Oct 2026 12:00:48 +0530 Subject: [PATCH 06/11] Fixing merge conflicts --- ...ct-specific-challenges-with-notebooks.adoc | 38 ++++++++++++ ...-embeddings-for-grounded-ai-responses.adoc | 6 +- ...rate-limits-for-intelligent-assistant.adoc | 2 +- ...es-for-helm-deployments-on-kubernetes.adoc | 59 ++++++++++-------- ...or-images-for-helm-deployments-on-ocp.adoc | 17 ++++-- .../master.adoc | 60 +++++++++++++++++++ .../master.adoc | 44 ++++++++++++++ 7 files changed, 192 insertions(+), 34 deletions(-) create mode 100644 assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc create mode 100644 titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc create mode 100644 titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc diff --git a/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc b/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc new file mode 100644 index 00000000000..21a0eef8b71 --- /dev/null +++ b/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc @@ -0,0 +1,38 @@ +:_mod-docs-content-type: ASSEMBLY +ifdef::context[:parent-context: {context}] + +[id="solve-project-specific-challenges-with-notebooks_{context}"] += Solve project-specific challenges with {ia-name} Notebooks +:context: solve-project-specific-challenges-with-intelligent-assistant-notebooks + +[role="_abstract"] +Use {ia-name} Notebooks to research, troubleshoot, and analyze projects by using a large language model (LLM) grounded in your own documentation. + +Notebooks use Retrieval-Augmented Generation (RAG) so that responses are based strictly on the files you upload. Notebooks are available in overlay, docked, and fullscreen display modes. In overlay and docked modes, you can toggle the resource panel to work with notebooks on smaller screens without switching to fullscreen. + +Use Notebooks to achieve the following goals: + +`Query your documentation`:: Upload project files to ask questions, summarize content, or brainstorm ideas based on those specific documents. +`Troubleshoot with project-specific context`:: Upload project logs, architecture diagrams, or onboarding files to receive technical answers tailored to your specific environment. +`Securely analyze private data`:: Conduct research in isolated sessions. Your uploaded data and chat history remain private and are inaccessible to other users. +`Run multiple Notebooks`:: Uploaded documents and chat history remain available and are re-opened through the *Notebook* dashboard. +`Verify AI responses with citations`:: Use the *Sources* chips to view the exact document excerpts used to generate an answer. +`Organize research`:: Use metadata and tagging to categorize different research topics. + +The following constraints apply during the {developer-preview}: + +`Data boundaries`:: The AI can only access data within the active Notebook session. +`Private access`:: You cannot share notebooks or documents with other team members. +`Manual uploads`:: You must upload files directly. The tool does not support URL ingestion or web scraping. +`Ephemeral defaults`:: Without a configured Persistent Volume (PV), all Notebook data and uploaded files are lost upon service restart. + ++ +image::integrate_shared/intelligent-assistant-notebook-fullscreen-page.png["{ia-name} Notebook fullscreen page"] + +include::{docdir}/artifacts/snip-developer-preview.adoc[] + +include::../modules/shared/proc-enable-secure-ai-research-with-intelligent-assistant-notebooks.adoc[leveloffset=+1] +include::../modules/shared/proc-enable-data-persistence-for-intelligent-assistant-notebooks.adoc[leveloffset=+1] + +ifdef::parent-context[:context: {parent-context}] +ifndef::parent-context[:!context:] diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index f999fea501b..68c171222aa 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -6,14 +6,14 @@ [role="_abstract"] Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. -{product-very-short} {ls-short} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ls-brand-name} installation. +{product-very-short} {ia-name} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ia-brand-name} installation. -The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve version-matched {product-very-short} documentation and attaches precise documentation references to chat responses. +The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve relevant {product-very-short} documentation and attaches documentation references to chat responses. OKP is optional and disabled by default on all platforms. The OKP image is large, so enabling it can significantly increase the time of the first installation while the image is downloaded. How you enable OKP depends on your deployment method: * With the {product} Operator, enable the `intelligent-assistant-okp` add-on flavour alongside the base `intelligent-assistant` flavour. On {ocp-short}, the Operator automatically creates the OKP `Deployment`, `Service`, and `Route`, and sets the OKP service URL for the {lcs-short} sidecar. On other Kubernetes platforms, the Operator deploys OKP, but you must provide the registry credentials, Ingress, TLS, and OKP service URL yourself, because the Operator does not manage Ingress. -* With the Helm chart, set `global.lightspeed.okp.enabled` to `true`. On {ocp-short}, no further configuration is required. On other Kubernetes platforms, you must also set an Ingress host. +* With the Helm chart, set `intelligentAssistant.okp.enabled` to `true`. On {ocp-short}, the chart creates the OKP `Route` automatically. On other Kubernetes platforms, you must also enable and configure `intelligentAssistant.okp.ingress`. When OKP is not enabled, the assistant runs without a knowledge base: general chat still works, but product-specific responses might be less accurate. diff --git a/modules/shared/proc-configure-rate-limits-for-intelligent-assistant.adoc b/modules/shared/proc-configure-rate-limits-for-intelligent-assistant.adoc index 7273b54783d..8e58ac76859 100644 --- a/modules/shared/proc-configure-rate-limits-for-intelligent-assistant.adoc +++ b/modules/shared/proc-configure-rate-limits-for-intelligent-assistant.adoc @@ -40,7 +40,7 @@ The following example shows a tightened configuration for a small deployment wit + [source,yaml] ---- -lightspeed: +intelligent-assistant: rateLimit: expensive: max: 10 diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc index 0fe08996c46..8230a528d9f 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-kubernetes.adoc @@ -18,46 +18,57 @@ Isolate image references, copy them manually to your internal registry, and upda ---- $ helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_OKP_IMAGE=$(yq '.global.lightspeed.okp.image | .registry + "/" + .repository' values.default.yaml) -LS_OKP_DIGEST=$(yq '.global.lightspeed.okp.image.tag' values.default.yaml) -LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) -LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) +LS_OKP_REGISTRY=$(yq -r '.intelligentAssistant.okp.image.registry' values.default.yaml) +LS_OKP_REPOSITORY=$(yq -r '.intelligentAssistant.okp.image.repository' values.default.yaml) +LS_OKP_DIGEST=$(yq -r '.intelligentAssistant.okp.image.digest' values.default.yaml) +LS_OKP_IMAGE="${LS_OKP_REGISTRY}/${LS_OKP_REPOSITORY}" + +LS_CORE_REGISTRY=$(yq -r '.intelligentAssistant.core.image.registry' values.default.yaml) +LS_CORE_REPOSITORY=$(yq -r '.intelligentAssistant.core.image.repository' values.default.yaml) +LS_CORE_DIGEST=$(yq -r '.intelligentAssistant.core.image.digest' values.default.yaml) +LS_CORE_IMAGE="${LS_CORE_REGISTRY}/${LS_CORE_REPOSITORY}" ---- . Mirror the images to your internal mirror registry: + [source,terminal] ---- -skopeo copy --all docker://${LS_OKP_IMAGE}:${LS_OKP_DIGEST} docker:///:${LS_OKP_DIGEST} -skopeo copy --all docker://${LS_CORE_IMAGE}:${LS_CORE_DIGEST} docker:///:${LS_CORE_DIGEST} +skopeo copy --all docker://${LS_OKP_IMAGE}@${LS_OKP_DIGEST} docker:///@${LS_OKP_DIGEST} +skopeo copy --all docker://${LS_CORE_IMAGE}@${LS_CORE_DIGEST} docker:///@${LS_CORE_DIGEST} ---- . Update your custom Helm values file with the mirrored registry locations and plugin references. Mirror the dynamic plugins to the local registry before you add their package paths to the file. For mirroring instructions, see {installing-and-viewing-plugins-book-link}#mirror-rhdh-dynamic-plugins-in-disconnected-environments_install-dynamic-plugins-in-rhdh[Mirroring {product} dynamic plugins in disconnected environments]: + [source,yaml] ---- -global: - lightspeed: - okp: - image: - registry: "" - repository: - tag: "${LS_OKP_DIGEST}" - sidecar: - image: - registry: "" - repository: - tag: "${LS_CORE_DIGEST}" - plugins: - - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant@" - disabled: false - - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant-backend@" - disabled: false +intelligentAssistant: + enabled: true + core: + image: + registry: + repository: + tag: "" + digest: + okp: + enabled: true + image: + registry: + repository: + tag: "" + digest: + ingress: + enabled: true + host: + plugins: + - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant@" + enabled: true + - package: "oci:///rhdh/red-hat-developer-hub-backstage-plugin-intelligent-assistant-backend@" + enabled: true ---- + [NOTE] ==== -OKP is disabled by default. On non-{platform-generic} platforms, enable it by setting `global.lightspeed.okp.enabled` to `true` and providing an Ingress host. +OKP is disabled by default. On non-{platform-generic} platforms, enable it by setting `intelligentAssistant.okp.enabled` to `true` and configuring `intelligentAssistant.okp.ingress` with an Ingress host. ==== .Additional resources diff --git a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc index f1a51c78258..0aacfcb1cf9 100644 --- a/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc +++ b/modules/shared/proc-mirror-images-for-helm-deployments-on-ocp.adoc @@ -18,10 +18,15 @@ Mirror the required {ia-name} container images to your local registry by using t ---- helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version {product-chart-version} > values.default.yaml -LS_OKP_IMAGE=$(yq '.global.lightspeed.okp.image | .registry + "/" + .repository' values.default.yaml) -LS_OKP_DIGEST=$(yq '.global.lightspeed.okp.image.tag' values.default.yaml) -LS_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml) -LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml) +LS_OKP_REGISTRY=$(yq -r '.intelligentAssistant.okp.image.registry' values.default.yaml) +LS_OKP_REPOSITORY=$(yq -r '.intelligentAssistant.okp.image.repository' values.default.yaml) +LS_OKP_DIGEST=$(yq -r '.intelligentAssistant.okp.image.digest' values.default.yaml) +LS_OKP_IMAGE="${LS_OKP_REGISTRY}/${LS_OKP_REPOSITORY}" + +LS_CORE_REGISTRY=$(yq -r '.intelligentAssistant.core.image.registry' values.default.yaml) +LS_CORE_REPOSITORY=$(yq -r '.intelligentAssistant.core.image.repository' values.default.yaml) +LS_CORE_DIGEST=$(yq -r '.intelligentAssistant.core.image.digest' values.default.yaml) +LS_CORE_IMAGE="${LS_CORE_REGISTRY}/${LS_CORE_REPOSITORY}" ---- . Add these images to the `additionalImages` section of your `ImageSetConfiguration` file: @@ -32,8 +37,8 @@ apiVersion: mirror.openshift.io/v2alpha1 kind: ImageSetConfiguration mirror: additionalImages: - - name: ${LS_OKP_IMAGE}:${LS_OKP_DIGEST} - - name: ${LS_CORE_IMAGE}:${LS_CORE_DIGEST} + - name: ${LS_OKP_IMAGE}@${LS_OKP_DIGEST} + - name: ${LS_CORE_IMAGE}@${LS_CORE_DIGEST} helm: repositories: - name: openshift-charts diff --git a/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc b/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc new file mode 100644 index 00000000000..bad01f8e2a7 --- /dev/null +++ b/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc @@ -0,0 +1,60 @@ +:_mod-docs-content-type: ASSEMBLY +:_mod-docs-category: Integrate + +include::artifacts/attributes.adoc[] + +<<<<<<< HEAD +:context: interacting-with-the-developer-hub-intelligent-assistant +:lightspeed-configure-sections: +======= +<<<<<<<< HEAD:titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc +:context: interacting-with-the-intelligent-assistant-for-rhdh +======== +:context: interacting-with-the-developer-hub-intelligent-assistant +>>>>>>>> 31735ed09e (Changes):titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc +>>>>>>> 31735ed09e (Changes) +:title: {intelligent-assistant-book-title} +:subtitle: Leverage Artificial Intelligence (AI)-driven expertise of the {ia-brand-name} to help you use {product} ({product-very-short}) +:abstract: {ia-brand-name} (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for {product} ({product-very-short}). You can interact with the {ia-short} to explore {product-very-short} capabilities in detail. + +[id="{context}"] += {title} + +[role="_abstract"] +{abstract} + +include::modules/shared/con-chat-assistance-with.adoc[leveloffset=+1] + +include::modules/shared/con-architecture-for-your-ai-backend-deployment.adoc[leveloffset=+1] + +include::modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc[leveloffset=+2] + +include::modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-migrate-intelligent-assistant-to-remove-llama-stack.adoc[leveloffset=+1] + +include::modules/shared/ref-ai-feature-permissions.adoc[leveloffset=+1] + +<<<<<<< HEAD +include::assemblies/shared/assembly-extend-lightspeed-with-bring-your-own-knowledge.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-provide-organization-context-with-agent-skills.adoc[leveloffset=+1] + +======= +include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] + +>>>>>>> 31735ed09e (Changes) +include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-ai-model-evaluation-data-to-select-the-right-ai-model.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-appendix-llm-requirements.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-appendix-manage-user-data-security.adoc[leveloffset=+1] + diff --git a/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc b/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc new file mode 100644 index 00000000000..756f43abbb6 --- /dev/null +++ b/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc @@ -0,0 +1,44 @@ +:_mod-docs-content-type: ASSEMBLY +:_mod-docs-category: Integrate + +include::artifacts/attributes.adoc[] + +<<<<<<<< HEAD:titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc +:context: interacting-with-the-intelligent-assistant-for-rhdh +======== +:context: interacting-with-the-developer-hub-intelligent-assistant +>>>>>>>> 31735ed09e (Changes):titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc +:title: {intelligent-assistant-book-title} +:subtitle: Leverage Artificial Intelligence (AI)-driven expertise of the {ia-brand-name} to help you use {product} ({product-very-short}) +:abstract: {ia-brand-name} (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for {product} ({product-very-short}). You can interact with the {ia-short} to explore {product-very-short} capabilities in detail. + +[id="{context}"] += {title} + +[role="_abstract"] +{abstract} + +include::modules/shared/con-chat-assistance-with.adoc[leveloffset=+1] + +include::modules/shared/con-architecture-for-your-ai-backend-deployment.adoc[leveloffset=+1] + +include::modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc[leveloffset=+2] + +include::modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc[leveloffset=+1] + +include::modules/shared/ref-ai-feature-permissions.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-ai-model-evaluation-data-to-select-the-right-ai-model.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-appendix-llm-requirements.adoc[leveloffset=+1] + +include::assemblies/shared/assembly-appendix-manage-user-data-security.adoc[leveloffset=+1] + From d309e56cf7a331f2f5a757b294c955f7e63f9c05 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 8 Oct 2026 12:51:37 +0530 Subject: [PATCH 07/11] Maysun's comment --- ...ct-specific-challenges-with-notebooks.adoc | 2 +- ...ent-assistant-notebook-fullscreen-page.png | Bin ...-embeddings-for-grounded-ai-responses.adoc | 10 +++- ...-skills-for-the-intelligent-assistant.adoc | 4 +- ...roc-configure-by-using-the-helm-chart.adoc | 4 +- ...c-create-isolated-research-workspaces.adoc | 2 +- ...irror-images-for-operator-deployments.adoc | 2 +- ...unt-agent-skills-by-using-a-configmap.adoc | 4 +- .../master.adoc | 13 ------ .../master.adoc | 44 ------------------ 10 files changed, 17 insertions(+), 68 deletions(-) rename images/{integrate_shared => integrate_interacting-with-the-developer-hub-intelligent-assistant}/intelligent-assistant-notebook-fullscreen-page.png (100%) delete mode 100644 titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc diff --git a/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc b/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc index 21a0eef8b71..5cdfc23c3c8 100644 --- a/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc +++ b/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc @@ -27,7 +27,7 @@ The following constraints apply during the {developer-preview}: `Ephemeral defaults`:: Without a configured Persistent Volume (PV), all Notebook data and uploaded files are lost upon service restart. + -image::integrate_shared/intelligent-assistant-notebook-fullscreen-page.png["{ia-name} Notebook fullscreen page"] +image::integrate_interacting-with-the-developer-hub-intelligent-assistant/intelligent-assistant-notebook-fullscreen-page.png["{ia-name} Notebook fullscreen page"] include::{docdir}/artifacts/snip-developer-preview.adoc[] diff --git a/images/integrate_shared/intelligent-assistant-notebook-fullscreen-page.png b/images/integrate_interacting-with-the-developer-hub-intelligent-assistant/intelligent-assistant-notebook-fullscreen-page.png similarity index 100% rename from images/integrate_shared/intelligent-assistant-notebook-fullscreen-page.png rename to images/integrate_interacting-with-the-developer-hub-intelligent-assistant/intelligent-assistant-notebook-fullscreen-page.png diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index 68c171222aa..5261d098888 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -1,15 +1,21 @@ :_mod-docs-content-type: CONCEPT [id="retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses_{context}"] -= Retrieval augmented generation (RAG) embeddings for grounded AI responses += Retrieval-augmented generation for grounded AI responses [role="_abstract"] -Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. +Use retrieval-augmented generation (RAG) to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. {product-very-short} {ia-name} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ia-brand-name} installation. The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve relevant {product-very-short} documentation and attaches documentation references to chat responses. +OKP supports the following search modes: + +`hybrid`:: The default mode, which combines semantic and keyword search. This mode requires an embedding model. +`semantic`:: Uses vector-based semantic search. This mode requires an embedding model. +`keyword`:: Uses BM25 text search. This mode does not require downloading an embedding model, which makes it suitable for disconnected deployments. + OKP is optional and disabled by default on all platforms. The OKP image is large, so enabling it can significantly increase the time of the first installation while the image is downloaded. How you enable OKP depends on your deployment method: * With the {product} Operator, enable the `intelligent-assistant-okp` add-on flavour alongside the base `intelligent-assistant` flavour. On {ocp-short}, the Operator automatically creates the OKP `Deployment`, `Service`, and `Route`, and sets the OKP service URL for the {lcs-short} sidecar. On other Kubernetes platforms, the Operator deploys OKP, but you must provide the registry credentials, Ingress, TLS, and OKP service URL yourself, because the Operator does not manage Ingress. diff --git a/modules/shared/proc-configure-agent-skills-for-the-intelligent-assistant.adoc b/modules/shared/proc-configure-agent-skills-for-the-intelligent-assistant.adoc index 159a5f904d2..068cb6b4429 100644 --- a/modules/shared/proc-configure-agent-skills-for-the-intelligent-assistant.adoc +++ b/modules/shared/proc-configure-agent-skills-for-the-intelligent-assistant.adoc @@ -33,10 +33,10 @@ Otherwise, configure the volume, init container, and mount before you deploy or .. For an Operator installation, add a strategic merge patch to the {backstage} custom resource (CR): + -[source,yaml,subs="+quotes"] +[source,yaml,subs="+quotes,+attributes"] ---- apiVersion: rhdh.redhat.com/v1alpha5 -kind: Backstage +kind: {product-custom-resource-type} metadata: name: __ spec: diff --git a/modules/shared/proc-configure-by-using-the-helm-chart.adoc b/modules/shared/proc-configure-by-using-the-helm-chart.adoc index 2855c322a27..c54691a0ba8 100644 --- a/modules/shared/proc-configure-by-using-the-helm-chart.adoc +++ b/modules/shared/proc-configure-by-using-the-helm-chart.adoc @@ -40,7 +40,7 @@ intelligentAssistant: + [IMPORTANT] ==== -Provide only the `name` and `key` of your existing ConfigMap. The chart manages the mount path and file configuration. +Reference the config map by its `name` and set `key` to `lightspeed-stack.yaml`. Keep the file configuration unchanged so that the Helm deployment mounts it correctly. ==== + [source,yaml] @@ -49,7 +49,7 @@ intelligentAssistant: config: stack: existingConfigMap: - name: my-custom-stack + name: "my-custom-stack" key: lightspeed-stack.yaml ---- diff --git a/modules/shared/proc-create-isolated-research-workspaces.adoc b/modules/shared/proc-create-isolated-research-workspaces.adoc index 445413170f5..66b9990e563 100644 --- a/modules/shared/proc-create-isolated-research-workspaces.adoc +++ b/modules/shared/proc-create-isolated-research-workspaces.adoc @@ -5,7 +5,7 @@ [role="_abstract"] Organize your work into individual notebook sessions to keep research topics separate and private. -image::integrate_shared/intelligent-assistant-notebook-fullscreen-page.png["Notebook upload option"] +image::integrate_interacting-with-the-developer-hub-intelligent-assistant/intelligent-assistant-notebook-fullscreen-page.png["Notebook upload option"] .Procedure . In the {product-very-short} interface, click the *Open intelligent assistant* floating action button (FAB) at the lower right of the screen to open the chat overlay. diff --git a/modules/shared/proc-mirror-images-for-operator-deployments.adoc b/modules/shared/proc-mirror-images-for-operator-deployments.adoc index da642d60876..5f7511a5dd7 100644 --- a/modules/shared/proc-mirror-images-for-operator-deployments.adoc +++ b/modules/shared/proc-mirror-images-for-operator-deployments.adoc @@ -5,7 +5,7 @@ [role="_abstract"] Mirror the required {ia-name} container images and plugins to your local registry to provide chat assistance in an air-gapped environment. -The {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-environment-with-the-operator_install-rhdh-in-an-air-gapped-environment-with-the-operator[`prepare-restricted-environment.sh`] script does not automatically parse `{ia-name}` images from the bundle manifest, so mirror these images manually before running the script. +The {lcs-short} and OKP images are embedded in the {ia-name} flavour and plugin-dependency `ConfigMap` resources rather than listed in the Operator cluster service version (CSV) `relatedImages` field. As a result, the {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-environment-with-the-operator_install-rhdh-in-an-air-gapped-environment-with-the-operator[`prepare-restricted-environment.sh`] script does not automatically parse `{ia-name}` images from the bundle manifest. You must explicitly mirror these images and configure the cluster to redirect the original image references to your mirror registry before running the script. .Prerequisites * You have a target mirror registry accessible to your disconnected cluster. diff --git a/modules/shared/proc-mount-agent-skills-by-using-a-configmap.adoc b/modules/shared/proc-mount-agent-skills-by-using-a-configmap.adoc index 752a5fb1361..a4ad0a497d5 100644 --- a/modules/shared/proc-mount-agent-skills-by-using-a-configmap.adoc +++ b/modules/shared/proc-mount-agent-skills-by-using-a-configmap.adoc @@ -30,10 +30,10 @@ Specify each file individually. When you pass a directory to `--from-file`, `oc` .. For an Operator installation, use the same `configMap` volume definition in a strategic merge patch to the {backstage} custom resource (CR): + -[source,yaml,subs="+quotes"] +[source,yaml,subs="+quotes,+attributes"] ---- apiVersion: rhdh.redhat.com/v1alpha5 -kind: Backstage +kind: {product-custom-resource-type} metadata: name: __ spec: diff --git a/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc b/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc index bad01f8e2a7..c9e9b149328 100644 --- a/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc +++ b/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc @@ -3,16 +3,8 @@ include::artifacts/attributes.adoc[] -<<<<<<< HEAD :context: interacting-with-the-developer-hub-intelligent-assistant :lightspeed-configure-sections: -======= -<<<<<<<< HEAD:titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc -:context: interacting-with-the-intelligent-assistant-for-rhdh -======== -:context: interacting-with-the-developer-hub-intelligent-assistant ->>>>>>>> 31735ed09e (Changes):titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc ->>>>>>> 31735ed09e (Changes) :title: {intelligent-assistant-book-title} :subtitle: Leverage Artificial Intelligence (AI)-driven expertise of the {ia-brand-name} to help you use {product} ({product-very-short}) :abstract: {ia-brand-name} (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for {product} ({product-very-short}). You can interact with the {ia-short} to explore {product-very-short} capabilities in detail. @@ -37,17 +29,12 @@ include::assemblies/shared/assembly-migrate-intelligent-assistant-to-remove-llam include::modules/shared/ref-ai-feature-permissions.adoc[leveloffset=+1] -<<<<<<< HEAD include::assemblies/shared/assembly-extend-lightspeed-with-bring-your-own-knowledge.adoc[leveloffset=+1] include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] include::assemblies/shared/assembly-provide-organization-context-with-agent-skills.adoc[leveloffset=+1] -======= -include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] - ->>>>>>> 31735ed09e (Changes) include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] include::assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc[leveloffset=+1] diff --git a/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc b/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc deleted file mode 100644 index 756f43abbb6..00000000000 --- a/titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc +++ /dev/null @@ -1,44 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -:_mod-docs-category: Integrate - -include::artifacts/attributes.adoc[] - -<<<<<<<< HEAD:titles/integrate_interacting-with-the-intelligent-assistant-for-rhdh/master.adoc -:context: interacting-with-the-intelligent-assistant-for-rhdh -======== -:context: interacting-with-the-developer-hub-intelligent-assistant ->>>>>>>> 31735ed09e (Changes):titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc -:title: {intelligent-assistant-book-title} -:subtitle: Leverage Artificial Intelligence (AI)-driven expertise of the {ia-brand-name} to help you use {product} ({product-very-short}) -:abstract: {ia-brand-name} (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for {product} ({product-very-short}). You can interact with the {ia-short} to explore {product-very-short} capabilities in detail. - -[id="{context}"] -= {title} - -[role="_abstract"] -{abstract} - -include::modules/shared/con-chat-assistance-with.adoc[leveloffset=+1] - -include::modules/shared/con-architecture-for-your-ai-backend-deployment.adoc[leveloffset=+1] - -include::modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc[leveloffset=+2] - -include::modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc[leveloffset=+1] - -include::modules/shared/ref-ai-feature-permissions.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-ai-model-evaluation-data-to-select-the-right-ai-model.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-appendix-llm-requirements.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-appendix-manage-user-data-security.adoc[leveloffset=+1] - From 06537d762c3f213c612efc7eeb6385b8223f2cf5 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 14 Oct 2026 10:40:20 +0530 Subject: [PATCH 08/11] Incorporated peer review comment --- ...neration-rag-embeddings-for-grounded-ai-responses.adoc | 4 ++-- modules/shared/proc-configure-safety-guards-in-rhdh.adoc | 6 +++--- .../proc-mirror-images-for-operator-deployments.adoc | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc index 5261d098888..b985907facd 100644 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -6,7 +6,7 @@ [role="_abstract"] Use retrieval-augmented generation (RAG) to ground artificial intelligence (AI) responses in {product-very-short} product documentation and provide verified citations during user interactions. -{product-very-short} {ia-name} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a Red Hat curated knowledge base that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ia-brand-name} installation. +{product-very-short} {ia-name} uses the Offline Knowledge Portal (OKP) as the RAG backend for product documentation. OKP is a knowledge base curated by Red Hat that contains {product-very-short} product documentation optimized for RAG operations. OKP runs as a standalone service alongside the {ia-brand-name} installation. The {lcs-name} ({lcs-short}) uses OKP as a RAG tool during inference to retrieve relevant {product-very-short} documentation and attaches documentation references to chat responses. @@ -18,7 +18,7 @@ OKP supports the following search modes: OKP is optional and disabled by default on all platforms. The OKP image is large, so enabling it can significantly increase the time of the first installation while the image is downloaded. How you enable OKP depends on your deployment method: -* With the {product} Operator, enable the `intelligent-assistant-okp` add-on flavour alongside the base `intelligent-assistant` flavour. On {ocp-short}, the Operator automatically creates the OKP `Deployment`, `Service`, and `Route`, and sets the OKP service URL for the {lcs-short} sidecar. On other Kubernetes platforms, the Operator deploys OKP, but you must provide the registry credentials, Ingress, TLS, and OKP service URL yourself, because the Operator does not manage Ingress. +* With the {product} Operator, enable the `intelligent-assistant-okp` add-on flavor alongside the base `intelligent-assistant` flavor. On {ocp-short}, the Operator automatically creates the OKP `Deployment`, `Service`, and `Route`, and sets the OKP service URL for the {lcs-short} sidecar. On other Kubernetes platforms, the Operator deploys OKP, but you must provide the registry credentials, Ingress, TLS, and OKP service URL yourself, because the Operator does not manage Ingress. * With the Helm chart, set `intelligentAssistant.okp.enabled` to `true`. On {ocp-short}, the chart creates the OKP `Route` automatically. On other Kubernetes platforms, you must also enable and configure `intelligentAssistant.okp.ingress`. When OKP is not enabled, the assistant runs without a knowledge base: general chat still works, but product-specific responses might be less accurate. diff --git a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc index 817461d563c..117d81d358f 100644 --- a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc +++ b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc @@ -6,7 +6,7 @@ [role="_abstract"] Enable the question-validity shield to classify each prompt before {ia-name} answers it, so that off-topic or harmful prompts never reach your answering model. -In {product-very-short} 2.1, {ia-name} validates prompts through a single question-validity shield that {lcs-name} ({lcs-short}) defines in the `lightspeed-stack.yaml` configuration file. This shield replaces the Llama Guard safety provider, registered shield resources, and `run.yaml` overrides used in earlier releases. Do not edit {ogx-name} ({ogx-short}) files or the generated `run.yaml` file to change validation behavior. +In {product-very-short} {product-version}, {ia-name} validates prompts through a single question-validity shield that {lcs-name} ({lcs-short}) defines in the `lightspeed-stack.yaml` configuration file. This shield replaces the Llama Guard safety provider, registered shield resources, and `run.yaml` overrides used in earlier releases. Do not edit {ogx-name} ({ogx-short}) files or the generated `run.yaml` file to change validation behavior. The shipped `lightspeed-stack.yaml` file includes the shield in a disabled state. You enable or disable the shield through environment variables in the Kubernetes Secret that {lcs-short} reads. When you enable the shield, {lcs-short} sends each prompt to the validation model, which classifies the prompt as allowed or rejected. @@ -150,7 +150,7 @@ stringData: + where: + -`ENABLE_VALIDATION`:: Specifies whether the shield is enabled. You must set the value to `question_validity`. A nonempty value such as `true` does not enable the shield in {product-very-short} 2.1. +`ENABLE_VALIDATION`:: Specifies whether the shield is enabled. You must set the value to `question_validity`. A nonempty value such as `true` does not enable the shield in {product-very-short} {product-version}. `VALIDATION_PROVIDER`:: Specifies the type of the inference provider that runs the classification, for example, `openai` or `vllm`. A provider of this type must be enabled in `inference.providers`. `VALIDATION_MODEL_NAME`:: Specifies the model that classifies each prompt. If the provider defines `allowed_models`, include this model in that list. + @@ -180,5 +180,5 @@ Running without query validation increases the risk of off-topic or harmful mode . Apply the updated Secret, and then restart the {lcs-short} service so that the container reads the new environment variables. .Verification -. Open the *Intelligent Assistant* and submit a development question, for example, `How do I create a software template in {product-very-short}?`. Confirm that the assistant answers the question. +. Open *Intelligent Assistant* and submit a development question, for example, `How do I create a software template in {product-very-short}?`. Confirm that the assistant answers the question. . Submit a clearly unrelated question, for example, `What is a good recipe for pizza?`. Confirm that the assistant rejects the question when validation is enabled. diff --git a/modules/shared/proc-mirror-images-for-operator-deployments.adoc b/modules/shared/proc-mirror-images-for-operator-deployments.adoc index 5f7511a5dd7..607cde315cc 100644 --- a/modules/shared/proc-mirror-images-for-operator-deployments.adoc +++ b/modules/shared/proc-mirror-images-for-operator-deployments.adoc @@ -1,16 +1,16 @@ :_mod-docs-content-type: PROCEDURE [id="mirror-images-for-operator-deployments_{context}"] -= Mirror {ia-name} images for air-gapped environments += Mirror {ia-name} images for disconnected environments [role="_abstract"] -Mirror the required {ia-name} container images and plugins to your local registry to provide chat assistance in an air-gapped environment. +Mirror the required {ia-name} container images and plugins to your local registry to provide chat assistance in an disconnected environment. -The {lcs-short} and OKP images are embedded in the {ia-name} flavour and plugin-dependency `ConfigMap` resources rather than listed in the Operator cluster service version (CSV) `relatedImages` field. As a result, the {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-environment-with-the-operator_install-rhdh-in-an-air-gapped-environment-with-the-operator[`prepare-restricted-environment.sh`] script does not automatically parse `{ia-name}` images from the bundle manifest. You must explicitly mirror these images and configure the cluster to redirect the original image references to your mirror registry before running the script. +The {lcs-short} and OKP images are embedded in the {ia-name} flavour and plugin-dependency `ConfigMap` resources rather than listed in the Operator cluster service version (CSV) `relatedImages` field. As a result, the {installing-in-air-gap-book-link}#install-rhdh-in-a-fully-disconnected-environment-with-the-operator_install-rhdh-in-an-disconnected-environment-with-the-operator[`prepare-restricted-environment.sh`] script does not automatically parse `{ia-name}` images from the bundle manifest. You must explicitly mirror these images and configure the cluster to redirect the original image references to your mirror registry before running the script. .Prerequisites * You have a target mirror registry accessible to your disconnected cluster. * You authenticated to the {rhcr} and your target mirror registry. -* You have configured image pull authentication for your mirror registry as described in {installing-in-air-gap-book-link}#install-rhdh-in-an-air-gapped-environment-with-the-operator[Install {product} in an air-gapped environment with the Operator]. The `kubelet` requires these credentials to pull all {product} container images, including the {ia-name} sidecar images. +* You have configured image pull authentication for your mirror registry as described in {installing-in-air-gap-book-link}#install-rhdh-in-an-disconnected-environment-with-the-operator[Install {product} in an disconnected environment with the Operator]. The `kubelet` requires these credentials to pull all {product} container images, including the {ia-name} sidecar images. .Procedure From b28ee96422d2b56a7d102a0629473d6a3b9b089b Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Wed, 14 Oct 2026 11:31:20 +0530 Subject: [PATCH 09/11] Minor build fixes --- .../master.adoc | 47 ------------------- 1 file changed, 47 deletions(-) delete mode 100644 titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc diff --git a/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc b/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc deleted file mode 100644 index c9e9b149328..00000000000 --- a/titles/integrate_interacting-with-the-developer-hub-intelligent-assistant/master.adoc +++ /dev/null @@ -1,47 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -:_mod-docs-category: Integrate - -include::artifacts/attributes.adoc[] - -:context: interacting-with-the-developer-hub-intelligent-assistant -:lightspeed-configure-sections: -:title: {intelligent-assistant-book-title} -:subtitle: Leverage Artificial Intelligence (AI)-driven expertise of the {ia-brand-name} to help you use {product} ({product-very-short}) -:abstract: {ia-brand-name} (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for {product} ({product-very-short}). You can interact with the {ia-short} to explore {product-very-short} capabilities in detail. - -[id="{context}"] -= {title} - -[role="_abstract"] -{abstract} - -include::modules/shared/con-chat-assistance-with.adoc[leveloffset=+1] - -include::modules/shared/con-architecture-for-your-ai-backend-deployment.adoc[leveloffset=+1] - -include::modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc[leveloffset=+2] - -include::modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-migrate-intelligent-assistant-to-remove-llama-stack.adoc[leveloffset=+1] - -include::modules/shared/ref-ai-feature-permissions.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-extend-lightspeed-with-bring-your-own-knowledge.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-provide-organization-context-with-agent-skills.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-ai-model-evaluation-data-to-select-the-right-ai-model.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-appendix-llm-requirements.adoc[leveloffset=+1] - -include::assemblies/shared/assembly-appendix-manage-user-data-security.adoc[leveloffset=+1] - From 9dbe279ba1a5858fcb1a17ef8fd780fd5a642481 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 15 Oct 2026 09:10:35 +0530 Subject: [PATCH 10/11] peer changes --- .../proc-configure-safety-guards-in-rhdh.adoc | 123 +----------------- 1 file changed, 1 insertion(+), 122 deletions(-) diff --git a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc index 117d81d358f..be82283f81e 100644 --- a/modules/shared/proc-configure-safety-guards-in-rhdh.adoc +++ b/modules/shared/proc-configure-safety-guards-in-rhdh.adoc @@ -17,127 +17,6 @@ The shipped `lightspeed-stack.yaml` file includes the shield in a disabled state .Procedure -. Add the following YAML file as a config map to your namespace: -+ -[source,yaml] ----- -version: 2 -image_name: redhat-ai-dev-llama-stack-no-guard -apis: - - agents - - inference - - safety - - tool_runtime - - vector_io - - files -container_image: -external_providers_dir: -providers: - agents: - - config: - persistence: - agent_state: - namespace: agents - backend: kv_default - responses: - table_name: responses - backend: sql_default - provider_id: meta-reference - provider_type: inline::meta-reference - inference: - - provider_id: ${env.ENABLE_VLLM:+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: ${env.ENABLE_OPENAI:+openai} - provider_type: remote::openai - config: - api_key: ${env.OPENAI_API_KEY:=} - - provider_id: ${env.ENABLE_VERTEX_AI:+vertexai} - provider_type: remote::vertexai - config: - project: ${env.VERTEX_AI_PROJECT:=} - location: ${env.VERTEX_AI_LOCATION:=us-central1} - - provider_id: sentence-transformers - provider_type: inline::sentence-transformers - config: {} - 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: - - provider_id: faiss - provider_type: inline::faiss - config: - persistence: - namespace: vector_io::faiss - backend: faiss_kv - files: - - provider_id: localfs - provider_type: inline::localfs - config: - storage_dir: /tmp/llama-stack-files - metadata_store: - table_name: files_metadata - backend: sql_files -storage: - backends: - kv_default: - type: kv_sqlite - db_path: /tmp/kvstore.db - sql_default: - type: sql_sqlite - db_path: /tmp/sql_store.db - sql_files: - type: sql_sqlite - db_path: /rag-content/vector_db/rhdh_product_docs/1.9/files_metadata.db - faiss_kv: - type: kv_sqlite - db_path: /rag-content/vector_db/rhdh_product_docs/1.9/faiss_store.db - stores: - metadata: - namespace: registry - backend: faiss_kv - inference: - table_name: inference_store - backend: sql_default - max_write_queue_size: 10000 - num_writers: 4 - conversations: - table_name: openai_conversations - backend: sql_default -registered_resources: - models: - - model_id: sentence-transformers/all-mpnet-base-v2 - metadata: - embedding_dimension: 768 - model_type: embedding - provider_id: sentence-transformers - provider_model_id: /rag-content/embeddings_model - tool_groups: - - provider_id: rag-runtime - toolgroup_id: builtin::rag - vector_dbs: - - vector_db_id: rhdh-product-docs-1_8 - embedding_model: sentence-transformers/all-mpnet-base-v2 - embedding_dimension: 768 - provider_id: faiss -server: - auth: - host: - port: 8321 - quota: - tls_cafile: - tls_certfile: - tls_keyfile: ----- - . To enable query validation, add the following keys to the Secret that {lcs-short} reads: + [source,yaml] @@ -180,5 +59,5 @@ Running without query validation increases the risk of off-topic or harmful mode . Apply the updated Secret, and then restart the {lcs-short} service so that the container reads the new environment variables. .Verification -. Open *Intelligent Assistant* and submit a development question, for example, `How do I create a software template in {product-very-short}?`. Confirm that the assistant answers the question. +. Open the *{ia-short}* and submit a development question, for example, `How do I create a software template in {product-very-short}?`. Confirm that the assistant answers the question. . Submit a clearly unrelated question, for example, `What is a good recipe for pizza?`. Confirm that the assistant rejects the question when validation is enabled. From f0d03a5b35b215884613ef4e004fe1d6ccd93115 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 22 Oct 2026 09:52:36 +0530 Subject: [PATCH 11/11] Fixing build error --- ...ct-specific-challenges-with-notebooks.adoc | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc diff --git a/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc b/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc deleted file mode 100644 index 5cdfc23c3c8..00000000000 --- a/assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc +++ /dev/null @@ -1,38 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -ifdef::context[:parent-context: {context}] - -[id="solve-project-specific-challenges-with-notebooks_{context}"] -= Solve project-specific challenges with {ia-name} Notebooks -:context: solve-project-specific-challenges-with-intelligent-assistant-notebooks - -[role="_abstract"] -Use {ia-name} Notebooks to research, troubleshoot, and analyze projects by using a large language model (LLM) grounded in your own documentation. - -Notebooks use Retrieval-Augmented Generation (RAG) so that responses are based strictly on the files you upload. Notebooks are available in overlay, docked, and fullscreen display modes. In overlay and docked modes, you can toggle the resource panel to work with notebooks on smaller screens without switching to fullscreen. - -Use Notebooks to achieve the following goals: - -`Query your documentation`:: Upload project files to ask questions, summarize content, or brainstorm ideas based on those specific documents. -`Troubleshoot with project-specific context`:: Upload project logs, architecture diagrams, or onboarding files to receive technical answers tailored to your specific environment. -`Securely analyze private data`:: Conduct research in isolated sessions. Your uploaded data and chat history remain private and are inaccessible to other users. -`Run multiple Notebooks`:: Uploaded documents and chat history remain available and are re-opened through the *Notebook* dashboard. -`Verify AI responses with citations`:: Use the *Sources* chips to view the exact document excerpts used to generate an answer. -`Organize research`:: Use metadata and tagging to categorize different research topics. - -The following constraints apply during the {developer-preview}: - -`Data boundaries`:: The AI can only access data within the active Notebook session. -`Private access`:: You cannot share notebooks or documents with other team members. -`Manual uploads`:: You must upload files directly. The tool does not support URL ingestion or web scraping. -`Ephemeral defaults`:: Without a configured Persistent Volume (PV), all Notebook data and uploaded files are lost upon service restart. - -+ -image::integrate_interacting-with-the-developer-hub-intelligent-assistant/intelligent-assistant-notebook-fullscreen-page.png["{ia-name} Notebook fullscreen page"] - -include::{docdir}/artifacts/snip-developer-preview.adoc[] - -include::../modules/shared/proc-enable-secure-ai-research-with-intelligent-assistant-notebooks.adoc[leveloffset=+1] -include::../modules/shared/proc-enable-data-persistence-for-intelligent-assistant-notebooks.adoc[leveloffset=+1] - -ifdef::parent-context[:context: {parent-context}] -ifndef::parent-context[:!context:]