跳转至

命令行界面

命令行界面(CLI)为你提供了易于记忆的常用任务命令。本页面描述了命令的行为以及需要传递的参数。

Cheat Sheet

以下命令与使用 Rasa 构建的所有对话机器人相关。

命令 效果
rasa init 使用示例训练数据、动作和配置文件创建一个新项目。
rasa train 根据你的 NLU 数据和故事训练一个模型,并保存至 ./models
rasa shell 加载训练好的模型并让你可以通过命令行与对话机器人交谈。
rasa run 使用训练好的模型启动服务。
rasa run actions 使用 Rasa SDK 启动一个动作服务。
rasa test e2e 运行与充当验收测试的动作服务器完全集成的端到端测试。
rasa inspect 开启 Rasa 检查。
rasa data split nlu 对 NLU 训练数据进行 80/20 切分。
rasa data validate 检查领域,NLU 和对话数据是否存在不一致。
rasa export 将对话从一个追踪器存储导出至一个事件代理。
rasa marker upload 将标记配置上传至分析数据流水线。
rasa license 显示许可证信息。
rasa -h 显示所有可用的命令。

以下命令仅用于构建基于 NLU 的对话机器人

命令 效果
rasa interactive 通过与你的对话机器人聊天来启动交互式学习会话以创建新的训练数据。
rasa visualize 生成故事的可视化表示。
rasa test 在任意以 test_ 开头的文件上测试训练好的 Rasa 模型。
rasa data split stories 对故事数据进行 80/20 切分。
rasa data convert 转换不同测试的训练数据。

以下命令仅用于 Rasa Studio。

命令 效果
rasa studio download 从 Rasa Studio 下载最新数据。
rasa studio train 使用来自 Rasa Studio 的数据训练对话机器人。
rasa studio upload 将你的意图和实体上传到 Rasa Studio。
rasa studio config 使用 Studio 配置更新 global.yml 文件。
rasa studio login 从 Rasa Studio 获取凭证。

注意

如果在 Windows 上遇到字符编码问题,例如:UnicodeEncodeError: 'charmap' codec can't encode character ... 或者终端无法正确显示彩色消息,请在要运行的命令前添加 winpty。例如,winpty rasa init 而不是 rasa init

日志级别

Rasa 可以生成不同级别的日志信息(例如:警告、信息、错误等)。使用 --verbose(与 -v 相同)或 --debug(与 -vv 相同)作为可选命令行参数来控制期望的日志级别。有关这些参数含义的更多解释,可以参见如下每个命令。

除了命令行参数外,还有若干环境变量可以用于更精细化地控制日志输出。通过这些环境变量,可以设置例如 Matplotlib、Pika 和 Kafka 外部库产生的日志。这些变量遵循 Python 标准日志级别。目前支持如下环境变量:

  1. LOG_LEVEL_LIBRARIES:这是一个用于配置 Rasa 所用主要库日志级别的通用环境变量。包括 Tensorflow,asyncio,APScheduler,SocketIO,Matplotlib,RabbitMQ,Kafka。
  2. LOG_LEVEL_MATPLOTLIB:这是一个专门用于配置 Matplotlib 日志级别的环境变量。
  3. LOG_LEVEL_RABBITMQ:这是一个专门用于配置 AMQP 库日志级别的环境变量,目前可以设置 aio_pikaaiormq 的日志级别。
  4. LOG_LEVEL_KAFKA:这是一个专门用于配置 kafka 日志级别的环境变量。
  5. LOG_LEVEL_PRESIDIO:这是一个专门用于配置 Presidio 日志级别的环境变量,目前可以设置 presidio_analyzerpresidio_anonymizer 的日志级别。
  6. LOG_LEVEL_FAKER:这是一个专门用于配置 Faker 日志级别的环境变量。

通用配置(LOG_LEVEL_LIBRARIES)的优先级相比于专用配置(LOG_LEVEL_MATPLOTLIBLOG_LEVEL_RABBITMQ 等)更低。命令行参数设置了最低级别的日志。这意味着可以与这些变量一同使用,例如:

LOG_LEVEL_LIBRARIES=ERROR LOG_LEVEL_MATPLOTLIB=WARNING LOG_LEVEL_KAFKA=DEBUG rasa shell --debug

