×

安装 OpenShift Lightspeed 运算符后,配置和部署 OpenShift Lightspeed 包含三个任务。首先,使用大型语言模型 (LLM) 提供商的凭据创建凭据密钥。接下来,创建运算符用来部署服务的 `OLSConfig` 自定义资源 (CR)。最后,验证 Lightspeed 服务是否正在运行。

这些说明假设您正在使用 `kubeadmin` 用户帐户安装 OpenShift Lightspeed。如果您使用的是具有 `cluster-admin` 权限的普通用户帐户,请阅读文档中讨论 RBAC 的部分。

使用 Web 控制台创建凭据密钥

创建一个与用于访问 LLM 提供商 API 的 API 令牌关联的文件。通常,您使用 API 令牌来验证您的 LLM 提供商。或者,Microsoft Azure 也支持使用 Microsoft Entra ID 进行身份验证。

先决条件
  • 您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您已登录到具有创建密钥以存储提供商令牌权限的用户帐户。

  • 您已安装 OpenShift Lightspeed 运算符。

步骤
  1. 单击 OpenShift Web 控制台右上角的**添加**。

  2. 将以下 YAML 内容粘贴到文本区域

    无论 LLM 提供商如何称呼访问详细信息,YAML 参数始终为 `apitoken`。

    LLM 提供商的凭据密钥
    apiVersion: v1
    kind: Secret
    metadata:
      name: credentials
      namespace: openshift-lightspeed
    type: Opaque
    stringData:
      apitoken: <your_api_token> (1)
    1 `apitoken` 未进行 `base64` 编码。
    IBM watsonx 的凭据密钥
    apiVersion: v1
    data:
      apitoken: <your_api_token>
    kind: Secret
    metadata:
      name: watsonx-api-keys
      namespace: openshift-lightspeed
    type: Opaque
    Microsoft Azure OpenAI 的凭据密钥
    apiVersion: v1
    data:
      apitoken: <your_api_token>
    kind: Secret
    metadata:
      name: azure-api-keys
      namespace: openshift-lightspeed
    type: Opaque

    或者,对于 Microsoft Azure OpenAI,您可以使用 Microsoft Entra ID 来验证您的 LLM 提供商。Microsoft Entra ID 用户必须为其 Microsoft Azure OpenAI 资源配置所需的权限。有关详细信息,请参阅 Microsoft 官方的 Cognitive Services OpenAI Contributor(Microsoft Azure OpenAI 服务文档)。

    Microsoft Entra ID 的凭据密钥
    apiVersion: v1
    data:
      client_id: <base64_encoded_client_id>
      client_secret: <base64_encoded_client_secret>
      tenant_id: <base64_encoded_tenant_id>
    kind: Secret
    metadata:
      name: azure-api-keys
      namespace: openshift-lightspeed
    type: Opaque
  3. 单击**创建**。

使用 Web 控制台创建 Lightspeed 自定义资源文件

自定义资源 (CR) 文件包含运算符用于部署 OpenShift Lightspeed 的信息。CR 文件的具体内容对于每个 LLM 提供商都是唯一的。选择与您的 LLM 提供商匹配的配置文件。

先决条件
  • 您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您已登录到具有创建集群范围 CR 文件权限的用户帐户。

  • 您已安装 OpenShift Lightspeed 运算符。

