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对话机器人,针对意图有指定动作。
微信截图_20220616163153.png

实体

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,有什么可以帮您吗。

标签: none

添加新评论