rasa的使用

rasa的使用

一. 安装

rasa有NLU和core两个模块,可以使用pip全部安装,默认是基于tensorflow2.1版本的
直接使用pip安装

# 创建一个python是3.6.8的环境
conda create -n qa python=3.6.8
# 使用pip安装rasa
pip install rasa 

二. 创建一个简单的语音助手

  1. 创建一个空项目
#  如果不加--no-prompt会问很多问题,加上之后就直接创建一个工程
   rasa init --no-prompt

创建之后包含的文件:
在这里插入图片描述

  1. NLU训练数据
    实际上是意图分类的训练数据
    在这里插入图片描述
    ##开头的是意图,并且是以intent:开头,下面以-开头的是训练数据。
  2. 模型配置文件
    包括NLU和Core的配置文件,两部分,定义了pipline使用的模型。language是在创建模型的时候创建的。
    如果使用配置的字典应该如何使用?
    在这里插入图片描述
  3. 配置stories
    stories.md文件是rasa core模块的训练数据,是一个assistant完成对话最重要的一步,如果不配置的话,只能训练Nlu的模型。
## story1
* greet
   - utter_greet
  1. 定义domain.yml文件
    每一个机器人有一个domain,里面定义了intents、slots、responses。
intents:
  - greet
  - goodbye
  - affirm
  - deny
  - mood_great
  - mood_unhappy
  - bot_challenge

responses:
  utter_greet:
  - text: "Hey! How are you?"

  utter_cheer_up:
  - text: "Here is something to cheer you up:"
    image: "https://i.imgur.com/nGF1K8f.jpg"

  utter_did_that_help:
  - text: "Did that help you?"

  utter_happy:
  - text: "Great, carry on!"

  utter_goodbye:
  - text: "Bye"

  utter_iamabot:
  - text: "I am a bot, powered by Rasa."

session_config:
  session_expiration_time: 60
  carry_over_slots_to_new_session: true

在这里插入图片描述

  1. 训练模型
    rasa训练可以指定模型存储的位置及模型的名字。
rasa train --out models --fixed-model-name rasa_zh_model
  1. 启动模型
rasa shell

三、命令行

  1. 启动交互模式,并指定已经训练好的模型
rasa interactive --model model/rasa_zh_model.tar.gz 

启动之后可以输入对话的内容来与assitant对话,并可以查看意图分类的结果及阈值。
在这里插入图片描述
退出交互模式时,会提醒把stories添加到stories.md文件,NLU数据添加到data/nlu.md数据上。

所以,interactivate的作用是通过交互的模式来训练模型,训练完成后并保存训练数据。
在这里插入图片描述

  1. 启动模型服务

指定训练好的模型作为服务模型,并使用--endpoints来指定actions的服务端口。

rasa run --model models/rasa_zh_model.tar.gz --endpoints endpoints.yml

有一个问题是,这样启动了模型怎么实现对话呢?

  1. 启动actions服务

这样自定义的action才可以注册,并被使用,否则无法使用。参数--actions后面是包名,而不是文件路径。

rasa run actions --actions dm.actions
  1. 训练数据的格式转化

把nlu数据从md文件格式转换为json格式,--data是原始文件,--out是转化后的文件,-f是指定转化后的数据格式。

这个可以方便后台管理界面配置好intent后,写到算法的后台。

# 从md文件转化为json
 rasa data convert nlu --data data/nlu.md --out data/nlu.json -f json

# 从json转化为md文件
 rasa data convert nlu --data data/nlu.json --out data/nlu_md.md -f md
  1. 可视化stories

把stories可视化,生成一个html文件,本地可以打开。

rasa visualize

在这里插入图片描述
从START到END一共4个story,蓝色框的是用户说的话,白色框的是assistant说的话。左边三个story都是以问好的形式来开始的。

四 rasa整体流程

在这里插入图片描述
在这里插入图片描述

参考

知乎:https://zhuanlan.zhihu.com/p/88625091
https://www.jianshu.com/p/ad11f5815447
rasa使用指南01
https://terrifyzhao.github.io/2018/09/17/Rasa%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%9701.html
rasa使用指南02
https://terrifyzhao.github.io/2019/02/26/Rasa%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%9702.html

action有三种类型:

  • default action
  • utter action
  • custom action
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章