步骤
  1. 单击 OpenShift Web 控制台右上角的**添加**。

  2. 将您使用的 LLM 提供商的 YAML 内容粘贴到 Web 控制台的文本区域

    OpenAI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - name: myOpenai
            type: openai
            credentialsSecretRef:
              name: credentials
            url: https://api.openai.com/v1
            models:
              - name: gpt-3.5-turbo
      ols:
        defaultModel: gpt-3.5-turbo
        defaultProvider: myOpenai
    Red Hat Enterprise Linux AI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
        - credentialsSecretRef:
            name: openai-api-keys
          models:
          - name: models/granite-7b-redhat-lab
          name: rhelai
          type: rhelai_vllm
          url: <URL> (1)
      ols:
        defaultProvider: rhelai
        defaultModel: models/granite-7b-redhat-lab
    1 URL 终结点必须以 `v1` 结尾才有效。例如,`https://http://3.23.103.8:8000/v1`。
    Red Hat OpenShift AI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
        - credentialsSecretRef:
            name: openai-api-keys
          models:
          - name: granite-8b-code-instruct-128k
          name: red_hat_openshift_ai
          type: rhoai_vllm
          url: <url> (1)
      ols:
        defaultProvider: red_hat_openshift_ai
        defaultModel: granite-8b-code-instruct-128k
    1 URL 终结点必须以 `v1` 结尾才有效。例如,`https://granite-8b-code-instruct.my-domain.com:443/v1`。
    Microsoft Azure OpenAI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - credentialsSecretRef:
              name: credentials
            deploymentName: <azure_ai_deployment_name>
            models:
              - name: gpt-35-turbo-16k
            name: myAzure
            type: azure_openai
            url: <azure_ai_deployment_url>
      ols:
        defaultModel: gpt-35-turbo-16k
        defaultProvider: myAzure
    IBM watsonx CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - name: myWatsonx
            type: watsonx
            credentialsSecretRef:
              name: credentials
            url: <ibm_watsonx_deployment_name>
            projectId: <ibm_watsonx_project_id>
            models:
              - name: ibm/granite-13b-chat-v2
      ols:
        defaultModel: ibm/granite-13b-chat-v2
        defaultProvider: myWatsonx
  3. 单击**创建**。

使用 CLI 创建凭据密钥

创建一个与用于访问 LLM 提供商 API 的 API 令牌关联的文件。通常,您使用 API 令牌来验证您的 LLM 提供商。或者,Microsoft Azure 也支持使用 Microsoft Entra ID 进行身份验证。

先决条件
  • 您可以作为具有 `cluster-admin` 角色的用户访问 OpenShift CLI (oc)。或者,您已登录到具有创建密钥以存储提供商令牌权限的用户帐户。

  • 您已安装 OpenShift Lightspeed 运算符。

步骤
  1. 创建一个包含以下 YAML 内容的文件

    无论 LLM 提供商如何称呼访问详细信息,YAML 参数始终为 `apitoken`。

    LLM 提供商的凭据密钥
    apiVersion: v1
    kind: Secret
    metadata:
      name: credentials
      namespace: openshift-lightspeed
    type: Opaque
    stringData:
      apitoken: <your_api_token> (1)
    1 `apitoken` 未进行 `base64` 编码。
    IBM watsonx 的凭据密钥
    apiVersion: v1
    data:
      apitoken: <your_api_token>
    kind: Secret
    metadata:
      name: watsonx-api-keys
      namespace: openshift-lightspeed
    type: Opaque
    Microsoft Azure OpenAI 的凭据密钥
    apiVersion: v1
    data:
      apitoken: <your_api_token>
    kind: Secret
    metadata:
      name: azure-api-keys
      namespace: openshift-lightspeed
    type: Opaque

    或者,对于 Microsoft Azure OpenAI,您可以使用 Microsoft Entra ID 来验证您的 LLM 提供商。Microsoft Entra ID 用户必须为其 Microsoft Azure OpenAI 资源配置所需的权限。有关详细信息,请参阅 Microsoft 官方的 Cognitive Services OpenAI Contributor(Microsoft Azure OpenAI 服务文档)。

    Microsoft Entra ID 的凭据密钥
    apiVersion: v1
    data:
      client_id: <base64_encoded_client_id>
      client_secret: <base64_encoded_client_secret>
      tenant_id: <base64_encoded_tenant_id>
    kind: Secret
    metadata:
      name: azure-api-keys
      namespace: openshift-lightspeed
    type: Opaque
  2. 运行以下命令以创建密钥

    $ oc create -f /path/to/secret.yaml

使用 CLI 创建 Lightspeed 自定义资源文件

自定义资源 (CR) 文件包含运算符用于部署 OpenShift Lightspeed 的信息。CR 文件的具体内容对于每个 LLM 提供商都是唯一的。选择与您的 LLM 提供商匹配的配置文件。

