Red Hat Developer Hub 2.1

Interacting with Red Hat Developer Hub Intelligent Assistant

Leverage Artificial Intelligence (AI)-driven expertise of the Red Hat Developer Hub Intelligent Assistant to help you use Red Hat Developer Hub (RHDH)

Red Hat Customer Content Services

Abstract

Red Hat Developer Hub Intelligent Assistant (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for Red Hat Developer Hub (RHDH). You can interact with the Intelligent Assistant to explore RHDH capabilities in detail.

Preface

Red Hat Developer Hub Intelligent Assistant (formerly Developer Lightspeed for Developer Hub) is an AI-powered virtual assistant for Red Hat Developer Hub (RHDH). You can interact with the Intelligent Assistant to explore RHDH capabilities in detail.

Chapter 1. Chat assistance with Developer Hub Intelligent Assistant

Use Developer Hub Intelligent Assistant to find product information, discover features, and resolve technical questions using natural language prompts directly within the RHDH console.

To speed up repeat tasks, you can save prompts that you enter frequently and reuse them in any chat session without retyping them.

Intelligent assistant chatbot on the home page

Chapter 2. Red Hat Developer Hub Intelligent Assistant architecture for your AI backend deployment

Review the Developer Hub Intelligent Assistant component architecture to plan your system layout and coordinate connections with your artificial intelligence (AI) backend deployment.

The architecture relies on the Lightspeed Core Service (LCORE) container, which operates as the primary intermediary layer to manage Developer Hub Intelligent Assistant functionality and console user interactions. After you enable the plugin, the interface appears as the Intelligent Assistant button on all platforms that host RHDH.

Developer Hub Intelligent Assistant connects only to LCORE. LCORE manages the configuration for the model inference, query validation, tool calling, and the vector store. You configure these capabilities through LCORE, and Developer Hub Intelligent Assistant consumes them through LCORE APIs.

Open GenAI Stack (OGX) is an internal implementation detail of LCORE and is not a customer-facing component. Do not configure OGX directly, call OGX APIs, or edit the generated /tmp/.generated/run.yaml file. Configure LCORE instead, so that your deployment stays stable across OGX changes.

2.1. AI reference and tool-calling capabilities through Lightspeed Core Service

Review the core components managed by the Lightspeed Core Service (LCORE) sidecar container to plan integrations with large language models (LLM) and tool runtime providers.

The LCORE container deploys as a sidecar to extend RHDH functionality, and it integrates and manages the following core components:

  • Large language model (LLM) inference providers
  • Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers

    Important

    Verify that your model supports tool calling before you enable MCP features. Using an incompatible model results in error messages.

  • Safety providers
  • Vector database settings

LCORE also manages the following operational data:

  • User feedback collection
  • MCP server configuration
  • Chat history

All prompts and LLM responses pass through the LCORE sidecar.

Chapter 3. Retrieval augmented generation (RAG) embeddings for grounded AI responses

Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in your internal documentation and provide verified citations during user interactions.

The RHDH 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.

The system processes RAG data through the following sequence:

  • An initialization container copies the RAG data to a shared volume.
  • The Lightspeed Core Service (LCORE) 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.

Chapter 4. Configure Developer Hub Intelligent Assistant to initialize the AI assistant

Red Hat Developer Hub Intelligent Assistant is enabled by default on Red Hat Developer Hub (RHDH) instances. To provide developers with chat assistance, configure your deployment settings by using either the Operator or the Helm chart.

4.1. Configure the virtual assistant components

Configure Developer Hub Intelligent Assistant by updating your Backstage custom resource (CR) to map environment variables, manage configurations, and set access rights.

Prerequisites

  • The RHDH Operator is installed on your cluster.
  • You have cluster administrator privileges.

Procedure

  1. Create an opaque Kubernetes Secret containing your operational credentials and query validation keys before applying the Backstage CR. Refer to the following key definitions for required environment variables:

    Important

    The Secret supplies only provider credentials and endpoints. To enable an inference provider, define it as an entry under the inference.providers section of the lightspeed-stack.yaml file. Adding a credential key to the Secret does not enable a provider on its own.

    KeyDescription

    VLLM_URL

    Specifies the target API endpoint URL for vLLM. The URL must end in /v1, for example, https://<api_endpoint>/v1.

    VLLM_API_KEY

    Stores the authorization token for your vLLM platform.

    OPENAI_API_KEY

    Stores the authorization secret key for OpenAI.

    VERTEX_AI_PROJECT

    Specifies your Google Cloud project ID.

    VERTEX_AI_LOCATION

    Specifies your target Google Cloud region.

    GOOGLE_APPLICATION_CREDENTIALS

    Specifies the in-container file path of your mounted Google Cloud service account credentials JSON file.

    ENABLE_VALIDATION

    Enables the question-validity shield when set to question_validity. Leave the variable unset, or set it to disabled, to keep validation disabled. A nonempty value such as true does not enable the shield.

    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, for example, gpt-4o-mini.

    The following code shows an example configuration Secret for vLLM with validation:

    apiVersion: v1
    kind: Secret
    metadata:
      name: intelligent-assistant-auth-secrets
    type: Opaque
    stringData:
      VLLM_URL: "https://<api_endpoint>/v1"
      VLLM_API_KEY: "<api_key>"
      ENABLE_VALIDATION: question_validity
      VALIDATION_PROVIDER: "vllm"
      VALIDATION_MODEL_NAME: "llama3.1"
    Note

    The VALIDATION_PROVIDER value is the inference provider type, such as vllm or openai. A provider of this type must be enabled in the inference.providers section of the lightspeed-stack.yaml file.

  2. Enable at least one inference provider by defining it under the inference.providers section of the lightspeed-stack.yaml file. Creating the Secret alone does not enable a provider. For the provider entry format and the Secret keys that each provider requires, see the inference provider configuration reference for Developer Hub Intelligent Assistant.
  3. Map your secret inside the extraEnvs section of the Backstage CR to complete container provisioning:

    apiVersion: rhdh.redhat.com/v1alpha5
    kind: Backstage
    metadata:
      name: intelligent-assistant-rhdh
    spec:
      application:
        extraEnvs:
          secrets:
            - name: intelligent-assistant-auth-secrets
              containers:
                - lightspeed-core
  4. Optional: To protect settings such as Model Context Protocol (MCP) server additions from being overwritten during reconciliation loops, define a custom ConfigMap mapping in the extraFiles section of the CR:

        extraFiles:
          configMaps:
            - name: "my-custom-config"
              mountPath: /app-root
              key: lightspeed-stack.yaml
              containers:
                - lightspeed-core
  5. Configure access rights by updating the RBAC policy inside your Backstage CR:

    To grant non-administrator teams access to the virtual assistant, append permission lines to the rbac-policies.csv section, replacing <team> with your target team name:

    p, role:default/<team>, intelligent-assistant.chat, use, allow 1
    <1>

    Grants full use of the Developer Hub Intelligent Assistant chat feature, including opening the chat window, sending messages, managing chat history, and saving and reusing chat prompts.

    For the complete list of AI feature permissions, including Notebooks, MCP tools, and skills, see AI feature permissions.

  6. Apply the updated custom resource manifest to your cluster:

    $ oc apply -f <backstage_cr_file>.yaml

Verification

  1. Log in to your console instance.
  2. Verify that the Intelligent Assistant button appears on the home page.
  3. Select the Intelligent Assistant button and confirm that the chat window initializes successfully.

4.2. Configure Developer Hub Intelligent Assistant by using the Helm chart

Configure Developer Hub Intelligent Assistant by using the Helm chart to manage large language model (LLM) providers, enable query validation, and authorize custom role-based access control (RBAC) policies.

Prerequisites

  • You have access to a running RHDH instance deployed with Helm.
  • You have operational credentials for your chosen LLM provider.

Procedure

  1. Create a Kubernetes Secret to store your provider credentials by adding the required keys to your Secret based on your provider requirements:

    Important

    The Secret supplies only provider credentials and endpoints. To enable an inference provider, define it as an entry under the inference.providers section of the lightspeed-stack.yaml file. Adding a credential key to the Secret does not enable a provider on its own.

    KeyDescription

    VLLM_URL

    Specifies the target API endpoint URL for vLLM. The URL must end in /v1, for example, https://<api_endpoint>/v1.

    VLLM_API_KEY

    Stores the authorization token for your vLLM platform.

    OPENAI_API_KEY

    Stores the authorization secret key for OpenAI.

    VERTEX_AI_PROJECT

    Specifies your Google Cloud project ID.

    VERTEX_AI_LOCATION

    Specifies your target Google Cloud region.

    GOOGLE_APPLICATION_CREDENTIALS

    Specifies the in-container file path of your mounted Google Cloud service account credentials JSON file.

    ENABLE_VALIDATION

    Enables the question-validity shield when set to question_validity. Leave the variable unset, or set it to disabled, to keep validation disabled. A nonempty value such as true does not enable the shield.

    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, for example, gpt-4o-mini.

    Note

    Vertex AI requires custom architecture mapping and has received limited testing.

    Tip

    To filter and reject off-topic user queries, you can optionally configure query validation within this Secret by defining the ENABLE_VALIDATION, VALIDATION_PROVIDER, and VALIDATION_MODEL_NAME keys.

  2. Reference your Secret inside the values.yaml file:

    intelligentAssistant:
      existingSecret: "my-custom-secret"
  3. Enable at least one inference provider by defining it under the inference.providers section of the lightspeed-stack.yaml file. Creating the Secret alone does not enable a provider. For the provider entry format and the Secret keys that each provider requires, see the inference provider configuration reference for Developer Hub Intelligent Assistant.
  4. Optional: Configuration files such as lightspeed-stack.yaml and rhdh-profile.py are managed by the Helm deployment and are overwritten on helm upgrade runs. To protect changes to a file, create a custom config map and reference it in the values.yaml file:

    Important

    Provide only the name and key of your existing ConfigMap. The chart manages the mount path and file configuration.

    intelligentAssistant:
      config:
        stack:
          existingConfigMap:
            name: my-custom-stack
            key: lightspeed-stack.yaml
  5. Configure access rights by updating your RBAC definitions:

    To grant non-administrator teams access to the virtual assistant, append permission lines to the rbac-policies.csv section, replacing <team> with your target team name:

    p, role:default/<team>, intelligent-assistant.chat, use, allow 1
    <1>

    Grants full use of the Developer Hub Intelligent Assistant chat feature, including opening the chat window, sending messages, managing chat history, and saving and reusing chat prompts.

    For the complete list of AI feature permissions, including Notebooks, MCP tools, and skills, see AI feature permissions.

  6. Run the helm upgrade command to apply your configurations to the cluster.

Verification

  1. Log in to your console instance.
  2. Verify that the Intelligent Assistant button appears on the home page.
  3. Select the Intelligent Assistant button and confirm that the chat window initializes successfully.

4.3. Inference provider configuration reference for Developer Hub Intelligent Assistant

To give Developer Hub Intelligent Assistant access to a model, define each inference provider as an entry under the top-level inference.providers section of the lightspeed-stack.yaml file.

The provider entry enables the provider. Adding an API key or an ENABLE_* variable to the Secret does not enable a provider on its own.

Keep the sentence_transformers provider when you add a large language model (LLM) provider. It supports the default embedding path that the shipped vector store uses.

Each LLM provider entry requires a unique id. The api_key_env field contains the name of an environment variable, not ${env…​} syntax and not the credential value. Lightspeed Core Service (LCORE) resolves the variable without exposing the key in the configuration file.

OpenAI

Set type to openai, and add OPENAI_API_KEY to the Secret. Use extra.allowed_models to limit model registration. If you omit it, the provider registers every model that is visible to the account.

inference:
  providers:
    - type: sentence_transformers
    - type: openai
      id: openai-primary
      api_key_env: OPENAI_API_KEY
      extra:
        allowed_models:
          - gpt-4o
          - gpt-4o-mini
vLLM

Set type to vllm, and add VLLM_URL and VLLM_API_KEY to the Secret. VLLM_URL must be the full OpenAI-compatible base URL and end in /v1, for example, https://vllm.example.com/v1. Add VLLM_MAX_TOKENS or VLLM_TLS_VERIFY only when the defaults do not suit the endpoint.

inference:
  providers:
    - type: sentence_transformers
    - type: vllm
      id: rhoai-vllm
      api_key_env: VLLM_API_KEY
      extra:
        base_url: ${env.VLLM_URL:=}
        max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
        network:
          tls:
            verify: ${env.VLLM_TLS_VERIFY:=true}
Vertex AI

Set type to vertexai, and set VERTEX_AI_PROJECT, VERTEX_AI_LOCATION, and GOOGLE_APPLICATION_CREDENTIALS in the Secret. The GOOGLE_APPLICATION_CREDENTIALS value must be the in-container path of a separately mounted Google Cloud credential file.

inference:
  providers:
    - type: sentence_transformers
    - type: vertexai
      id: vertex-gemini
      extra:
        project: ${env.VERTEX_AI_PROJECT:=}
        location: ${env.VERTEX_AI_LOCATION:=global}
        allowed_models:
          - google/gemini-2.5-flash

To enable more than one provider, combine the entries in a single inference.providers list. Keep every id unique, even when two entries use the same provider type. The following example enables two OpenAI providers and a vLLM provider while retaining the embedding provider that the default vector store uses:

inference:
  providers:
    - type: sentence_transformers
    - type: openai
      id: openai-primary
      api_key_env: OPENAI_API_KEY
      extra:
        allowed_models:
          - gpt-4o-mini
    - type: openai
      id: openai-secondary
      api_key_env: OPENAI_SECONDARY_API_KEY
      extra:
        allowed_models:
          - gpt-4o
    - type: vllm
      id: rhoai-vllm
      api_key_env: VLLM_API_KEY
      extra:
        base_url: ${env.VLLM_URL:=}
        max_tokens: ${env.VLLM_MAX_TOKENS:=4096}
        network:
          tls:
            verify: ${env.VLLM_TLS_VERIFY:=true}

The paired Secret must define OPENAI_API_KEY, OPENAI_SECONDARY_API_KEY, VLLM_API_KEY, and a VLLM_URL value that ends in /v1. A user can then select models that any of these providers expose.

4.4. Disable Developer Hub Intelligent Assistant by using the Operator

Disable the Developer Hub Intelligent Assistant chat interface and stop associated container processes to remove the service from your Operator-backed deployment.

Prerequisites

  • You have access to the cluster where your instance is deployed.
  • You have cluster administrator privileges.

Procedure

  1. Open your Backstage custom resource (CR) YAML file.
  2. 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:

    apiVersion: rhdh.redhat.com/v1alpha5
    kind: Backstage
    metadata:
      name: intelligent-assistant-disabled
    spec:
      flavours:
        - name: intelligent-assistant
          enabled: false
  3. Apply the updated custom resource manifest to your cluster:

    oc apply -f <backstage_cr_file>.yaml

Verification

  1. Log in to your console instance.
  2. Verify that the Intelligent Assistant button no longer appears on the home page.

4.5. Disable Developer Hub Intelligent Assistant by using the Helm chart

Disable the Developer Hub Intelligent Assistant chat interface and stop associated container processes to remove the service from your Helm-deployed environment.

Prerequisites

  • You have access to the cluster where your instance is deployed.
  • You have cluster administrator privileges.

Procedure

  1. Open your Helm values.yaml file.
  2. Update the global.lightspeed.enabled parameter to false to disable the chat interface:

    global:
      lightspeed:
        enabled: false
  3. Run the helm upgrade command to apply the configuration change to your cluster.

Verification

  1. Log in to your console instance.
  2. Verify that the Intelligent Assistant button no longer appears on the home page.

4.6. Mirror Developer Hub Intelligent Assistant images for air-gapped environments

To provide chat assistance in a network environment without internet access, you must mirror the required Developer Hub Intelligent Assistant container images and dynamic plugins to your local registry. This ensures your secure environment can pull the necessary components inside your network perimeter.

4.6.1. Mirror Developer Hub Intelligent Assistant images for air-gapped environments

Mirror the required Developer Hub Intelligent Assistant container images and plugins to your local registry to provide chat assistance in an air-gapped environment.

The prepare-restricted-environment.sh script does not automatically parse Developer Hub Intelligent Assistant images from the bundle manifest, so mirror these images manually before running the script.

Prerequisites

  • You have a target mirror registry accessible to your disconnected cluster.
  • You authenticated to the Red Hat Container Registry and your target mirror registry.
  • You have configured image pull authentication for your mirror registry as described in Install Red Hat Developer Hub in an air-gapped environment with the Operator. The kubelet requires these credentials to pull all Red Hat Developer Hub container images, including the Developer Hub Intelligent Assistant sidecar images.

Procedure

  1. Extract the deployment configurations from the official Operator bundle:

    BUNDLE_IMAGE="registry.redhat.io/rhdh/rhdh-operator-bundle:2.1"
    CONTAINER_ID=$(podman create "${BUNDLE_IMAGE}")
    podman cp $CONTAINER_ID:/manifests/rhdh-flavour-lightspeed-config_v1_configmap.yaml ./lightspeed-config.yaml
    podman rm $CONTAINER_ID
  2. Identify the initialization and sidecar container image tags from the extracted configuration file:

    LS_RAG_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.initContainers[] | select(.name == "init-rag-data") | .image')
    LS_CORE_IMAGE=$(yq '.data["deployment.yaml"]' lightspeed-config.yaml | yq '.spec.template.spec.containers[] | select(.name == "lightspeed-core") | .image')
  3. Mirror the images to your internal registry by running the skopeo copy command:

    skopeo copy docker://${LS_RAG_IMAGE} docker://<mirror_registry>/<ls_rag_repo>@<digest>
    skopeo copy docker://${LS_CORE_IMAGE} docker://<mirror_registry>/<ls_core_repo>@<digest>

4.6.2. Mirror Developer Hub Intelligent Assistant images for Helm deployments on OpenShift Container Platform

Mirror the required Developer Hub Intelligent Assistant container images to your local registry by using the oc-mirror plugin when deploying the Helm chart on an OpenShift Container Platform cluster.

Prerequisites

Procedure

  1. Identify the initialization and sidecar container images from the default values file of the chart:

    helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version 2.1.0 > 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_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml)
    LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml)
  2. Add these images to the additionalImages section of your ImageSetConfiguration file:

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      additionalImages:
        - name: ${LS_RAG_IMAGE}:${LS_RAG_DIGEST}
        - name: ${LS_CORE_IMAGE}:${LS_CORE_DIGEST}
      helm:
        repositories:
          - name: openshift-charts
            url: https://charts.openshift.io
            charts:
              - name: redhat-developer-hub
                version: "2.1"

