rasa_domin解析
domain文件里定义了:
domain可以理解为机器的知识库,其中定义了意图,动作,以及对应动作所反馈的内容
- 意图:intents 你期望用户说的东西。
- 实体:entities 您想要从消息中提取的信息片段。
- 槽位:slots 在会话期间跟踪的信息(例如用户年龄)
- 动作:actions 你的机器人可以做和说的东西
- 回复:templates 你的机器人可以说的东西的模板字符串
意图
intents:
- 打招呼
- 再见
- chitchat
- inform
- create_todo
- query_garbage:
triggers: action_garbage
- query_weather:
triggers: action_weather
我们需要识别和处理的意图,必须要在这里定义出来。同时,这里也定义了当识别到特定的意图时,可以触发的动作。这个是rasa后来新增的一个policy,也就是为了支持QA对话机器人,针对意图有指定动作。
实体
entities:
- what
- location
- day
槽位
槽位可以理解为对话过程中,抓取到的有用信息,可以在一个对话过程中保持,并根据需要清空或者保留。包括可以根据不同的意图,定义需要用的槽位,比如天气,那我们就需要地点和时间。如果对话进行中,要查询天气,就必须提供这两个信息。因此,就可以从简单的QA对话,扩展为多轮对话。
slots:
day:
type: unfeaturized
location:
type: unfeaturized
what:
动作
所有的简单动作、自定义动作、以及所有的回复消息,都要定义为动作。比如下面的“action_weather"就是我的自定义动作。
actions:
- utter_goodbye
- utter_greet
- action_chit_chat
- action_weather
回复
定义一些默认回复、可以带参数的回复,这些都可以在意图识别之后直接调用,也可以在自定义动作里调用带模板的回复。
responses:
utter_default:
- text: 您说什么,小e听不懂。
utter_goodbye:
- text: 再见
- text: Bye, 下次见
utter_greet:
- text: hi! 我是小e,有什么可以帮您吗。