先决条件
  • 您可以访问 OpenShift CLI (oc),并已以具有 `cluster-admin` 角色的用户身份登录。或者,您已登录到具有创建集群范围 CR 文件权限的用户帐户。

  • 您已安装 OpenShift Lightspeed 运算符。

步骤
  1. 创建一个包含您使用的 LLM 提供商的 YAML 内容的 `OLSConfig` 文件

    OpenAI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - name: myOpenai
            type: openai
            credentialsSecretRef:
              name: credentials
            url: https://api.openai.com/v1
            models:
              - name: gpt-3.5-turbo
      ols:
        defaultModel: gpt-3.5-turbo
        defaultProvider: myOpenai
    Red Hat Enterprise Linux AI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
        - credentialsSecretRef:
            name: openai-api-keys
          models:
          - name: models/granite-7b-redhat-lab
          name: rhelai
          type: rhelai_vllm
          url: <URL> (1)
      ols:
        defaultProvider: rhelai
        defaultModel: models/granite-7b-redhat-lab
    1 URL 终结点必须以 `v1` 结尾才有效。例如,`https://http://3.23.103.8:8000/v1`。
    Red Hat OpenShift AI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
        - credentialsSecretRef:
            name: openai-api-keys
          models:
          - name: granite-8b-code-instruct-128k
          name: red_hat_openshift_ai
          type: rhoai_vllm
          url: <url> (1)
      ols:
        defaultProvider: red_hat_openshift_ai
        defaultModel: granite-8b-code-instruct-128k
    1 URL 终结点必须以 `v1` 结尾才有效。例如,`https://granite-8b-code-instruct.my-domain.com:443/v1`。
    Microsoft Azure OpenAI CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - credentialsSecretRef:
              name: credentials
            deploymentName: <azure_ai_deployment_name>
            models:
              - name: gpt-35-turbo-16k
            name: myAzure
            type: azure_openai
            url: <azure_ai_deployment_url>
      ols:
        defaultModel: gpt-35-turbo-16k
        defaultProvider: myAzure
    IBM watsonx CR 文件
    apiVersion: ols.openshift.io/v1alpha1
    kind: OLSConfig
    metadata:
      name: cluster
    spec:
      llm:
        providers:
          - name: myWatsonx
            type: watsonx
            credentialsSecretRef:
              name: credentials
            url: <ibm_watsonx_deployment_name>
            projectId: <ibm_watsonx_project_id>
            models:
              - name: ibm/granite-13b-chat-v2
      ols:
        defaultModel: ibm/granite-13b-chat-v2
        defaultProvider: myWatsonx
  2. 运行以下命令

    $ oc create -f /path/to/config-cr.yaml

    运算符使用 YAML 配置文件中的信息部署 OpenShift Lightspeed。

验证 OpenShift Lightspeed 部署

部署 OpenShift Lightspeed 服务后,验证它是否正在运行。

先决条件
  • 您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。

  • 您可以访问 OpenShift CLI (oc)。

  • 您已安装 OpenShift Lightspeed 运算符。

  • 您已创建凭据密钥和 `OLSConfig` 自定义资源配置文件。

步骤
  1. 在 OpenShift Container Platform Web 控制台中,从窗格顶部的下拉列表中选择**开发者**透视图。

  2. 单击**项目**下拉列表。

  3. 启用切换开关以显示默认项目。

  4. 从列表中选择**openshift-lightspeed**。

  5. 单击**拓扑**。

    当 Lightspeed 图标周围的圆圈变为深蓝色时,该服务已准备就绪。

  6. 运行以下命令以验证 OpenShift Lightspeed 是否已准备就绪

    $ oc logs deployment/lightspeed-app-server -c lightspeed-service-api -n openshift-lightspeed | grep Uvicorn
    示例输出
    INFO: 	Uvicorn running on https://0.0.0.0:8443 (Press CTRL+C to quit)

关于 Lightspeed 和基于角色的访问控制 (RBAC)

基于角色的访问控制 (RBAC) 是一种系统安全方法,用于将系统访问权限限制为具有已定义角色和权限的授权用户。