4.6.3. Mirror Developer Hub Intelligent Assistant images for Helm deployments on Kubernetes

Isolate image references, copy them manually to your internal registry, and update your configuration file when deploying the Helm chart on non-OpenShift platforms.

Prerequisites

Procedure

  1. Extract the image references from the default values file of the chart:

    $ helm show values redhat-developer-hub --repo https://charts.openshift.io/ --version 2.1.0 > 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_CORE_IMAGE=$(yq '.global.lightspeed.sidecar.image | .registry + "/" + .repository' values.default.yaml)
    LS_CORE_DIGEST=$(yq '.global.lightspeed.sidecar.image.tag' values.default.yaml)
  2. Mirror the images to your internal mirror registry:

    skopeo copy --all docker://${LS_RAG_IMAGE}:${LS_RAG_DIGEST} docker://<mirror_registry_name>/<ls_rag_repo_name>:${LS_RAG_DIGEST}
    skopeo copy --all docker://${LS_CORE_IMAGE}:${LS_CORE_DIGEST} docker://<mirror_registry_name>/<ls_core_repo_name>:${LS_CORE_DIGEST}
  3. 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 Mirroring Red Hat Developer Hub dynamic plugins in disconnected environments:

    global:
      lightspeed:
        initContainer:
          image:
            registry: "<mirror_registry_name>"
            repository: <ls_rag_repo_name>
            tag: "${LS_RAG_DIGEST}"
        sidecar:
          image:
            registry: "<mirror_registry_name>"
            repository: <ls_core_repo_name>
            tag: "${LS_CORE_DIGEST}"
        plugins:
          - package: "oci://<mirror_registry_name>/rhdh/red-hat-developer-hub-backstage-plugin-lightspeed@<ls_frontend_digest>"
            disabled: false
          - package: "oci://<mirror_registry_name>/rhdh/red-hat-developer-hub-backstage-plugin-lightspeed-backend@<ls_backend_digest>"
            disabled: false

