Rasa是一个开源聊天机器人框架,使用python编写,在大数据时代,Rasa可以很方便的集成很多机器学习和NLP的组件
初始化机器人项目
rasa init
自定义action
在项目的action文件夹下,找到action.py文件。
自定义一个类:
from rasa_sdk import Actionclass ActionItemShow(Action):def name(self):# define the name of the action which can then be included in training storiesreturn "item_show"def run(self, dispatcher, tracker, domain):# what your action should dodispatcher.utter_message('展示一个Item') #send the message back to the userreturn []
在domain.yml中申明这个action:(domain.yml是一些全局变量的声明文件)
actions:- item_show
在data的stories文件夹下找到stories.yml:(stories.yml是具体对话的流程配置)
- story: search item 1steps:- intent: item_search_by_codeentities: - name: item_code- action: utter_item_search- intent: affirm- action: item_show
在/data/nlu.yml中定义好intent:(nlu.yml是聊天意图判断的配置文件)
- intent: item_search_by_codeexamples: |- 我想查[412342](item_code)这个单品- 我想查[412342](item_code)这个item- 帮我查一下[412342](item_code)这个item- 帮我查一下[412342](item_code)这个单品- 我想查[412342](item_code)这个item code- 帮我查一下[412342](item_code)这个item code- 帮我查一下[412342](item_code)这个单品code- 我想查[412342](item_code)这个单品code- 帮我查一个ITEM[412342](item_code)
在endpoint.yml中定义好action服务器:(endpoint.yml 是各种外部资源的配置文件)
action_endpoint:url: "http://localhost:5055/webhook"
运行
由于使用了自定义action,所以必须先启动自定义action server。然后可以执行rasa shell来进行会话。
rasa run actions
rasa shell