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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章