Chapter 5. AI feature permissions

To control who can use each Developer Hub Intelligent Assistant AI feature, assign the feature-linked RBAC permissions that grant access to the chat, Notebooks, MCP tools, and skills.

Each feature uses a single permission that grants full access of that feature. Permissions do not separate create, read, update, and delete actions: a role either has full permission to use a feature or no access. All AI feature permissions use the use action.

PermissionWhat it grants

intelligent-assistant.chat

Use the Developer Hub Intelligent Assistant chat feature, including opening the chat window, sending messages, managing chat history, and saving and reusing chat prompts.

intelligent-assistant.notebooks

Use the Developer Hub Intelligent Assistant Notebooks feature, including listing, reading, creating, uploading, querying, updating, and deleting Notebooks.

intelligent-assistant.mcp.tools

Use the Model Context Protocol (MCP) tools, including listing MCP servers and managing their configuration.

intelligent-assistant.skills

Use the Developer Hub Intelligent Assistant skills feature.

Agent Skills permissions

PermissionActionWhat it grants

intelligent-assistant.skills

use

View information about the Agent Skills that are available to the deployment. This permission controls visibility only. It does not control whether skills are loaded or whether configured skills influence answers.

Example RBAC policy

The following example grants a team full access to all Developer Hub Intelligent Assistant AI features:

p, role:default/<team>, intelligent-assistant.chat, use, allow
p, role:default/<team>, intelligent-assistant.notebooks, use, allow
p, role:default/<team>, intelligent-assistant.mcp.tools, use, allow
p, role:default/<team>, intelligent-assistant.skills, use, allow

To grant access to a subset of features, include permissions for only those features.

Migration from previous permission names

If you are upgrading from Developer Hub 1.x, replace the previous lightspeed.* permission names with the feature-linked names. Developer Hub 2.1 grants each feature with a single permission and no longer uses individual action verbs such as create, read, update, or delete.

Previous permissions (1.x)New permission (2.1)

lightspeed.chat.read, lightspeed.chat.create, lightspeed.chat.update, lightspeed.chat.delete

intelligent-assistant.chat

lightspeed.notebooks.use

intelligent-assistant.notebooks

lightspeed.mcp.read, lightspeed.mcp.manage

intelligent-assistant.mcp.tools

Important

This is a breaking change. Developer Hub 2.1 does not support the previous permission names. You must update all RBAC policies, conditional rules, and automation scripts that reference the previous lightspeed.* permission identifiers before you upgrade.

Chapter 6. Customize Developer Hub Intelligent Assistant AI responses

You can customize Developer Hub Intelligent Assistant to align model behavior with your operational goals, enhance developer productivity, and ensure secure data retention.

Customize Developer Hub Intelligent Assistant by enabling user feedback, persisting chat history, and configuring Model Context Protocol (MCP) tools.

6.1. Enable user feedback to improve model performance

Enable user feedback collection to allow users to rate chat responses and submit text comments directly within the console interface.

