4. 将Rasa 1.x助手迁移到Rasa 2.0

原文:将Rasa 1.x助手迁移到Rasa 2.0
上周,我们发布了Rasa Open Source 2.0-一个重要的新版本,标志着Rasa Open Source开发的新里程碑。 它具有许多新功能和改进,我们希望它们可以使与Rasa构建出色的对话式AI助手变得更加容易。

如果你现在是使用Rasa 1.x构建助手的,那么你会注意到Rasa 2.0中的工作方式有很多变化。

在本文中,我们想向你展示如何安全地将使用Rasa Open Source 1.x构建的助手迁移到2.0。

我们将介绍的内容:

  • 搭建环境
  • 训练数据格式
  • Policy configuration
  • Forms
  • Slots

1. 搭建环境

在将现有应用程序迁移到新版本的Rasa Open Source时,我们建议你使用项目的副本,以便在出现问题时始终可以恢复到原始版本。
要开始迁移,请创建一个目录,其中包含你的助手副本。 在该目录中,创建一个虚拟环境并安装Rasa 2.0:

python3 -m venv ./venv
source ./venv/bin/activate
pip install rasa==2.0

安装完成后,你就可以开始迁移助手了。

2. 训练数据格式

新的训练数据格式将影响大多数使用Rasa 1.x构建的助手。 自Rasa 2.0发行以来,NLU,stories 和NLG训练数据的默认数据格式为YAML。

要从以前的Rasa版本中使用的markdown格式转换到现有的训练数据,你可以使用能够自动转换nlu,stories和nlg数据的数据转换器。

假设你Rasa 1.x助手遵循通常的项目结构,其中nlu和story训练数据文件分别存储在./data/nlu./data/stories目录中:

nlu和story训练数据文件分别存储在./data/nlu和./data/stories目录中

要将数据文件转换为YAML格式,请运行以下命令:

rasa data convert nlu -f yaml --data=./data/nlu --out=./data/nlu

rasa data convert core -f yaml --data=./data/stories --out=./data/stories

其中,--data参数指向现有的训练数据文件,而--out参数指向应该存储转换后的数据文件的目录。

转换后的文件将具有与原始文件相同的名称,但是名称后会附加后缀_converted

转换后的数据文件

如果你的训练数据包含任何带有forms或response selectors的stories,那么到目前为止,你将必须手动更新这些stories。 我们将在本文的后续步骤中介绍如何实现这一目标。

3. Policy configuration

Rasa 2.0中已更改的Rasa的另一部分是policy configuration。 Mapping Policy, Fallback Policy, Two Stage Fallback Policy 和 Form Policy 已被弃用,并由Rule Policy代替。 要将policy configuration迁移到Rasa 2.0,可以运行Converter命令,该命令将自动为你实施更改。

让我们以下面的Rasa 1.x policy configuration为例。 这里我们已弃用了Mapping Policy, Fallback Policy 和 Form Policy:


policy configuration

要将此配置迁移到Rasa 2.0,我们可以运行以下命令:

rasa data convert config

此功能将更新config.yml文件,使其与Rasa 2.0兼容。 它将用规则策略替换不推荐使用的策略,并迁移配置参数以与Rasa 2.0兼容。 上例中的config.yml文件转换后的样子如下:

config.yml文件转换后的样子

除了更新config.yml文件之外,此功能还将对domain.yml文件进行更新,并将创建一个rules.yml文件,可以在其中进一步向策略配置中添加新规则。

注意:如果你的Rasa 1.x助手包含Forms,则必须对配置进行一些其他手动更改。 我们将在本文的下一部分中介绍这些细节。

4. Forms

Forms在Rasa Open Source 2.0中进行了重大修改。 首先,它们已从Rasa SDK中移出并移至Rasa Open Source中,以简化实现并使其更容易用其他语言编写action servers。 其次,在Rasa Open Source 2.0中,必须使用domain.yml文件来实现 forms,而不是使用FormAction来实现。

以下是将现有Forms迁移到Rasa 2.0的步骤:

1.更新config.yml文件中的 policy configuration,并将FormPolicy替换为RulePolicy(如果你已使用rasa data convert config命令更新了 policy configuration,则将自动为你完成此操作)。

2.更新domain.yml文件,并包括你助手中的Forms配置。 配置应包括Forms名称,请求的slots以及适用的 slot mappings。 例如:


更新domain.yml文件,并包括你助手中的Forms配置

3.如果你使用rasa data convert命令将你的stories数据迁移到Rasa Open Source 2.0,则包含forms的stories将被更新,以包括form activation和 form deactivation的步骤。 为了将表单正确地迁移到2.0,我们建议你从Storys.yml文件中删除这些stories,并通过添加form activation 和 form submission来更新rules.yml文件。 例如:

建议从story.yml文件中删除这些故事并更新rules.yml文件,而不是通过添加 form activation 和 form submission 规则

4.如果你的 forms 包括slot validation,请更新domain.yml文件以包括用于validating slots的 custom action。 例如:


更新domain.yml文件以包括用于validating slots的 custom action

5.在actions.py文件中创建一个custom action以validate the slots。 这与Rasa Open Source 1.x中的工作方式类似,但是主要区别在于,slot validation的 custom action类继承自Rasa SDK中的FormValidationAction类。 我们建议你查阅 Rasa documentation,以获取有关如何创建用于validating slots的custom actions的更多详细信息。

5. Slots

Rasa Open Source 2.0中引入的另一个更改是弃用了unfeaturized slot类型。 在Rasa Open Source 1.x中,这种 slot 类型用于定义不影响对话的slot。 在Rasa Open Source 2.0中,可以通过定义text slot 类型并使用influence_conversation标志来控制 slot 是否影响对话来实现相同目的。 例如:

image.png

总结

Rasa Open Source 2.0包含了许多令人兴奋的new exciting features和改进,我们希望它们可以使开发人员更轻松地使用Rasa构建出色的对话式AI助手。 你是否已将Rasa 1.x助手迁移到Rasa 2.0? 在 Rasa Community Forum上与我们分享你的经验和反馈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336