上述命令会产生如下效果:

  • 默认处理比 DEBUG 级别更高的消息(由于 --debug
  • 对于 Matplotlib 库,处理比 WARNING 级别更高的消息
  • 对于 kafka,处理比 DEBUG 级别更高的消息
  • 对于其他未配置的库,处理比 ERROR 级别更高的消息

注意,命令行设置需要处理的最低级别日志消息,如下命令会将日志级别设置为 INFO(由于 --verbose),因此不会有任何调试信息展示(对库级别配置不会产生任何影响):

LOG_LEVEL_LIBRARIES=DEBUG LOG_LEVEL_MATPLOTLIB=DEBUG rasa shell --verbose

命令行日志级别设置了根日志的级别(它包含了重要的 coloredlogs 处理器)。这意味着即使环境变量设置一个库日志较低的日志级别,根日志也会拒绝来自该库的消息。如果没有指定,命令行日志级别将被设置为 INFO

LLM 组件日志级别

Rasa 通过环境变量指定的细粒度、可自定义的日志记录增强了对 LLM 组件调试过程的控制。

例如,设置 LOG_LEVEL_LLM 环境变量可以在所需级别为所有 LLM 组件启用详细日志记录,或者通过设置 LOG_LEVEL_LLM_ENTERPRISE_SEARCH 环境变量来指定正在调试的组件:

export LOG_LEVEL_LLM=INFO
export LOG_LEVEL_LLM_COMMAND_GENERATOR=INFO
export LOG_LEVEL_LLM_ENTERPRISE_SEARCH=DEBUG
export LOG_LEVEL_LLM_INTENTLESS_POLICY=INFO
export LOG_LEVEL_LLM_REPHRASER=INFO

这些设置会覆盖指定组件的日志记录级别。

LOG_LEVEL_LLM_COMMAND_GENERATOR 变量适用于所有类型的基于 LLM 的命令生成器

自定义日志配置

3.4 版本新特性

Rasa 命令行现在包含一个新参数 --logging-config-file,其接受一个 YAML 文件。

你可以在单独的 YAML 文件中配置任意日志格式化器和处理器。日志配置 YAML 文件必须遵循 Python 内置字典结构,否则将会验证失败。你可以将此文件作为参数传递给命令行的 --logging-config-file 参数,将其同任意 Rasa 命令一起使用。

自定义日志配置示例

以下示例说明如何使用 YAML 文件自定义日志配置。这里我们定义了一个自定义格式化器、一个用于根日志的流处理器和一个用于 rasa 日志的文件处理器。

version: 1
disable_existing_loggers: false
formatters:
    customFormatter:
        format: "{\"time\": \"%(asctime)s\", \"name\": \"[%(name)s]\", \"levelname\": \"%(levelname)s\", \"message\": \"%(message)s\"}"

handlers:
  console:
    class: logging.StreamHandler
    level: INFO
    formatter: customFormatter
    stream: ext://sys.stdout
  file:
    class: logging.FileHandler
    filename: "rasa_debug.log"
    level: DEBUG
    formatter: customFormatter

loggers:
  root:
    handlers: [console]
  rasa:
    handlers: [file]
    propagate: 0

信息

在 Rasa Pro 3.9 中,使用默认日志配置时,在调试模式下运行 rasa shellrasa interactive 可能会导致 BlockingIOError。此问题可以通过使用自定义日志配置文件来解决。如果遇到此问题,你可以使用上述示例创建自定义日志配置文件并将其传递给 --logging-config-file 参数。

rasa init

该命令将会利用一些示例训练数据来配置一个完整的对话机器人:

rasa init

这将创建如下文件:

.
├── actions
│   ├── __init__.py
│   └── actions.py
├── config.yml
├── credentials.yml
├── data
│   ├── nlu.yml
│   └── stories.yml
├── domain.yml
├── endpoints.yml
├── models
│   └── <timestamp>.tar.gz
└── tests
   └── test_stories.yml

会询问是否使用此数据训练初始模型,如果回答为否,则 models 目录将为空。

任何模型的命令行参数均需要这个项目设置,因此这是开始的最佳方式。无需任何额外的配置即可运行 rasa trainrasa shellrasa test 命令。

除了上述默认 NLU 模板外,Rasa 还提供了另外两个模板。这两个模板都是开始构建你自己的 CALM 对话机器人的好方法:

  • rasa init --template calm:生成一个带有自定义动作的 CALM 对话机器人来管理一个简单的联系人列表。
  • rasa init --template tutorial:生成 CALM 教程中使用的代码库。

rasa train

如下命令将会训练一个 Rasa 模型:

rasa train

如果在目录中已经存在模型(默认在 models/ 下),只有修改过的模型才会被重新训练。例如,如果你只修改了 NLU 训练数据,则只有 NLU 部分会被训练。

如果希望单独训练 NLU 或对话模型,需要运行 rasa train nlurasa train core。如果只为其中之一提供了训练数据,则 rasa train 将会默认回退到这些命令之一。

rasa train 会将模型存储在 --out 定义的目录中,默认为 models/。模型的默认名称为 <timestamp>.tar.gz。如果想以不同的方式命名模型,可以通过 --fixed-model-name 参数来指定名称。

默认情况下,在训练模型之前需要运行验证。如果想跳过验证,可以使用 --skip-validation。如果想在收到验证警告时失败,可以使用 --fail-on-validation-warnings--validation-max-history 类似于 rasa data validate 中的 --max-history 参数。

运行 rasa train --help 以查看完整的参数列表。

有关数据增强如何工作以及如果为参数设置值可以参阅数据增强部分。注意 TEDPilicy 是唯一受到数据增强影响的策略。

有关 --epoch-fraction 参数的更多信息,请参见如下有关增量训练的部分。

增量训练

2.2 版本新特性

此功能是实验性的。我们通过社区反馈引入了这一实验性功能,因此鼓励大家进行尝试。但是,相关功在未来可能会发生变更或删除。如果有任何正面或负面反馈,可以在Rasa 论坛上进行分享。

为了提高对话机器人的性能,践行 CDD 和根据用户与机器人交谈的方式增加新的训练样本会很有帮助。通过 rasa train --finetune 可以使用已训练的模型来初始化整个流,之后通过包含额外训练样本的新训练数据进行微调。这有助于减少训练新模型的时间。

默认情况下,命令会选择 models/ 目录中的最新模型。如果你希望改进特定的模型,则需要通过执行 rasa train --finetune <path to model to finetune> 来指定路径。微调模型通常在训练机器学习组件例如:DIETClassifierResponseSelectorTEDPolicy 时相比从头开始需要更少的时间。要么使用定义更少批次的模型微调配置,要么使用 --epoch-fraction 参数。在模型配置文件中,--epoch-fraction 会为每个机器学习组件指定部分批次。例如,训练 DIETClassifier 配置使用 100 个批次,指定 --epoch-fraction 0.5 将仅使用 50 个批次进行微调。

通过 rasa train nlu --finetunerasa train core --finetune 可以分别仅对 NLU 或对话管理模型进行微调。

为了能够对一个模型进行微调,必须满足如下条件:

  1. 用于训练模型的配置应该与用于微调模型的配置完全相同。唯一可以修改的参数就是用于各个机器学习组件和策略的 epochs
  2. 用于基础模型训练的标签集(意图、动作、实体和槽)应该与用于模型微调训练数据中的标签集完全相同。这意味着在进行增量训练的过程中不能添加新的意图、动作、实体或槽标签。可以为每个现有标签添加新的训练样本。如果在训练数据中添加或删除标签,则需要从头开始训练。
  3. 要微调的模型会使用当前安装版本 Rasa 的 MINIMUM_COMPATIBLE_VERSION 版本进行训练。

rasa interactive

通过如下命令可以开启一个交互式学习会话:

rasa interactive

这将首先训练一个模型,然后启动一个交互式 Shell 会话。之后随着同对话机器人的交谈可以对其预测进行不断修正。如果 UnexpecTEDIntentPolicy 包含在流中,则可以在任意对话抡次中触发 action_unlikely_intent,之后会显示:

The bot wants to run 'action_unlikely_intent' to indicate that the last user message was unexpected
at this point in the conversation. Check out UnexpecTEDIntentPolicy docs to learn more.

正如消息所述,这表示你尝试了一个不在当前的训练故事集预期的一个对话路径,因此建议将该路径添加到训练故事中。同其他对话机器人响应一样,你可以选择接受或拒绝此动作。

如果使用 --model 参数提供一个训练好的模型,则会跳过训练过程直接加载这个模型。

在交互式学习过程中,Rasa 将会可视化当前对话和训练数据中的一些相似对话,来帮助你追踪当前的进度。会话开始后,可以在 http://localhost:5005/visualization.html 中查看相关可视化。图表生成需要一些时间。运行 rasa interactive --skip-visualization 可以跳过可视化。

添加 3.5 版本中引入的 ASSISTANT_ID

在利用元数据不包含 assistant_id 的预训练模型运行交互式学习会出现错误并退出。如果发生这种情况,请在 config.yml 中添加具有唯一标示值的 assistant_id 并重新训练。

运行 rasa interactive --help 查看完整的参数列表。

rasa shell

运行如下命令可以启动一个聊天会话:

rasa shell

默认情况下会加载最新的训练模型。你也可以通过 --model 参数指定要加载的其他模型。

如果仅使用 NLU 模型启动 shell,rasa shell 将输出输入消息的预测意图和实体。

如果已经训练了一个组合 Rasa 模型,但你只想看模型从文本中提取的意图和实体,可以使用 rasa shell nlu

要提高调试的日志记录级别,可以运行:

rasa shell --debug

注意

为了在外部频道中查看问候语和会话起始行为,你可以通过显式发送 /session_start 作为第一条消息。否则,会话起始行为将按照会话配置中的描述开始。

如下参数可以用于配置此命令。大部分参数同 rasa run 相同。有关这些参数的更多信息,请参见如下部分

注意,在运行 rasa shell 时,--connector 参数将会始终被设置为 cmdline。这意味着 credentials 文件中的所有 credentials 都会被忽略,如果你为 --connector 参数指定了值,也将被忽略。

运行 rasa shell --help 查看完整的参数列表。

rasa run

运行如下命令可以为训练好的模型启动一个服务:

rasa run

默认情况下,Rasa 服务使用 HTTP 进行通信。要使用 SSL 加密通讯并在 HTTPS 上运行服务,你需要提供一个有效的证书和对应的私钥文件。可以在 rasa run 命令中指定这些文件。如果在创建密钥文件过程中使用密码进行了加密,则还需要添加 --ssl-passowrd 参数。

rasa run --ssl-certificate myssl.crt --ssl-keyfile myssl.key --ssl-password mypassword

Rasa 模型监听每个可用的网络接口。通过 -i 命令行参数可以将其限制为特定的网络接口。

rasa run -i 192.168.69.150

Rasa 默认会连接到 credentials 文件中指定的所有频道。在 --connector 参数中指定频道的名称,可以仅连接一个频道并忽略 credentials 文件中的所有频道。

rasa run --connector rest

频道的名称需要同 credentials 文件中指定的名称相匹配。关于支持的频道请参见消息和语音频道

运行 rasa run --help 查看完整的参数列表。

有关重要附加参数的更多信息,请参阅模型存储

请参阅 Rasa REST API 页面以获取所有 API 的详细文档。

rasa run actions

运行如下命令可以使用 Rasa SDK 启动动作服务:

rasa run actions

运行 rasa run actions --help 查看完整的参数列表。

rasa visualize

运行如下命令可以在浏览器中可视化故事:

rasa visualize

如果故事存储于默认位置 data/ 以外的位置,可以通过 --stories 指定它们的位置。

运行 rasa visualize --help 查看完整的参数列表。

rasa test

运行如下命令可以利用测试数据评估模型:

rasa test

这会在以 text_ 开头的文件中定义的故事上端到端的测试最新训练的模型。通过指定 --model 参数可以选择一个不同的模型。

如果想要分开评估对话和 NLU 模型,可以运行如下命令:

rasa test core

rasa rest nlu

你可以在评估 NLU 模型评估对话管理模型中找到有关每种测试类型参数的更多信息。

运行 rasa test --help 查看完整的参数列表。

rasa test e2e

3.5 版本新特性

你现在可以使用端到端测试来整体测试对话机器人,包括对话管理和自定义动作。

要对训练好的模型运行端到端测试,请运行:

rasa test e2e

这将在任何端到端测试用例上测试最新训练的模型。如果想使用其他模型,可以使用 --model 参数指定它。

3.10 版本新特性

通过添加 --coverage-report 标志,你可以获得一份报告,该报告描述了端到端测试如何很好地覆盖对话机器人的流(就每个流测试的步骤共享而言)。该报告包含测试命令的直方图,并允许你使用 --coverage-output-path 标志指定输出路径。

此功能目前以测试版发布。该功能将来可能会发生变化。如果你想启用此测试版功能,请设置环境变量 RASA_PRO_BETA_FINE_TUNING_RECIPE=true

运行 rasa test e2e --help 查看完整的参数列表。

rasa llm finetune prepare-data

3.10 版本新特性

此命令是从版本 3.10.0 开始提供的微调的一部分。由于此功能是测试版功能,请将环境变量 RASA_PRO_BETA_FINETUNING_RECIPE 设置为 true 以启用它。

此命令创建来自 E2E 测试的提示到命令对的数据集,可用于微调命令生成任务的基础模型。要执行命令,请运行:

rasa llm finetune prepare-data <path-to-e2e-test-cases>

以下是一些可用参数:

positional arguments:
  path-to-e2e-test-cases
                        Input file or folder containing end-to-end test cases. (default: e2e_tests)

options:
  -o OUT, --out OUT     The output folder to store the data to. (default: output)
  -m MODEL, --model MODEL
                        Path to a trained Rasa model. If a directory is specified, it will use the latest model in this directory. (default: models)

Rephrasing Module:

  --num-rephrases  {0, ..., 49}
                        Number of rephrases to be generated per user utterance. (default: 10)
  --rephrase-config REPHRASE_CONFIG
                        Path to config file that contains the configuration of the rephrasing module. (default: None)

Train/Test Split Module:
  --train-frac TRAIN_FRAC
                        The amount of data that should go into the training dataset. The value should be >0.0 and <=1.0. (default: 0.8)
  --output-format [{instruction,conversational}]
                        Format of the output file. (default: instruction)

运行 rasa finetune prepare-data --help 查看完整的参数列表。

rasa inspect

3.7 版本新特性

此命令是 Rasa 的新语言模型(CALM)对话式 AI 的一部分,从 3.7.0 版本开始可用。

打开 Rasa Inspector,这是一个调试工具,可让开发人员深入了解 Rasa 对话机器人的对话机制。

运行 rasa inspect --help 查看完整的参数列表。

rasa data split

运行如下命令可以对 NLU 训练数据进行拆分:

rasa data split nlu

默认情况下,这将对数据进行 80/20 拆分为训练集和测试集。运行 rasa data split nlu --help 查看完整的参数列表。

如果有用于检索动作的 NLG 数据,则会将其保存到单独的文件中:

ls train_test_split

      nlg_test_data.yml     test_data.yml
      nlg_training_data.yml training_data.yml

运行如下命令可以对故事数据进行拆分:

rasa data split stories

其与 split nlu 命令具有相同的参数,但会加载故事的 yaml 文件并进行随机拆分。目录 train_test_split 将处理后的前缀位 train_ 的训练部分或前缀为 test_ 的测试部分的所有 yaml 文件。

rasa data convert nlu

你可以将 NLU 数据从:

  • LUIS 数据格式
  • WIT 数据格式
  • Dialogflow 数据格式
  • JSON

转换为:

  • YAML
  • JSON

通过如下命令可以执行转换:

rasa data convert nlu

如下参数可以指定输入文件或目录、输出文件或目录和输出格式。运行 rasa data convert nlu --help 查看完整的参数列表。

rasa data migrate

领域是唯一在 2.0 和 3.0 版本之间发生格式改变的数据。你可以自动将 2.0 版本的领域迁移到 3.0 版本格式。

运行如下命令可以执行迁移:

rasa data migrate

如下参数可以指定输入文件或目录、输出文件或目录:

rasa data migrate -d DOMAIN --out OUT_PATH

如果没有指定参数,则默认领域路径(domain.yml)将用于输入和输出文件。

此命令还会将 2.0 版本的领域文件备份到不同的 original_domain.yml 文件或标有 original_domain 的目录中。

请注意,如果这些槽是表单 required_slots 的一部分,则迁移领域中的槽将包含映射条件

警告

当领域文件无效或已经为 3.0 版本格式时,当槽或表单分布在多个领域文件中且原始文件中缺少槽或表单时,迁移过程会终止并触发异常。这样做是为了避免在领域文件中出现重复的迁移部分。请确保所有槽或表单的定义都被整合到一个文件中。

运行如下命令可以了解该命令的更多信息:

rasa data migrate --help

rasa data validate

你可以检查领域、NLU 和故事数据是否存在错误或不一致。运行如下命令可以验证数据:

rasa data validate

校验器会在数据中搜寻错误,例如:两个意图具有一些相同的训练样本。校验器也会检查是否存不同的对话响应来自相同的对话历史的故事。故事之间的冲突会阻碍模型学习正确的对话模式。要了解有关验证器对流执行的检查的更多信息,请继续阅读下一部分

搜索 3.5 版本中引入的 ASSISTANT_ID

验证器会检查配置文件中是否存在 assistant_id 健,如果不存在或未修改默认值,则会发出警告。

如果在 config.yml 文件中对一个或多个策略提供了 max_history 的值,可以使用 --max-history <max_history> 参数为验证命令的提供对应的最小值。

验证流

验证器将对流执行以下检查:

  • 确定流名称或描述在删除标点符号后是否唯一。
  • 验证条件collect 步骤 rejections 中的逻辑表达式是否为有效的 pypred 表达式
  • 确定流中使用的槽是否在领域中定义。
  • 禁止在流 collect 步骤中使用 list 槽:CALM 仅支持在流中使用 intstringbool 类型的值填充槽。
  • 禁止在流中使用 dialogue_stack 内部槽。

对于每次失败,验证器都会记录错误并以退出代码 1 退出命令。

你只能通过运行以下命令来验证流:

rasa data validate flows

验证故事结构

你还可以通过运行以下命令仅验证故事结构:

rasa data validate stories

注意

运行 asa data validate 不会测试规则是否和故事一致。但是在训练期间,RulePolicy 会检查规则和故事之间的冲突。任何此类冲突都会终止训练。

此外,如果你使用端到端的故事,那么可能无法捕获所有冲突。例如,如果两个用户的输入有不同的分词但有相同特征,那么这些输入之后可能存在冲突动作且不会被工具报告。

使用 --fail-on-warnings 参数可以在诸如未使用的意图或动作之类的小问题时也中断验证。

检查故事名称

rasa data validate stories 命令假定所有故事的名称都是唯一的。

你可以使用如下附加参数运行 rasa data validate,例如:指定数据和领域文件的位置。运行 rasa data validate --help 查看完整的参数列表。

rasa export

运行如下命令可以使用事件代理从追踪存储中导出事件:

rasa export

你可以指定环境文件的位置、发布时间时间戳的最小值和最大值、以及发布的对话 ID。运行 rasa export --help 查看完整的参数列表。

将对话导入企业版 Rasa

此命令常用于将旧的对话导入企业版 Rasa 中并对其进行标注。可以在导入对话至企业版 Rasa中获取更多信息。

rasa markers upload

3.6 版本新特性

此命令从 Rasa Pro 3.6.0 开始可用,并且需要 Rasa Analytics Data Pipeline

此命令适用于标记及其实时处理。运行此命令将根据域文件验证标记配置文件,并将配置上传到 Analytics Data Pipeline。

运行 rasa markers upload --help 查看完整的参数列表。

rasa license

3.3 版本新特性

引入此命令。

使用 rasa license 显示有关 Rasa Pro 中的许可信息,尤其是有关第三方依赖许可的信息。

运行 rasa license --help 查看完整的参数列表。

rasa studio download

3.7 版本新特性

此命令从 Rasa Pro 3.7.0 开始可用,并且需要 Rasa Studio。

此命令从 Rasa Studio 下载数据并将其保存到 data 文件夹内的文件中。如果本地文件使用单个领域文件,则会相应地更新它。如果有领域文件夹,则领域更改将写入 <domain_folder>/studio_domain.yml

该命令下载 Studio 中可用但在本地文件中不可用的 Studio 数据。支持以下数据:

  • 配置
  • 端点
  • 流(用于 CALM 对话机器人)
  • 响应
  • 自定义动作声明
  • 意图
  • 实体

当原语具有与从 Rasa Studio 下载的原语相同的 ID 时,可以使用 --overwrite 参数覆盖现有文件中的现有数据。意图会得到特殊处理。特殊情况:

  • 如果本地文件中存在意图,但 Studio 本地缺少示例,则会下载这些示例。
  • 如果在下载 CALM 对话机器人期间存在本地 configendpoints 文件,则用户需要确认其覆盖意图,即使提供了 --overwrite 标志。

示例:

rasa studio download my_awesome_assistant -d my_domain_folder

运行 rasa studio download --help 查看完整的参数列表。

rasa studio train

3.7 版本新特性

此命令从 Rasa Pro 3.7.0 开始可用,并且需要 Rasa Studio。

此命令类似于 rasa train。此命令结合本地文件和 Rasa Studio 的数据来训练模型。如果 Studio 和本地文件都具有相同 ID 的原语,则使用本地数据进行训练。

运行 rasa studio train --help 查看完整的参数列表。

rasa studio upload

3.7 版本新特性

此命令从 Rasa Pro 3.7.0 开始可用,并且需要 Rasa Studio。

将对话机器人从本地文件上传到 Rasa Studio。

导入基于 NLU 的对话机器人

对于基于 NLU 的对话机器人,它将把意图和实体定义上传到 Rasa Studio 中 Rasa Studio 中的现有对话机器人。当未提供指定要上传哪些意图或实体的参数时,将上传所有意图和实体。上传意图时,也会上传该意图对话示例注释中使用的所有实体。

提示

目前,只有部分意图和实体可以上传到 Studio。以下实体无法上传:

  • 检索意图
  • 具有 entity_group 的实体
  • 具有 use_entitiesignore_entities 的意图
  • 具有 influence_conversation 的实体

示例:

rasa studio upload my_awesome_assistant

运行 rasa studio upload --help 查看完整的参数列表。

导入 CALM 对话机器人

要将 CALM 对话机器人上传到 Rasa Studio,请使用 --calm 参数运行此命令。

注意

上传 CALM 对话机器人时,将创建一个具有指定名称的新 Rasa Studio 对话机器人。这与基于 NLU 的对话机器人上传不同,后者将重用现有的 Rasa Studio 对话机器人。

示例:

rasa studio upload my_awesome_assistant --calm

可能的错误

对话机器人名称错误

包括以下内容:

  • Assistant name cannot be empty
  • Assistant with name <assistant_name> already exists
  • <assistant_name> is not a valid name

有效对话机器人名称的长度不得超过 128 个字符,并且不包含空格。

无效 YAML 错误

如果 YAML 文件结构出现问题,则会记录特定错误。例如,当动作、槽、响应、配置或流缺少必填字段时,你将看到这些错误。

示例:

Invalid domain: responses.utter_greeting.0.text: Required
Invalid flows: flows.transfer_money.description: Required

引用错误

如果流引用响应、槽、动作或其他流(带有链接步骤),则会记录以下错误:

Can't find <response/slot/action> utter_ask_add_contact_handle in domain
Can't find flow <flow_name> in flows

不支持的功能错误

Rasa Pro 中提供的功能并非全部都受 Rasa Studio 支持。尝试导入具有不支持功能的对话机器人将导致错误。要了解哪些版本的 Studio 支持你正在使用的 Rasa Pro 版本,请查看 Studio 兼容性矩阵

示例:

Flows with cycles are not supported, flow: <flow_name>
Comparing two slots is not supported. Condition: slots.recurrent_payment_end_date < slots.recurrent_payment_start_date
Having multiple rejections on one slot is not supported, collect: <slot_name>

身份验证错误

用户需要在上传前登录 Rasa Studio。使用 rasa studio login 命令。

rasa studio config

3.7 版本新特性

此命令从 Rasa Pro 3.7.0 开始可用,并且需要 Rasa Studio。

此命令提示输入 Rasa Studio 安装的参数,并在执行 rasa studio 命令时针对该 Rasa Studio 实例配置 rasa。配置保存到:$HOME/.config/rasa/global.yml

该命令将使用默认参数来配置身份验证服务器(领域名称、客户端 ID 和身份验证 URL)。如果要使用不同的配置,可以通过运行 rasa studio config --advanced 来指定参数。

该命令将使用新配置覆盖现有配置文件。

示例:

rasa studio config

运行 rasa studio config --help 查看完整的参数列表。

rasa studio login

3.7 版本新特性

此命令从 Rasa Pro 3.7.0 开始可用,并且需要 Rasa Studio。

此命令用于从 Rasa Studio 检索访问令牌。所有其他 Studio 命令都使用此令牌与 Rasa Studio 进行身份验证。令牌保存到:$HOME/.config/rasa/studio_token.yaml

示例:

rasa studio login --username my_user_name --password my_password

运行 rasa studio login --help 查看完整的参数列表。

已弃用的命令

以下命令已弃用并将在未来版本中删除。

rasa evaluate markers

警告

此功能目前是实验性的,未来可能发生更改或删除。你可以在论坛中进行反馈,来帮助其变为生产可用。

如下命令将你在标记配置文件中定义的标记应用于存储在追踪存储中预先存在的对话,同时生成包含提取的标记和统计概要信息的 .csv 文件:

rasa evaluate markers all extracted_markers.csv

运行 rasa evaluate markers --help 查看完整的参数列表。