The Lightspeed Core Service (LCORE) stores this data as JSON files inside your cluster. Because Red Hat does not collect or access this data, platform administrators must manage, analyze, and delete these files locally.

Prerequisites

  • You have platform administrator privileges.
  • You created and referenced a custom config map in your deployment to ensure configuration changes persist during system upgrades or Operator reconciliation loops. For more information, see Provision your custom Red Hat Developer Hub configuration.

Procedure

  1. In your custom configuration file, such as lightspeed-stack.yaml, modify the user_data_collection block to configure your data preferences:

    • To enable feedback collection, set the feedback_enabled parameter to true:

      user_data_collection:
        feedback_enabled: true
        feedback_storage: "/tmp/data/feedback"
        transcripts_enabled: true
        transcripts_storage: "/tmp/data/transcripts"
    • To disable feedback collection, set the feedback_enabled parameter to false:

      user_data_collection:
        feedback_enabled: false
        feedback_storage: "/tmp/data/feedback"
        transcripts_enabled: true
        transcripts_storage: "/tmp/data/transcripts"
      Note

      Do not modify the feedback_storage or transcripts_storage data paths when disabling feedback. Altering these path strings prevents the service from locating existing historical logs.

  2. Apply the updated configuration file changes to your cluster by running your platform’s standard deployment or upgrade sequence.

6.2. Customize AI responses by using system prompts

Configure a custom system prompt to provide environmental context to the large language model (LLM). This custom instruction prefixes user queries, guiding the assistant to generate artificial intelligence (AI) responses tailored to your RHDH instance.

Prerequisites

  • You have administrative access to the RHDH host platform filesystem.

Procedure

  1. In your app-config.yaml file, add or modify the systemPrompt parameter under the intelligent-assistant section, specifying your custom instruction string:

    intelligent-assistant:
      # ... other intelligent-assistant configurations
      systemPrompt: "You are a helpful assistant focused on Red Hat Developer Hub development."
  2. Save the file.
  3. Restart the RHDH service to apply the updated system prompt configuration.

6.3. Customize chat history storage

Configure chat history storage to choose between non-persistent local logs and a persistent external database for user conversations.

By default, the system stores chat history in a non-persistent local database within the Lightspeed Core Service (LCORE) container. To retain data across system restarts, you must configure a PostgreSQL database connection.

Warning

Storing chat history records user prompts and responses. You must assess data privacy and security implications if your user chat history contains private, sensitive, or confidential information. For users that want to have their chat data removed, they must request their platform administrator to perform this action. Red Hat does not collect or access this chat history data.

Prerequisites

Procedure

  1. In your custom configuration file, such as lightspeed-stack.yaml, modify the conversation_cache block to specify your storage configuration:

    • To enable persistent storage, add your PostgreSQL database credentials and endpoint properties:

      conversation_cache:
        type: "postgres"
        postgres:
          host: _<your_database_host>_
          port: _<your_database_port>_
          db: _<your_database_name>_
          user: _<your_user_name>"_
          password: _<postgres_password>_
      • To retain the default non-persistent SQLite setup, verify that the parameters match the following paths:

        conversation_cache:
          type: "sqlite"
          sqlite:
            db_path: '/tmp/cache.db'
  2. Restart the LCORE service to apply your new database configuration.

    Note

    Saved chat prompts are stored on the same backend as chat history. When you configure persistent storage, RHDH retains both chat history and saved prompts across system restarts.

6.4. Configure rate limits for the Intelligent Assistant

Configure per-user rate limits for the Intelligent Assistant to prevent abuse, control large language model (LLM) inference costs, and protect backend resources.

Rate limiting is active by default. Requests are tracked per authenticated user entity reference within a fixed 1-minute window. When a user exceeds the configured limit, the server returns an HTTP 429 Too Many Requests response with a Retry-After header and a JSON error body containing a RateLimitExceeded error type.

The Intelligent Assistant applies rate limits by tier:

Expensive (default: 25 requests/min/user)
Applies to POST /v1/query (LLM inference), notebook document uploads, and Retrieval Augmented Generation (RAG) queries.
General (default: 200 requests/min/user)
Applies to all other authenticated endpoints, including conversation listing, Model Context Protocol (MCP) server management, feedback, and notebook session create, read, update, and delete operations.
Excluded (no limit)
Applies to health check endpoints (/health, /notebooks/health).

Prerequisites

  • You have deployed and configured the Intelligent Assistant instance.
  • You have administrative access to the RHDH host platform filesystem.

Procedure

  1. In your app-config.yaml file, add or modify the rateLimit block under the intelligent-assistant section:

    intelligent-assistant:
      rateLimit:
        expensive:
          max: 25
        general:
          max: 200
    expensive.max
    Maximum requests per minute per user for expensive endpoints such as LLM inference. Set to 0 to disable rate limiting for this tier.
    general.max

    Maximum requests per minute per user for general endpoints. Set to 0 to disable rate limiting for this tier.

    The following example shows a tightened configuration for a small deployment with limited LLM resources:

    lightspeed:
      rateLimit:
        expensive:
          max: 10
        general:
          max: 50
  2. Save the file.
  3. Restart the RHDH service to apply the updated configuration.

Verification

  1. Log in to RHDH and submit requests to the Intelligent Assistant chat interface that exceed the configured expensive limit.
  2. Confirm that the server returns an HTTP 429 Too Many Requests response with a Retry-After header indicating when to retry.

Chapter 7. Solve project-specific challenges with Developer Hub Intelligent Assistant Notebooks

Use Developer Hub Intelligent Assistant 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.

Intelligent assistant Notebook full-screen page
Important

Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.

For more information about the support scope of Red Hat Developer Preview features, see Developer Preview Support Scope.

7.1. Solve project-specific challenges

Configure Red Hat Developer Hub and Red Hat Developer Hub Intelligent Assistant to provide users with private, document-based AI workspaces.

Prerequisites

  • A deployed instance of RHDH.
  • By using the OpenShift CLI (oc), you have access, with developer permissions, to the OpenShift Container Platform cluster aimed at containing your Developer Hub instance.
  • A Lightspeed Stack service is running and accessible to the backend.
  • A supported large language model (LLM), such as Granite 7B or higher, is available.

Procedure

  1. Enable the notebook feature and define your model by adding the following configuration to your app-config.yaml file:

    intelligent-assistant:
      notebooks:
        enabled: true
        queryDefaults:
          model: ${NOTEBOOKS_QUERY_MODEL} # Use the exact model name
          provider_id: ${NOTEBOOKS_QUERY_PROVIDER_ID}
    Note

    If the model name is wrong, an error message is displayed in the logs and the user interface.

  2. Grant user access through role-based access control (RBAC) policies by defining permissions in your rbac-policy-csv file:

    1. Add the permission policies:

      p, role:default/<your_team_name>, intelligent-assistant.notebooks, use, allow
    2. Assign the role to specific users:

      g, user:default/<your_user_name>, role:default/<your_team_name>
  3. Apply the updated configuration and restart the service.

Verification

  1. Log in to RHDH using an account assigned to the RBAC role defined in the configuration.
  2. Confirm that the Notebooks tab is visible next to the Chat tab in the primary navigation bar.
  3. Click the Notebooks tab and ensure the My Notebooks dashboard loads without error messages.

7.2. Enable data persistence for Intelligent Assistant Notebooks

Notebook embeddings are stored in a FAISS vector store, which Intelligent Assistant persists to a SQLite file on disk. By default, that file lives on an ephemeral emptyDir volume, so the system clears it when the pod restarts or reschedules.

To retain Notebook documents and embeddings across restarts, move the FAISS store onto a Persistent Volume by pointing the notebooks vector store provider at a persistent mount and backing that mount with a Persistent Volume Claim (PVC). The store remains an on-disk FAISS file; only the volume behind it changes.

Important

