概述¶
Rasa Pro 部署由各种组件组成。一些由 Rasa 提供,另一些由你开发,其中一些是需要配置的云服务。本页提供了一个图表,说明了所有这些组件及其交互方式。
下图概述了 Rasa Pro 架构。
动作服务器(自定义动作)¶
自定义动作用于实现 Rasa 对话机器人无法处理的业务逻辑。它们包括从数据库获取客户信息、查询 API 或调用外部服务等。
自定义动作可以通过 HTTP 或 gRPC 调用。Rasa 提供了 Rasa SDK,一个用于构建自定义动作的 Python SDK。更多详细信息请参阅 rasa 动作服务器文档。
云服务¶
部署的对话机器人依赖于你需要配置的多个先决条件云服务。
其中一些先决条件云服务是必需的(绿色),而其他则是可选的(黄色)。
强烈建议使用托管云服务,因为它们具有稳定性、性能和备份。每个云提供者都提供许多选项,下表仅列出了一些可用选项。
类型 | AWS | Azure | |
---|---|---|---|
模型存储 | Amazon S3 | Azure Blob Storage | Google Cloud Storage |
锁存储 | Amazon ElastiCache for Redis | Azure Cache for Redis | Memorystore for Redis |
追踪器存储 | Amazon RDS for PostgreSQL | Azure Database for PostgreSQL | Google Cloud SQL for PostgreSQL |
事件队列 | Amazon Managed Streaming for Apache Kafka (MSK) | Azure Kafka Service | Confluent Cloud on Google Cloud Platform |
密钥管理 | HashiCorp Vault on AWS | HashiCorp Vault on Azure | HashiCorp Vault with Google Cloud |
请注意,NLG 服务器是可选的云服务,你必须自行创建和部署。
接下来,你将看到每个云服务功能的简短描述。
模型存储¶
模型存储是存储经过训练的模型的云服务。初始化或重新启动时,Rasa Pro 将下载经过训练的模型并将其读入内存。
锁存储¶
当你遇到高负载场景,需要将 Rasa 服务器复制到多个实例时,需要使用锁存储。它确保即使有多个服务器,每个对话的消息也会按正确的顺序处理,不会有任何丢失或重叠。
追踪器存储¶
对话机器人的对话存储在追踪器存储中。
密钥管理¶
HashiCorp Vault 机密管理与 Rasa 集成,以安全地存储和管理敏感凭据。
NLG 服务器¶
Rasa 中的 NLG 服务器用于响应生成并将其与对话学习过程分开。使用 NLG 服务器的好处是,它允许动态生成响应,而无需重新训练对话机器人,通过将响应文本与训练数据分离来优化工作流。
事件队列(Kafka)¶
Rasa 中的 Kafka 事件代理用于将所有事件从 Rasa 服务器流式传输到 Kafka 主题,以实现强大、可扩展的消息处理和进一步处理。