初识Rasa Core(1)

本文介绍了RasaCore的基本概念和使用,包括对话管理、Stories和Domain的解析,以及如何创建机器人对话项目。通过RasaNLU处理用户意图,RasaCore选择相应动作响应。同时,讲解了如何定义NLU训练数据和故事,以及cmd下的相关命令。此篇作为RasaCore学习的起点,为后续实战奠定了基础。
摘要由CSDN通过智能技术生成

初识Rasa Core

Rasa是一套开源的机器学习框架,是构建基于上下文的AI小助手、聊天机器人的一个工具。Rasa主要有两个模块——Rasa NLURasa Core。其中,对话管理Core是整个Rasa不可缺少的一环。

接下来我会借助网络的知识点,结合自身的学习过程和浏览翻阅来完成Rasa Core系列的学习,以下内容都是手敲完成,并无复制粘贴或者粘贴他人图像,谢谢大家的阅读和指正。

1、Rasa的安装

在进入cmd下输入以下命令即可。

pip install rasa_core

这里下载的rasa core会比较繁多,容易出现超时的现象。

pip --default-timeout=600 install **  ## 此处的**是对应的包名

结合以上两个代码安装rasa core应该会更加方便一些。

另外就是一般的安装过程。比如官方推荐安装方式(安装rasa和rasa X):

pip install rasa-x --extra-index-url https://pypi.rasa.com/simple

当然如果您不想使用Rasa X,请改为运行如下即可

pip install rasa

2、Rasa Core介绍

Rasa Core中,Core包括两个内容:storiesdomain

首先从中文上讲,前者是故事的意思;后者是领域的意思。两者结合可以认为是“在大致的聊天领域(domain)中结合语境(stories),机器人完成响应问题的回答”。

2.1 Stories

Stories可以理解成对话的场景流程,简单来说,一个故事就是描述一个场景。比如说:“我向另一个人问最近过得怎么样?—>另一个人就要根据自己的实际情况,即好?or不好?—>我来根据另一个人的恢回复做出回复”。

此时这个“我”就是机器人所要做的事。

2.1.1 Stories格式详情
符号说明
##story标题
*意图
-动作

请看以下示例:

## story_happy
* greet
  - utter_greet
* mood_happy
  - utter_happy

## story_unhappy
* greet2
  - utter_greet
*  mood_unhappy
  - utter_unhappy

此时创建一个markdown格式的目录,将如上内容保存为stories,md即可。

2.2 Domain

domain可以理解为机器的知识库,即怎么构建机器人能够回答的范围(领域:domain),这里定义了意图、动作以及对应动作所反馈的内容。

标识说明
intents意图
actions动作
templates回答模板
entities实体
slots词槽

比如如下的例子:

intents:
  - greet
  - mood_happy
  - mood_unhappy

actions:
- utter_greet
- utter_happy
- utter_unhappy

templates:
  utter_greet:
  - text: "你好,你今天过的怎么样"

  utter_happy:
  - text: "那很棒棒哦"

  utter_unhappy:
  - text: "怎么了呀!可以告诉我吗"

这部分的内容保存到domain.yml上即可。

很明显,在stories中的* greet对应着domain.yml中的- greet- utter_greet对应着domain.yml中的action。Rasa Core的任务在于获取到用户的意图后,选择正确的action。这些action就是定义在domain.yml下以utter_开头的内容。

每一个action会根据templates(回答模板)的情况返回对应的内容。

3、创建一个机器人对话项目

在cmd下输入以下命令

rasa init --no-prompt

接下来会出现以下的场面:

在这里插入图片描述

它创建以下文件:

在这里插入图片描述

文件名功能
actions.py自定义actions的代码文件
data/nlu.mdRasa NLU的训练数据
data/stories.mdRasa stories的相应数据
config.ymlRasa NLU 和 Rasa Core 的配置文件
credentials.yml定义和其他服务连接的一些细节。例如rasa api接口
domain.ymlRasa domain 文件
endpoints.yml和外部消息服务对接的 endpoins 细则

以上粗体字说明在整个项目中比较重要!!

3.1 定义一个NLU训练数据(解释器)

目前我们的机器人已经可以通过输入意图来获取答案了,但是怎么让机器理解真正的语言呢?这个时候我们就需要用到NLU模块了。

在目前已经创建好的整个项目中,并不会单独的创建出对话管理而不出现NLU(自然语言理解)部分的内容。对于学习Rasa Core的学习者而言,NLU的知识我们同样需要具备。

在Rasa NLU中,我们需要定义自己的机器人应该能够以Rasa NLU训练数据格式处理用户的消息。当然这里是以markdown格式来获取NLU训练数据。

(附加:markdown格式也可以用来写博客哟,有兴趣的话可以多加学习!)

3.2 定义一个故事

我们可以通过以下两种方式创建故事:

  • 手动创建一个故事并且直接将它们写入文件
  • 使用交互式学习创建故事

比如我们选择第一个,即手动创建。并且根据如下代码(Stories举例的案例)来了解stories的格式。

## story_happy
* greet
  - utter_greet
* mood_happy
  - utter_happy

## story_unhappy
* greet2
  - utter_greet
*  mood_unhappy
  - utter_unhappy

4、cmd下的命令及其功能

在cmd下有以下几个命令以及功能供大家了解:

命令功能
rasa init使用示例训练数据,操作和配置文件创建新的项目
rasa train使用自己的NLU数据和故事训练模型
rasa interactive自动交互式学习会话,通过聊天创建新的培训数据
rasa shell加载训练有素的模型,并且让你在命令行上与助手聊天
rasa run使用训练有素的模型启动Rasa服务器。
rasa run actions使用Rasa SDK启动操作服务器。
rasa visualize可视化故事。
rasa test使用您的测试NLU数据和故事测试训练有素的Rasa模型。
rasa data split nlu根据指定的百分比执行NLU数据的拆分。
rasa data convert nlu在不同格式之间转换NLU训练数据。
rasa -h显示所有可用命令。

总结

以上就是我对Rasa Core的相关内容的学习和简单的总结性介绍。后续会进行实际例子的创建,谢谢大家的阅读和指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值