Depending on your installation method, note the following constraints:

  • Helm chart: The notebooks vector store provider defaults to an ephemeral path. Moving the provider path to a custom PVC mount (like /var/lib/lightspeed-data) works, but alternatively, you can use the chart’s native runtimeVolume.type: persistentVolumeClaim configuration.
  • Operator: The Operator currently mounts configuration via annotated config maps and does not expose a PVC option. Modifying the deployment manifest manually (as shown in this procedure) is unsupported for Operator installs, as changes will be reverted during operator reconciliation.

Prerequisites

  • By using the OpenShift CLI (oc), you have access, with developer permissions, to the OpenShift Container Platform cluster that contains your Developer Hub instance.
  • You have authored and provisioned a custom config map for your deployment. For more information, see link:Provision your custom Red Hat Developer Hub configuration.
  • A Persistent Volume Claim (PVC) is provisioned in the namespace of your Intelligent Assistant deployment. You can use any name for the PVC. The examples in this procedure use intelligent-assistant-notebooks-pvc.

Procedure

  1. In your lightspeed-stack.yaml config map, point the notebooks vector store provider at a path on the persistent mount. The provider stays faiss, so the FAISS index continues to persist as an on-disk file:

    vector_store:
      default_provider: notebooks
      providers:
        - id: notebooks
          type: faiss
          embedding_model: nomic-ai/nomic-embed-text-v1.5
          embedding_dimension: 768
          config:
            path: /var/lib/lightspeed-data/vector_db/notebooks/faiss_store.db
  2. Update your deployment manifest to create the directory on the volume and mount the PVC into the Intelligent Assistant container. The config map mounts are already defined by the deployment and are unchanged:

    spec:
      template:
        spec:
          securityContext:
            fsGroup: 1000
          initContainers:
            - name: init-notebooks-storage
              image: registry.access.redhat.com/ubi9/ubi-minimal
              command:
                - sh
                - -c
                - mkdir -p /var/lib/lightspeed-data/vector_db/notebooks
              volumeMounts:
                - name: intelligent-assistant-notebooks
                  mountPath: /var/lib/lightspeed-data
          containers:
            - name: lightspeed-core
              volumeMounts:
                - name: intelligent-assistant-notebooks
                  mountPath: /var/lib/lightspeed-data
          volumes:
            - name: intelligent-assistant-notebooks
              persistentVolumeClaim:
                claimName: intelligent-assistant-notebooks-pvc
  3. Apply the updated configuration and restart the service.

Verification

  1. In Red Hat Developer Hub, create a Notebook and upload a test document.
  2. Send a message to the virtual assistant and verify that the response is based on the document.
  3. Restart the pod:

    $ oc delete pod <pod_name>
  4. After the pod recovers, refresh the My Notebooks dashboard.
  5. Verify that the Notebook and the uploaded file are still accessible.

Chapter 8. Get AI-assisted help for your development tasks

Use Red Hat Developer Hub Intelligent Assistant, a generative AI assistant in Red Hat Developer Hub (RHDH), to ask platform questions, analyze logs, generate code, and create test plans from a chat interface.

8.1. Prerequisites

  • Your platform engineer has configured the Developer Hub Intelligent Assistant service in your RHDH instance.

8.2. Enable query validation to block off-topic AI responses

Enable the question-validity shield to classify each prompt before Developer Hub Intelligent Assistant answers it, so that off-topic or harmful prompts never reach your answering model.

In RHDH 2.1, Developer Hub Intelligent Assistant validates prompts through a single question-validity shield that Lightspeed Core Service (LCORE) 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 Open GenAI Stack (OGX) 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 LCORE reads. When you enable the shield, LCORE sends each prompt to the validation model, which classifies the prompt as allowed or rejected.

Prerequisites

  • You have an inference provider configured and enabled in the inference.providers section of your lightspeed-stack.yaml file.
  • You can edit the Kubernetes Secret that supplies environment variables to the lightspeed-core container.

Procedure

  1. To enable query validation, add the following keys to the Secret that LCORE reads:

    stringData:
      ENABLE_VALIDATION: question_validity
      VALIDATION_PROVIDER: <provider_type>
      VALIDATION_MODEL_NAME: <model_name>

    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 RHDH 2.1.
    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.

    For example, to run classification on an openai provider with the gpt-4o-mini model, set the following values:

    stringData:
      ENABLE_VALIDATION: question_validity
      VALIDATION_PROVIDER: openai
      VALIDATION_MODEL_NAME: gpt-4o-mini
  2. To keep query validation disabled, leave ENABLE_VALIDATION unset, or set it to disabled:

    stringData:
      ENABLE_VALIDATION: __disabled__
    Important

    Running without query validation increases the risk of off-topic or harmful model output. Disable validation only in secure development environments.

  3. Apply the updated Secret, and then restart the LCORE service so that the container reads the new environment variables.

Verification

  1. Open the Intelligent Assistant and submit a development question, for example, How do I create a software template in RHDH?. Confirm that the assistant answers the question.
  2. 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.

8.3. Restrict the models available for selection

To control which models users can select in the chat dialog, define an allowlist for each inference provider in the lightspeed-stack.yaml file.

By default, the model selection dropdown menu lists every model that the configured inference provider exposes. To present users with only the functional, user-facing models that your organization approves, restrict this list with an allowlist.

Note

In Red Hat Developer Hub 2.1 and later, the large language models (LLMs) that you configure through your inference providers perform safety validation, so no dedicated safety model appears in the model selection dropdown menu. Embedding models are also excluded. Use allowed_models when you want to narrow the list further to a specific set of approved models.

Prerequisites

  • You have access to the lightspeed-stack.yaml configuration file for your deployment.

Procedure

  1. In the lightspeed-stack.yaml file, add the allowed_models field under extra for each inference provider, and list the models that you want to expose to users:

    inference:
      providers:
        - type: openai
          id: openai
          api_key_env: OPENAI_API_KEY
          extra:
            allowed_models:
              - gpt-4o-mini

    where:

    allowed_models
    The list of models that appear in the model selection dropdown menu for that provider. Models that you omit from this list are hidden from users.
  2. Apply the modified lightspeed-stack.yaml file by using a custom ConfigMap:

    For Operator-based deployments, map the ConfigMap in the extraFiles section of the Backstage custom resource.

    For Helm-based deployments, reference the ConfigMap in the values.yaml file.

  3. Apply the updated configuration to your cluster, and restart the deployment if it does not trigger an automatic rollout.

Verification

  1. Log in to your RHDH instance.
  2. Open the chat dialog and select the model selection dropdown menu.
  3. Confirm that the dropdown menu lists only the allowed models.

8.4. Best results for assistant queries

To resolve technical blockers and accelerate development tasks, you must structure your queries to give specific context to the AI assistant. Using precise prompts makes sure that Developer Hub Intelligent Assistant generates relevant code snippets, architectural advice, or platform-specific instructions.

Use the following strategies to improve the accuracy of the assistant’s output during your development workflow:

Specify technologies
Instead of asking "How do I use templates?", ask "How do I create a Software Template that scaffolds a Node.js service with a CI/CD pipeline".
Give context
Include details about your environment, such as "I am deploying to OpenShift; how do I set up my catalog-info.yaml to show pod health?".
Use conversation context
Ask follow-up questions to refine an earlier answer. For example, if the assistant gives a code snippet, you can ask "Now rewrite that using TypeScript interfaces."
Validate with citations
Check the provided documentation links and citations in the response to verify that the generated advice aligns with your organization’s official standards.
Improve assistant accuracy
Rate the utility of responses by selecting the Thumbs up or Thumbs down icons. This feedback helps tune the model for your organization’s specific requirements.
Important

To keep your data secure, do not include sensitive personal information, plain text credentials, or confidential business data in your queries.

8.5. AI response monitoring and context management

Developer Hub Intelligent Assistant provides features to track the AI reasoning process and keep the context of your development tasks.

