apiVersion: v1
kind: Secret
metadata:
name: credentials
namespace: openshift-lightspeed
type: Opaque
stringData:
apitoken: <your_api_token> (1)
安装 OpenShift Lightspeed 运算符后,配置和部署 OpenShift Lightspeed 包含三个任务。首先,使用大型语言模型 (LLM) 提供商的凭据创建凭据密钥。接下来,创建运算符用来部署服务的 `OLSConfig` 自定义资源 (CR)。最后,验证 Lightspeed 服务是否正在运行。
这些说明假设您正在使用 `kubeadmin` 用户帐户安装 OpenShift Lightspeed。如果您使用的是具有 `cluster-admin` 权限的普通用户帐户,请阅读文档中讨论 RBAC 的部分。 |
创建一个与用于访问 LLM 提供商 API 的 API 令牌关联的文件。通常,您使用 API 令牌来验证您的 LLM 提供商。或者,Microsoft Azure 也支持使用 Microsoft Entra ID 进行身份验证。
您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您已登录到具有创建密钥以存储提供商令牌权限的用户帐户。
您已安装 OpenShift Lightspeed 运算符。
单击 OpenShift Web 控制台右上角的**添加**。
将以下 YAML 内容粘贴到文本区域
无论 LLM 提供商如何称呼访问详细信息,YAML 参数始终为 `apitoken`。 |
apiVersion: v1
kind: Secret
metadata:
name: credentials
namespace: openshift-lightspeed
type: Opaque
stringData:
apitoken: <your_api_token> (1)
1 | `apitoken` 未进行 `base64` 编码。 |
apiVersion: v1
data:
apitoken: <your_api_token>
kind: Secret
metadata:
name: watsonx-api-keys
namespace: openshift-lightspeed
type: Opaque
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 服务文档)。
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
单击**创建**。
自定义资源 (CR) 文件包含运算符用于部署 OpenShift Lightspeed 的信息。CR 文件的具体内容对于每个 LLM 提供商都是唯一的。选择与您的 LLM 提供商匹配的配置文件。
您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。或者,您已登录到具有创建集群范围 CR 文件权限的用户帐户。
您已安装 OpenShift Lightspeed 运算符。
单击 OpenShift Web 控制台右上角的**添加**。
将您使用的 LLM 提供商的 YAML 内容粘贴到 Web 控制台的文本区域
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
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`。 |
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`。 |
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
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
单击**创建**。
创建一个与用于访问 LLM 提供商 API 的 API 令牌关联的文件。通常,您使用 API 令牌来验证您的 LLM 提供商。或者,Microsoft Azure 也支持使用 Microsoft Entra ID 进行身份验证。
您可以作为具有 `cluster-admin` 角色的用户访问 OpenShift CLI (oc)。或者,您已登录到具有创建密钥以存储提供商令牌权限的用户帐户。
您已安装 OpenShift Lightspeed 运算符。
创建一个包含以下 YAML 内容的文件
无论 LLM 提供商如何称呼访问详细信息,YAML 参数始终为 `apitoken`。 |
apiVersion: v1
kind: Secret
metadata:
name: credentials
namespace: openshift-lightspeed
type: Opaque
stringData:
apitoken: <your_api_token> (1)
1 | `apitoken` 未进行 `base64` 编码。 |
apiVersion: v1
data:
apitoken: <your_api_token>
kind: Secret
metadata:
name: watsonx-api-keys
namespace: openshift-lightspeed
type: Opaque
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 服务文档)。
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
运行以下命令以创建密钥
$ oc create -f /path/to/secret.yaml
自定义资源 (CR) 文件包含运算符用于部署 OpenShift Lightspeed 的信息。CR 文件的具体内容对于每个 LLM 提供商都是唯一的。选择与您的 LLM 提供商匹配的配置文件。
您可以访问 OpenShift CLI (oc),并已以具有 `cluster-admin` 角色的用户身份登录。或者,您已登录到具有创建集群范围 CR 文件权限的用户帐户。
您已安装 OpenShift Lightspeed 运算符。
创建一个包含您使用的 LLM 提供商的 YAML 内容的 `OLSConfig` 文件
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
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`。 |
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`。 |
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
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
运行以下命令
$ oc create -f /path/to/config-cr.yaml
运算符使用 YAML 配置文件中的信息部署 OpenShift Lightspeed。
部署 OpenShift Lightspeed 服务后,验证它是否正在运行。
您已以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
您可以访问 OpenShift CLI (oc)。
您已安装 OpenShift Lightspeed 运算符。
您已创建凭据密钥和 `OLSConfig` 自定义资源配置文件。
在 OpenShift Container Platform Web 控制台中,从窗格顶部的下拉列表中选择**开发者**透视图。
单击**项目**下拉列表。
启用切换开关以显示默认项目。
从列表中选择**openshift-lightspeed**。
单击**拓扑**。
当 Lightspeed 图标周围的圆圈变为深蓝色时,该服务已准备就绪。
运行以下命令以验证 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)
基于角色的访问控制 (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)。
在命令行运行以下命令
$ 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)。
在命令行运行以下命令
$ 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 服务。
修改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>
运行以下命令以应用修改后的 OpenShift Lightspeed 自定义配置
$ oc apply -f OLSConfig.yaml