跳转至

部署 Rasa Pro 服务

本页介绍如何使用 Rasa Pro Helm Chart 部署 Rasa Pro 服务容器。

Rasa Pro 服务设置

安装 Rasa Pro 服务需要部署 docker 容器。容器可以部署在与 Rasa Pro 不同的环境中。两个部署都需要能够连接到同一个 Kafka 集群才能进行通信。

先决条件

Rasa Pro 服务部署需要连接到

  • Kafka 事件代理。
  • 数据仓库(例如 PostgreSQL)。

Kafka 部署应为生产部署。我们建议使用托管部署,例如使用 Amazon Managed Streaming for Apache Kafka

系统要求

最低硬件要求包括有关安装和使用 Rasa Pro 服务所需要求的信息。硬件要求取决于平均对话次数和预期工作量。你的确切需求可能更多,具体取决于你的工作量。

以下是建议的最低硬件配置:

  • CPU:2 vCPU
  • 内存:4 GB
  • 磁盘空间:10 GB

这些要求对应于 AWS 上的 t3.medium 实例类型。

许可证

运行 Rasa Pro 服务需要有效的许可证。你需要将许可证作为环境变量提供给服务。

使用 Rasa Pro Helm Chart 进行部署

先决条件

需要配置 Rasa Pro 以将数据流式传输到 Kafka。

Kafka 的配置应位于用于部署 Rasa Pro 的 values.ymlrasa.settings.endpoints.eventBroker 部分。它看起来像下面的示例:

rasa:
  settings:
    endpoints:
      eventBroker:
        enabled: true
        type: kafka
        security_protocol: SASL_SSL
        sasl_mechanism: SCRAM-SHA-512
        topic: rasa-assistant
        url: <KAFKA-BROKER-URL>
        sasl_username: <KAFKA-USERNAME>
        sasl_password: <KAFKA-PASSWORD>
        ssl_check_hostname: true
        ssl_cafile: /app/CAroot.pem

可以在 Kafka Event Broker 文档中找到不同安全协议和其他参数的配置示例。

更新 values.yml

指定镜像拉取密钥和许可证

values.yml 中指定镜像拉取密钥和 Rasa Pro 许可证,如下所示:

# -- rasaProLicense is license key for Rasa Pro Services.
rasaProLicense:
  # name of kubernetes secret
  secretName: rasapro-license
  secretKey: licensekey

启用 Rasa Pro 服务

通过更新 values.yml 使用 Rasa Pro Helm Chart 启用 Rasa Pro 服务,如下所示:

rasaProServices:
  enabled: true
  image:
    repository: "europe-west3-docker.pkg.dev/rasa-releases/rasa-pro/rasa-pro-services"
    # specify version in image tag
    tag: "3.2.0-latest"

通过环境变量进行配置

使用环境变量,配置 Rasa Pro 服务以从 Rasa Pro 发布事件的 Kafka 主题中使用。配置应添加到 values.yml 中的 rasaProServices.environmentVariables 中。

连接到安全的 Kafka 实例

可以通过在 Rasa Pro docker 容器上设置以下环境变量来配置与安全 Kafka 实例的连接:KAFKA_SASL_MECHANISMKAFKA_SASL_USERNAMEKAFKA_SASL_PASSWORDKAFKA_SECURITY_PROTOCOL。目前不支持使用 Kafka truststoreskeystores

使用 Kubernetes 密钥进行配置

要将 Kubernetes 密钥用于环境变量,可以像以下示例一样使用 secret 指定它:

RASA_ANALYTICS_DB_URL:
# this uses a kubernetes secret
  secret:
    name: analytics-db-url
    key: dburl

你的 values.yml 中的 Rasa Pro 服务部分将如下例所示:

rasaProServices:
  enabled: true
  image:
    repository: "europe-west3-docker.pkg.dev/rasa-releases/rasa-pro/rasa-pro-services"
    # specify version in image tag
    tag: "3.2.0-latest"
  environmentVariables:
    # Address of the Kafka broker.
    KAFKA_BROKER_ADDRESS:
      value: <KAFKA-BROKER-URL>
    # Topic Rasa Pro publishes events to and Rasa Pro consumes from
    KAFKA_TOPIC:
      value: rasa-assistant
    # URL of the data lake to store analytics data in
    RASA_ANALYTICS_DB_URL:
    # this uses a kubernetes secret
      secret:
        name: analytics-db-url
        key: dburl
    # Security protocol to use for communication with Kafka
    KAFKA_SECURITY_PROTOCOL:
      value: SASL_SSL
    # SASL mechanism to use for authentication.
    KAFKA_SASL_MECHANISM:
      value: SCRAM-SHA-512
    # Username for SASL authentication.
    KAFKA_SASL_USERNAME:
      secret:
        name: kafka-secrets
        key: username
    # Password for SASL authentication
    KAFKA_SASL_PASSWORD:
      secret:
        name: kafka-secrets
        key: password
    # Filepath for SSL CA Certificate that will be used to connect with Kafka
    KAFKA_SSL_CA_LOCATION:
      value: /app/CAroot.pem

使用 Helm 部署

要更新 Helm 部署,可以使用:

helm upgrade \
    --namespace <your namespace> \
    --values values.yml \
    <release name> \
    rasa-<version>.tgz

健康检查端点

Rasa Pro 服务在 /healthcheck 处启动健康检查端点。如果服务健康,端点将返回 200 状态代码。如果返回任何其他状态代码或端点无法访问,则服务不健康。

/healthcheck 的示例响应:

{
  "details": {
    "analytics-consumer": {
      "alive": 1,
      "isHealthy": true
    }
  },
  "isHealthy": true
}

升级版本

要升级到最新版本的 Rasa Pro 服务,必须遵循以下步骤:

  • 阅读有关重大更改的变更日志文档
  • 下载新的 docker 容器并运行它。

容器启动

请注意,容器可能需要一些时间才能启动,因为它在启动过程中运行数据库架构迁移。

如果迁移失败,容器将被关闭。

环境变量

有关可与 Rasa Pro 服务一起使用的环境变量的完整列表,请参阅环境变量文档。