Thinking cards
An expandable thinking card is displayed while the AI processes a query. A pulse animation indicates the reasoning phase. You can expand the card to view detailed reasoning or collapse it to minimize screen clutter.
Tool call transparency
An expandable card displays details for Model Context Protocol (MCP) tool calls, which you can use to monitor background processes.
Context-aware citations
Retrieval-Augmented Generation (RAG) citations appear only when the AI uses internal documentation. This makes sure that general knowledge responses remain concise.
Context preservation during model changes
When you select a different AI model, Developer Hub Intelligent Assistant starts a new conversation. This keeps your earlier chats available in your history.
Structural readability
The interface formats headings and bullet points automatically to make sure responses are scannable.

8.6. Manage chats

Manage your chat history and configuration in RHDH to organize your workspace, resume earlier tasks, or find past solutions.

Prerequisites

  • You have configured the Developer Hub Intelligent Assistant plugin in Red Hat Developer Hub.
  • You have logged in to the RHDH console.

Procedure

  1. Click the Open intelligent assistant floating action button (FAB) at the lower right of the screen to open the chat overlay.

    Developer Hub Intelligent Assistant button on the Developer Hub home page
  2. Optional: Configure the interface display and server settings:

    • Click the Chatbot options icon (⋮) in the header to open the options menu.

      Chat display options
    • In the Chatbot options menu, toggle Enable pinned chats or Disable pinned chats to show or hide the pinned chats. The system enables this option by default.
    • Available only if Model Context Protocol (MCP) is configured: In the Chatbot options menu, click MCP and Prompt Settings to manage Model Context Protocol connections.
    • In the Chatbot options menu, under Display mode, select any of the following views:

      • Overlay: A floating window is displayed over the current page content.

        Intelligent assistant overlay mode
      • Dock to window: A panel attaches to the right side of the screen. Activating this mode automatically closes the Quick start panel if it is already open.

        Intelligent assistant docked mode
      • Fullscreen: A dedicated page opens for intensive chat sessions. This mode displays a revised header containing the Developer Hub Intelligent Assistant icon and a horizontal tab bar, which replaces the previous main menu. Bookmark the URL in your browser to save a direct link to the chat interface.

        Intelligent assistant full-screen mode
  3. Start a chat or load an earlier session:

    • Enter a prompt: Type a query in the Enter a prompt for the intelligent assistant chat field and press Enter.
    • Use a sample: Click a prompt tile.
    • Change the AI model: Select a model from the model selector dropdown menu inside the prompt bar.

      Intelligent assistant chat AI model
    • Attach a file: Click the (+) icon on the left of the prompt bar to upload a .yaml, .json, or .txt file. Descriptive text clarifies the function of the icon.

      Intelligent assistant file attachment preview
    • Use voice: Click the Use microphone icon. The microphone and send buttons are located on the right side of the prompt bar.
    • Control AI generation: Use the control buttons on the right side of the prompt bar. Click the Send (>) button to submit queries, or click the Stop button to halt AI generation.

      Send button in the prompt bar
      Stop button in the prompt bar during AI generation
    • Resume a chat: Select a title from the Chats list.
  4. Organize your chat history:

    • Start a new topic: Click New chat to reset the assistant’s context. When the history panel is collapsed, click the New chat icon to create a new chat.

      Intelligent assistant new chat
      New chat icon to start a new chat when the history panel is collapsed
    • Search history: Enter a keyword in the Search field.
    • Rename a session: Click Options next to a chat title, select Rename, enter a new name in the Rename chat? dialog, and click Rename.

      Rename chat dialog
    • Pin a chat: Click Options next to a chat title and select Pin. The chat moves to the Pinned group.
    • Sort chats: Click the Sort control and choose a sorting criterion, such as Date (Newest first).

      Chat sorting options
    • Delete a chat: Click Options next to a chat title and select Delete.

      Delete chat option
    • Collapse or expand a category: Click a category header, such as Pinned, Saved prompts, or Recent, to collapse or expand that section of the chat history sidebar.
    • Expand or collapse the panel: Click the Expand/collapse icon to toggle the history panel.

      Expand chat option
      Collapse chat option
      Note

      The expanded panel is resizable up to a defined maximum width.

  5. Optional: To hide the interface, if you are in the Overlay or Dock to window mode, click the Close intelligent assistant FAB to hide the window. If you are in Fullscreen mode, revert to the other modes and click the Close intelligent assistant FAB. The system preserves your active query and history.

Verification

  1. The main window displays the active chat or selected history.
  2. The chat history list reflects renamed, pinned, or deleted entries.

8.7. Save and reuse chat prompts to avoid retyping

To reuse instructions that you enter frequently, save them as prompts in Developer Hub Intelligent Assistant and apply them in any chat session without retyping or pasting them. Saved prompts are private to your account and available across the overlay, docked, and fullscreen chat modes.

Prerequisites

  • You have configured the Developer Hub Intelligent Assistant plugin in Red Hat Developer Hub.
  • You have logged in to the RHDH console.

Procedure

  1. Click the Open intelligent assistant floating action button (FAB) at the lower right of the screen to open the chat overlay.
  2. Create a saved prompt:

    1. Click the Chatbot options icon (⋮) in the header and select MCP and Prompt Settings.

      Chatbot options menu in the header with MCP and Prompt Settings highlighted
    2. Click the Saved prompts tab.

      Empty Saved prompts tab with the New prompt button
    3. Click + New prompt.
    4. Enter a Title of 128 characters or fewer and a Prompt of 5,000 characters or fewer.

      New prompt form with Title and Prompt fields on the Saved prompts tab
    5. Click Save.

      Note

      By default, you can save up to 100 prompts. When you reach the limit, delete an existing prompt before you create a new one.

  3. Reuse a saved prompt from the Saved prompts section of the chat history sidebar or from the Saved prompts tab:

    Saved prompts tab and sidebar section with a prompt’s options menu open on Apply in input box, Send directly, and Delete
    • To insert the prompt into the message field so that you can review or edit it before sending, click the prompt, or select Apply in input box from the prompt’s options menu.

      Apply in input box selected in the prompt’s options menu, with the prompt inserted in the message field
    • To insert and submit the prompt immediately, select Send directly from the prompt’s options menu.

      Send directly option in the saved prompt options menu
    Note

    When the sidebar lists more than five saved prompts, click Show all to display the remaining prompts, or click Show less to collapse the list.

  4. Optional: To remove a saved prompt, select Delete from the prompt’s options menu, and then confirm the deletion. Deleting a saved prompt is permanent.

    Confirmation dialog for permanently deleting a saved prompt
  5. Optional: To open the Saved prompts settings directly, click the settings (gear) icon next to the Saved prompts section in the chat history sidebar.

    Saved prompts settings gear in the sidebar and the opened Saved prompts settings tab
  6. Optional: To show or hide the Saved prompts feature, click the Chatbot options icon (⋮) in the header and toggle Enable saved prompts or Disable saved prompts. Saved prompts are enabled by default. When you disable the feature, RHDH hides the Saved prompts section and excludes your saved prompts from the default prompts offered in a new chat.

Verification

  1. The Saved prompts tab displays the prompt count and your new prompt.
  2. Clicking or sending a saved prompt applies its content in the message field.
  3. Deleted prompts are removed from both the sidebar and the Saved prompts tab.

8.8. Build a private knowledge base with Developer Hub Intelligent Assistant Notebooks

Use Developer Hub Intelligent Assistant notebooks to create isolated research environments. These workspaces allow you to analyze project data securely by using a large language model (LLM) grounded in your specific documentation.

Important

Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.

For more information about the support scope of Red Hat Developer Preview features, see Developer Preview Support Scope.

8.8.1. Create isolated research workspaces

Organize your work into individual notebook sessions to keep research topics separate and private.

Notebook upload option