OpenShift Lightspeed RBAC 是二进制的。默认情况下,并非所有集群用户都可以访问 OpenShift Lightspeed 接口。访问权限必须由具有授予权限的用户授予。安装了 OpenShift Lightspeed 的 OpenShift 集群的所有用户都可以看到 Lightspeed 按钮;但是,只有具有权限的用户才能向 Lightspeed 提交问题。

如果您想评估 OpenShift Lightspeed 的 RBAC 功能,您的集群将需要除kubeadmin帐户以外的用户。kubeadmin帐户始终可以访问 OpenShift Lightspeed。

授予单个用户访问权限

此过程说明如何授予单个用户访问权限。

先决条件
  • 您已以具有cluster-admin角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您可以以具有授予权限能力的用户身份登录。

  • 您已部署 OpenShift Lightspeed 服务。

  • 您可以访问 OpenShift CLI (oc)。

步骤
  1. 在命令行运行以下命令

    $ oc adm policy add-cluster-role-to-user \
    lightspeed-operator-query-access <user_name>

    或者,您可以使用 YAML 文件,通过运行以下命令来授予单个用户访问权限

    $ oc adm policy add-cluster-role-to-user lightspeed-operator-query-access <user_name> -o yaml --dry-run

    终端返回以下输出

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      creationTimestamp: null
      name: lightspeed-operator-query-access
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: lightspeed-operator-query-access
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: <user_name> (1)
    1 在创建对象之前,请将实际用户名替换为<user_name>

    将输出保存为 YAML 文件,然后运行以下命令以授予用户访问权限

    $ oc create -f <yaml_filename>

授予用户组访问权限

此过程说明如何授予用户组访问权限。如果您的集群配置了更高级的身份管理,包括用户组,您可以授予特定组的所有用户对 OpenShift Lightspeed 服务的访问权限。

先决条件
  • 您已以具有cluster-admin角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您可以以具有授予权限能力的用户身份登录。

  • 您已部署 OpenShift Lightspeed 服务。

  • 您可以访问 OpenShift CLI (oc)。

步骤
  1. 在命令行运行以下命令

    $ oc adm policy add-cluster-role-to-group \
    lightspeed-operator-query-access <group_name>

    或者,您可以使用 YAML 文件,通过运行以下命令来授予用户组访问权限

    $ oc adm policy add-cluster-role-to-group lightspeed-operator-query-access <group_name> -o yaml --dry-run

    终端返回以下输出

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      creationTimestamp: null
      name: lightspeed-operator-query-access
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: lightspeed-operator-query-access
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: Group
      name: <user_group> (1)
    1 在创建对象之前,请将实际用户组替换为<user_group>

    将输出保存为 YAML 文件,然后运行以下命令以授予用户组访问权限

    $ oc create -f <yaml_filename>

信息过滤和脱敏

您可以配置 OpenShift Lightspeed 来过滤或脱敏发送到 LLM 提供商的信息。以下示例显示如何修改OLSConfig文件以脱敏 IP 地址。

您应该针对示例数据测试您的正则表达式,以确认它们是否捕获了您想要过滤或脱敏的信息,以及它们是否意外捕获了您不想过滤或脱敏的信息。您可以使用多个第三方网站来测试您的正则表达式。使用第三方网站时,您应该注意保护您的私人数据。或者,您可以使用 Python 在本地测试正则表达式。在 Python 中,可以设计计算成本非常高的正则表达式。使用多个复杂的表达式作为查询过滤器可能会对 OpenShift Lightspeed 的性能产生不利影响。

先决条件
  • 您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。

  • 您可以访问 OpenShift CLI (oc)。

  • 您已安装 OpenShift Lightspeed Operator 并部署了 OpenShift Lightspeed 服务。

步骤
  1. 修改OLSConfig文件并为每个要过滤的正则表达式创建一个条目。以下示例脱敏 IP 地址

    示例自定义资源文件
    spec:
      ols:
        queryFilters:
          - name: ip-address
            pattern: '((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}'
            replaceWith: <IP_ADDRESS>
  2. 运行以下命令以应用修改后的 OpenShift Lightspeed 自定义配置

    $ oc apply -f OLSConfig.yaml