Rasa 提供了执行一些常用任务的命令行接口,下表为这些命令功能描述,并对一些命令做详细的解释。
命令 | 功能描述 |
---|---|
rasa init | 创建一个 Rasa 项目,包含样例训练数据、动作以及一些配置文件 |
rasa train | 使用 NLU 数据和故事训练模型,训练好的模型文件存放在项目下 models 文件夹中 |
rasa interactive | 开启一个交互式学习的 Session,并通过与机器人聊天创建新的训练数据 |
rasa shell | 加载预训练模型,你可以在命令行中与机器人进行对话 |
rasa run | 加载预训练模型,开启 Rasa Server,可以选择是否开启 API 接口 |
rasa run actions | 使用 Rasa SDK 开启动作(Action) Server |
rasa visualize | 将故事进行可视化展现 |
rasa test | 通过 tests 文件夹的前缀为 test_ 文件,对预训练模型进行测试 |
rasa data split nlu | 将 NLU 训练数据进行 8/2 划分 |
rasa data convert | 对不同格式的训练数据进行转换 |
rasa validate | 验证领域、NLU和对话数据是否一致 |
rasa export | 将存储中跟踪会话导出为事件代理 |
rasa x | 以本地模型启动 Rasa X |
rasa -h | 展示帮助文档 |
1. 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
在初始化过程中,Rasa 将会训练是否需要使用示例数据来训练一个初始化模型,如果回答 No
,那么 models 文件夹将是空的。
Rasa 所有的命令行接口都会要求这样的项目文件结构,所以使用 rasa init
来创建项目是最好的方式。此外,初始化项目之后,我们就可以直接使用 rasa train
、rasa shell
以及 rasa test
这些命令,而无须进行任何配置。
2. rasa train
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
core | 使用故事来训练 Rasa Core 模型 | |
nlu | 使用 NLU 数据来训练 Rasa NLU 模型 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—data | Core 和 NLU 数据文件的路径,默认为 ['data'] |
|
—config | -c | 机器人的 策略和 NLU 管道配置文件,默认为 config.yml |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
—out | 指定模型存储位置,默认为 models | |
—dry-run | 该参数如果启用,则不会执行实际的训练。相反地,它将决定一个模型是否需要重新训练,并将此信息打印输出。返回码是一个 4 位的掩码,用来决定具体什么需要重新训练: - 0:表示不需要大量训练,模型的更新仍需要运行 rasa train 命令- 1:表示模型需要重新训练 - 8:表示强制训练,必须使用 --force 参数,默认为 False |
|
—augmentation | 在训练过程中使用多少数据进行扩充,默认为 50 | |
—debug-plots | 如果开启的话,将会创建一个 story_blocks_connections.html 文件,用于显示检查点以及故事块之间连接的图 | |
—num-threads | 训练时所使用最大线程数 | |
—fix-model-name | 修改生成模型的名称 | |
—persist-nlu-data | 在保存的模型中保留 NLU 训练数据 | |
—force | 强制训练模型,即使数据未变化,也是如此。 | |
—finetune | 微调一个已经训练好的模型,如果没有指定模型的话,Rasa 将会使用 models 文件中最后一个模型 | |
—epoch-fraction | 在当前模型配置文件中指定微调模型时的 epochs 的比例,默认为 1.0 | |
Python 日志选项 | ||
—verbose | -v | 冗长的,将日志等级设置为 INFO,默认为 None |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG,默认为 None |
—quiet | 安静模式,将日志等级设置为 WARNING,默认为 None |
前面提到,rasa train
的作用是使用 NLU 数据和故事训练模型,训练好的模型文件默认存放在项目下 models 文件夹中,当然我们也可以通过定义 --out
参数来修改存储位置,所生成的模型文件名通常是 --fixed-model-name
参数,用来修正模型文件名。
如果 models 文件夹下已经存在模型,那么只有模型中已经更改的部分将会被重新训练。例如,如果你只修改了 NLU 训练数据,那么只有 NLU 的那部分会被重新训练。
rasa train
还有 nlu
和 core
位置两个参数,分别用于单独训练 NLU 或者对话模型。如果所提供的数据仅仅适用于其中一个,那么 rasa train
在默认情况下会回退到 rasa train core
或者 rasa train nlu
。
🔔
rasa train
会默认调用 GPU 训练,前提是 Nvida 和 Tensorflow GPU 版本都已经正常可用。
2.1 增量式学习
3. rasa interactive
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
core | 启动一个交互式学习的会话,并通过与机器人聊天为 Rasa Core 模型创建一些新的训练数据 | |
模型文件 | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—e2e | 以 e2e 格式保存故事文件,此格式下故事将包含用户消息。 | |
—port | -p | 服务器运行的端口,默认为 5005 |
—model | -m | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型,默认为 None 。 |
—data | Core 和 NLU 数据文件的路径,默认为 ['data'] |
|
—skip-visualization | 在交互式学习中关闭绘制可视化图标 | |
—conversation-id | 指定消息所在会话的 ID,默认是随机生成的 UUID | |
—endpoints | 模型 Server 和连接器的 YAML 配置文件,默认为 endpoints.yml | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING | |
训练参数 | ||
参数 | 简化参数 | 描述 |
—config | -c | 机器人的 策略和 NLU 管道配置文件,默认为 config.yml |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
—out | 指定模型存储位置,默认为 models。 | |
—augmentation | 在训练过程中使用多少数据进行扩充,默认为 50。 | |
—debug-plots | 如果开启的话,将会创建一个 story_blocks_connections.html 文件,用于显示检查点以及故事块之间连接的图 | |
—finetune | 微调一个已经训练好的模型,如果没有指定模型的话,Rasa 将会使用 models 文件中最后一个模型 | |
—epoch-fraction | 在当前模型配置文件中指定微调模型时的 epochs 的比例,默认为 1.0 | |
—force | 强制训练模型,即使数据未变化,也是如此。 | |
—persist-nlu-data | 在保存的模型中保留 NLU 训练数据。 |
前面我们介绍了,我们可以在开启 Rasa X 之后,就可以在 UI 界面中和机器人进行聊天。对于那些更喜欢命令行的小伙伴,可以通过执行 rasa interactive
来打开一个交互式学习的 Session。
只想 rasa interactive
之后,首先 Rasa 会帮我们训练出一个模型,并开启一个交互式的 Shell,当你在机器人交流过程中纠正它的预测。如果在 pipeline 包含了 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 将会跳过训练过程直接加载指定模型。
在交互式学习过程中,Rasa 将会根据训练数据绘制出当前对话和一些类似对话的表示图,以便你了解到你当前所处的位置。当会话开始时,我们就可以通过浏览 http://localhost:5005/visualization.html 来查看可视化图,该图的生成将会花费一定时间,如果需要跳过可视化过程,可以使用 rasa interactive --skip-visualization
。
4. rasa shell
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
nlu | 在命令行中,使用 NLU 模型解释消息 | |
模型文件 | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—conversation-id | 指定消息所在会话的 ID,默认是随机生成的 UUID | |
—model | -m | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型。 |
—log-file | 指定存储日志的文件 | |
—use-syslog | 将系统日志添加为日志处理器 | |
—syslog-address | 系统日志服务器的地址,必须结合 --use-syslog 使用,默认为 localhost |
|
—syslog-port | 系统日志服务器的端口,必须结合 --use-syslog 使用,默认为 514 |
|
—syslog-protocol | 系统日志服务器的协议,可以是 UDP 或者 TCP,默认为 UDP |
|
—endpoints | 模型 Server 和连接器的 YAML 配置文件,默认为 endpoints.yml | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING | |
服务器设置 | ||
参数 | 简化参数 | 描述 |
—interface | -i | 服务器运行的网络接口,默认为 0.0.0.0 |
—port | -p | 服务器运行的端口,默认为 5005 |
—auth-token | -t | 启用 token 认证后,请求需要提供携带 token 才会被接收 |
—cors | 对请求端启用 CORS,使用 * 则表示所有请求端都在白名单内 |
|
—enable-api | 除了输入通道外,启用 Web Server API | |
—response-timeout | 处理响应所需的最大时长,单位为秒,默认为 3600 | |
—remote-storage | 设置 Rasa model 远程存储地址,例如 AWS | |
—ssl-certificate | 设置 SSL 证书,用于创建受保护的 TLS 服务器 | |
—ssl-keyfile | 设置 SSL 密钥文件,用于创建受保护的 TLS 服务器 | |
—ssl-ca-file | 如果 SSL 证书需要验证,此参数可以指定 CA 文件 | |
—ssl-password | 如果 SSL 密钥文件受密码保护,此参数可用于传递文件密码 | |
通道 | ||
参数 | 简化参数 | 描述 |
—credentials | 使用连接器的身份验证凭据 YAML 文件 | |
—connector | 连接的服务 | |
JWT认证 | ||
参数 | 简化参数 | 描述 |
—jwt-secret | 非对称 JWT 方法的公钥,或者共享对称方法的密钥。请确保使用 --jwt-method 来选择签名的方式,否则该采参数将被忽略。注意,此参数旨在保护 HTTP API。 |
|
—jwt-method | 用于 JWT 认证负载的签名方式,默认为 HS256 |
rasa shell
用于开启一个聊天会话,默认情况下,它将加载最新的训练好的模型。当然,你也可以使用 --model
参数来指定需要加载的模型。
如果仅使用 NLU 模型的话,对于所输入的任何消息,那么 rasa shell
将会输出预测的意图和实体。
如果你已经训练一个 Rasa 组合模型,但是只想查看模型从文本中提取的意图和实体,那么可以使用 rasa shell nlu
。
5. rasa run
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
actions | 运行动作服务器 | |
模型文件 | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—model | -m | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型。 |
—log-file | 指定存储日志的文件 | |
—use-syslog | 将系统日志添加为日志处理器 | |
—syslog-address | 系统日志服务器的地址,必须结合 --use-syslog 使用,默认为 localhost |
|
—syslog-port | 系统日志服务器的端口,必须结合 --use-syslog 使用,默认为 514 |
|
—syslog-protocol | 系统日志服务器的协议,可以是 UDP 或者 TCP,默认为 UDP |
|
—endpoints | 模型 Server 和连接器的 YAML 配置文件,默认为 endpoints.yml | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING | |
服务器设置 | ||
参数 | 简化参数 | 描述 |
—interface | -i | 服务器运行的网络接口,默认为 0.0.0.0 |
—port | -p | 服务器运行的端口,默认为 5005 |
—auth-token | -t | 启用 token 认证后,请求需要提供携带 token 才会被接收 |
—cors | 对请求端启用 CORS,使用 * 则表示所有请求端都在白名单内 |
|
—enable-api | 除了输入通道外,启用 Web Server API | |
—response-timeout | 处理响应所需的最大时长,单位为秒,默认为 3600 | |
—remote-storage | 设置 Rasa model 远程存储地址,例如 AWS | |
—ssl-certificate | 设置 SSL 证书,用于创建受保护的 TLS 服务器 | |
—ssl-keyfile | 设置 SSL 密钥文件,用于创建受保护的 TLS 服务器 | |
—ssl-ca-file | 如果 SSL 证书需要验证,此参数可以指定 CA 文件 | |
—ssl-password | 如果 SSL 密钥文件受密码保护,此参数可用于传递文件密码 | |
通道 | ||
参数 | 简化参数 | 描述 |
—credentials | 使用连接器的身份验证凭据 YAML 文件 | |
—connector | 连接的服务 | |
JWT认证 | ||
参数 | 简化参数 | 描述 |
—jwt-secret | 非对称 JWT 方法的公钥,或者共享对称方法的密钥。请确保使用 --jwt-method 来选择签名的方式,否则该采参数将被忽略。注意,此参数旨在保护 HTTP API。 |
|
—jwt-method | 用于 JWT 认证负载的签名方式,默认为 HS256 |
6. rasa run actions
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—port | -p | 服务器运行的端口,默认为 5005 |
—cors | 对请求端启用 CORS,使用 * 则表示所有请求端都在白名单内 |
|
—actions | 需要加载动作库的名称 | |
—ssl-keyfile | 设置 SSL 密钥文件,用于创建受保护的 TLS 服务器 | |
—ssl-certificate | 设置 SSL 证书,用于创建受保护的 TLS 服务器 | |
—ssl-password | 如果 SSL 密钥文件受密码保护,此参数可用于传递文件密码 | |
—auto-reload | 对于包含子类的模块,启用自动重载 | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
运行 rasa run actions
将使用 Rasa SDK 开启一个 Action 服务器。
7. rasa visualize
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
—stories | -s | 包含故事的文件或文件夹 |
—out | 指定模型存储位置,默认为 graph.html。 | |
—max-history | 当在输出图中合并路径时,需要考虑的最大历史次数 | |
—nlu | -u | 包含 NLU 数据的文件或文件夹,用于在图中插入示例信息 |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
rasa visualize
用于将故事生成一个图,如果故事的路径是在默认位置 data 之外,我们可以使用 --stories
参数来指定其位置。
8. rasa test
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
core | 使用故事来训练 Rasa Core 模型 | |
nlu | 使用 NLU 数据来训练 Rasa NLU 模型 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—model | -m | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型。 |
—no-plot | 不要渲染评价图 | |
—successes | 开启后,成功预测的结果将会被写入文件 | |
—no-errors | 开启后,不正确的预测结果将不会被写入文件 | |
—no-warnings | 开启后,带有警告的预测结果将不会被写入文件 | |
—out | 指定模型存储位置,默认为 results。 | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING | |
Core测试参数 | ||
参数 | 简化参数 | 描述 |
—stories | -s | 包含故事的文件或文件夹 |
—max-history | 当在输出图中合并路径时,需要考虑的最大历史次数 | |
—endpoints | 模型 Server 和连接器的 YAML 配置文件,默认为 endpoints.yml | |
—fail-on-prediction-errors | 如果遇到预测错误,则会跑出异常,可用于在测试中验证故事 | |
—url | 如果提供该参数,则可以从 URL 下载故事文件以及进行训练,通过发送 GET 请求到所提供的 URL来获取数据 | |
—evaluate-model-directory | 对通过 rasa train core --config <config-1> <config-2> 训练出的模型进行评估时需要设置,在提供的文件夹下所有模型都会被评价和对比。 |
|
NLU测试参数 | ||
—nlu | -u | 包含 NLU 数据的文件或文件夹,用于在图中插入示例信息 |
—config | -c | 机器人的 策略和 NLU 管道配置文件,默认为 config.yml |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
9. rasa data split
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—nlu | -u | 包含 NLU 数据的文件或文件夹,用于在图中插入示例信息 |
—training-fraction | 划分训练集的比例 | |
—random-seed | 生成训练集和测试集的种子 | |
—out | 指定模型存储位置,默认为 train_test_split。 | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
使用 rasa data split nlu
可以将 NLU 训练数据分成训练集和测试集,默认情况下会按照 80/20 比例来切分训练集和测试集。除此之外,我们还可以指定训练数据、比例以及输出文件夹。
10. rasa data convert nlu
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—format | -f | 将训练数据转换后的输出格式,默认为 yaml |
—data | NLU 数据文件或文件夹的路径,默认为 ['data'] |
|
—out | 以 Rasa 格式保存的训练数据 JSON 文件或现有 YAML 路径 | |
—language | -l | 数据的语言,默认为 en |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
我们可以通过运行 rasa data convert nlu
来将 LUIS、WIT、Dialogflow 以及 JSON 格式的文件转换为 YAML 或 JSON 格式文件。
11. rasa data migrate
Rasa 2.0 和 3.0 最大的区别在于领域文件的格式,我们可以将 2.0 域文件迁移到 3.0 上。通过运行 rasa data migrate
来进行迁移,还可以指定输入(输出)文件或文件夹:
$ rasa data migrate -d DOMAIN --out OUT_PATH
如果没有指定参数,Rasa 则会使用默认的域文件 domain.yml,并且它会帮我们备份 2.0 域文件为 original_domain.yaml,如果是指定的是文件夹,则会生成 original_domain 文件夹。
值得注意的是,对于迁移的域文件中的插槽,如果这些插槽是表单中的 required_slots
,那么将会包含映射条件。
:::warning
🔔 注意
————
对于所提供的域文件,遇到以下条件时 Rasa 就会抛出异常且迁移过程会被中断
- 无效的域文件
- 域文件已经是 3.0 格式
- 原始域文件中缺少插槽和表单
- 插槽和表单分布在多个域文件中
这样做的目的在于避免域文件中迁移部分重复,请确保所有插槽和表单的定义被分组到单个文件中。 :::
12. rasa data validate
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—config | -c | 机器人的 策略和 NLU 管道配置文件,默认为 config.yml |
—fail-on-warning | 在验证失败时打印警告和错误,如果省略的话,只有在错误时返回非零的退出码 | |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
—data | NLU 数据文件或文件夹的路径,默认为 ['data'] |
|
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
rasa data validate
用于检查域、NLU 数据或者故事中的错误和不一致的地方。验证器将会在数据中搜索错误,例如,一些相同训练示例却有 2 个意图。同时。验证器还会检查故事中是否存在对于同一段度化历史,机器人采取了不同的动作。如果故事之间存在冲突,这将会阻碍模型学习对话的正确模式。
如果在 config.yml 文件中给一个或多个策略传递了max_history
值,那么请将这些值的最小值使用 --max-history <max_history>
传递给验证器。我们也可以使用 rasa data validate stories
来验证故事的结构。
如果对于未使用的意图或响应在验证时需要中断,就可以使用 --fail-on-warnings
。
:::info
💡 注意
———————————————
如果规则和故事是一致的,那么 rasa data validate
便不会测试。然而,RulePolicy
会在训练期间规则和故事之间的冲突。
如果使用端对端的故事,那么将可能不能捕获所有冲突。具体而言,如果两个用户输入在同样的特征化后却导致不同的 token,那么冲突的动作就会存在,但工具并不会报告这个问题。 :::
13. rasa export
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—endpoints | 指定跟踪器和事件代理的端点配置文件 | |
—minimum-timestamp | 需要导出事件的最小时间戳,该约束将被应用于大于比较 | |
—maximum-timestamp | 需要导出事件的最大时间戳,该约束将被应用于小于比较 | |
—conversation-ids | 以逗号间隔的对话 ID 列表,如果设置的话,所有可用对话 ID 都将被导出 | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
rasa export
使用事件代理器从跟踪器中导出事件,同时我们还可以指定环境文件的位置、事件的最大最小时间戳,以及对话 ID 的列表。
:::info
💡 将对话导入到Rasa X
———————————————
该命令常用于将老的对话导入到 Rasa X 中进行标注。
:::
14. rasa evaluate markers
位置参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
output_filename | 以 CSV 格式写入提取标注的文件名 | |
first_n | 按顺序选择 N 个跟踪器 | |
sample | 通过采样选择跟踪器 | |
all | 选择所有跟踪器 | |
可选参数 | ||
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—config | -c | 包含标记定义的 YAML 配置文件或者文件夹,文件中的内容将会被读取并合并到一起,默认为 markers.yml |
—no-stats | 不计算汇总统计信息 | |
—stats-file-prefix | 写入计算后的统计信息的文件名前缀,更准确地说,文件前缀必须由通用路径加上前缀组成,Rasa 将自动添加 -overall.csv 和 -per-session.csv 后缀,默认为 stats 。 |
|
—endpoints | 指定跟踪器的端点 YAML 配置文件 | |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING |
以下命令将标记配置文件中的标记应用于跟踪器预先存在的对话,并生成包含提取标记和汇总统计信息的 CSV 文件:
$ rasa evaluate markers all extracted_markers.csv
15. rasa x
可选参数 | ||
---|---|---|
参数 | 简化参数 | 描述 |
—help | -h | 展示帮助文档 |
—model | -m | 训练好的模型文件路径,如果指定的时文件夹,则会使用该文件夹下最后一个模型。 |
—data | NLU 数据文件或文件夹的路径,默认为 ['data'] |
|
—config | -c | 机器人的 策略和 NLU 管道配置文件,默认为 config.yml |
—domain | -d | 用来指定领域,可以是单个 YAML 文件,也可以是包含多个域文件的文件夹。如果是文件夹,则文件夹下文件将会被读取并合并到一起,默认为 domain.yml |
—no-prompt | 对于提示符和警告自动应答 yes 或者默认选项, | |
—production | 在生产环境下运行 Rasa X | |
—rasa-x-port | 运行 Rasa X 的端口 | |
—config-endpoint | Rasa X 端点 URL 从文件中提取运行时的配置,此 URL 通常会包含 Rasa X 的 token | |
—log-file | 指定存储日志的文件 | |
—use-syslog | 将系统日志添加为日志处理器 | |
—syslog-address | 系统日志服务器的地址,必须结合 --use-syslog 使用,默认为 localhost |
|
—syslog-port | 系统日志服务器的端口,必须结合 --use-syslog 使用,默认为 514 |
|
—syslog-protocol | 系统日志服务器的协议,可以是 UDP 或者 TCP,默认为 UDP |
|
—endpoints | 模型 Server 和连接器的 YAML 配置文件,默认为 endpoints.yml | |
Python 日志选项 | ||
参数 | 简化参数 | 描述 |
—verbose | -v | 冗长的,将日志等级设置为 INFO |
—debug | -vv | 打印出大量调试语句,将日志等级设置为 DEBUG |
—quiet | 安静模式,将日志等级设置为 WARNING | |
服务器设置 | ||
参数 | 简化参数 | 描述 |
—interface | -i | 服务器运行的网络接口,默认为 0.0.0.0 |
—port | -p | 服务器运行的端口,默认为 5005 |
—auth-token | -t | 启用 token 认证后,请求需要提供携带 token 才会被接收 |
—cors | 对请求端启用 CORS,使用 * 则表示所有请求端都在白名单内 |
|
—enable-api | 除了输入通道外,启用 Web Server API | |
—response-timeout | 处理响应所需的最大时长,单位为秒,默认为 3600 | |
—remote-storage | 设置 Rasa model 远程存储地址,例如 AWS | |
—ssl-certificate | 设置 SSL 证书,用于创建受保护的 TLS 服务器 | |
—ssl-keyfile | 设置 SSL 密钥文件,用于创建受保护的 TLS 服务器 | |
—ssl-ca-file | 如果 SSL 证书需要验证,此参数可以指定 CA 文件 | |
—ssl-password | 如果 SSL 密钥文件受密码保护,此参数可用于传递文件密码 | |
通道 | ||
参数 | 简化参数 | 描述 |
—credentials | 使用连接器的身份验证凭据 YAML 文件 | |
—connector | 连接的服务 | |
JWT认证 | ||
参数 | 简化参数 | 描述 |
—jwt-secret | 非对称 JWT 方法的公钥,或者共享对称方法的密钥。请确保使用 --jwt-method 来选择签名的方式,否则该采参数将被忽略。注意,此参数旨在保护 HTTP API。 |
|
—jwt-method | 用于 JWT 认证负载的签名方式,默认为 HS256 |
Rasa X 是一种练习对话驱动开发的工具,在 Rasa 项目下执行 rasa x
来开启。