Procedure

  1. In the RHDH interface, click the Open intelligent assistant floating action button (FAB) at the lower right of the screen to open the chat overlay.
  2. In your Developer Hub Intelligent Assistant page, select the Notebooks tab.
  3. Click Create a new notebook to start a new workspace.

    The notebook opens with an empty resource panel. Use the display mode controls in the menu bar to switch between fullscreen, docked, and overlay modes. In overlay or docked mode, click the toggle icon to show or hide the resource panel, or click the collapse icon to minimize the current view.

    Note

    When you close a notebook, the system saves it if you edited the name or added resources. Otherwise, the system discards the unedited, empty notebook.

  4. Optional: To manage your workspaces, complete any of the following actions:

    • Rename: Click the notebook name to edit it inline. Click outside the field or press Enter to save, or press Escape to cancel. Alternatively, hover over the notebook card, click the More options icon, and select Rename.
    • Delete: Hover over the notebook card, click the More options icon, and select Delete.

      Notebook card More options menu showing Rename and Delete

Verification

  • Confirm the new notebook card appears on the My Notebooks dashboard. Each card displays the notebook name, the resource count (for example, "0 Resources", "1 Resource", or "5 Resources"), and the last updated date.

    My Notebooks dashboard showing available notebook cards

8.8.2. Provide project context to the AI

To receive answers tailored to your project, upload and manage relevant source material in your active session.

Prerequisites

  • The files that you add adhere to the following constraints:

    File limit
    You can add up to 10 files at a time. When this limit is reached, the drag-and-drop area is disabled and a tooltip indicates the limit.
    File size
    Individual files must be 25 MB or smaller.
    Notebook Capacity
    The total token count per session must not exceed 100k.
    Unsupported content
    Avoid scanned PDF images without text, audio, video, and general image files.
    Persistence requirement
    The internal SQL and KV stores must be mapped to a persistent backend to maintain the 100k token context across sessions.

Procedure

  1. Open a notebook card from the dashboard.
  2. Add resources by using one of the following methods:

    • In the sidebar, click Add (+).
    • In the main user interface, click Add a resource.
  3. In the Add resources modal, drag and drop files or click to browse. Supported formats are displayed as chips in the modal and include .txt, .log, .md, .pdf, .json, .yaml, and .yml.

    Notebook upload modal with file type chips

    If you add a file that exists in the notebook, the system highlights the duplicate and prompts you to select either Replace existing files or Ignore duplicated files.

    Notebook file exists
    Note

    A successful upload completes without a confirmation message. If an upload fails, an error notification describes the problem.

  4. Wait for the system to process and vectorize the files. This might take several seconds for larger PDFs.
  5. Optional: To manage resources in the sidebar, hover over a resource to display the More options icon. You can Rename or Delete a resource. To rename a resource, click its name to edit it inline, or select Rename from the menu.

    Resource More options menu showing Rename and Delete

Verification

  • Ensure the uploaded files appear in the Resources list in the sidebar.

8.8.3. Extract and verify document-based insights

After providing context, use the AI to perform reasoning across your files and verify the accuracy of the responses.

Intelligent assistant Notebook chat preview

Prerequisites

  • You have uploaded documents to the active chat session to establish context.

    Note

    If a notebook contains no resources, the message bar is inactive and displays the placeholder text Ask about your resources…​. Hovering over the inactive message bar displays the tooltip Select at least one loaded resource to start chatting. You cannot enter a query until you add at least one resource.

    Procedure

    1. Enter a question in the message bar at the bottom of the screen. The message bar includes a microphone icon for voice input. The Send button appears only after you enter text. To cancel an ongoing response, click the Stop button.

      Lightspeed notebook microphone icon
    2. Analyze the response. The AI identifies relationships across all uploaded documents in the session.
    3. To verify accuracy, click the Sources chip to open a popover listing the specific documents used to generate the answer. Each source displays its filename and file type icon.

      Sources popover listing the documents used to generate the AI response
    4. Manage your workflow by using the history panel in the sidebar to expand or collapse previous interactions.

Verification

  • Confirm that the Sources popover displays the correct filenames corresponding to the AI’s response.

Chapter 9. AI model evaluation data to select the right AI model

Use the Red Hat Developer Hub Intelligent Assistant evaluation framework to validate the performance, accuracy, and reliability of Developer Hub Intelligent Assistant.

With this automated toolset, you can measure how effectively various large language models (LLMs) answer questions based on Red Hat Developer Hub documentation.

Table 9.1. Components of the evaluation framework

ComponentDescription

Evaluation framework

Contains the core logic and scripts used to run evaluations.

Datasets

Includes the input files used to test the model.

Evaluation metrics integration

Provides scoring through various metrics, including Ragas, DeepEval, and custom metrics. Ragas is the primary metric used to validate Developer Hub Intelligent Assistant performance.

9.1. Configure the evaluation environment to validate model accuracy

Set up the evaluation environment to validate the performance and accuracy of Developer Hub Intelligent Assistant. Configure this evaluation to ensure the model correctly interprets documentation and provides dependable answers.

Important

Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.

For more information about the support scope of Red Hat Developer Preview features, see Developer Preview Support Scope.

By performing these evaluations, you minimize the risk of the model delivering incorrect or hallucinated information to users in production.

Prerequisites

  • Install uv for Python package management (Python 3.11 or later).

Procedure

  1. Clone the evaluation repository and navigate to the directory:

    git clone https://github.com/lightspeed-core/lightspeed-evaluation
    cd lightspeed-evaluation
  2. Synchronize the environment and install dependencies:

    uv sync
  3. Configure the environment variables for the judge LLM. You can create a .env file in the root directory or export the keys directly to your terminal.

    • If you use Gemini, you must set the Gemini API key:

      export GEMINI_API_KEY="your-google-api-key"
    • If you use OpenAI, you must set the OpenAI API key:

      export OPENAI_API_KEY="your-key"
  4. Optional: If you test with a live service, set your Developer Hub Intelligent Assistant service API key:

    export API_KEY="your-lightspeed-service-key"

Verification

  • Verify that the environment is synchronized and the virtual environment is active:

    uv run python --version

    The output must return Python 3.11 or later.

9.2. Prepare evaluation datasets to verify AI-generated responses

Prepare evaluation data sets to test the performance of Developer Hub Intelligent Assistant. You can use pre-generated AI data sets for specific Red Hat Developer Hub releases or generate custom AI data sets from your own documentation.

Prerequisites

  • You must clone the evaluation repository to your local machine.

Procedure

  1. Download pre-generated data sets: Use this method to test the performance of specific RHDH releases. These data sets are generated using Ragas testset generation for RAG.

    1. In your terminal, navigate to the /dataset folder in the evaluation repository.
    2. Locate the .evaluation_dataset_yaml files. These files are pre-configured for the evaluation tool.
    3. To test a historical release, switch to the corresponding branch.

      For example, to access the Red Hat Developer Hub 1.8 data set, switch to the 1.8 branch.

      Important

      The main branch contains work-in-progress (WIP) data sets. Avoid using this branch for stable evaluations.

  2. Generate custom data sets: Use this method to create a new test set from your own technical documentation.

    1. Generate a diverse set of question-and-answer (Q&A) pairs by following the Ragas test data generation documentation.
    2. Ensure your Q&A pairs match the required format by reviewing the evaluation data structure configuration.

Verification

  • Verify that your custom data set matches the required schema before you start the evaluation run.

9.3. Run performance tests to ensure AI response reliability

Use the evaluation framework to run performance tests in either static mode to evaluate pre-recorded responses or dynamic mode to call a live service.

These evaluations identify performance gaps, allow you to compare different large language models (LLMs), and ensure that Developer Hub Intelligent Assistant provides reliable information to users.

Prerequisites

Procedure

  1. Download the system.yaml configuration template from the repository.
  2. Configure the parameters in the system.yaml file based on your evaluation mode:

    FieldDescription

    llm

    Defines the judge LLM that scores the responses, such as gemini-2.5-pro.

    api.enabled

    Set to false for static mode to use pre-filled data. Set to true for dynamic mode to call a live service.

    api.api_base

    (Required for dynamic mode only) Provide the URL of your Developer Hub Intelligent Assistant service.

    api.endpoint_type

    Specify the service configuration type: streaming or query.

  3. Execute the evaluation by using the lightspeed-eval command:

    lightspeed-eval \
      --system-config config/system.yaml \
      --eval-data config/evaluation_data.yaml \
      --output-dir ./my_evaluation_results

Verification

  • Navigate to the specified output directory and verify that the generated reports contain the model performance scores.

9.4. Analyze evaluation results to identify performance gaps

Determine the performance of Developer Hub Intelligent Assistant and identify documentation areas that require model improvement by analyzing evaluation results in the repository. You can use these reports to compare performance across different large language models (LLMs) and topics.

Prerequisites

Procedure

  1. In the root of the repository, navigate to the version-specific folder within the /evaluation-result directory.
  2. Open the following files to evaluate performance:

    • Model Pass Rate: Compare the overall performance between different LLMs.
    • Topic Pass Rate: Identify performance trends and gaps within specific documentation areas.

Verification

  • Verify that the reports display data visualizations or metrics consistent with your recent evaluation run.

9.5. Evaluation metrics and historical data reference

Use the available metrics to evaluate the performance of Developer Hub Intelligent Assistant at the conversation turn level.

These metrics provide a standardized way to measure the accuracy and reliability of the generated responses and the retrieved content.

MetricDescription

Faithfulness

Measures how well the answer is derived solely from the retrieved context.

Context recall

Measures whether the retrieved context contains all information required to answer the question.

Context relevance

Verifies if the retrieved documentation chunks are relevant to the user query.

Context precision without reference

Measures the ratio of useful information within the retrieved documentation chunks.

Answer correctness

Compares the generated response against the expected ground-truth response. This custom metric is implemented in the evaluation tool.

9.6. Release report and historical data

Use the latest Q&A data set and evaluation results to monitor the current performance of Developer Hub Intelligent Assistant.

Access version-specific branches that contain the data sets and evaluation results required to track improvements or regressions across product releases.

Important

The main branch contains work-in-progress data for versions currently under development. For stable evaluations or historical tracking, you must switch to the branch associated with a specific release.

Release versionBranch nameData included

Latest stable

Most recent version branch

The current question and answer (Q&A) data set and evaluation results.

Historical

Previous version branches

Data sets and evaluation results for previous releases to track regressions.

Chapter 10. Appendix: LLM requirements

Review large language model (LLM) provider compatibility and system requirements for OpenAI, Red Hat OpenShift AI, vLLM, and Google Vertex AI to plan your Developer Hub Intelligent Assistant infrastructure deployment.

10.1. Large language model (LLM) requirements

To plan your Developer Hub Intelligent Assistant deployment, you must determine which compatible large language model (LLM) inference provider fits your infrastructure.

Developer Hub Intelligent Assistant operates on a Bring Your Own Model (BYOM) architecture. Because the service does not include a native model, you must connect a compatible inference provider during installation.

The underlying LCORE service integrates with platforms that support either the OpenAI API specification or the vLLM inference engine. Developer Hub Intelligent Assistant supports the following inference provider configurations:

  • OpenAI: Cloud-based inference services.
  • vLLM: Enterprise inference servers, which include models hosted on Red Hat OpenShift AI and Red Hat Enterprise Linux AI.
  • Google Vertex AI: Cloud-based inference services, which include Gemini models.

Developer Hub Intelligent Assistant supports only the inference providers that the underlying LCORE service supports.

The following table lists the inference providers Developer Hub Intelligent Assistant supports.

ProviderTypeSupported

OpenAI

Remote

Yes

Azure

Remote

Yes

Amazon Bedrock

Remote

Yes

Google Vertex AI

Remote

Yes

IBM watsonx

Remote

Yes

Red Hat OpenShift AI (vLLM)

Remote

Yes

Red Hat Enterprise Linux AI (RHAIIS/vLLM)

Remote

Yes

When configuring your deployment, you must account for the following provider behaviors:

  • Red Hat OpenShift AI routing: Because the configuration lacks an explicit Red Hat OpenShift AI provider option, you must route these deployments through the vLLM provider settings.
  • vLLM URL syntax: The vllm provider type communicates with endpoints that conform to the OpenAI API schema. You must manually append /v1 to the configured provider URL because the system does not add it automatically. This configuration also applies to other hosted, OpenAI-compliant inference providers.

Additional resources

10.2. OpenAI model integration for your deployment

Use OpenAI models to provide generative artificial intelligence (AI) inference services, such as GPT 5, for your Developer Hub Intelligent Assistant deployment.

The system connects directly to the OpenAI API platform to route user prompts and return model insights. To configure this large language model (LLM) provider, you must have an active API key generated from your OpenAI developer account.

10.3. vLLM model integration for high-throughput inference

Use the open-source vLLM high-throughput serving framework to optimize memory utilization and manage high volumes of concurrent requests for your Developer Hub Intelligent Assistant deployment.

The vLLM framework operates as an enterprise inference server that optimizes memory allocation to maximize the processing efficiency of large language models (LLMs). Integrating vLLM ensures that your environment maintains high performance and responsiveness under heavy concurrent user traffic.

Additional resources

10.4. Vertex AI integration for Gemini models

To use Gemini models with Developer Hub Intelligent Assistant, you can configure Google Cloud Vertex AI to act as your managed large language model (LLM) inference provider.

The underlying LCORE service connects to Vertex AI to access hosted Gemini models. This integration provides Developer Hub Intelligent Assistant with enterprise-grade language processing and chat assistance capabilities without requiring you to maintain a local inference server.

Additional resources

Chapter 11. Appendix: Manage user data security

Review data handling practices, feedback storage protocols, and model configuration architectures, such as the Bring Your Own Model approach, to evaluate and enforce information security standards for your organization.

11.1. Manage user data security

Review data routing and privacy practices to evaluate how Developer Hub Intelligent Assistant handles chat messages and operational information transmitted to large language model (LLM) providers.

Developer Hub Intelligent Assistant sends your chat messages directly to your configured large language model (LLM) provider. Because these messages can contain sensitive operational data regarding your cluster, users, or business environment, ensure that your provider compliance policies align with your organizational security standards.

Developer Hub Intelligent Assistant has limited capabilities to filter or redact the information you submit during user interactions. To mitigate data exposure risks, do not enter proprietary or confidential information into Developer Hub Intelligent Assistant. To encourage user compliance, Developer Hub Intelligent Assistant displays a mandatory warning at the start of each sessions, reminding users to omit personal or sensitive details.

11.2. User feedback collection

Review how Developer Hub Intelligent Assistant collects and isolates user feedback data within your cluster to manage local storage requirements and data privacy standards.

Developer Hub Intelligent Assistant saves user feedback submissions, including numerical ratings and text commentary, locally within the pod filesystem. Because Red Hat does not collect, access, or transmit this data, local platform administrators must manage and monitor these storage directories.

11.3. Bring Your Own Model integration

Review Bring Your Own Model (BYOM) requirements to select and integrate an OpenAI API-compatible inference service with Lightspeed Core Service.

Developer Hub Intelligent Assistant relies on a BYOM architecture that let you connect the Lightspeed Core Service (LCORE) layer to any OpenAI API-compatible inference platforms. To establish connection compatibility, your chosen inference service must satisfy the following technical criteria:

  • The service must conform to the OpenAI API specification for chat completions.
  • The host environment must match the specified infrastructure configuration and installation instructions.

Various commercial and open-source inference services support the OpenAI API specification. Because operational costs, performance metrics, and data security controls vary by provider, you must evaluate and test prospective platforms locally to select the service that best meets your organizational requirements.

Additional resources

11.4. Your compliance and data-sharing responsibility

Review compliance requirements and data-sharing responsibilities to ensure that user interactions with Developer Hub Intelligent Assistant align with your organization’s data privacy policies.

All data that users submit through prompts and responses within Developer Hub Intelligent Assistant is transmitted directly to your configured large language model (LLM) inference service. Platform administrators must ensure that these external data transfers comply with corporate security standards, governance frameworks, and local data protection policies.

Legal Notice

Copyright © 2026 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.